Supported Vendors and Configurations for JMS 1.1

To use third party JMS software in Sterling B2B Integrator, you must configure each vendor's software.

When using third party JMS software in Sterling B2B Integrator, use the following table to configure each vendor's software. The configuration of third party JMS software also involves the following:
  • You need to download and install the correct software jars for each vendor. For more information, see the Installing JMS Jar Files procedure later in this topic.
  • You can view JMS pools created in Sterling B2B Integrator using the JConsole tool. For more information, see the Running JConsole procedure later in this topic.
    Important: Running JConsole is not mandatory for any JMS vendor.
JMS Vendor (Supported Versions) JNDI NON-JNDI SSL

ActiveMQ

Yes Yes Yes

WebLogic

Yes No Yes

TIBCO EMS

Yes Yes Yes

JBOSS

Yes No No

SonicMQ

Yes Yes No

WebSphereMQ

Yes No Yes

Installing JMS Jar Files

Do the following to install a JMS jar file:
  1. From the computer where the JMS server is installed, copy the jar file to a directory on your local server.
    For example:
    • The jar file for WebSphere MQ is com.ibm.mq.jar.
    • For ActiveMQ, copy jar files from <ActiveMQ Install Directory>/lib and <ActiveMQ Install Directory>/lib/optional folder to your local computer directory. Remove the slf4j-apiand jcl-over-slf4j and log4j jar files.
  2. From the directory on your local server, copy the jar file to a directory on the host computer where Sterling B2B Integrator is installed.
  3. Stop Sterling B2B Integrator.
  4. From the bin directory of the Sterling B2B Integrator installation directory, run one of the following commands. Use the JMS server version number and path to the host computer directory where you copied the jar file.
    • (UNIX or Linux) install3rdParty.sh ibm 5_3 - j directory/JMS jar file (JMS server as WebSphere MQ)
    • (UNIX or Linux) install3rdParty.sh activemq 5_15 - j directory/JMS jar file (JMS server as ActiveMQ)
    • (Windows) install3rdParty.cmd ibm 5_3 - j directory/JMS jar file (JMS server as WebSphere MQ)
    • (Windows) install3rdParty.cmd activemq 5_15 - j directory/JMS jar file (JMS server as ActiveMQ)
  5. For ActiveMQ, remove the slf4j, log4j and jcl jar files as it conflicts with the Sterling B2B Integrator version of these jar files.
  6. For Active MQ, install the individual module jar files and not the activemq-all jar version.
  7. Restart Sterling B2B Integrator.

Running JConsole

The JConsole tool uses the JMX_PORT property in the sandbox.cfg file to view the pools created in Sterling B2B Integrator. To view pools on cluster nodes, you must configure JMX_PORT for each node where you want to view pool details.

Do the following to run the JConsole tool:
  1. Stop Sterling B2B Integrator.
  2. Open the properties directory of the installation directory of Sterling B2B Integrator.
  3. Open the sandbox.cfg file and add the following line:
    JMX_PORT=Any free port
  4. Save and close the sandbox.cfg file.
  5. Navigate to the bin directory for your JDK file.

    For example, C:\Program Files\Java\jdk1.6.0_14\bin.

  6. Double-click the jconsole.exe file.

    The JConsole screen is displayed.

  7. Click Remote Process.
  8. Enter the following text:

    SI install host:JMX_PORT user name/Password:admin/Password

  9. Click Connect.

    The Java X Console is displayed.

Running JConsole in OCP Setup

To support JMX monitoring, set the .Values.asi.jmxMonitoring.enabled parameter to true and configure the JMX port using .Values.asi.jmxMonitoring.port.

To run JConsole:
  1. Retrieve the IP address of the pod by its name:

    kubectl get pod <pod-name> --template '.status.podIP'

  2. Add the pod IP address to the loopback interface:

    sudo ip addr add <pod-ip>/32 dev lo

  3. Perform port forwarding to map the local port to the container port:

    kubectl port-forward <pod-name> --address localhost,<pod-ip> <localport>:<jmxcontainerport>

    Example:

    
    -sh-4.2$  kubectl port-forward jana6203-b2bi-asi-server-0 --address localhost,<pod-ip>:32705
    Forwarding from <pod-ip> -> 32705
    Forwarding from 127.0.0.1:32705 -> 32705
    Forwarding from [::1]:32705 -> 32705
                    
  4. Navigate to the bin directory for your JDK file.

    For example, C:\Program Files\Java\ibm-jdk1.8.\bin..

  5. Double-click the jconsole.exe file.

    The JConsole screen is displayed.

  6. Click Remote Process.
  7. Enter the following text:

    SI install host:JMX_PORT user name/Password:admin/Password

  8. Click Connect.

    The Java X Console is displayed.

  9. After completing JMX monitoring, remove the loopback IP address:

    sudo ip addr delete <pod-ip>/32 dev lo

To add Client Authentication:
  1. Enable JMX Monitoring:
    • Set .Values.asi.jmxMonitoring.enabled to true.
    • Configure the JMX monitoring port using .Values.asi.jmxMonitoring.port.
  2. Enable JMX authentication:
    • Set .Values.asi.jmxMonitoring.authentication.enabled to true.
    • Configure the JMX authentication secret using .Values.asi.jmxMonitoring.authentication.secretName.
  3. Create the Secret:

    The secret should contain both the access file and the password file as per JDK standards (jmxremote.access and jmxremote.password).

    Example command:
    oc create secret generic <secret-name> --from-file=<key1>=<file-path1> --from-file=<key2>=<file-path2>
    oc create secret generic jmx-auth-secret --from-file=jmxremote.access=/home/janardha/JMX/jmxremote.access --from-
    file=jmxremote.password=/home/janardha/JMX/jmxremote.password
  4. In JConsole:
    • Follow the steps in the To run JConsole section.
    • Add username and password in the JConsole: New Connection pop-up.
    • Use the role or user and password configured in the secret to authenticate or log in.
To add SSL Configurations:
  1. Configure the JMX monitoring port:

    .Values.asi.jmxMonitoring.port

  2. Enable JMX authentication:

    Set .Values.asi.jmxMonitoring.authentication.enabled to true.

  3. Enable SSL for JMX:

    Set .Values.asi.jmxMonitoring.ssl.enabled to true.

  4. Force client authentication:

    Set .Values.asi.jmxMonitoring.ssl.clientAuth to true.

  5. Configure the KeyStore and TrustStore using the following parameters:

    .Values.asi.javaSecurity.keystoreSecret

    .Values.asi.javaSecurity.truststoreSecret

  6. The KeyStoreSecret should contain:
    • keystore: KeyStore file
    • keystore-password: Password string for KeyStore file
    • key-password: Password string for KeyStore key
    Example command to create KeyStoreSecret:
    
    kubectl create secret generic java-keystore-secret \
    --from-file=keystore=/home/janardha/JMX/jmxkeystore.p12 \
    --from-literal=keystore-password="password" \
    --from-literal=key-password="password"
                
  7. The TrustStoreSecret should contain:
    • truststore: TrustStore file
    • truststore-password: Password string for TrustStore file
    Example command to create TrustStoreSecret:
    
    kubectl create secret generic java-truststore-secret \
    --from-file=truststore=/home/janardha/JMX/jmxtruststore.p12 \
    --from-literal=truststore-password="password"
  8. In Jconsole:
    • To configure SSL KeyStore and TrustStore properties while launching JConsole, use the following command:
      
      ./jconsole -J-Djavax.net.ssl.keyStore=/path/to/keystore \
      -J-Djavax.net.ssl.trustStore=/path/to/trustStore \
      -J-Djavax.net.ssl.keyStorePassword=password \
      -J-Djavax.net.ssl.trustStorePassword=password
    • Follow the steps in the To run JConsole section.