Cannot disconnect from the database 17002 Io exception Broken pipe Io exception Broken pipe

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

Thanks in advance

Sandeep

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

Hi All,

  I have also came across such errors ( Broken pipe ).Just disable and enable the respective JDBC adapter connection 

Hope this helps !

Regards,

ONS

But the problem is you can’t do disable and enable in production every time you get this error

Try to set the min connections to 0. The downside is you may incur a perf. overhead.