*/
if ((!_transactionManagerFactory.getName().equals (LocalTransactionManagerFactory.NAME )) &&
(_transactionManager != null)) {
Transaction transaction;
DatabaseImpl dbImpl;
try {
transaction = _transactionManager.getTransaction();
if ( _txDbPool != null && _txDbPool.containsTx (transaction))
return _txDbPool.get (transaction);
if (transaction != null && transaction.getStatus() == Status.STATUS_ACTIVE) {
dbImpl = new DatabaseImpl( _dbName, _lockTimeout,
_callback, _instanceFactory, transaction, _classLoader, _autoStore);
if (_txDbPool != null)
_txDbPool.put( transaction, dbImpl );
transaction.registerSynchronization( dbImpl );
return dbImpl;
}
}
catch (Exception except) {
// NamingException, SystemException, RollbackException
if (_logInterceptor != null)
_logInterceptor.exception( except );
}
}
return new DatabaseImpl( _dbName, _lockTimeout,
_callback, _instanceFactory, null, _classLoader, _autoStore );
}