Problem connecting to DataBase : java.sql.SQLRecoverableException: ORA-00028: your session has been killed
Issue
- We are receiving the following Exception on different JBoss instances from time to time and we don't understand what is causing this behavior.
2015-03-12 05:38:29,419ERROR[TestServiceImpl](Timer-2)Exception dans test(): java.sql.SQLRecoverableException: ORA-00028: your session has been killed
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:195)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:1036)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1336)
at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1845)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1810)
at oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:294)
at org.jboss.jca.adapters.jdbc.WrappedStatement.executeUpdate(WrappedStatement.java:375)
at TestServiceImpl.test(TestServiceImpl.java:262) [test.jar:]
at java.util.TimerThread.mainLoop(Timer.java:555) [rt.jar:1.7.0_45]
at java.util.TimerThread.run(Timer.java:505) [rt.jar:1.7.0_45]
- Here is how the datasource is defined:
<datasource jta="false" jndi-name="java:/jdbc/testDS" pool-name="xxxx" enabled="true" use-ccm="false">
<connection-url>xxxxxxxxx</connection-url>
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<driver>OracleJDBCDriver</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>xxx</user-name>
<password>xxx</password>
</security>
<validation>
<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
</validation>
<timeout>
<blocking-timeout-millis>30000</blocking-timeout-millis>
<idle-timeout-minutes>30</idle-timeout-minutes>
</timeout>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
- Do we need to remove
from dualfrom<check-valid-connection-sql>Select 1 from dual</check-valid-connection-sql>? - What is the impact of removing
<idle-timeout-minutes>30</idle-timeout-minutes>? - Is it better to activate
<background-validation> and keep<validate-on-match>to false?
Environment
- Red Hat JBoss Enterprise Application Platform (EAP)
- 6.x
- 7.x
- 8.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.