Database Polling Fails when target database re-started
552322Mar 25 2008 — edited May 20 2008Hi
I have a problem with a BPEL process that is polling records from the database. I noticed that no records had been picked up in a while and that no errors were being caught by the process. When i checked the domain log I could see that the error below had occurred and was retrying. I found out that the target SQLServer database had been restarted, but as far as I was aware the connection should refresh once the database restarts.
This is quite a concern for my client who is querying the stability of the SOA suite. they frequently restart their SQL Server database and do not want to have to refresh connections to solve the problem from the application server each time. They are currenlty using 10.1.3.3.0 of the SOA suite software so the connection should be reintiated when the target database is started again.
Does any one have any idea why this error is occuring??
<2008-03-18 18:34:16,987> <INFO> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.exceptions.DBResourceException createEISException> A retriable exception occured. In BPEL you can configure a fault policy (starting with 10.1.3.3) to automatically perform retries. Please configure bpel/domains/<domainName>config/fault-bindings.xml
<2008-03-18 18:34:17,007> <WARN> <default.collaxa.cube.activation> <Database Adapter::Inbound>
ORABPEL-11624
DBActivationSpec Polling Exception.
Query name: [readProjectCodes], Descriptor name: [readProjectCodes.EFolder]. Polling the database for events failed on this iteration. [Caused by: Broken pipe]
If the cause is something like a database being down successful polling will resume once conditions change. Caused by Exception [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.3.0) (Build 070608)): oracle.toplink.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: I/O Error: Broken pipeError Code: 0
Call:SELECT eFolderID, eMapName, eCategory, eStageName FROM dbo.eFolder WHERE ((((eStageName = ?) AND (eMapName = ?)) AND ((eCategory <> ?) OR (eCategory IS NULL))) AND ((eCategory <> ?) OR (eCategory IS NULL))) ORDER BY eFolderID ASC
bind => [Oracle SOA Finance interface, ProjectCode, SOAProcess, SOARead]
Query:ReadAllQuery(bpel___localhost_default_ReadProjectCodesEworks_1_5__1205248248244.readProjectCodes.EFolder).
at oracle.tip.adapter.db.exceptions.DBResourceException.createEISException(DBResourceException.java:461)
at oracle.tip.adapter.db.exceptions.DBResourceException.inboundReadException(DBResourceException.java:376)
at oracle.tip.adapter.db.InboundWork.handleException(InboundWork.java:633)
at oracle.tip.adapter.db.InboundWork.runOnce(InboundWork.java:576)
at oracle.tip.adapter.db.InboundWork.run(InboundWork.java:416)
at oracle.tip.adapter.db.inbound.InboundWorkWrapper.run(InboundWorkWrapper.java:43)
at oracle.tip.adapter.fw.jca.work.WorkerJob.go(WorkerJob.java:51)
at oracle.tip.adapter.fw.common.ThreadPool.run(ThreadPool.java:272)
at java.lang.Thread.run(Thread.java:595)
Caused by: Exception [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.3.0) (Build 070608)): oracle.toplink.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: I/O Error: Broken pipeError Code: 0
Call:SELECT eFolderID, eMapName, eCategory, eStageName FROM dbo.eFolder WHERE ((((eStageName = ?) AND (eMapName = ?)) AND ((eCategory <> ?) OR (eCategory IS NULL))) AND ((eCategory <> ?) OR (eCategory IS NULL))) ORDER BY eFolderID ASC
bind => [Oracle SOA Finance interface, ProjectCode, SOAProcess, SOARead]
Query:ReadAllQuery(bpel___localhost_default_ReadProjectCodesEworks_1_5__1205248248244.readProjectCodes.EFolder)
at oracle.toplink.exceptions.DatabaseException.sqlException(DatabaseException.java:290)
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:581)
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:441)
at oracle.toplink.threetier.ServerSession.executeCall(ServerSession.java:457)
at oracle.toplink.internal.sessions.IsolatedClientSession.executeCall(IsolatedClientSession.java:117)
at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:117)
at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:103)
at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:174)
at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:481)
at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:825)
at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:803)
at oracle.toplink.queryframework.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:473)
at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:811)
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:620)
at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:779)
at oracle.toplink.queryframework.ReadAllQuery.execute(ReadAllQuery.java:451)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:2089)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:993)
at oracle.tip.adapter.db.inbound.DestructivePollingStrategy.poll(DestructivePollingStrategy.java:347)
at oracle.tip.adapter.db.InboundWork.runOnce(InboundWork.java:505)
... 5 more
Caused by: java.sql.SQLException: I/O Error: Broken pipe
at net.sourceforge.jtds.jdbc.TdsCore.executeSQL(TdsCore.java:1052)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:465)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:777)
at net_sourceforge_jtds_jdbc_JtdsPreparedStatement_Proxy.executeQuery()
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:744)
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:516)
... 23 more
Caused by: java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at java.io.DataOutputStream.write(DataOutputStream.java:90)
at net.sourceforge.jtds.jdbc.SharedSocket.sendNetPacket(SharedSocket.java:671)
at net.sourceforge.jtds.jdbc.RequestStream.putPacket(RequestStream.java:560)
at net.sourceforge.jtds.jdbc.RequestStream.flush(RequestStream.java:508)
at net.sourceforge.jtds.jdbc.TdsCore.executeSQL(TdsCore.java:1039)
... 28 more
<2008-03-18 18:34:47,265> <INFO> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.exceptions.DBResourceException createEISException> A retriable exception occured. In BPEL you can configure a fault policy (starting with 10.1.3.3) to automatically perform retries. Please configure bpel/domains/<domainName>config/fault-bindings.xml
<2008-03-18 18:34:47,270> <WARN> <default.collaxa.cube.activation> <Database Adapter::Inbound>
ORABPEL-11624
DBActivationSpec Polling Exception.
Query name: [readProjectCodes], Descriptor name: [readProjectCodes.EFolder]. Polling the database for events failed on this iteration. [Caused by: Invalid state, the Connection object is closed.]
If the cause is something like a database being down successful polling will resume once conditions change. Caused by Exception [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.3.0) (Build 070608)): oracle.toplink.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Invalid state, the Connection object is closed.Error Code: 0
Call:SELECT eFolderID, eMapName, eCategory, eStageName FROM dbo.eFolder WHERE ((((eStageName = ?) AND (eMapName = ?)) AND ((eCategory <> ?) OR (eCategory IS NULL))) AND ((eCategory <> ?) OR (eCategory IS NULL))) ORDER BY eFolderID ASC
bind => [Oracle SOA Finance interface, ProjectCode, SOAProcess, SOARead]
Query:ReadAllQuery(bpel___localhost_default_ReadProjectCodesEworks_1_5__1205248248244.readProjectCodes.EFolder).
at oracle.tip.adapter.db.exceptions.DBResourceException.createEISException(DBResourceException.java:461)
at oracle.tip.adapter.db.exceptions.DBResourceException.inboundReadException(DBResourceException.java:376)
at oracle.tip.adapter.db.InboundWork.handleException(InboundWork.java:633)
at oracle.tip.adapter.db.InboundWork.runOnce(InboundWork.java:576)
at oracle.tip.adapter.db.InboundWork.run(InboundWork.java:416)
at oracle.tip.adapter.db.inbound.InboundWorkWrapper.run(InboundWorkWrapper.java:43)
at oracle.tip.adapter.fw.jca.work.WorkerJob.go(WorkerJob.java:51)
at oracle.tip.adapter.fw.common.ThreadPool.run(ThreadPool.java:272)
at java.lang.Thread.run(Thread.java:595)
Caused by: Exception [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.3.0) (Build 070608)): oracle.toplink.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Invalid state, the Connection object is closed.Error Code: 0
Call:SELECT eFolderID, eMapName, eCategory, eStageName FROM dbo.eFolder WHERE ((((eStageName = ?) AND (eMapName = ?)) AND ((eCategory <> ?) OR (eCategory IS NULL))) AND ((eCategory <> ?) OR (eCategory IS NULL))) ORDER BY eFolderID ASC
bind => [Oracle SOA Finance interface, ProjectCode, SOAProcess, SOARead]
Query:ReadAllQuery(bpel___localhost_default_ReadProjectCodesEworks_1_5__1205248248244.readProjectCodes.EFolder)
at oracle.toplink.exceptions.DatabaseException.sqlException(DatabaseException.java:290)
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:581)
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:441)
at oracle.toplink.threetier.ServerSession.executeCall(ServerSession.java:457)
at oracle.toplink.internal.sessions.IsolatedClientSession.executeCall(IsolatedClientSession.java:117)
at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:117)
at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:103)
at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:174)
at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:481)
at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:825)
at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:803)
at oracle.toplink.queryframework.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:473)
at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:811)
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:620)
at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:779)
at oracle.toplink.queryframework.ReadAllQuery.execute(ReadAllQuery.java:451)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:2089)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:993)
at oracle.tip.adapter.db.inbound.DestructivePollingStrategy.poll(DestructivePollingStrategy.java:347)
at oracle.tip.adapter.db.InboundWork.runOnce(InboundWork.java:505)
... 5 more
Caused by: java.sql.SQLException: Invalid state, the Connection object is closed.
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.checkOpen(ConnectionJDBC2.java:1634)
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.prepareStatement(ConnectionJDBC2.java:2328)
at net_sourceforge_jtds_jdbc_ConnectionJDBC3_Proxy.prepareStatement()
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1216)
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1170)
at oracle.toplink.internal.databaseaccess.DatabaseCall.prepareStatement(DatabaseCall.java:591)
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:491)
... 23 more
<2008-03-18 18:35:17,633> <INFO> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.exceptions.DBResourceException createEISException> A retriable exception occured. In BPEL you can configure a fault policy (starting with 10.1.3.3) to automatically perform retries. Please configure bpel/domains/<domainName>config/fault-bindings.xml