Why OPEN JPA Connection is getting Timeout in PROD System ?

Solution Unverified - Updated -

Issue

  • User is facing one issue in our PROD environment.
  • User is using Open JPA for 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 camel blueprint for 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.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.