public void releaseConnection(RouteResultsetNode rrn, boolean debug, final boolean needRollback) { BackendConnection c = target.remove(rrn); if (c != null) { if (debug) { LOGGER.debug("release connection " + c); } if (c.getAttachment() != null) { c.setAttachment(null); } if (!c.isClosed()) { if (c.isAutocommit()) { c.release(); } else if (needRollback) { c.setResponseHandler(new RollbackReleaseHandler()); c.rollback(); } else { c.release(); } } } }