public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency,
int resultSetHoldability) throws SQLException {
checkState();
PreparedStatementHolder stmtHolder = null;
PreparedStatementKey key = new PreparedStatementKey(sql, getCatalog(), MethodType.Precall_2, resultSetType,
resultSetConcurrency, resultSetHoldability);
boolean poolPreparedStatements = holder.isPoolPreparedStatements();
if (poolPreparedStatements) {