We are getting this error from the JDBC Adpater. The connection properties are given below
Transaction Type LOCAL_TRANSACTION
DataSource Class oracle.jdbc.pool.OracleDataSource
serverName test
databaseName test
portNumber 1521
networkProtocol TCP
Other Properties driverType=thin
Enable Connection Pooling true
Minimum Pool Size 1
Maximum Pool Size 10
Pool Increment Size 1
Block Timeout (msec) 15000
Expire Timeout (msec) 600000
Has anybody seen this error , if yes what is the solution or workaround
Broker PIPE ( SIGPIPE) is sent to the Process it it tries to write the Data on the Socket which is closed or dead. Check if the Server ur talking to is Running and the Client is connected to it.
The database is up and running and i can connect to it. The full stack trace is
com.wm.adk.error.AdapterConnectionException: [ADA.1.208] Cannot disconnect from the database. "
(17002) Io exception: Broken pipe"
Io exception: Broken pipe
at com.wm.adk.WmAdapter.createAdapterConnectionException(WmAdapter.java:263)
at com.wm.adapter.wmjdbc.connection.ConnectionInfo.handleSQLException(ConnectionInfo.java:780)
at com.wm.adapter.wmjdbc.connection.JDBCConnection.destroyConnection(JDBCConnection.java:280)
at com.wm.adk.connection.WmManagedConnection.destroy(WmManagedConnection.java:243)
at com.wm.app.b2b.server.jca.WmConnectionPool.releaseConnection(WmConnectionPool.java:555)
at com.wm.app.b2b.server.jca.WmXAConnectionManager.releaseFromPool(WmXAConnectionManager.java:292)
at com.wm.app.b2b.server.jca.WmXAConnectionManager$1.afterCompletion(WmXAConnectionManager.java:322)
at com.wm.app.b2b.server.jca.transactions.Tran.afterCompletion(Tran.java:895)
at com.wm.app.b2b.server.jca.transactions.Tran.commit(Tran.java:244)
at com.wm.app.b2b.server.jca.transactions.Tran.delistResource(Tran.java:405)
at com.wm.app.b2b.server.jca.transactions.TransactionImpl.delistResource(TransactionImpl.java:46)
at com.wm.app.b2b.server.jca.WmXAConnectionEventListener.connectionErrorOccurred(WmXAConnectionEventListener.java:97)
at com.wm.adk.connection.WmManagedConnection.fireConnectionEvent(WmManagedConnection.java:367)
at com.wm.adk.notification.WmNotification.dispatchConnectionError(WmNotification.java:840)
at com.wm.adk.notification.WmPollingNotification.execute(WmPollingNotification.java:147)
at com.wm.pkg.art.scheduler.NotificationData.run(NotificationData.java:291)
at com.wm.util.CronJob.run(CronJob.java:477)
at com.wm.util.pool.PooledThread.run(PooledThread.java:105)
at java.lang.Thread.run(Thread.java:534)
Sounds like stalled connection to Oracle - the connection pool doesn’t realize it and tries to work with it. You may try to play with reducing Expire Timeout for JDBC Adapter Connection.
i changed the expire timeout , it now gives connection time out when the connection is expired. Also we are loosing the database call which it was trying to make. WmSupport are not giving any help in this issue
It sounds like a wild guess but just in case…
Do you use explicit transaction control with wmART? The JDBC Adapter may be stuck with the same connection for consecutive db calls since they are enlisted in the same transaction context. This will happen if you have your transaction last for too long which should never happen any way.
We are using out of the box JDBC Adapter and all the querys which we are using are all very light wt. I tried to put a workaround of running a scheduler doing a simple select query every minute , so that the connection does not get idle , still i am getting this error