Thursday, February 23, 2017

Working with Java JMS

Follwing code will show how to Connect with Java JMS

This is using TIBCO EMS
Before this Install TIBCO EMS
ADD Dependencys(tibjms.jar, jms2.0.jar)


1) Sample (1) to SEND a message to TIBCO EMS

import java.util.Vector;

import javax.jms.JMSException;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.TextMessage;

import com.tibco.tibjms.TibjmsQueueConnectionFactory;

public class TibcoEMSQueueSender {

public static void main(String args[]) {

String serverUrl = "tcp://localhost:7222";
String userName = "admin";
String password = "admin";

String queueName = "myQueue";

try {

Vector data = new Vector();
data.add("Hello World!"+System.currentTimeMillis());

System.out.println("Sending JMS message to server " + serverUrl + "...");

QueueConnectionFactory factory = new TibjmsQueueConnectionFactory(serverUrl);
QueueConnection connection = factory.createQueueConnection(userName, password);
QueueSession session = connection.createQueueSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);

// Use createQueue() to enable sending into dynamic queues.
Queue senderQueue = session.createQueue(queueName);
QueueSender sender = session.createSender(senderQueue);

/* publish messages */
for (int i = 0; i < data.size(); i++) {
TextMessage jmsMessage = session.createTextMessage();
String text = (String) data.elementAt(i);
jmsMessage.setText(text);
sender.send(jmsMessage);
System.out.println("Sent message: " + text);
}

connection.close();

} catch (JMSException e) {
e.printStackTrace();
System.exit(0);
}
}

}

2) Sample (2) to SEND a message to TIBCO EMS

import com.tibco.tibjms.TibjmsConnectionFactory;
import javax.jms.Connection;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

public class SenderSwingTIBCO {

    public static void main(String[] args) {
        try {
             
          
            TibjmsConnectionFactory tibjmsConnectionFactory = new TibjmsConnectionFactory("tcp://localhost:7222");
            Connection connection = tibjmsConnectionFactory.createConnection();
            
            connection.start();
            Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
            Destination destination = session.createQueue("myQueue");
            MessageProducer messageProducer = session.createProducer(destination);
            messageProducer.setDeliveryMode(DeliveryMode.PERSISTENT);
            
            
              
            StringBuffer strContent = new StringBuffer();
            strContent.append("eluwa");
            TextMessage textMessage = session.createTextMessage(strContent.toString());           
            
          
            messageProducer.send(textMessage);
           
            
            session.close();
            connection.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }


}


3) Sample (1) to RECEIVE a message to TIBCO EMS

import javax.jms.JMSException;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueReceiver;
import javax.jms.QueueSession;
import javax.jms.TextMessage; 
import com.tibco.tibjms.TibjmsQueueConnectionFactory;

public class TibcoEMSQueueReceiver {

public static void main(String args[]) {

String serverUrl = "tcp://localhost:7222";
String userName = "admin";
String password = "admin";

String queueName = "myQueue";

try {

System.out.println("Start listening for incoming JMS message on " + serverUrl + "...");

QueueConnectionFactory factory = new TibjmsQueueConnectionFactory(serverUrl);
QueueConnection connection = factory.createQueueConnection(userName, password);
QueueSession session = connection.createQueueSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);

// Use createQueue() to enable receiving from dynamic queues.
Queue receiverQueue = session.createQueue(queueName);
QueueReceiver receiver = session.createReceiver(receiverQueue);

connection.start();

/* read queue messages */
while (true) {
TextMessage message = (TextMessage) receiver.receive();
if (message == null)
break;

System.out.println("Received message: " + message.getText());
}

connection.close();

} catch (JMSException e) {
e.printStackTrace();
System.exit(0);
}
}


}

4) Sample (2) for RECEIVE a message to TIBCO EMS

import com.tibco.tibjms.TibjmsConnectionFactory;
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;


public class RecieverSwingTIBCO {
     public static void main(String[] args) {
        try {
           
            TibjmsConnectionFactory tibjmsConnectionFactory = new TibjmsConnectionFactory("tcp://localhost:7222");
            Connection connection = tibjmsConnectionFactory.createConnection();
            connection.start();
            Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
            Destination destination = session.createQueue("myQueue");
            MessageConsumer messageConsumer=session.createConsumer(destination);
            Message message=messageConsumer.receive();
            message.acknowledge();
            
            TextMessage textMessage=(TextMessage)message;
            System.out.println(textMessage.getText());     
            
            session.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}


Try to send and recieve messages from running above classes.