falcon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "pavan kumar kolamuri (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FALCON-1716) API fails with CommunicationsException when mysql interaction time is longer than 53,434,939 milliseconds
Date Tue, 19 Jan 2016 13:41:39 GMT

    [ https://issues.apache.org/jira/browse/FALCON-1716?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15106715#comment-15106715
] 

pavan kumar kolamuri commented on FALCON-1716:
----------------------------------------------

In Connection Pool of JDBC,  there are pool of connections min and maximum . Whenever we made
a call to DB, it will take object from that connection pool and do db operation. There are
few properties which we can configure and avoid socketTimeout exception one of those is .

testOnBorrow:  The indication of whether objects will be validated before being borrowed from
the pool. If the object fails to validate, it will be dropped from the pool, and we will attempt
to borrow another. 

It was set to false because of that property which i changed in statestore.properties. If
it is set to true it will validate connection and try to get the new connection when connection
is idle for long time. 

Test query is very inexpensive and oozie also doing same. 

> API fails with CommunicationsException when mysql interaction time is longer than 53,434,939
milliseconds
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: FALCON-1716
>                 URL: https://issues.apache.org/jira/browse/FALCON-1716
>             Project: Falcon
>          Issue Type: Bug
>          Components: scheduler
>    Affects Versions: 0.9
>            Reporter: Pragya Mittal
>            Assignee: pavan kumar kolamuri
>         Attachments: FALCON-1716.patch, jdbc-timedout.log
>
>
> If mysql is not interacted for less than 53,434,939 milliseconds, the query fails with
CommunicationsException for first few attempts after which connection is set. We should configure
communication window for the same. Error is :
> {noformat}
> 2015-12-30 06:54:47,294 ERROR - [357665612@qtp-1816147548-10 - 8ebf22cf-4f82-4280-a248-fa3ca6048042:dataqa:GET//instance/params/process/ProcessInstanceStatusTest-agregator-coord16-50a6b241]
~ Failed to display params of an instance (AbstractInstanceManager:553)
> <openjpa-2.4.0-r422266:1674604 fatal general error> org.apache.openjpa.persistence.PersistenceException:
The last packet successfully received from the server was 53,434,939 milliseconds ago.  The
last packet sent successfully to the server was 53,434,939 milliseconds ago. is longer than
the server configured value of 'wait_timeout'. You should consider either expiring and/or
testing connection validity before use in your application, increasing the server configured
values for client timeouts, or using the Connector/J connection property 'autoReconnect=true'
to avoid this problem.
>         at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:5001)
>         at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4961)
>         at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:133)
>         at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:107)
>         at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:59)
>         at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.connect(JDBCStoreManager.java:967)
>         at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.getConnection(JDBCStoreManager.java:241)
>         at org.apache.openjpa.jdbc.kernel.PreparedSQLStoreQuery$PreparedSQLExecutor.executeQuery(PreparedSQLStoreQuery.java:104)
>         at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:1004)
>         at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:862)
>         at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:793)
>         at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:541)
>         at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:274)
>         at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:290)
>         at org.apache.falcon.state.store.jdbc.JDBCStateStore.getEntityByKey(JDBCStateStore.java:95)
>         at org.apache.falcon.state.store.jdbc.JDBCStateStore.entityExists(JDBCStateStore.java:105)
>         at org.apache.falcon.workflow.engine.FalconWorkflowEngine.isActive(FalconWorkflowEngine.java:98)
>         at org.apache.falcon.workflow.WorkflowEngineFactory.getWorkflowEngine(WorkflowEngineFactory.java:54)
>         at org.apache.falcon.resource.AbstractEntityManager.getWorkflowEngine(AbstractEntityManager.java:1132)
>         at org.apache.falcon.resource.AbstractInstanceManager.getInstanceParams(AbstractInstanceManager.java:550)
>         at org.apache.falcon.resource.InstanceManager.getInstanceParams(InstanceManager.java:178)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:497)
>         at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
>         at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
>         at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message