Error 9407 connection timeout

Posted by bart.syryn on 22-Sep-2015 03:04

Hi, We have a webclient application that connects through AIA to an AppServer on a cloud-server. There's a report that users can start, but when the user asks a big report, we get error 9407 on the client-side. I checked the appserver and in the logging I see that the appserver takes about 3 seconds to get all the data. The data is placed in a temp-table with 12 fields and about 15000 records. First I thought that the error could be caused by a time-out on the client-side, so I used -clientConnectTimeout parameter. At the end I set that parameter to 250000, but no luck. So now I'm thinking that it could be something with the number of records in the temp-table. Could that be the reason ? Is there a parameter to set some value ? Or could something else be the reason of the error. This is on OE11.3 - Tomcat 8 - Windows 2012R2 server. Kind regards Bart S.

Posted by Stefan Drissen on 22-Sep-2015 14:54

How are you connecting to Tomcat? Are you still using Application Request Routing on IIS or connecting directly to port 8080? I recall there being a maximum message size setting on ARR.

All Replies

Posted by Garry Hall on 22-Sep-2015 07:09

(9407) means the connection was lost. I think -clientConnectTimeout refers only to the initial connection, not connections that are are already established, but I might be wrong on that. There should be no restriction on the number of rows returned. Instead, I suspect this is more related to the time taken to respond. I don't remember the timeout on the client. There might also be timeouts in Tomcat, which are possibly visible in a log file.

Posted by hermes on 22-Sep-2015 07:33

I am sorry if this is off topic, I am new to progress is there a listing of the different error codes and their meaning?

Posted by James Palmer on 22-Sep-2015 07:37

I find the simplest way is to pop the error code into the search bar on this site and you'll get the error meaning, any Knowledgebase articles and forum posts available straight away.

Posted by Irfan on 22-Sep-2015 08:24

Did you try to look at the connection timeout parameter in the tomcat. If the request might have died there there should be some trace of logs in the tomcat server

Posted by bart.syryn on 22-Sep-2015 08:42

Well it seems logic that TomCat gives me a timeout. Logging on the appserver, I see that it takes 3seconds to get the data. That looks fine for me because the user gets data from a table that hasn't got a index for it. But because it's a report that isn't often used, it seems allright for me to not create an index for that one report.

I looked in server.xml in the config directory of TomCat. I see the following :

<Connector port="8080" redirectPort="8443" connectionTimeout="20000" protocol="HTTP/1.1"/>

So am I correct that the connectionTimeout is 20000, so 20 seconds ? Or is that the wrong place for looking at that parameter. I haven't got a lot of experience with Tomcat, but I don't see an error in the log files.

Is this the correct parameter (in server.xml) ?

Kind regards

Bart S.

Posted by Michael Jacobs on 22-Sep-2015 08:53

The connectionTimeout attribute of a Connector only specifies the time between when the TCP connection is made by the client and when the HTTP message arrives.   That would not affect a longer running operation in the AppServer.

Posted by Irfan on 22-Sep-2015 10:25

If the request does not timeout in the tomcat server and it does not show any error trace in any of the tomcat logs, then we have to look at the appserver logs. Were there any errors in your appserver logs

Posted by bart.syryn on 22-Sep-2015 10:44

Hi Irfan,

Thanks for helping me out with this.

There's no error in the AppServer Log, but there are errors in the AIA-log file.

The errors are:

[SC-001307] Error processing request:  ClientAbortException:  java.net.SocketException: Connection reset by peer: socket write error

[SC-001307] disconnected.

Unexpected error

ClientAbortException:  java.net.SocketException: Software caused connection abort: socket write error

After that a lot of Apache and java errors.

The thing is, when I start the same report, but need to retrieve less data, the appserver call works just fine.

Kind regards

Bart S.

Posted by Michael Jacobs on 22-Sep-2015 11:45

Bart,

The ClientAbortException is thrown by the internals of the Tomcat HTTP1.1 engine when it encounters an Java I/O exception writing the HTTP response to the client.   That appears to be the case based on the SocketException you showed.  So the TCP connection between your WebClient and the Tomcat Connector must be getting closed.

Not sure if this is the problem, but the Tomcat connector has an attribute "keepAliveTimeout" which is to detect idle TCP client connections and disconnect the TCP connection.   You can try increasing this value (or set -1 to disable it completely) and see if it changes the behavior or not.

Mike J.

Posted by bart.syryn on 22-Sep-2015 12:31

Hi Mike,

Thanks for the tip, but it didn't solve the problem.

I tried it and increased the 'keepAliveTimeout' in server.xml to 600000 (so 10 minutes), that didn't help.

Then I tried it with setting it to '-1', same thing.

So, normally, retrieving a temp-table with 15000 records and all normal fields (12 fields), couldn't be a problem concerning size of the temp-table ?

Kind regards

Bart S.

Posted by Garry Hall on 22-Sep-2015 13:08

There should not be a problem with the size of the temp-table returned. But if you can reproduce a problem like this, please log it with Tech Support. You might want to consider contacting Tech Support anyway in order to resolve this.

Posted by Stefan Drissen on 22-Sep-2015 14:54

How are you connecting to Tomcat? Are you still using Application Request Routing on IIS or connecting directly to port 8080? I recall there being a maximum message size setting on ARR.

Posted by bart.syryn on 23-Sep-2015 01:36

Hi Stefan,

Indeed I (still?) use ARR on IIS and looked at the parameters and the response buffer settings are set on 4000Kb. I couldn't restart IIS because people are using the application at this moment. So I tested running the application on port 8080 (directly to TomCat) and no problems. So it seems logical that I need to increase that setting in IIS. I'll try it this evening and hopefully it's solved.

Many thanks for pointing me in the right direction and the others for replying. It was my fault that I didn't mention ARR.

Kind regards

Bart S.

This thread is closed