Feedback
Did this article resolve your question/issue?

   

Article

Error reading socket, (778) and incomplete write to server. (735) with webClient & Appserver

« Go Back

Information

 
TitleError reading socket, (778) and incomplete write to server. (735) with webClient & Appserver
URL Name000043742
Article Number000192858
EnvironmentProduct: Progress
Version: 9.x

Product: OpenEdge
Version: 10.x, 11.x

OS: All supported platforms

Other: N.A.
Question/Problem Description
Error reading socket, (778) and incomplete write to server. (735) with webClient & Appserver

Error reading socket, ret=10054, errno=0. (778)
Incomplete write when writing to the server. (735)

Configuration is multi tiered, with AppServer outside a firewall from the database.

WebClient and AppServer agent are idle for over an hour.

Ubroker is configured using -autoTrimTimeout and  -minSrvrInstance parameters. 

Ubroker -minSrvrInstance parameter is set to 1.

Code for the Broker Agent never checks for a connection to the database.




Steps to Reproduce
Clarifying Information
This same configuration in a single tier without a firewall the (778) and (735) messages are not seen.
Error MessageError reading socket, ret=10054, errno=0. (778)
Incomplete write when writing to the server. (735)
Defect Number
Enhancement Number
Cause
There are two items contributing to the problem, changing either of them would resolve the problem.

1.  Ubroker -minSrvrInstance is set to one, so there is always an agent available, however, because of the firewall, when the agent is idle long engough to match the firewall idle disconnect setting, the agent is
    disconnected from the database, but remains running.  If the Ubroker -minSrvrInstance was set to 0, when the WebClient issued a new request, a new agent would be started with a fresh connection to the database
    and the error could be avoided..

2.  The Agent code is assuming it is always connected to the database and never checks for a connection to the database before performing an action against the database on behalf of the user.  Code should be added
     for conditional connection.
  So when a request is received the code would first check if the connection to the database is still there.  If no longer connected for any reason, a CONNECT to the database would be made
     to facilitate a query. Review article 000012038 "How to check if webspeed agents are connected to database using web-disp.p?"  via the URL in the NOTES section below.
Resolution
Reduce the Ubroker -minSrvrInstance to 0. 
Workaround
Notes
Last Modified Date11/20/2020 7:33 AM
Attachment 
Files
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.