@Override public boolean isClosed() { return dbf.db().isClosed(); }
@Override public boolean isClosed() { return dbf.db().isClosed(); }
/** * Enables entity events for the given {@link EntityAdapter}. */ public void enableEvents(final EntityAdapter adapter) { log.trace("Enable entity events for {}", adapter); recordingAdapters.put(adapter.getTypeName(), adapter); recordingDatabases.add(adapter.getDbName()); pendingDbs.removeIf(db -> db.isClosed() || startRecording(db)); }
public ODatabase<T> db() { ODatabase<T> db; if(!ODatabaseRecordThreadLocal.INSTANCE.isDefined()) { db = openDatabase(); log.debug("acquire db from pool {}", db.hashCode()); } else { db = (ODatabase<T>)ODatabaseRecordThreadLocal.INSTANCE.get().getDatabaseOwner(); if(db.isClosed()) { db = openDatabase(); log.debug("re-opened db {}", db.hashCode()); } else { log.debug("use existing db {}", db.hashCode()); } } return db; }
@Override protected void doCleanupAfterCompletion(Object transaction) { OrientTransaction tx = (OrientTransaction) transaction; if (!tx.getDatabase().isClosed()) { log.debug("closing transaction, db.hashCode() = {}", tx.getDatabase().hashCode()); tx.getDatabase().close(); } TransactionSynchronizationManager.unbindResource(dbf); }
public static void removePendingDatabaseOps(ODatabase iDatabase) { try { if (iDatabase.isClosed() || Boolean.FALSE.equals(iDatabase.getConfiguration().getValue(QUERY_LIVE_SUPPORT))) return; OLiveQueryOps ops = getOpsReference((ODatabaseInternal) iDatabase); synchronized (ops.pendingOps) { ops.pendingOps.remove(iDatabase); } } catch (ODatabaseException ex) { //This catch and log the exception because in some case is suppressing the real exception OLogManager.instance().error(iDatabase, "Error cleaning the live query resources", ex); } }
@Override protected void doCleanupAfterCompletion(Object transaction) { OrientTransaction tx = (OrientTransaction) transaction; if (!tx.getDatabase().isClosed()) { log.debug("closing transaction, db.hashCode() = {}", tx.getDatabase().hashCode()); tx.getDatabase().close(); } TransactionSynchronizationManager.unbindResource(dbf); }
@Override protected void doBegin(Object transaction, TransactionDefinition definition) throws TransactionException { OrientTransaction tx = (OrientTransaction) transaction; ODatabase<?> db = tx.getDatabase(); if (db == null || db.isClosed()) { db = dbf.openDatabase(); tx.setDatabase(db); TransactionSynchronizationManager.bindResource(dbf, db); } log.debug("beginning transaction, db.hashCode() = {}", db.hashCode()); db.begin(); }
@Override protected void doBegin(Object transaction, TransactionDefinition definition) throws TransactionException { OrientTransaction tx = (OrientTransaction) transaction; ODatabase<?> db = tx.getDatabase(); if (db == null || db.isClosed()) { db = dbf.openDatabase(); tx.setDatabase(db); TransactionSynchronizationManager.bindResource(dbf, db); } log.debug("beginning transaction, db.hashCode() = {}", db.hashCode()); db.begin(); }
@Override protected void doResume(Object transaction, Object suspendedResources) throws TransactionException { OrientTransaction tx = (OrientTransaction) transaction; ODatabase<?> db = tx.getDatabase(); if (!db.isClosed()) { db.close(); } ODatabaseInternal<?> oldDb = (ODatabaseInternal<?>) suspendedResources; TransactionSynchronizationManager.bindResource(dbf, oldDb); ODatabaseRecordThreadLocal.INSTANCE.set((ODatabaseDocumentInternal) oldDb.getUnderlying()); }
@Override protected void doResume(Object transaction, Object suspendedResources) throws TransactionException { OrientTransaction tx = (OrientTransaction) transaction; ODatabase<?> db = tx.getDatabase(); if (!db.isClosed()) { db.close(); } ODatabaseInternal<?> oldDb = (ODatabaseInternal<?>) suspendedResources; TransactionSynchronizationManager.bindResource(dbf, oldDb); ODatabaseRecordThreadLocal.INSTANCE.set((ODatabaseDocumentInternal) oldDb.getUnderlying()); }