Jboss下开发ejb应用之一消息驱动bean的应用

Jboss下开发ejb应用之一消息驱动bean的应用,这是一篇紧接着学习会话bean和实体bean之后而写的

JMS(Java Message Service):即Java消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。JMS支持两种消息模型:Point-to-Point(P2P)和Publish/Subscribe(Pub/Sub),即点对点和发布订阅模型。

消息驱动bean(Message-Driven Bean):用于接收异步JMS消息,容器处理JMS消息队列(Queue)和主题(Topic)所需的大部分设置进程,把所有消息发送给相关的MDB。MDB是唯一必须实现javax.jms.MessageListener业务接口的bean,该接口指出bean支持的是哪一类型的消息系统。

消息的两种处理方式:
1)发布/订阅(Publish/Subscribe 简写Pub/Sub):一个消息生产者(Publisher)发布消息(Message)到主题(Topic)上,系统/容器将这个消息传递给多个消息消费者/消息接收者(Subscriber),当然存在多个消息生产者发布消息,这样就会形成多对多消息生产消费关系。消息生产者只关心发布消息到主题(Topic)上,消息生产者不关心消息是否被接收或者消息接收者现在是否存在。

消息反馈特点:
1.1) 每个消息可以有多个消费订阅者,当然允许只有一个消息订阅者。
1.2) 消息发布者和消息订阅者之间有时间上的依赖性。针对某个主题(Topic)的消息订阅者,它必须创建一个订阅之后,才能消费消息发布者的消息,而且,为了消费消息,订阅者必须保持运行的状态。当然,为了缓和这种严格的时间相关性,JMS允许消息订阅者创建一个可持久化的订阅。这样,即使订阅者没有被激活(运行),它也能接收到消息发布者的消息。
1.3) 如果你希望发送的消息可以不被做任何处理、或者被一个消费者处理、或者可以被多个消费者处理的话,那么可以采用Pub/Sub模型。

概念:主题(Topic)、发布者(Publisher)、订阅者(Subscriber)。

2)点对点(Point-to-Point 简称P2P):每个消息(Message) 只会发给一个消息消费者(Consumer/ Receiver)(即消息一旦被消费,此消息在消息队列中就不存在了),多个消息生产者(Producer /Sender)可以把多个消息同时发送到消息队列(Queue)中,消息接收者从消息队列中获取消息。队列保留着消息,直到它们被消费或超时。

消息反馈特点:
2.1)消息发送者和消息接收者之间在时间上没有依赖性,也就是说当消息发送者发送了消息之后,不管消息接收者有没有正在运行,它不会影响到消息被发送到队列。
2.2)消息接收者在成功接收消息之后需向消息队列应答成功与否,如果你希望发送的每个消息都应该被成功处理的话,那么你需要P2P模型。

概念:消息队列(Queue)、发送者(Sender)、接收者(Receiver)。

JMS客户端创建或者接收消息的步骤:
1)查找JMS提供者-----找到消息连接工厂
2)创建JMS连接-----创建消息连接
3)创建JMS Session-----创建消息session对象
4)查找JMS目的地-----借助JNDI查找JMS目的地,即是哪个消息驱动bean(Queue)或者哪些消息驱动bean(Topic)
5)创建JMS生产者或消费者-----借助session和destination对象,客户能获得消息的生产者和消费者
6)发送或接收消息-----构建消息,借助生产者发送,消费者接收

注意把消息驱动bean的配置文件cmsmdb-service.xml放到jboss的部署目录下如果是all方式,则放到$JBOSS_HOME\server\all\deploy\jms目录下
另外注意的是消息接收者这个客户端应用应该先启动,消息发布者这个客户端应用要后启动才能看到这个消息被接收

本人采用jboss的版本是jboss-4.2.2.GA
服务端,客户端工程项目我都发布上来 server-client-project.rar中cms项目是消息驱动bean的服务端程序,ejbclient项目是客户端调用项目
以供大家参考
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值