Feedback
Did this article resolve your question/issue?

   

Article

OpenEdge ABL Sonic adapter hangs on send2 jms/impl/message-header.p at line 1616

« Go Back

Information

 
TitleOpenEdge ABL Sonic adapter hangs on send2 jms/impl/message-header.p at line 1616
URL NameOpenEdge-ABL-Sonic-adapter-hangs-on-send2-jms-impl-message-header-p-at-line-1616
Article Number000119817
EnvironmentProduct: OpenEdge
Version: 11.5.1
OS: Windows
Other: OpenEdge ABL Sonic adapter
Question/Problem Description
OpenEdge ABL Sonic adapter hangs on send2 jms/impl/message-header.p at line 1616

OpenEdge clientConnect ABL process occasionally seems to hang while sending messages to a SonicMQ broker.

Once the issue occurs, users no longer have any control over the session and have to kill the process.

When the hang happens the generated protrace lists the ABL stack as:
--> send2 jms/impl/message-header.p at line 1616 (D:\ABS-AG\PROGRESS\OE\jms\impl\message-header.r)
 doSend jms/impl/session.p at line 2161 (D:\ABS-AG\PROGRESS\OE\jms\impl\session.r)
 sendToQueue jms/impl/session.p at line 1950 (D:\ABS-AG\PROGRESS\OE\jms\impl\session.r)
 ...

 
Steps to Reproduce
Clarifying Information
Error Message
Defect/Enhancement NumberDefect ADAS-4290
Cause
In the case of client connect to SonicMQ, the client ABL process occasionally hangs while sending a message to the sonicMQ broker. The real cause is that the SonicMQ broker is no longer available for connection for some reason.  The client can then use the next SonicMQ broker server/port in its client connection URL list to connect to. Although if that SonicMQ broker is also unavailable then the client process (the java adapter process) will hang waiting for the connection to succeed or TCP/IP to return a failure. 

Depending on the TCP/IP timeout value, if the target SonicMQ broker is down, it could take a while for TCP/IP to respond and this means that the adapter appears to hang.  Unfortunately the ABL adapter process has no way to set the Socket Connect Timeout property, so it defaults to 0 meaning it will try to reconnect to the SonicMQ broker indefinitely.

 
Resolution
The socketConnectTimeout property has been set to 30 seconds to disconnect the client and prevent the hang.

The following message is written to either the clientConnect logs or the serverConnect MQ logs with logging level 4 when the adapter is started:
 "Setting socket connect timeout for sonic to 30 seconds."

This property is currently not configurable.
This change is only for SONIC and not for other JMS providers.
Workaround
Upgrade to 11.7.6.
Notes
Last Modified Date8/31/2020 12:38 PM
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.