/** * INTERNAL: * Returns the single write Lock manager for this session */ public WriteLockManager getWriteLockManager() { // As there should only be one write lock manager per server session // get the one from the parent. return ((IsolatedClientSession)session).getParent().getIdentityMapAccessorInstance().getWriteLockManager(); }
/** * INTERNAL: * Called after transaction is completed (committed or rolled back) */ public void afterTransaction(boolean committed, boolean isExternalTransaction) { if (!committed && isExternalTransaction) { // In case jts transaction was internally started but rolled back // directly by TransactionManager this flag may still be true during afterCompletion getParent().setWasJTSTransactionInternallyStarted(false); //bug#4699614 -- added a new life cycle status so we know if the external transaction was rolledback and we don't try to rollback again later setLifecycle(AfterExternalTransactionRolledBack); } if ((getMergeManager() != null) && (getMergeManager().getAcquiredLocks() != null) && (!getMergeManager().getAcquiredLocks().isEmpty())) { //may have unreleased cache locks because of a rollback... getParent().getIdentityMapAccessorInstance().getWriteLockManager().releaseAllAcquiredLocks(getMergeManager()); this.setMergeManager(null); } getParent().afterTransaction(committed, isExternalTransaction); }
setMergeManager(manager); getParent().getIdentityMapAccessorInstance().getWriteLockManager().acquireRequiredLocks(getMergeManager(), (UnitOfWorkChangeSet)getUnitOfWorkChangeSet()); getParent().getIdentityMapAccessorInstance().getWriteLockManager().releaseAllAcquiredLocks(manager); setMergeManager(null); getParent().getIdentityMapAccessorInstance().getWriteLockManager().releaseAllAcquiredLocks(manager); setMergeManager(null);
setMergeManager(new MergeManager(this)); getParent().getIdentityMapAccessorInstance().getWriteLockManager().acquireRequiredLocks(getMergeManager(), (UnitOfWorkChangeSet)getUnitOfWorkChangeSet()); if (getDatasourceLogin().shouldSynchronizeObjectLevelReadWriteDatabase() && (getMergeManager() != null)) { getParent().getIdentityMapAccessorInstance().getWriteLockManager().releaseAllAcquiredLocks(getMergeManager()); this.setMergeManager(null); if (getDatasourceLogin().shouldSynchronizeObjectLevelReadWriteDatabase() && (getMergeManager() != null)) { getParent().getIdentityMapAccessorInstance().getWriteLockManager().releaseAllAcquiredLocks(getMergeManager()); this.setMergeManager(null);
this.objectsLockedForClone = getParent().getIdentityMapAccessorInstance().getWriteLockManager().acquireLocksForClone(original, descriptor, cacheKey.getKey(), getParent()); } else { cacheKey.acquireReadLock();
getSession().getIdentityMapAccessorInstance().getWriteLockManager().acquireRequiredLocks(this, uowChangeSet); Enumeration objectChangeEnum = uowChangeSet.getAllChangeSets().keys(); while (objectChangeEnum.hasMoreElements()) { getSession().handleException(exception); } finally { getSession().getIdentityMapAccessorInstance().getWriteLockManager().releaseAllAcquiredLocks(this); getSession().getIdentityMapAccessorInstance().releaseWriteLock(); getSession().getEventManager().postDistributedMergeUnitOfWorkChangeSet(uowChangeSet);
setMergeManager(new MergeManager(this)); getParent().getIdentityMapAccessorInstance().getWriteLockManager().acquireRequiredLocks(getMergeManager(), (UnitOfWorkChangeSet)getUnitOfWorkChangeSet()); if (getDatasourceLogin().shouldSynchronizeObjectLevelReadWriteDatabase() && (getMergeManager() != null)) { getParent().getIdentityMapAccessorInstance().getWriteLockManager().releaseAllAcquiredLocks(getMergeManager()); this.setMergeManager(null); if (getDatasourceLogin().shouldSynchronizeObjectLevelReadWriteDatabase() && (getMergeManager() != null)) { getParent().getIdentityMapAccessorInstance().getWriteLockManager().releaseAllAcquiredLocks(getMergeManager()); this.setMergeManager(null);
getParent().getIdentityMapAccessorInstance().getWriteLockManager().releaseAllAcquiredLocks(getMergeManager()); this.setMergeManager(null);
original = parent.getIdentityMapAccessorInstance().getWriteLockManager().appendLock(objectChangeSet.getPrimaryKeys(), original, descriptor, this, parent); descriptor.getObjectBuilder().mergeIntoObject(original, true, clone, this); } else {