|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
Oracle Dead Connection |
View previous topic :: View next topic |
Author |
Message
|
nelson |
Posted: Thu Jun 02, 2016 12:00 pm Post subject: |
|
|
 Partisan
Joined: 02 Oct 2012 Posts: 313
|
akil wrote: |
Either the database or a firewall between the ESB and the database is killing of idle/inactive connections:
You could either get the idle time out increases or
You could write a timer based flow that issues a query every x minutes to avoid leaving the connection idle
Unlike app servers , the iib does not have a 'dead connection query' method to check a connection before returning it to the flow , so you will get occasional errors of these kinds |
Now, we are not sure if this is because of and idle connection or another database factor... we are going to review the database one more time...
Thanks for your comments. |
|
Back to top |
|
 |
terminator_xyz |
Posted: Sun Jun 05, 2016 7:09 pm Post subject: |
|
|
Novice
Joined: 29 Jul 2014 Posts: 15
|
we too have a same error and DBA always push back saying that there is nothing on Oracle side. But, we get this issue only after maintenance or downtime on Oracle. Below was my initial research:
"
“Connect before flow starts” is used on to make the initial connection before a flow receives a message, and so remove any connection latency from the message processing. Database connections with this property are not released when the message flow becomes idle and are only released in the following circumstances:
• An error occurs, while accessing the database, that requires a new connection to be made.
• The message flow is stopped.
• The broker is stopped.
We received errors when this property is checked because, the flow has established the connection when it started for the first time (here it is, when it got deployed). After the database maintenance, when the first message came through, that is when it realized that connection is lost and threw an error. When the second message is processed, it would have established the connection and processed is successfully."
But later, even after unchecking this property and redeploying the flow, we are still get same errors. |
|
Back to top |
|
 |
nelson |
Posted: Wed Jun 29, 2016 5:06 pm Post subject: |
|
|
 Partisan
Joined: 02 Oct 2012 Posts: 313
|
After some try and error experiments, setting the sqlnet.expire_time to 5 minutes in the in sqlnet.ora in the Oracle DB server solved the issue... we are not sure if this "probe to verify the client/server connection" awakes some tcp idle time interval...
Quote: |
SQLNET.EXPIRE_TIME
Purpose
Use parameter SQLNET.EXPIRE_TIME to specify a the time interval, in minutes, to send a probe to verify that client/server connections are active. Setting a value greater than 0 ensures that connections are not left open indefinitely, due to an abnormal client termination. If the probe finds a terminated connection, or a connection that is no longer in use, it returns an error, causing the server process to exit. This parameter is primarily intended for the database server, which typically handles multiple connections at any one time.
Limitations on using this terminated connection detection feature are:
It is not allowed on bequeathed connections.
Though very small, a probe packet generates additional traffic that may downgrade network performance.
Depending on which operating system is in use, the server may need to perform additional processing to distinguish the connection probing event from other events that occur. This can also result in degraded network performance. |
|
|
Back to top |
|
 |
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|