проблема с setCatalog () с использованием c3p0 для ms sqlserver, но отлично работает с прямым подключением без пула - PullRequest
0 голосов
/ 06 августа 2020

Мы настраиваем мультитенантное приложение с одним сервером базы данных ms sqlserver, имеющим несколько баз данных, по одной на сайт.

c3p0 0.9.5.5 используется для пула соединений.

Мы делаем вызов setCatalog() для установки базы данных для использования. В примере программы мы используем простой запрос «выберите из test_table». Имя таблицы, имена столбцов не имеют каких-либо кавычек.

Однако после второго вызова setCatalog() мы начинаем получать ошибку такой формы:

com.microsoft.sqlserver.jdbc.SQLServerException: The prepared statement handle 1 is not valid in this context.  Please verify that current database, user default schema, and ANSI_NULLS and QUOTED_IDENTIFIER set options are not changed since the handle is prepared.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:258)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1535)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:467)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:409)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7151)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2478)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:219)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:199)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:331)
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:1471)

Однако с тот же тестовый запрос без c3p0 (прямое получение соединения), мы никогда не сталкиваемся с этой проблемой. Что мы делаем не так, или есть известная проблема в c3p0 для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...