Products | Versions |
---|---|
TIBCO ActiveMatrix BusinessWorks | - |
Not Applicable | - |
Resolution:
BusinessWorks uses Statement.setQueryTimeout() to set the time out for JDBC activity. When the time limit is reached, BW sends a cancel request with Statement.cancel() to the database.
Statement.cancel() is issued by the driver when a database does not respond for the timeout period. In some cases, a database may not respond to this cancel request because the database could be busy. In such cases the driver will not return control to the application (BW in this case). When this happens for all the engine threads (8 by default), the engine hangs.To cover this scenario, data direct drivers have the property enablecanceltimeout. When enabled, if a database does not respond to Statement.cancel request, the driver will wait for the timeout period (Example: if the timeout is 10 seconds, the driver will in total wait for 20 seconds - 10 seconds for initial timeout and another 10 seconds for the response to cancel request) and then throw an exception back to BW which will release the thread.