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 of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
