Configuring the integration node to enable a JMS provider's proprietary API

Some JMS providers provide an alternative interface to the standard JMS specification for particular JMS API calls. In these cases, IBM® supplies a Java™ class to interface with that proprietary API.

About this task

For example, BEA WebLogic uses a component called a Client Interposed Transaction Manager to allow a JMS client to obtain a reference to the XAResource that is associated with a user transaction.

If the WebSphere® IBM Integration JMS nodes use BEA WebLogic as the JMS provider, and the nodes must participate in a globally coordinated message flow, you must modify the configurable services properties that are associated with that vendor. The following table shows the properties that have been added to the configurable service for BEA WebLogic.
JMS provider Property Purpose Default value
BEA_WebLogic proprietaryAPIHandler The name of the IBM supplied Java class to interface with a JMS provider's proprietary API. com.ibm.broker.apihandler. BEAWebLogicAPIHandler
proprietaryAPIAttr1 The Initial Context Factory class name for the vendor weblogic.jndi. WLInitialContextFactory
proprietaryAPIAttr2 The URL of the WebLogic bindings URL JNDI bindings
proprietaryAPIAttr3 The DNS name of the JMS server Server name

In the list of JMS provider configurable services, the name of the IBM supplied Java class is set to the default value for the proprietaryAPIHandler property. Typically, you do not need to change this value, unless you are instructed to do so by an IBM Service team representative.

Procedure

  • Use the mqsichangeproperties command to modify values of the properties for this JMS provider.
    The following example shows how to change the values of the properties proprietaryAPIAttr2 and proprietaryAPIAttr3 for the JMS provider configurable service definition called BEA_Weblogic, where these properties represent the URL of the WebLogic bindings and the DNS Server name of the BEA WebLogic JMS Server:
    mqsichangeproperties IBNODE -c JMSProviders -o BEA_Weblogic  
    -n proprietaryAPIAttr2,proprietaryAPIAttr3 -v t3://9.20.94.16:7001,BEAServerName
    You must stop and start the integration server for the changes of property values to take effect.
  • Use the mqsireportproperties command to display the properties for a JMS provider.
    The following example shows how to display the properties for all the integration node's JMS provider resources (the default JMS provider resources and those configurable services that are defined with the mqsicreateconfigurableservice command):
    mqsireportproperties IBNODE -c JMSProviders -o BEA_WebLogic -r
    
    The result of this command has the following format:
    ReportableEntityName=''
    JMSProviders
      BEA_Weblogic=''
        jarsURL='default_Path'
        nativeLibs='default_Path'
        proprietaryAPIAttr1='weblogic.jndi.WLInitialContextFactory'
        proprietaryAPIAttr2='t3://9.20.94.16:7001'
        proprietaryAPIAttr3='BEAServerName'
        proprietaryAPIAttr4='default_none'
        proprietaryAPIAttr5='default_none'
        proprietaryAPIHandler='com.ibm.broker.apihandler.BEAWebLogicAPIHandler'
        
    The default location for the JMS provider JAR files is the integration node's shared-classes directory. You can specify an alternative location for the JAR files by using the mqsichangeproperties command, as shown in the following example:
    mqsichangeproperties IBNODE -c JMSProviders -o BEA_WebLogic -n jarsURL 
    -v /var/mqsi/WebLogic
    On Windows, the file location cannot be a mapped network drive on a remote Windows computer; the directory must be local or on a Storage Area Network (SAN) disk.
  • Use the mqsicreateconfigurableservice command to add a JMS provider.
    The following example shows how to add a JMS provider called BEAV91 for integration node IBNODE, specifying the name of an IBM supplied Java class called com.ibm.broker.apihandler.BEAWebLogicAPIHandler to handle vendor-specific API calls:
    mqsicreateconfigurableservice IBNODE -c JMSProviders -o BEAV91 
    -n proprietaryAPIHandler,proprietaryAPIAttr1,proprietaryAPIAttr2,proprietaryAPIAttr3
    -v com.ibm.broker.apihandler.BEAWebLogicAPIHandler,weblogic.jndi.WLInitialContextFactory,
    t3://9.20.94.16:7001,BEAServerName
  • If you have defined a user-defined JMS provider configurable service, set the value for the proprietaryAPIHandler property manually.