На кластере 2 узла когда один узел является отключение следующие ошибки C3P0 замечены:c3p0 ошибка соединения Аккумулирование - Oracle RAC
2015-11-10 10:00:25,655 | WARN | scheduler-1 | org.apache.log4j.Category | Exception on close of inner statement.
java.sql.SQLRecoverableException: Closed Connection
at oracle.jdbc.driver.PhysicalConnection.needLine(PhysicalConnection.java:5416)
at oracle.jdbc.driver.OracleStatement.closeOrCache(OracleStatement.java:1585)
at oracle.jdbc.driver.OracleStatement.close(OracleStatement.java:1570)
at oracle.jdbc.driver.OracleStatementWrapper.close(OracleStatementWrapper.java:94)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.close(OraclePreparedStatementWrapper.java:82)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.close(NewProxyPreparedStatement.java:1811)
выше предупреждение следуют:
2015-11-10 10:00:25,668 | WARN | DefaultQuartzScheduler_Worker-10 | org.apache.log4j.Category | [c3p0] Another error has occurred [ java.sql.SQLRecoverableException: Closed Connection ] which will not be reported to listeners!
java.sql.SQLRecoverableException: Closed Connection
at oracle.jdbc.driver.PhysicalConnection.needLine(PhysicalConnection.java:5416)
at oracle.jdbc.driver.OracleStatement.closeOrCache(OracleStatement.java:1585)
at oracle.jdbc.driver.OracleStatement.close(OracleStatement.java:1570)
at oracle.jdbc.driver.OracleStatementWrapper.close(OracleStatementWrapper.java:94)
ASE в комментарий Стива Свальдмана от c3p0 github page, эти предупреждения связаны с недействительными/устаревшими соединениями.
Итак, в среде RAC Oracle, когда один экземпляр отключен, что происходит с соединениями, уже полученными при запуске и запуске узла? для большей части операции базы данных работали нормально после завершения работы узла. Только несколько вставок не смогли сбросить предупреждения выше. Используется ли объединение соединений c3p0 для использования в средах RAC?
Более подробная информация о предупреждениях: http://sourceforge.net/p/c3p0/mailman/message/18310863/
Thanks.Initially, когда оба узла подключены, некоторые соединения будут получены. когда узел завершает работу, операции с базой данных будут обрабатываться другим экземпляром, который все еще работает и работает. Таким образом, соединения, приобретенные до того, как узел опустится, остаются в силе? Было замечено, что первые несколько записей после того, как узел упал, не вставлены в БД. – tweeper
нет, как только узел опустится, соединения с ним будут недействительными. вы должны настроить тестирование соединения, чтобы плохие подключения не предоставлялись клиентам. то только те соединения, которые уже были проверены, когда база данных опустилась, будут испытывать ошибки. см. http://www.mchange.com/projects/c3p0/#simple_advice_on_connection_testing –
Стив, последнее. Если я использую тестирование соединений (preferredTestQuery, testConnectionOnCheckout), поможет ли это избежать предупреждений, которые были замечены выше, которые, вероятно, вызваны в течение временного интервала, когда узел опускается, и те соединения, которые были получены с использованием этого экземпляра, становятся недействительными? – tweeper