public static Connection getConnection( LogChannelInterface log, DatabaseMeta dbMeta, String partitionId, int initialSize, int maximumSize ) throws Exception { lock.lock(); try { if ( !isDataSourceRegistered( dbMeta, partitionId ) ) { addPoolableDataSource( log, dbMeta, partitionId, initialSize, maximumSize ); } } finally { lock.unlock(); } BasicDataSource ds = dataSources.get( getDataSourceName( dbMeta, partitionId ) ); return ds.getConnection(); }