Print PRINT
PDF

webMethods Blog - webMethods as JMS Provider


webMethods Broker as JMS Provider 

 

 

Using MWS

 

Go to MWS->Administration->Messaging->Broker Servers->Broker ->Adding New Broker for JMS (Not required, default one also can be used)




 

Go to MWS->Administration->Messaging->Naming Directories->Providers to ADD JMS  Provider 

Give Provider Name, Provider URL 

Client Group as admin, other custom client group can also be used (provide enough permission to the client group created)





 

Go to MWS->Administration->Messaging->Naming Directories->Connection Factories to ADD Connection Factory

 

Give Lookup Name, Connection Factory Type, Broker, client group…




Go to MWS->Administration->Messaging->Naming Directories->Destination to ADD destination (Topic/Queue)





 

Add the created Destination to Document Types

 Go to MWS->Administration->Messaging->Broker Servers->Document Types->ADD Topic under ESB Broker






 

Go to MWS->Administration->Messaging->Broker Servers->Client Groups->Add Document Types for admin client group under ESB Broker

Broker::Activity: EventTypeChange

SAG_JMS: Topic




 

Write Simple Java Client Program to Test  (Sender) 

SampleSender.java

 

package jms_wM; 

import java.util.Properties;

import javax.jms.*;

import javax.naming.*; 

public class SampleSender {     

 

      public static void main(String[] args) { 

        try{

              //creating properties file for getting initial context

              Properties env = new Properties(); 

              env.setProperty("java.naming.factory.initial", "com.webmethods.jms.naming.WmJmsNamingCtxFactory");              env.setProperty("java.naming.provider.url", "wmjmsnaming://ESB@10.226.33.97:6849/SAG_JMSNaming" ); 

env.setProperty("com.webmethods.jms.naming.clientgroup", "admin"); 

        Context namingContext = new InitialContext(env);  //using the properties file to create context 

    System.out.println("Context Created"+ namingContext.toString());       

           //Lookup Connection Factory

        TopicConnectionFactory conn = (TopicConnectionFactory) namingContext.lookup("SAG_JMSTopicConnectionFactory");

           System.out.println("Lookup Connection Factory Success"+ conn.toString());

  Connection connection = conn.createConnection();  //Create Connection  

 

         System.out.println("Connection Created"+ connection.toString()); 

Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //Create Session 

        Destination dest = (Topic) namingContext.lookup("SAG_JMSTopic");  //Lookup Topic/Queue to create Destination

 System.out.println("Destination Created"+ dest);

 

MessageProducer producer = session.createProducer(dest);  //Create Message Producer       

 

        TextMessage msg = session.createTextMessage();  //Create Message

                    msg.setText("Im here"); 

        producer.send(msg);  //Send Message       

 

        System.out.println("Message Send to Topic Successfully"); 

      }catch(Exception e){System.out.println(e.toString());}

    } 

} 

Import Required Jar Files


 

 

Set the Class Path for wm-jmsnaming.jar and wm-brokerclient.jar in the client machine if required (Check 8-0-SP1_Broker_Messaging_Programmers_Guide for more details)

 

Test the java program to see the results


Check in MWS for Docs Published under the topic SAG_JMS::Topic


In the same way java client program can be written to subscribe from the topic/ IS can be made as client to test.

Connection Factory, Topic, Brokers etc can also be created using JMSAdmin tool from command prompt like (Check 8-0-SP1_Broker_Messaging_Programmers_Guide for more details)


 

D: SoftwareAGBrokerin>jmsadmin -p jndi.properties

Connected to JNDI Context: Broker::JmsNaming::JmsAdminTest

/ > bind cf aSenderFactory with group=SampleSenders

/ > bind cf aReceiverFactory with group=SampleReceivers

/ > bind topic aTopic with topicName=Samples::RequestInfo

/ > connect

Connected to Broker #1 on localhost:6849

/ > create topic for aTopic

/ > create group SampleSenders

/ > permit group SampleSenders to publish Samples::RequestInfo

/ > create group SampleReceiver

/ > permit group SampleReceiver to subscribe Samples::RequestInfo

/ > end

Comments (0)Add Comment

Write comment
You must be logged in to post a comment. Please register if you do not have an account yet.

busy