You can locate the connection factory by using the Java Naming and Directory Interface (JNDI) to find the JMS-administered objects in the JNDI namespace.

To prevent class conflict with the AdminObjectFinder.java file, the Progress OpenEdge JMS Adapter packages the class in a different package, jmsfromABL (not jmsfrom4gl). This new class provides the adapter with the configuration to find the JMS-administered objects in the JNDI namespace.

  1. Create the jmsfromABL.AdminObjectFinder.java class file for your JMS provider. For example code, see the following topics:
    Note:
    • The jmsfromABL.AdminObjectFinder name is mandatory in the class file.
    • The class and the get...() methods must be declared as public elements.
  2. Compile the jmsfromABL.AdminObjectFinder.java class file with the JMS-provider client jars with JDK and place it in a new JAR file. For example:
    C:\JMS\SonicMQ>copy C:\JMS\SonicMQ\MQ14.0\lib\sonic_Client.jar .
    C:\JMS\SonicMQ>javac -cp sonic_Client.jar;.; -d . AdminObjectFinder.java
    C:\JMS\SonicMQ>jar -cvf AdminObjectFinder.jar jmsfromABL
    For ActiveMQ Artemis, also include the jndi.properties file in the JAR file. For example:
    C:\JMS\ArtemisMQ>copy C:\JMS\ArtemisMQ\apache-artemis-2.11.0-bin\apache-artemis-2.11.0\lib\client\artemis-jms-client-all-2.11.0.jar .
    C:\JMS\ArtemisMQ>javac -cp artemis-jms-client-all-2.11.0.jar;.; -d . AdminObjectFinder.java
    C:\JMS\ArtemisMQ>jar -cvf AdminObjectFinder.jar jmsfromABL jndi.properties
  3. Add the location of this new JAR file to the classpath variable in the JavaTools.properties file of the [SonicMQ] property section, as in the following example:
    [SonicMQ]
    classpath=C:\JMS\ArtemisMQ\artemis-jms-client-all-2.11.0.jar,${DLC}/java/progress.jar,C:\JMS\ArtemisMQ\AdminObjectFinder.jar
    jvmargs=-DsonicMQExtensions=false -DjmsProvider=ArtemisMQ