JMS handler in server side

Before you begin

To collect the data by JMS pattern in the client side, perform the following steps:

Procedure

  1. Refer to the general steps in Server collector, and configure the JMS collecting pattern using the following codes:
    <SmartDataCollectJMSImpl id="jmsDAOImpl" jmsConnectionFactory="jms/SmartChannelCF"
    jmsSendQueue="jms/SmartQueue"></SmartDataCollectJMSImpl>
    
    <SmartDataCollectDefaultImpl
    id="smartDAOImpl"> </SmartDataCollectDefaultImpl>
    
    <SmartCollectorConfig id="smartCollectorConfig" smartDAO="jmsDAOImpl ">
      <ref Injection="transactionCollectorConfig"
    refId="TransactionDataCollectorConfig"></ref>
    </SmartCollectorConfig>
    The smartDAO should be set as smartDAOImpl or jmsDAOImpl. If it's set as jmsDAOImpl, it uses the JMS collecting pattern.
  2. Create an MDBEJB project named SmartChannelJMSHandlerEJB and create a Bean implementation class for Enterprise Bean. Following is the sample code for the Bean class SmartDataJMSHandlerMDB:
    package com.ibm.btt.channel.smart.dao.jms;
    
    import com.ibm.btt.channel.smart.jmshandler.SmartJMSHandler;
    
    
    /**
     * Bean implementation class for Enterprise Bean: SmartDataJMSHandlerMDB
     */
    public class SmartDataJMSHandlerMDBBean	extends SmartJMSHandler implements javax.ejb.MessageDrivenBean,javax.jms.MessageListener{
    
    	/**
    	 * ejbRemove
    	 */
    	public void ejbRemove() {
    	}
    
    	/**
    	 * ejbCreate
    	 */
    	public void ejbCreate() {
    	}
    	private javax.ejb.MessageDrivenContext fMessageDrivenCtx;
    	
    	/**
    	 * getMessageDrivenContext
    	 */
    	public javax.ejb.MessageDrivenContext getMessageDrivenContext() {
    		return fMessageDrivenCtx;
    	}
    
    	/**
    	 * setMessageDrivenContext
    	 */
    	public void setMessageDrivenContext(javax.ejb.MessageDrivenContext ctx) {
    		fMessageDrivenCtx = ctx;
    	}
    }
    Configure the file ibm-ejb-jar-bnd.xml as following codes:
    <ejbbnd:EJBJarBinding
    xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ejb="ejb.xmi"
    xmlns:ejbbnd="ejbbnd.xmi" xmi:id="EJBJarBinding_1260934833875">
      <ejbJar href="META-INF/ejb-jar.xml#ejb-jar_ID"/>
      <ejbBindings xmi:type="ejbbnd:MessageDrivenBeanBinding"
    xmi:id="MessageDrivenBeanBinding_1260934833875"
    activationSpecJndiName="jms/SmartActSpec"
    destinationJndiName="jms/SmartQueue">    <enterpriseBean xmi:type="ejb:MessageDriven"
    href="META-INF/ejb-jar.xml#SmartDataJMSHandlerMDB"/>
      </ejbBindings>
    </ejbbnd:EJBJarBinding>
  3. Configure the JMS in WebSphere admin console as following configuration: <SmartDataCollectJMSImpl id="jmsDAOImpl" jmsConnectionFactory="jms/SmartChannelCF" jmsSendQueue="jms/SmartQueue">
    1. Create a connection factory: JNDI name:jms/SmartChannelCF(should be the same with the jmsConnectionFactory field that set in the smart configuration file. In this case, the file is SmartChannelDataCollect.xml);
    2. Create a queue: JNDI name:jms/SmartQueue (should be the same with the jmsSendQueue field that set in the smart configuration file. In this case, the file is SmartChannelDataCollect.xml);
    3. Create an activation specification: JNDI name:jms/SmartActSpec (should be the same with the activationSpecJndiName field that set in the MDB EJB project ibm-ejb-jar-bnd.xml).