Пример #1
0
WiredTigerSession* WiredTigerRecoveryUnit::getSession() {
    if (!_isActive()) {
        _txnOpen();
        _setState(_inUnitOfWork() ? State::kActive : State::kActiveNotInUnitOfWork);
    }
    return _session.get();
}
Пример #2
0
WiredTigerSession* WiredTigerRecoveryUnit::getSession(OperationContext* opCtx) {
    _ensureSession();

    if (!_active) {
        _txnOpen(opCtx);
    }
    return _session;
}
WiredTigerSession* WiredTigerRecoveryUnit::getSession(OperationContext* opCtx) {
    if (!_session) {
        _session = _sessionCache->getSession();
    }

    if (!_active) {
        _txnOpen(opCtx);
    }
    return _session;
}
Пример #4
0
    WiredTigerSession* WiredTigerRecoveryUnit::getSession() {
        if ( !_session ) {
            _session = _sessionCache->getSession();
        }

        if ( !_active ) {
            _txnOpen();
        }
        return _session;
    }
Пример #5
0
MobileSession* MobileRecoveryUnit::getSession(OperationContext* opCtx, bool readOnly) {
    RECOVERY_UNIT_TRACE() << " getSession called with readOnly:" << (readOnly ? "TRUE" : "FALSE");

    invariant(_inUnitOfWork || readOnly);
    if (!_active) {
        _txnOpen(opCtx, readOnly);
    }

    return _session.get();
}
Пример #6
0
void MobileRecoveryUnit::beginUnitOfWork(OperationContext* opCtx) {
    invariant(!_areWriteUnitOfWorksBanned);
    invariant(!_inUnitOfWork);

    RECOVERY_UNIT_TRACE() << " Unit of work Active.";

    if (_active) {
        // Confirm a write transaction is not running
        invariant(_isReadOnly);

        // Rollback read transaction running outside wuow
        _txnClose(false);
    }
    _txnOpen(opCtx, false);
    _inUnitOfWork = true;
}