问题标签 [message-driven-bean]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jms - 非法尝试使用现有的两阶段资源提交单阶段资源
我在 WebSphere 6 中有一个 MDB。MessageListener 链接到 Tibco EMS 队列。在 MDB 中,我尝试写入 WebSphere MQ 队列。我收到以下错误:
QueueConnectionFactory 实例是一个com.ibm.ejs.jms.JMSQueueConnectionFactoryHandle
. 我可以从中获得 XAConnection 吗?我需要吗?如果可能的话,我更愿意使用香草 JMS。
MDB 实现类似于:
jakarta-ee - MDB:动态选择器
我有几台服务器运行相同的代码,但每台服务器都处理特定的消息(它们按地理区域分布,必须处理与其区域相关的所有消息)
我想使用单个队列和消息选择器来过滤不同的消息。
问题是:如何编写Java代码和部署计划,以便动态配置选择器,基于配置文件,应用服务器的配置(Geronimo 2.2)
目标是在所有服务器上部署相同的 EAR。
谢谢你。
jakarta-ee - MDB 和欺骗消息
让我们假设一个 MDB 已收到一条消息并已开始在 CMT/必需事务中处理它,并假设该事务可能需要一些时间才能完成。
在这种情况下,是否有可能在另一个事务中由另一个 MDB 实例接收和处理重复的消息,而第一个事务仍在进行中?
或者容器是否会确保当 MDB 忙于处理 CMT/必需事务中的消息时,没有其他 MDB 实例会收到相同消息的欺骗?
servlets - 从远程 jboss 服务器(servlet)调用 EJB 方法
案例 1:我在一个 jboss 服务器和另一个 jboss 服务器中的 ejb jar 中发生战争。我想从另一个服务器中的 servlet 调用我的 ejb。怎么称呼。任何人都可以帮助我提供工作样本和所需的配置。
案例 2:我的事务 jboss 服务器中的消息驱动 Bean(MDB)和另一个 jboss 服务器中的业务方法。如何从我的事务服务器调用我的业务方法。
请帮我解决这个问题
提前致谢
jakarta-ee - MDB 和持久性
为了使持久性有意义,如果部署 MDB 的应用服务器与 JMS 提供程序(服务器)分离,那么如果应用服务器关闭并稍后重新启动,则可以向 MDB 发送它拥有的消息应用服务器关闭时错过了?
timeout - MDB 事务在超时时不回滚电子邮件
我有一个侦听队列的 MDB。每当它收到一条消息时,它都会将执行转发到一个有很多逻辑、更新等的无状态会话 bean。这是逻辑/调用链的流程。
队列->mdb->会话bean->会话bean->电子邮件->日志
最终结果是一封电子邮件和随后的日志记录。
默认情况下,MDB 事务由容器管理,超时时间为 30 秒。
但是,只要达到超时,它就会抛出超时异常并重试消息,但嵌套事务及其进程不会回滚(从会话 bean)。结果,由于重试,多封电子邮件发出,但所有日志记录都回滚(从会话 bean)除了从 MDB 本身记录的内容
不应该从 MDB 回滚中调用所有事务,包括 mdb 日志记录,尤其是电子邮件?
会话 bean 都具有默认事务类型为“必需”。
我还明确地将 TransactionManagement 类型设置为 CONTAINER,并将 TransactionType 设置为 REQUIRED。电子邮件仍然出去。从会话 bean 回滚记录但发生重试。
然后我将 TransactionType 设置为 REQUIRES_NEW。电子邮件仍然出去。从会话 bean 回滚但重试不会发生日志记录。
我应该设置什么设置来确保由 MDB 启动的整个事务以及从中调用的任何事务都回滚并重试?
我不想使用 bean 托管事务,因为我希望重试失败。
我的应用程序服务器是带有 ejb 3 规范的 weblogic 10.3。
jboss - 实现 Hornetq
我需要弄清楚在我们的系统中实现 JMS 的正确方法。
目前我们有两个负载平衡的 JBoss 服务器用于最终用户事务目的,我们正在扩展基于事务中各种事件的通知功能。为了使其正常工作,决定使用以下方法,hornetQ 将嵌入事务 Jboss 服务器中,MDB 将附加在同一 JBoss 服务器中进行侦听并调用另一个 JBoss 服务器,该服务器将具有一些业务代码来对要发送的用户进行分类,最后该服务器将使用适当的用户调用 XMPP 服务器。
我的疑问是,在事务 JBoss 服务器中部署 MDB(事件使用者)是一种好方法,或者将 MDB 移动到专用于通知目的的 JBoss 服务器。请提出一些想法以获得更好的方法。
问候, 维拉姆
jms - JMS and JTA Transactions in Java EE
I think I am not getting something right with JMS and JTA. I am running in a Java EE container with all CMTs. Here is what I am doing:
- In an SLSB, write something to the database
- From the same method of the SLSB, post a message to a JMS queue
- An MDB in the same container listens to the JMS queue and picks up the message
- The MDB reads the database
The problem is, the MDB does not see the changes made to the database in step 1.
I verified that steps 1 and 2 happen inside a single XA transaction, as expected. My expectation is that a second XA transaction would start at step 3, after the first XA has been committed. But it seems that the MDB receives the message before the XA transaction that posted the message has been committed.
Is my expectation wrong and what I am seeing is normal?
I am running under JBoss 6. The SLSB is local. Both the SLSB and the MDB are in the same application.
java - 将 EJB Jar 部署到 Glassfish 时出现异常
这是我第一次尝试使用 JMS。我成功创建/部署了一个包含可用于上传文件的 servlet 的 war 文件。上传文件时,它会向 JMS 队列发送一条消息。接下来我写了一个监听器来从队列中检索上传的消息,但是当我尝试部署它时,我得到了这个错误:
这是一个非常简单的项目,只有一个类,使用 Maven 构建。该类如下所示:
我的 pom.xml 看起来像这样:
这会构建一个 jar 文件,当我尝试部署到 Glassfish 3.1 服务器(通过管理控制台)时会导致上述错误。
由于我的课堂上有 @MessageDriven 注释,我不确定我做错了什么。不幸的是,server.log 文件不包含有关该错误的更多详细信息。
我应该将罐子包装在耳朵中并部署它吗?
----------编辑----------
我创建了一个包含 ejb jar 的耳朵,当我将耳朵部署到 Glassfish 时,我得到了同样的错误。所以,我认为这一定与注释有关。但是,我查看了多个示例/教程,但看不出有什么问题。
任何见解/建议都将受到欢迎!
----------编辑两个----------
MANIFEST.MF 文件的内容:
application.xml 的内容:
----------编辑三----------
ejb-jar 文件内容:
jakarta-ee - Glassfish v3:无法部署 MessageDriven Bean - 缺少目标 JNDI 名称
我正在尝试部署一个包含 EJB jar 的耳朵。jar 只包含一个 MDB 类:
使用 Glassfish 3.1.1 (build 12) 管理控制台,我设置了以下内容:
资源 -> JMS 资源 -> 连接工厂:
资源 -> JMS 资源 -> JMS 目标资源:
配置 -> 服务器配置 -> Java 消息服务:
当我尝试部署包含 EJB jar 的 ear 时,我收到此错误:
我错过了一些 Glassfish 配置吗?