@Override public Connection getConnection() { return wrapped.getConnection(); }
static <T> T withConnectionSource(final ConnectionSource source, final CallableWithConnection<T> callable) { Connection connection = source.getConnection(); try { return callable.call(connection); } finally { connection.release(); } }
static <T> T withConnectionSource(final ConnectionSource source, final CallableWithConnectionAndSource<T> callable) { Connection connection = source.getConnection(); try { return callable.call(source, connection); } finally { connection.release(); } }
private void killCursor() { if (serverCursor != null) { try { Connection connection = connectionSource.getConnection(); try { killCursor(connection); } finally { connection.release(); } } catch (MongoException e) { // Ignore exceptions from calling killCursor } } }
static <T> T withReleasableConnection(final WriteBinding binding, final CallableWithConnectionAndSource<T> callable) { ConnectionSource source = binding.getWriteConnectionSource(); try { return callable.call(source, source.getConnection()); } finally { source.release(); } }
private static <T> T executeWrappedCommandProtocol(final String database, final BsonDocument command, final FieldNameValidator fieldNameValidator, final Decoder<T> decoder, final ConnectionSource source, final ReadPreference readPreference) { Connection connection = source.getConnection(); try { return executeWrappedCommandProtocol(database, command, fieldNameValidator, decoder, connection, readPreference, new IdentityTransformer<T>(), source.getSessionContext()); } finally { connection.release(); } }
static <T> T withReleasableConnection(final WriteBinding binding, final MongoException connectionException, final CallableWithConnectionAndSource<T> callable) { ConnectionSource source = null; Connection connection; try { source = binding.getWriteConnectionSource(); connection = source.getConnection(); } catch (Throwable t){ if (source != null) { source.release(); } throw connectionException; } try { return callable.call(source, connection); } finally { source.release(); } }
private void cleanCursors() { ServerCursorAndNamespace cur; while ((cur = orphanedCursors.poll()) != null) { ReadWriteBinding binding = new SingleServerBinding(delegate.getCluster(), cur.serverCursor.getAddress()); try { ConnectionSource source = binding.getReadConnectionSource(); try { Connection connection = source.getConnection(); try { connection.killCursor(cur.namespace, singletonList(cur.serverCursor.getId())); } finally { connection.release(); } } finally { source.release(); } } finally { binding.release(); } } }
private void getMore() { Connection connection = connectionSource.getConnection(); try { if (serverIsAtLeastVersionThreeDotTwo(connection.getDescription())) { try { initFromCommandResult(connection.command(namespace.getDatabaseName(), asGetMoreCommandDocument(), NO_OP_FIELD_NAME_VALIDATOR, ReadPreference.primary(), CommandResultDocumentCodec.create(decoder, "nextBatch"), connectionSource.getSessionContext())); } catch (MongoCommandException e) { throw translateCommandException(e, serverCursor); } } else { QueryResult<T> getMore = connection.getMore(namespace, serverCursor.getId(), getNumberToReturn(limit, batchSize, count), decoder); initFromQueryResult(getMore); } if (limitReached()) { killCursor(connection); } if (serverCursor == null) { this.connectionSource.release(); this.connectionSource = null; } } finally { connection.release(); } }
@Override public Connection getConnection() { return wrapped.getConnection(); }
@Override public Connection getConnection() { return wrapped.getConnection(); }
static <T> T withConnectionSource(final ConnectionSource source, final CallableWithConnection<T> callable) { Connection connection = source.getConnection(); try { return callable.call(connection); } finally { connection.release(); } }
static <T> T withConnectionSource(final ConnectionSource source, final CallableWithConnectionAndSource<T> callable) { Connection connection = source.getConnection(); try { return callable.call(source, connection); } finally { connection.release(); } }
private void killCursor() { if (serverCursor != null) { try { Connection connection = connectionSource.getConnection(); try { killCursor(connection); } finally { connection.release(); } } catch (MongoException e) { // Ignore exceptions from calling killCursor } } }
static <T> T withReleasableConnection(final WriteBinding binding, final CallableWithConnectionAndSource<T> callable) { ConnectionSource source = binding.getWriteConnectionSource(); try { return callable.call(source, source.getConnection()); } finally { source.release(); } }
private static <T> T executeWrappedCommandProtocol(final String database, final BsonDocument command, final FieldNameValidator fieldNameValidator, final Decoder<T> decoder, final ConnectionSource source, final ReadPreference readPreference) { Connection connection = source.getConnection(); try { return executeWrappedCommandProtocol(database, command, fieldNameValidator, decoder, connection, readPreference, new IdentityTransformer<T>(), source.getSessionContext()); } finally { connection.release(); } }
static <T> T withReleasableConnection(final WriteBinding binding, final MongoException connectionException, final CallableWithConnectionAndSource<T> callable) { ConnectionSource source = null; Connection connection; try { source = binding.getWriteConnectionSource(); connection = source.getConnection(); } catch (Throwable t){ if (source != null) { source.release(); } throw connectionException; } try { return callable.call(source, connection); } finally { source.release(); } }
private void cleanCursors() { ServerCursorAndNamespace cur; while ((cur = orphanedCursors.poll()) != null) { ReadWriteBinding binding = new SingleServerBinding(delegate.getCluster(), cur.serverCursor.getAddress()); try { ConnectionSource source = binding.getReadConnectionSource(); try { Connection connection = source.getConnection(); try { connection.killCursor(cur.namespace, singletonList(cur.serverCursor.getId())); } finally { connection.release(); } } finally { source.release(); } } finally { binding.release(); } } }
private void getMore() { Connection connection = connectionSource.getConnection(); try { if (serverIsAtLeastVersionThreeDotTwo(connection.getDescription())) { try { initFromCommandResult(connection.command(namespace.getDatabaseName(), asGetMoreCommandDocument(), NO_OP_FIELD_NAME_VALIDATOR, ReadPreference.primary(), CommandResultDocumentCodec.create(decoder, "nextBatch"), connectionSource.getSessionContext())); } catch (MongoCommandException e) { throw translateCommandException(e, serverCursor); } } else { QueryResult<T> getMore = connection.getMore(namespace, serverCursor.getId(), getNumberToReturn(limit, batchSize, count), decoder); initFromQueryResult(getMore); } if (limitReached()) { killCursor(connection); } if (serverCursor == null) { this.connectionSource.release(); this.connectionSource = null; } } finally { connection.release(); } }