Salesforce

Error 12667 running SonicMQ ClientConnect after starting the PASOE instance with tcman

« Go Back

Information

 
TitleError 12667 running SonicMQ ClientConnect after starting the PASOE instance with tcman
URL NameError-12667-running-SonicMQ-ClientConnect-after-starting-the-PASOE-instance-with-tcman
Article Number000179413
EnvironmentProduct: OpenEdge
Version: 11.5, 11.6, 11.7, 12.x
OS: All Supported Platforms
Question/Problem Description
Error 12667 running SonicMQ ClientConnect after starting the PASOE instance with tcman

An error 12667 message appears when connecting to Sonic with Clientconnect if the Pacific AppServer is started with the  tcman.sh command. If started with OpenEdge Management on windows the message is sent to Sonic without any errors.  When the error 12667 appears the message does not reach its Sonic destination.  The code to publish the message is:
/* Publishes a text message. */
DEFINE VARIABLE hMessage AS HANDLE NO-UNDO.
DEFINE VARIABLE hPubSubSession AS HANDLE NO-UNDO.
 
/* Creates a session object. */
RUN jms/pubsubsession.p PERSISTENT SET hPubSubSession ("-SMQConnect"). /*("-H localhost -S 5162 ").*/
RUN setBrokerURL IN hPubSubSession ("localhost:2608").
RUN setUser      IN hPubSubSession ("Administrator").
RUN setPassword  IN hPubSubSession ("Administrator").
RUN beginSession IN hPubSubSession.
 
/* Create a text message */
RUN createTextMessage IN hPubSubSession (OUTPUT hMessage).
RUN setText IN hMessage ("Golf shoes on sale today").
 
/* Publish the message on the "GolfTopic" topic */
RUN publish IN hPubSubSession ("GolfTopic", hMessage, ?, ?, ?).
RUN deleteMessage IN hMessage.
RUN deleteSession IN hPubSubSession.

It doesn’t matter if the tcman.sh command is run as root or any other user.  When the failure happens the are no errors in the PASOE instance logs, but with additional ClientConnect logging there is an exception sending the message:
 
[15/06/04@12:31:29.539+0200] P-027869 T-Main   1 --- --- cc.broker-25573.log opened.
[15/06/04@12:31:29.539+0200] P-027869 T-Main   1 --- --- Logging level set to = 4
[15/06/04@12:31:34.163+0200] P-027869 T-Broker debugger 1 UB ----------- Unhandled exception while dispatching messages
[15/06/04@12:31:34.163+0200] P-027869 T-Broker debugger 1 UB ----------- java.lang.IllegalArgumentException: port out of range:-1
[15/06/04@12:31:34.163+0200] P-027869 T-Broker debugger 1 UB -----------         at java.net.InetSocketAddress.checkPort(InetSocketAddress.java:143)
[15/06/04@12:31:34.163+0200] P-027869 T-Broker debugger 1 UB -----------         at java.net.InetSocketAddress.<init>(InetSocketAddress.java:185)
[15/06/04@12:31:34.163+0200] P-027869 T-Broker debugger 1 UB -----------         at java.net.InetSocketAddress.<init>(InetSocketAddress.java:166)
[15/06/04@12:31:34.163+0200] P-027869 T-Broker debugger 1 UB -----------         at com.progress.ubroker.debugger.DebuggerWorker.startServer(DebuggerWorker.java:468)
[15/06/04@12:31:34.163+0200] P-027869 T-Broker debugger 1 UB -----------         at com.progress.ubroker.debugger.DebugServer.doStartServer(DebugServer.java:272)
[15/06/04@12:31:34.163+0200] P-027869 T-Broker debugger 1 UB -----------         at com.progress.ubroker.debugger.StartServer.run(StartServer.java:27)
[15/06/04@12:31:34.163+0200] P-027869 T-Broker debugger 1 UB -----------         at com.progress.ubroker.debugger.DebugSession.dispatchMessages(DebugSession.java:69)
[15/06/04@12:31:34.163+0200] P-027869 T-Broker debugger 1 UB -----------         at com.progress.ubroker.debugger.DebuggerWorker.dispatchMessages(DebuggerWorker.java:217)
[15/06/04@12:31:34.163+0200] P-027869 T-Broker debugger 1 UB -----------         at com.progress.ubroker.debugger.DebuggerWorker.mainline(DebuggerWorker.java:126)
[15/06/04@12:31:34.163+0200] P-027869 T-Broker debugger 1 UB -----------         at com.progress.ubroker.debugger.DebuggerWorker.run(DebuggerWorker.java:82)
[15/06/04@12:31:34.163+0200] P-027869 T-Broker debugger 1 UB -----------         at com.progress.ubroker.debugger.ubDebuggerThread.run(ubDebuggerThread.java:80)
 
Steps to Reproduce
Clarifying Information
The Sonic connection only fails when the appserver is started with tcman.  When it's started via OE Explorer, then the Sonic connection works without error.
Error MessageUnable to create pipe to SonicMQ ClientConnect process. (12667)
Defect Number
Enhancement Number
Cause
This is expected behavior.  Neither ClientConnect nor ServerConnect should be used with PASOE.  It is not tested or supported.  A defect has been logged to prevent the PASOE instance from starting if the –ClientConnect parameter is set in the agentStartupParam section of the $DLC\servers\pasoe\conf\openedge.properties file.

In addition, ClientConnect should not be used with classical OpenEdge appservers because the memory consumption of multiple adapter processes will severely affect performance. For this reason ServerConnect was implemented in OpenEdge.

The PASOE instance does not support ServerConnect.  The only supported method of connecting PASOE to SonicMQ is brokerConnect and there are no plans to change this.  
 
Resolution
Use brokerConnect to connect to a classic adapter running in ubroker.  The recommended (and only supported) way to communicate with Sonic from PASOE is brokerConnect in releases prior to 12.0.

In OpenEdge 12.0 the new OE Messaging utility was introduced (
oemessaging.bat/oemessaging) which replaces the legacy adapter brokers that ran under ubroker in prior OpenEdge releases.  You can find more information about this in Progress article How to Start/Stop and get the status of the SonicMQ Adapter in OpenEdge 12.0.

 
Workaround
Notes
Keyword Phrase
Last Modified Date11/20/2020 6:57 AM

Powered by