Не удалось получить соединение JDBC при использовании Spring с JNDI на свободе - PullRequest
0 голосов
/ 14 мая 2019

При запуске нагрузочного теста при запуске приложения на свободе и получении источника данных из свободы через JNDI тест завершается примерно через минуту, за исключением:

Причина: org.springframework.jdbc.CannotGetJdbcConnectionException: не удалось получить соединение JDBC;Вложенное исключение: java.sql.SQLTransientConnectionException: J2CA0045E: Соединение недоступно при вызове метода createOrWaitForConnection для ресурса jdbc / MY_JNDI_NAME.Тайм-аут ожидания 30 000 миллисекунд (ы) с 29 оставшимися ожидающими запросами и 10 использованными текущими соединениями.

При настройке источника данных непосредственно в приложении Spring (и, таким образом, с использованием HikariCP в качестве пула соединений), то же самоеТест успешно выполняется в течение 10 минут.

Попытался исключить зависимость hikaricp из приложения, чтобы убедиться, что hikari не участвует каким-либо образом.

edit1: при выполнениитот же звонок.Вот из Spring (действительно commit и afterCommit):

2019-05-15 13:03:09.855 TRACE 93902 --- [nio-8070-exec-3] o.s.j.d.DataSourceTransactionManager     : Triggering beforeCommit synchronization
2019-05-15 13:03:09.855 TRACE 93902 --- [nio-8070-exec-3] o.s.j.d.DataSourceTransactionManager     : Triggering beforeCompletion synchronization
2019-05-15 13:03:09.855 DEBUG 93902 --- [nio-8070-exec-3] o.s.j.d.DataSourceTransactionManager     : Initiating transaction commit
2019-05-15 13:03:09.855 DEBUG 93902 --- [nio-8070-exec-3] o.s.j.d.DataSourceTransactionManager     : Committing JDBC transaction on Connection [HikariProxyConnection@942192123 wrapping oracle.jdbc.driver.T4CConnection@38af1bf6]
2019-05-15 13:03:09.863 TRACE 93902 --- [nio-8070-exec-3] o.s.j.d.DataSourceTransactionManager     : Triggering afterCommit synchronization
2019-05-15 13:03:09.863 TRACE 93902 --- [nio-8070-exec-3] .s.t.s.TransactionSynchronizationManager : Clearing transaction synchronization
2019-05-15 13:03:09.863 TRACE 93902 --- [nio-8070-exec-3] o.s.j.d.DataSourceTransactionManager     : Triggering afterCompletion synchronization
2019-05-15 13:03:09.863 TRACE 93902 --- [nio-8070-exec-3] .s.t.s.TransactionSynchronizationManager : Removed value [org.springframework.jdbc.datasource.ConnectionHolder@550224fb] for key [HikariDataSource (DS-RGVALIDATION)] from thread [http-nio-8070-exec-3]

здесь один и тот же вызов из свободы:

[5/16/19 9:31:37:556 CEST] 0000002a id=00000000 ework.transaction.support.AbstractPlatformTransactionManager 3 triggerBeforeCommit Triggering beforeCommit synchronization
[5/16/19 9:31:37:557 CEST] 0000002a id=00000000 ework.transaction.support.AbstractPlatformTransactionManager 3 triggerBeforeCompletion Triggering beforeCompletion synchronization
[5/16/19 9:31:37:558 CEST] 0000002a id=00000000 mework.transaction.support.TransactionSynchronizationManager 3 doUnbindResource Removed value [org.springframework.jdbc.datasource.ConnectionHolder@ec5e4040] for key [com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource@5596007b] from thread [Default Executor-thread-2]

Оба вызова заканчиваются TransactionSynchronizationManager, удаляющим значение, указанное в источнике данных

...