欢迎来到天天文库
浏览记录
ID:40637928
大小:307.01 KB
页数:38页
时间:2019-08-05
《利用JMS实现企业消息处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、JMS李绪成什么是消息服务从完成的功能来说,同方法调用一样,都是从发送方把消息发送到接收方,消息的接收方对消息进行处理。与方法调用不同的是,消息的发送者不需要等待接收者的响应,而方法调用必须等待接收者的响应。消息处理的好处可以采用消息队列的方式,异步传递消息可以可靠的传递消息,JMS可以持久的存储消息两种类型的消息处理点对点消息处理:JMS把每一个消息传递给一个消息消费者。发布/订阅消息处理:把消息发送给某个主题,每个主题可以有多个消息订阅者,最终由JMS子系统把消息的副本传递给主题的每一个订阅者。JMS基础知识连接工厂JMS连接JMS会话JMS目的连接工厂连接工厂(Connecti
2、onFactory)由服务器管理员创建,并捆绑到JNDI树中。JMS客户机使用JNDI检索连接工厂,然后利用它建立一个JMS连接。PTP连接工厂是javax.jms.QueueConnectionFactory。pub/sub连接工厂是javax.jms.TopicConnectionFactory。JMS连接一个JMS连接表示JMS客户机与WeblogicServer之间的一个活动连接;每个客户机都使用一个单独的JMS连接每个JMS连接可以连接多个JMS目的。PTP连接是QueueConnection;pub/sub连接是TopicConnection;JMS会话JMS会话表示客户
3、机与JMS服务器之间的会话状态。会话定义了消息的顺序。PTP模型使用QueueSessionpub/sub模型使用TopicSessionJMS目的JMS目的是实际的消息源PTP消息处理定义了javax.jms.Queuepub/sub使用javax.jms.TopicJMS队列生产者/消费者配置JMS服务器配置JMS目的JMS的使用JMS的使用查找连接工厂创建连接创建会话创建消息消费者创建消息生产者查找JMS队列接收消息发送消息检索连接工厂Contextctx=getInitialContext();QueueConnectionFactoryqConFactory=(QueueC
4、onnectionFactory)ctx.lookup(“weblogic.jms.ConnectionFactory”);检索JMS队列QueuemessageQueue=(Queue)ctx.lookup(“MessageQueue”);创建JMS连接和JMS会话QueueConnectionqCon=qConFactory.createQueueConnection();QueueSessionsession=qCon.createQueueSession(False,Session.AUTO_AKKNOWLEDGE);创建一个发送者和一个JMS消息sender=session
5、.createSender(messageQueue);msg=session.createTextMessage();发送消息msg.setText(“Hello”);sender.send(msg);同步消费者Contextctx=getInitialContext();QueueConnectionFactoryqConFactory=(QueueConnectionFactory)ctx.lookup(“weblogic.jms.ConnectionFactory”);QueuemessageQueue=(Queue)ctx.lookup(“MessageQueue”);Qu
6、eueConnectionqCon=qConFactory.createQueueConnection();QueueSessionsession=qCon.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);同步消费者(续)receiver=session.createReceiver(messageQueue);qCon.start();msg=(TextMessage)receiver.receive();System.err.println(“Received:”+msg.getText());异步消费者Contextctx=
7、getInitialContext();QueueConnectionFactoryqConFactory=(QueueConnectionFactory)ctx.lookup(“weblogic.jms.ConnectionFactory”);QueuemessageQueue=(Queue)ctx.lookup(“MessageQueue”);QueueConnectionqCon=qConFactory.createQueueConnection()
此文档下载收益归作者所有