Message Driven Bean(MDB): 消息驱动Bean,基于JMS
1.JMS介绍
JMS是java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。JMS支持两种消息模型,Point-toPoint(P2P)和Publish/Subscribe(Pub/Sub),即点对点和发布订阅模型
运行的状态:当然,为了缓和这种严格的时间相关性,JMS允许订阅者创建一个可持久化的订阅。这样,即使订阅者没有被激活(运行),它也能接收到发布者的消息。
如果你希望发送的消息可以不被做任何处理、或者被一个消费者处理、或者可以被多个消费者处理的话,那么可以采用Pub/Sub模型
消息的消费:在JMS中,消息的产生和消费是异步的。对于消息来说,JMS的消费者可以通过两种方式 来消费消息。
同步:订阅者或接受者调用receive方法来接受消息,receive方法在能够接收到消息之前(超时之前)将一直阻塞
异步:订阅者或接受者可以注册为一个消息监听器。当消息到达之后,系统自动调用监听器的onMessage方法
2.JMS编程模型
Connection Factory
创建Cooection对象的工厂,针对两种不同的JMS消息模型,分别有QueueConnectionFactory和TopicConnectionFactory两种。可以通过JNDI来查找ConnectionFactory的对象。
Destination
Destination的意思是消息生产者的消息发送目标或者说是消息消费者的消息来源,对于消息生产者来说,它的Destination是某个队列(Queue)或某个主题(Topic),对于消息消费者来说,它的Destination也是某个队列或主题(即消息来源)。所以,Destination实际上就是两种类型的对象——Queue,Topic。可以通过JNDI来查找Destination
Conneciton
Connection表示客户端和JMS系统之间建立的链接(对TCP/IP socket 的包装)。Connection可以产生一个或多个Session。跟ConnectionFactory一样,Connection也有两种QueueConnection和TopicConnection。
Session
Session使我们操作消息的接口,可以通过session创建生产者、消费者、消息等。Session提供了事务的功能。当我们需要使用session发送/接受多个消息时,可以将这些发送/接受动作放到一个事务中。同样,也分QueueSession和 TopicSession。
消息消费者
消息消费者由Session创建。用于接受被发送到Destination的消息,QueueReceiver和TopicSubscriber,可分别通过session的createReceiver(queue)或createSubscriber(topic)来创建,当然,也可以通过 session的createDurableSubscriber方法来创建持久化的订阅者。
MessageListener
消息监听器,如果注册了消息监听器,一旦消息到达,将自动调用监听器的onMessage方法。EJB中的MDB(Message Driver Bean)就是一种MessageListener。
3.MDB介绍
对于客户端来说,message-driven bean 就是异步消息的消费者。当消息到达之后,由容器负责调用MDB。客户端发送消息到destination,MDB作为一个MessageListener接受消息
分享到:
相关推荐
本教程将带你了解EJB3.0的基本概念,主要包括Session Bean、Entity Bean和Message Driver Bean,以及如何在JBoss应用服务器上进行部署和调试。 ### Session Bean Session Bean是EJB中的一种关键组件,主要用于处理...
- 在WAS中配置一个`侦听器端口`,用于Message Driver Bean(MDB)的通信。MDB是一种特殊类型的EJB,可以监听消息队列,并对收到的消息进行处理。 4. **Java代码示例**: - 要通过Java代码向远程MQ队列发送消息,...
5. **MDB(Message Driven Bean)**: MDB是Java EE中的一种特殊类型的Enterprise JavaBean(EJB),专门设计用来处理JMS消息。MDB充当了消息消费者的角色,它们在后台自动监听消息队列或主题,当有新消息到达时,会...
EJB主要有三种类型:Session Bean(会话bean),Entity Bean(实体bean)和Message-Driven Bean(消息驱动bean)。Session Bean处理客户端会话,分为有状态和无状态两种;Entity Bean代表持久化的业务对象,有容器...
Form Bean 配置是通过 `<form-beans>` 元素实现的,该元素可以包含多个 `<form-bean>` 子元素,每个 `<form-bean>` 元素可以配置一个 Form Bean。Form Bean 配置中可以设置 Form Bean 的名称、类型等属性。 例如: ...
18. 在消息驱动 Bean 中需要实现两个接口:MessageDrivenBean 接口和 MessageListener 接口。 19. 将一个消息驱动 Bean 和一个队列或者一个主题联合起来需要使用 JMS API 来实现。 20. XML 是一种标记语言,用于...
EJB分为三种类型:会话Bean(Session Bean)、实体Bean(Entity Bean)和消息驱动Bean(Message-Driven Bean)。会话Bean处理业务逻辑,实体Bean用来表示持久化的数据,消息驱动Bean用于处理异步消息。 #### 4. RMI ...
<driverClassName>com.mysql.jdbc.Driver</driverClassName> <url>jdbc:mysql://localhost:3306/activemq?useSSL=false <username>your_username <password>your_password ``` 在Spring中,你需要创建...
<property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/mydb ... ``` **2. Entity类和映射文件** Hibernate通过ORM...
- **Message-Driven Bean**:用于处理消息队列中的消息,常用于异步处理。 5. **Java访问Oracle数据库** 使用Java访问Oracle数据库通常涉及以下步骤: - 加载驱动:`Class.forName("oracle.jdbc.driver.Oracle...
<property name="message" value="Hello, Spring MVC!"/> </bean> ``` 同时,还需要配置视图解析器,如InternalResourceViewResolver: ```xml <bean class="org.springframework.web.servlet.view....
Struts-config.xml文件是Struts框架的核心配置文件,它定义了应用程序的行为、数据源、ActionForm Bean等关键元素。以下是关于struts-config.xml文件配置的详细说明: 1. **数据源配置(Data Sources)**: - `...
${jdbc.driver}" /> ${jdbc.url}" /> ${jdbc.username}" /> ${jdbc.password}" /> </bean> ``` 2. **SQL会话工厂配置**: 通过`SqlSessionFactoryBean`来创建SQL会话工厂。 ```xml <bean class="org....
p:driverClass="oracle.jdbc.driver.OracleDriver" p:jdbcUrl="jdbc:oracle:thin:@192.168.7.154:1521:orcl" p:user="syegov" p:password="sa" p:initialPoolSize="6" p:minPoolSize="6" p:maxPoolSize="18" p:...
1. **建立连接**:通过AMF(Action Message Format)协议建立Flex客户端与Java服务器之间的连接。 2. **发送请求**:Flex客户端发送请求至Java服务器,请求获取数据。 3. **处理请求**:Java服务器端处理请求,执行...
- **Message-Driven Bean**:处理消息队列中的消息,常用于异步处理。 5. **Java访问Oracle数据库** 访问Oracle数据库通常需要使用JDBC(Java Database Connectivity)。以下是一个基本的步骤: - 注册驱动:`...
<set-property property="driverClass" value="com.mysql.jdbc.Driver"/> ``` 在上述配置中,我们设置了数据库驱动类、URL、最小连接数、最大连接数、用户名和密码。这些属性确保了 Struts 应用程序...