Enable a JMS router for an existing component

We can enable a JMS router for an existing WebSphere Commerce component.

Note: To enable this router by using the following steps, you modify base packages, such as a JAR file, for the WebSphere Commerce instance. Whenever maintenance is applied to the WebSphere Commerce instance, such as fix packs or APARs, we might need to reapply our changes to the base assets to maintain the enablement of your router.


Procedure

  1. Import the existing EJB component into your workspace by importing the following files into WebSphere Commerce Developer:

    • component_name-Server.jar

    • component_nameServicesHTTPInterface.war

    1. To test the changes using the WebSphere Commerce test server, import the component_name-Server.jar file corresponding to the database type used by WebSphere Commerce Developer.

    2. Otherwise, import the component_name-Server.jar file corresponding to the database type used by your production environment.

  2. Add the component_name-Server.jar file as a module to the WebSphere Commerce EAR.

    Note: Perform this step even though the binary exists. This step replaces the existing binary with our own.

  3. Generate the HTTP/JMS router modules for the component_name-Server.jar project, where:

    1. We must select both HTTP and JMS.

    2. The router project names must be component_nameServicesHTTPInterface and component_nameServicesJMSInterface.

      Note: Do not generate the HTTP router if the default HTTP interface already exists.

    3. The JMS destination type must be a queue.

    4. The MDB deployment mechanism must be JMS activation spec.

    5. The activation spec JNDI name can be any valid JNDI name, as the activation spec is created later.

    6. The JMS router module is automatically added to the WebSphere Commerce EAR.

  4. Create the JMS queues and activation specs. Create the following items:

    • The inbound JMS queue and its QCF (queue connection factory).

    • The outbound QCF.

    • The activation spec.

    1. If we are using the default WebSphere Application Server messaging provider, follow the instructions in Creating a JMS server, including the physical queues on the SIBus.

    2. Then, follow the steps in Setting the MQ_INSTALL_ROOT environment variable.

      Note:

      • The JNDI name of the outbound QCF must be jms/WebServicesReplyQCF.

      • We must have a unique activation spec for each JMS router module.

      • Ensure that each component has a unique inbound JMS queue.

  5. Deploy our changes by Deploying the component facade. Ensure that you change the data source JNDI name of the component_name-Server.jar file when the changes are deployed to the runtime environment.