@Override protected ODatabaseDocumentTx createResource(Object owner, String iDatabaseName, Object... iAdditionalArgs) { return new ODatabaseDocumentTxPooled((ODatabaseDocumentPool) owner, iDatabaseName, (String) iAdditionalArgs[0], (String) iAdditionalArgs[1]); } }
/** * Avoid to close it but rather release itself to the owner pool. */ @Override public void close() { if (isClosed()) return; checkOpenness(); if (ownerPool != null && ownerPool.getConnectionsInCurrentThread(getURL(), userName) > 1) { ownerPool.release(this); return; } try { commit(true); } catch (Exception e) { OLogManager.instance().error(this, "Error on releasing database '%s' in pool", e, getName()); } try { callOnCloseListeners(); } catch (Exception e) { OLogManager.instance().error(this, "Error on releasing database '%s' in pool", e, getName()); } getLocalCache().clear(); if (ownerPool != null) { final ODatabaseDocumentPool localCopy = ownerPool; ownerPool = null; localCopy.release(this); } ODatabaseRecordThreadLocal.instance().remove(); }
public void reuse(final Object iOwner, final Object[] iAdditionalArgs) { ownerPool = (ODatabaseDocumentPool) iOwner; getLocalCache().invalidate(); // getMetadata().reload(); ODatabaseRecordThreadLocal.instance().set(this); try { callOnOpenListeners(); } catch (Exception e) { OLogManager.instance().error(this, "Error on reusing database '%s' in pool", e, getName()); } }