martes, 9 de diciembre de 2014

Enviar mensajes a cola

Holas!!!!!!!!!!!!!! Pues eso, ahora un quick code pare enviar mensaje a Colas, version para WebsphereMQ y ActiveMQ.

El marrón de WebsphereMQ es que hay que tener sus librerías que si lo tienes instalado las puedes pillar de donde lo hayas instalado o si no buscar arduamente en la red que estarán colgadas seguramente por algún lugar.

package com.myutils.services;

import javax.jms.Connection;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.log4j.Logger;

import com.ibm.mq.jms.MQConnectionFactory;
import com.ibm.mq.jms.MQQueue;
import com.ibm.msg.client.wmq.WMQConstants;

public class WebsphereMQService {

private static Logger log4j = Logger.getLogger(WebsphereMQService.class);

public void enviarMessage(String txtMsg){
try{
MQConnectionFactory mq = new MQConnectionFactory();
mq.setTransportType(1);//Se envia como cliente
mq.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
mq.setHostName("SERVIDOR_MQ");//Proporcionado por server
mq.setPort(1616);//Esto puede cambiar, proporcionado por server
mq.setChannel("NOMBRE.CANAL");//Proporcionado por server
mq.setQueueManager("QUEUE.MNG");//Proporcionado por server
Connection c = mq.createConnection("usuario", "password");
MQQueue q = new MQQueue("NOMBRE.QUEUE");//Nombre cola, proporcionado por server
   Session s = c.createSession(false, Session.AUTO_ACKNOWLEDGE);
   MessageProducer producer = s.createProducer(q);
   TextMessage message = s.createTextMessage(txtMsg.trim());
   producer.send(message);
   c.close();
}catch(Exception e){
log4j.error("Exception:", e);
}
}

}

//Proporcionado por server: son datos que nos deben de dar para conexión.


Y ahora para Active MQ.


package com.myutils.services;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.log4j.Logger;

public class ActiveMQService {

private static Logger log4j = Logger.getLogger(ActiveMQService.class);

/**
* Envia mensaje
* @param xml
* @throws BusinessException
*/
public void enviarMensaje(StringBuilder xml, String qName){
try{
ConnectionFactory cf = new ActiveMQConnectionFactory("tcp://localhost:61616");//Servidor
   Connection conn = cf.createConnection();
   conn.start();
   Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
   Destination destination = session.createQueue(qName);//Nombre de cola
   MessageProducer producer = session.createProducer(destination);
   TextMessage message = session.createTextMessage(xml.toString());//Mensaje a enviar
   producer.send(message);
   conn.close();
}catch(Exception e){
log4j.error("Exception.", e);
}
}

}



Esto debería de funcionar y si no ......

No hay comentarios:

Publicar un comentario