Suppress java.io.IOException: Broken pipe

The timeout cfsetting requesttimeout="" is just one of many timeouts you can set. This timeout affects the timeout of the CFMLengine Lucee. If this times out, you’ll see a proper error thrown by Lucee and the error details will explicitly tell you that it is because of the cfsetting execution timeout. But there are more possible settings:

One important timeout is the connector timout setting in Tomcat, that you define in the connectors setting in tomcats server.xml. If you are using AJP you need add it to the AJP connector (port 8009) setting, if you are using reverse Proxy, then add it to the http connector (port 8888) setting. See this stackoverflow post. This is probably the timeout setting you need to add.

Still, we don’t know if you are using IIS or Apache as front end. I will now assume you have IIS running. It has also a timeout setting in the IIS: see this post at SO. You are not facing this timeout at the moment, but you may if you tweak the timeouts at other places. If it gets thrown, you may see an error like this

Request timed out
Exception Details: System.Web.HttpException: Request timed out.
[HttpException (0x80004005): Request timed out.]

And there is one more: the AJP connector boncode. Bilal, the creator of Boncode Connector has a great documentation about it. Go to Boncodes documentation and search for BonCode Apache Tomcat AJP 1.3 Connector". Search for the string “Setting Idle Timeouts”.

You may need to adjust them. If so, do it carefully and gradually. I would also backup everything before applying the changes.

15 mintues is pretty long time for a http request, and nobody, no human will wait sitting before a browser until its ready. Probably the browser will also time out at one moment or another. This is something I would do asynchronisly with a cfsavecontent in a cfthread or similar, create a unique deep link, and present the content to the user when its finished. Or create a static temp html or xml file, mail it, ftp it, or whatever.

1 Like