谁在用户端管理JMS会话

谁在用户端管理JMS会话,jms,jms-session,Jms,Jms Session,如果我有一个JMS队列,并且希望从发布客户机将消息放到队列中,那么我需要首先打开一个会话,从其jndi名称获取队列,然后将消息发送到队列 但在消费者方面,我为什么不需要手动打开会话并接收消息。容器是否始终为每个MDB保留一个打开的会话(考虑到一个MDB在一个队列上侦听)如果您使用MDB,即容器管理的对象,则连接、会话、队列/主题和实际使用者都由容器管理 您只需为onMessage(messagem)编写代码即可 消费者是MDB,而不是独立的JMS客户机?嗯,是的..但是在您的观点上,有可能有一个

如果我有一个JMS队列,并且希望从发布客户机将消息放到队列中,那么我需要首先打开一个会话,从其jndi名称获取队列,然后将消息发送到队列


但在消费者方面,我为什么不需要手动打开会话并接收消息。容器是否始终为每个MDB保留一个打开的会话(考虑到一个MDB在一个队列上侦听)

如果您使用MDB,即容器管理的对象,则连接、会话、队列/主题和实际使用者都由容器管理


您只需为onMessage(messagem)编写代码即可

消费者是MDB,而不是独立的JMS客户机?嗯,是的..但是在您的观点上,有可能有一个独立的客户机作为消费者吗?我一直只看到MDB。当然,独立客户端非常常见,但您需要手动管理连接和会话。因此,每次消息到达队列时,容器都会打开MDB和队列之间的会话?这取决于容器如何处理。它可以使会话保持打开状态以继续,也可以不继续,并为每条消息创建一个新会话。检查您正在使用的应用程序服务器的文档。