JMS和MDB总结

最近时间比较多总结下以前写的代码,

queue发送

以weblogic的JMS为例,首先需要在服务器配置一个JMS modules,然后在jms modules下面配置一个Connection Factory(连接工厂),然后在配置需要的QUEUE,这里注意JMS MODULES部署的服务器会决定连接工厂和QUEUE的部署服务器,然后建立一个jms server。

程序中就可通过下面方法获取QUEUE相关组件

    public static void init(){

        //定义连接工厂
        JMS_FACTORY  = "Connection Factory";

        //获取QUEUE名称    
        QUEUE        = "queuename";
        //JMS服务器设置END
        try{
         if (context == null) {

         //获取服务器信息
         context = new InitialContext();
   }

            //从服务器获取连接工厂
            queueFactory = (QueueConnectionFactory) PortableRemoteObject.narrow(context.lookup(JMS_FACTORY),
                    QueueConnectionFactory.class);

             //从连接工厂获取QUEUE连接
            qcon = queueFactory.createQueueConnection();

            //用QUEUE连接注册QSESSION
            qsession = qcon.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);

             //从服务器获取QUEUE
            queue = (Queue) PortableRemoteObject.narrow(context.lookup(QUEUE),Queue.class);

             //在QUEUE上注册QUEUE发送器
            qsender    = qsession.createSender(queue);           
        }catch(Exception e){
            e.printStackTrace();
            connection = false;
        }
    }

这样就可以使用queue发送器发送消息了

                ObjectMessage msgqObject; 
                msgqObject = qsession.createObjectMessage();
                msgqObject.setObject(object);
                qsender.send(msgqObject);

weblogic jms消息类型有textmessage,objectmessage等类型。

 

当消息发送到jms服务器后,我们可以通过部署在weblogic上的mdb自动处理这些消息,这样就实现了一些功能的异步处理。

MDB需要实现  MessageDrivenBean,和 MessageListener 两个接口

需要实现ejbcreate(),onMessage(),ejbremove()三个基本方法。初始化的东西放到ejbcreate()中执行,

接收到message后的事情放在onMessage()方法中执行,mdb销毁的时候调用ejbremove方法。

执行流程基本为mdb发布时调用ejbcreate创建一个mdb,监听它负责的queue,当queue收到消息后调用mdb的onmessage方法执行。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值