Hey Ashutosh:
> I believe that the setting ENABLE=BROKEN did not
> fix your problem and instead the time out
> scenario simply didn’t resurface!
I don’t have firsthand experience with this setting - it was implemented by another team. However the people who used this setting are quite categoric - their servers beset with broken DB connections - this problem went away the moment they applied this setting. I had previously discussed this problem (it occured for many weeks) at length with them and was quite interested when this solution (proposed by our DBAs) fixed it.
Note, this is a client-side setting for the Oracle OCI driver used by a different (non-Java) application - it may not apply in this case. However, the basic architecture seems similar - an application opens multiple connections to the database, which are rudely closed by the firewall after a period of inactivity is detected.
The BEA website you pointed to talks about downtime recovery for Oracle cluster - I’m not sure how it disproves the use of this setting to prevent termination of DB connections.
> This leads me to conclude that the only other alternative
> left with us to save the JDBC connections from a timeout
> is to keep sending a keep-alive signal from the caller program.
One problem with this alternative is when multiple database connections are used (not just one connection), how can the caller program know which DB connection it’s “keep-alive” SQL queries (eg: “select 1 from dual”) are going over? Instead, the ‘enable=broken’ setting apparently does what it does at a lower level - it enables TCP/IP level keep-alives (a socket setting for the TCP/IP connection). The TCP/IP keep-alives stops the firewall killing off the connection.
Anyway, this is free (and very much secondhand) advice. I just hope it helps someone.
#webMethods#Integration-Server-and-ESB#Adapters-and-E-Standards