Products | Versions |
---|---|
TIBCO ActiveMatrix BusinessWorks | - |
Not Applicable | - |
Description:
After sending one request with "Send HTTP Request" activity, there are four duplicate jobs created on the HTTP server side. This never happens when using "Tomcat" as the server type.
Symptoms:
See attached screenshots and attached project. (Filenames: connectionTimeOut.jpg, symptom_in_designer.jpg, symptom_in_tcptrace.jpg and Test_HTTP_support.zip).
Cause:
This is caused by the "connectionTimeOut" in the "Advanced" tab in the "HTTP Connection" activity. This property allows an HTTP server to close a connection after a specific time. When the HTTP server close the connection, the BW client will do a retry. That leads to duplicate jobs on server side. As mentioned in KB-37722, BW uses Apache HttpClient as the HTTP Client. HttpClient will retry the method three times provided that the request has never been fully transmitted to the target server. Exercise caution when enabling auto-retrial. Use it only if the method is known to be safe to retry multiple times without causing data corruption or data inconsistency. A detailed explanation can be found at http://hc.apache.org/httpclient-3.x/tutorial.html. The same can be controlled from the client side by using properties. Check KB-37722 for more information.
You can choose one of the following workarounds.
2). Use a "Tomcat" server type. "Tomcat" will ignore the "connectionTimeout" setting. This means the server will not close the connection and the client will not retry.