In search of the correct parameters for a JMS connection between an ActiveMQ client and a SonicMQ server! - Forum - Community Groups - Progress Community

In search of the correct parameters for a JMS connection between an ActiveMQ client and a SonicMQ server!

 Forum

In search of the correct parameters for a JMS connection between an ActiveMQ client and a SonicMQ server!

This question is answered

I am using Progress OpenEdge 11.5, and have replaced the SonicMQ JMS adapter with the generic JMS adapter.

A connection with an ActiveMQ server works flawlessly, but I am not able to connect to my SonicMQ server.

SonicMQ is version 7.6.2.... the server logfile states 'Failed to create a JMS session. (9290)' but there is no information showing the reason WHY...

Source snippet:

RUN VALUE(DLC + "/jms/jmssession.r") PERSISTENT SET ptpsession ("-H localhost -S 5162").
RUN setBrokerURL      IN ptpsession (INPUT "tcp://sonicMQhost:2506").
RUN setUser           IN ptpsession (INPUT username).
RUN setPassword       IN ptpsession (INPUT userpass).

/* Connect to the broker. */
RUN beginSession IN ptpsession.

and then the program stops with message "Error connecting to the JMS AppServer service".

I have tried several different things already; I have tried port 2500, I have tried adding "-AppService broker1" to the ptpsession parameters, I have tried adding "-AppService xx.SonicMQ1", nothing seems to work.

Help, anyone?

Verified Answer
  • This definitely works; the good thing is that it doesn't matter whether the client is 10.2B or 11.5!

All Replies
  • Hi Paul-V,
     
    What are the details have you provided in AdminServerPlugins.properties file under “[PluginPolicy.Progress.SonicMQ]” section.
     
    Also, could you please let us know are you trying to connect SonicMQ broker using Generic JMS Adapter or without using Generic JMS Adapter?
     
    Thanks,
    Anand.
     
  • Hi Anand,

    Some excerpts from AdminServerPlugins.properties:

    #

    # 4GL Sonic Adapter plugin - SonicMQ adapter support

    #

    [Plugin.SonicMQAdapter] (unchanged)

       dependency=Plugin.System,Plugin.UBPropMgr

       pluginpolicy=PluginPolicy.Progress.SonicMQ

       uniquetype=AD

       license=1048577

       classname=com.progress.ubroker.tools.adapter.AdapterGuiPlugin

       pluginargs=SonicMQ Adapter

    #

    # Policy for the 4GL SonicMQ Adapter

    #

    [PluginPolicy.Progress.SonicMQ] (changed!)

       pluginclasspath=/opt/dlc/java/progress.jar,/opt/dlc/java/ext/activemq-all-5.10.0.jar

       classpath=/opt/dlc/java/progress.jar,/opt/dlc/java/ext/activemq-all-5.10.0.jar

       jvmargs=-DsonicMQExtensions=false -DjmsProvider=ActiveMQ

    And a new file $DLC/properties/jmsProvider.properties:

    [WebsphereMQ]

    javax.jms.ConnectionFactory=com.ibm.mq.jms.MQConnectionFactory

    javax.jms.QueueConnectionFactory=com.ibm.mq.jms.MQQueueConnectionFactory

    javax.jms.TopicConnectionFactory=com.ibm.mq.jms.MQTopicConnectionFactory

    [ActiveMQ]

    javax.jms.ConnectionFactory=org.apache.activemq.ActiveMQConnectionFactory

    javax.jms.QueueConnectionFactory=org.apache.activemq.ActiveMQConnectionFactory

    javax.jms.TopicConnectionFactory=org.apache.activemq.ActiveMQConnectionFactory

    Connecting from my OE ABLE client to ActiveMQ (server) works fine; just cannot get connected to SonicMQ v 7.6.2....

    I have no connectionfactory, for neither connection.

    Thanks for your help.

    Paul.

  • Hi Paul-V,
     
    Thank you for providing the details.
     
    In AdminServerPlugins.properties file, ActiveMQ is configured under “[PluginPolicy.Progress.SonicMQ]” section. So it will connect only ActiveMQ.
     
    If you want to use SonicMQ, then we need to change the configuration details as shown below:
     
    Without using Generic JMS Adapter:
    [PluginPolicy.Progress.SonicMQ] 
       pluginclasspath=/opt/dlc/sonic/MQ8.5/lib/sonic_Client.jar,/opt/dlc/sonic/MQ8.5/lib/mgmt_client.jar,/opt/dlc/java/progress.jar
       classpath=/opt/dlc/sonic/MQ8.5/lib/sonic_Client.jar,/opt/dlc/java/progress.jar
     
    Using Generic JMS Adapter:
    [PluginPolicy.Progress.SonicMQ]
       pluginclasspath=/opt/dlc/sonic/MQ8.5/lib/sonic_Client.jar,/opt/dlc/sonic/MQ8.5/lib/mgmt_client.jar,/opt/dlc/java/progress.jar
       classpath=/opt/dlc/sonic/MQ8.5/lib/sonic_Client.jar,/opt/dlc/java/progress.jar
       jvmargs=-DsonicMQExtensions=false -DjmsProvider=SonicMQ
     
    Also, we need to add following properties in $DLC/properties/jmsProvider.properties file.
    [SonicMQ]
    javax.jms.ConnectionFactory=progress.message.jclient.ConnectionFactory
    javax.jms.QueueConnectionFactory=progress.message.jclient.QueueConnectionFactory
    javax.jms.TopicConnectionFactory=progress.message.jclient.TopicConnectionFactory
     
    Hope this helps!!
     
    Thanks,
    Anand.
     
  • Hi Anand.

    Unfortunately this is not what I'm looking for. I'm trying to connect to ActiveMQ as well as SonicMQ in ONE client session...

    GENERIC JMS Adapter should be able to provide for this.. Apparently it doesn't so I'm going to log a support call about this issue.

    In the meantime I have come up with an idea of a possibility that might be a temporary solution: I have a version 10.2B implementation running as well as a version 11.5. I can have my client session connect to the 11.5 SonicMQ1 adapter for ActiveMQ connectivity and to the 10.2B SonicMQ1 adapter for SonicMQ connectivity.

    I will be trying this today.

    Paul.

  • This definitely works; the good thing is that it doesn't matter whether the client is 10.2B or 11.5!