Why OPEN JPA Connection is getting Timeout in PROD System ?
Issue
- User is facing one issue in our PROD environment.
- User is using
Open JPAfor data persistence. Facing below exception intermittently.
<openjpa-2.3.0-r422266:1540826 fatal general error> org.apache.openjpa.persistence.PersistenceException: IO Error: Connection timed out {prepstmnt [code=17002, state=08006] MY QUERY HERE
FailedObject:
at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4974)
at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4934)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:134)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:116)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:68)
at org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.handleCheckedException(SelectResultObjectProvider.java:155)
at org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:40)
at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1251)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:1007)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:863)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:794)
at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:542)
at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:275)
at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:291)
at sun.reflect.GeneratedMethodAccessor292.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_75]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_75]
at org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:54)
at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:119)
at Proxy4182d0d7_ce00_4ba5_b0ec_e6789dc7ae62.findResubmitApplications(Unknown Source)
at
test.validate(DBTestApp.java:32)[92:test-compensation:1.0.8.RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_75]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_75]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_75]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_75]
at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:407)[145:org.apache.camel.camel-core:2.12.0.redhat-611412]
at org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:278)[145:org.apache.camel.camel-core:2.12.0.redhat-611412]
at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:251)[145:org.apache.camel.camel-core:2.12.0.redhat-611412]
at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:166)[145:org.apache.camel.camel-core:2.12.0.redhat-611412]
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)[145:org.apache.camel.camel-core:2.12.0.redhat-611412]
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)[145:org.apache.camel.camel-core:2.12.0.redhat-611412]
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[145:org.apache.camel.camel-core:2.12.0.redhat-611412]
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)[145:org.apache.camel.camel-core:2.12.0.redhat-611412]
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[145:org.apache.camel.camel-core:2.12.0.redhat-611412]
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[145:org.apache.camel.camel-core:2.12.0.redhat-611412]
at org.apache.camel.processor.loadbalancer.QueueLoadBalancer.process(QueueLoadBalancer.java:43)[145:org.apache.camel.camel-core:2.12.0.redhat-611412]
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:105)[145:org.apache.camel.camel-core:2.12.0.redhat-611412]
at org.apache.camel.processor.loadbalancer.LoadBalancerSupport.process(LoadBalancerSupport.java:87)[145:org.apache.camel.camel-core:2.12.0.redhat-611412]
at org.apache.camel.component.quartz2.CamelJob.execute(CamelJob.java:52)[158:org.apache.camel.camel-quartz2:2.12.0.redhat-611412]
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)[280:org.quartz-scheduler.quartz:2.2.1]
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)[280:org.quartz-scheduler.quartz:2.2.1]
Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: IO Error: Connection timed out {prepstmnt 877424065 MY QUERY HERE [code=17002, state=08006]
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:219)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:203)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:59)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeQuery(LoggingConnectionDecorator.java:1118)
at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:268)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeQuery(JDBCStoreManager.java:1801)
at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:258)
at org.apache.openjpa.jdbc.sql.SelectImpl.executeQuery(SelectImpl.java:501)
at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:426)
at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:384)
at org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.open(SelectResultObjectProvider.java:94)
at org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:34)
... 37 more
2015-07-14 16:15:25,669 | ERROR | tion-18_Worker-5 | DefaultErrorHandler | rg.apache.camel.util.CamelLogger 215 | 145 - org.apache.camel.camel-core - 2.12.0.redhat-611412 | Failed delivery for (MessageId: ID-prolapp07-34194-1436867377166-39-298 on ExchangeId: ID-prolapp07-34194-1436867377166-39-299). Exhausted after delivery attempt: 1 caught: <openjpa-2.3.0-r422266:1540826 fatal general error> org.apache.openjpa.persistence.PersistenceException: IO Error: Connection timed out {prepstmnt 264271107 MY QUERY HERE [code=17002, state=08006]
- Below is user's
camelblueprintfor the same.
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/blueprint"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
xmlns:enc="http://karaf.apache.org/xmlns/jasypt/v1.0.0"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">
<cm:property-placeholder persistent-id="testdatasource" />
<camelContext trace="false" xmlns="http://camel.apache.org/schema/blueprint"/>
<bean id="dbcp" destroy-method="close"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${fuse.oracle.driverclass}" />
<property name="url" value="${fuse.oracle.url}" />
<property name="username" value="${fuse.oracle.username}" />
<property name="password" value="${fuse.oracle.password}" />
<property name="poolPreparedStatements" value="${fuse.oracel.poolpreparedstatements}" />
<property name="initialSize" value="${fuse.oracle.initialsize}" />
<property name="maxActive" value="${fuse.oracle.maxactive}" />
<property name="maxIdle" value="${fuse.oracle.maxidle}" />
<property name="minIdle" value="${fuse.oracle.minidle}" />
<property name="maxWait" value="${fuse.oracle.maxwait}" />
</bean>
<service interface="javax.sql.DataSource" ref="dbcp">
<service-properties>
<entry key="osgi.jndi.service.name" value="jdbc/oracled" />
<entry key="datasource.name" value="Oracle" />
</service-properties>
</service>
</blueprint>
- Following are configurations within Testdatasource.cfg.
fuse.oracle.driverclass = oracle.jdbc.driver.OracleDriver
fuse.oracle.url = host
fuse.oracle.username=username
fuse.oracle.password=password
fuse.oracel.poolpreparedstatements=true
fuse.oracle.initialsize=25
fuse.oracle.maxactive=75
fuse.oracle.maxidle=50
fuse.oracle.minidle=2
fuse.oracle.maxwait=60000
Environment
- Red Hat JBoss Fuse
- 6.1.0
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.