问题标签 [jboss-mdb]
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 - Jboss 5.1 ActiveMQ 5 独立代理 MDB 设置
我正在尝试将 ActiveMQ 5 附带的示例代理与部署在 JBoss 5.1 AS 上的 MDB 一起使用。
我已将 activemq rar 部署到部署目录。我已经部署了 activemq-jms-ds.xml 来部署/消息传递,它定义了我的连接工厂。我让代理在 localhost:61616 上运行,如 connectionfactory 配置中所定义。
但是当我尝试将我的 MDB 部署到 jboss 时,我得到了这个错误。
我现在真的打算使用标准代理,因为我不想定义客户端来将消息放入队列。我更喜欢使用示例代理附带的 Web 控制台。有什么我错过的,因为我似乎无法弄清楚什么是错的。
注意:我已经尝试过ActiveMQ Jboss 设置指南,但我担心它对于 ActiveMQ 4 来说已经过时了。
jboss - JBoss 消息传递和线程优先级
我将 JBoss 5.1.0 GA 与 JMS 一起使用。
我有两个消息驱动的 bean。
有人可以向我解释线程模型吗?例如,每个 MDB 是否有单独的线程池?他们共享一个全球池吗?
deployment - jBoss部署消息驱动bean规范违规
我有一个 java EE 应用程序,它有一个消息驱动 bean,它在 JBoss 4 上运行良好,但是当我为 JBoss 6 配置项目并在其上部署时,我收到此错误;
但是我的 bean 有 onMessage 方法!那时它也不会在 jboss 4 上工作。
为什么我会收到这个错误!?
编辑:
有问题的课程看起来像这样
编辑 2: 这是 jboss.xml 相关部分
编辑3:
我刚刚从项目中删除了我所有的 jar,并且只重新添加了相关的(也来自新版本)以消除 NoClassDefFound 错误。问题仍然存在。
编辑: 任何方向,我应该看哪个区域?我的项目,或 jboss-configration,或部署设置?
jboss - JBoss MDB - JMSBytesMessage 类转换异常
我正在研究一个 EJB3 MDB,它侦听远程服务器中的 MQ 队列。除了由 MDB 完成的处理外,一切工作正常(当将消息放入侦听队列时触发 MDB)。有关信息,我使用 WMQ 资源适配器来映射队列。
在 MDB 的方法“onMessage”中,我尝试将给定消息转换为“com.ibm.jms.JMSBytesMessage”类,但我收到一条奇怪的错误消息。
代码如下(示例简单):
和异常消息:
读取输入请求时出现异常:com.ibm.jms.JMSBytesMessage 与 com.ibm.jms.JMSBytesMessage 不兼容
好的,收到的消息应该(并且是)类型“com.ibm.jms.JMSBytesMessage”,那么为什么应用程序不起作用?我的 JBoss 服务器是否可能已经使用了另一个版本的库“com.ibm.mqjms.jar”(包括 JMSBytesMessage 类)并导致这种错误?
ps:我已经在linux系统下的JBoss服务器4.2.3版本上部署了应用程序。我已经使用相同版本的 JBoss 服务器但在窗口系统下(相同的配置、相同的库等)使应用程序在我的本地机器上运行
有人知道这种错误的原因吗?
提前感谢您的帮助。
问候,
编辑:解决方案:使用 javax.jms.BytesMessage 而不是 com.ibm.jms.JMSBytesMessage 进行强制转换
jboss - 在哪里配置 org.jboss.ejb3.mdb.MdbDelegateWrapper
我需要将 MDB 的池大小减少到 5,因为它连接到在连接方面受到限制的外部资源。如果我的 JMS 队列中有 15 条消息,那么由于 MDB 代码中发生连接错误,因此只有 5 条消息被成功处理,而其他 10 条则为腰部。
我在 Jboss JMX 控制台中展示了这个设置:
我正在使用 Jboss 4.2.3。我需要知道在哪里可以编辑这个 MaxPoolSize 配置。我到处搜索,但没有找到。
谢谢
jakarta-ee - JMS 消息重新传递到队列
我在我的应用程序中使用 Jboss MQ。
我正在尝试处理重新传递到 JMS 队列的消息。有没有办法可以在消费者收到的原始消息中设置一些值(我第一次收到消息),这样每当重新传递消息时,我就可以读取值并做出一些决定。
如果问题不清楚,请告诉我,我可以尝试详细解释。
jms - 不同 JVM 上的 JMS 使用者
我的应用程序将消息放入 JMS 队列中。实现 MDB 和 MessageListener 的 bean 从这个队列中弹出消息。所有这些都发生在单个 JVM 上。
我想要做的是:我希望 MDB 和其他将从池中获取的用于并发处理的实例在不同的 JVM 上运行。我该怎么做?我使用的应用服务器是 JBOSS 4.0.5.GA。
提前致谢。
jms - 使用 EJB 3 和 JBoss AS 6 部署 MDB
我是 EJB 3 的新手,我想在 JBoss AS 6 上部署为使用 MDB 的简单 EAR。但是,当我部署耳朵时,会发生以下异常:
我的代码如下:
我的 *-hornetq-jms.xml 如下:
感谢您对解决我的问题的任何帮助。提前致谢
jboss - 在 JBoss 6.0 中延迟启动 JMS 侦听器 (MDB)
我们在集群环境中有多个 JBoss-Server 实例。对于后台任务,有一个可用的全局队列,用于管理在其中注册的所有作业。对于这个队列,每个节点上都有一个简单的侦听器 (MDB),用于管理传入的消息。此侦听器对单例 bean 进行手动查找(无注入)并启动预定义的方法。到目前为止一切正常,但是单例 bean 中的方法使用了在某些情况下不可用的其他一些(无单例服务)。例如,如果一个节点将被重新启动并且队列中有剩余的消息(尚未处理),则消息将被侦听器拾取并且所有进一步的 bean 都为空,因此该作业会产生 NPE。是否可以在接收消息后在 JMS-Listener 中定义延迟时间,或者是否可以定义“
一种可能是将 MDB 属性“DeliveryActive”设置为 false 并在完全部署后启动 bean。是否有一种简单的工作方式以编程方式执行此操作(不在 jmx-console 中)?我找到的任何手册都会将我重定向到手动 jndi 查找。我认为必须可以为每个注释注入 Bean 并调用 startDelivery()?在应用程序中是否有这样做的好地方?
另一个提示将我带到 application.xml 中的 order 属性的初始化,因为问题可能与 JBoss 部署顺序有关(某些 EJB 将比侦听器更晚可用),但JBoss 6.0 中似乎存在错误并升级到6.1。不是一种选择。也许有一个演练?
我希望问题得到充分解释,否则请询问更多信息。
在此先感谢,丹尼
附加信息:
- JBoss 6.0.0 最终版
- HornetQ 2.2.5 Final(已经更新,因为 JBoss 的默认版本有问题)
聆听者:
样本工人:
在这种情况下,sampleEjb - 成员有时会为空
mysql - 在 JBoss 5.1 的 MDB (ActiveMQ) 中捕获 MySQL 死锁
我们正在使用由 ActiveMQ RAR 支持的带有 MDB 的 JBoss 5.1。
当队列上的消息被消耗并执行一些数据库操作,然后导致死锁时,死锁本质上是占用整个 JBoss 实例,直到它重新启动。通过软管,该队列上消耗的任何后续消息都会失败,并出现以下异常:
死锁异常从不引用我的代码,这反过来又让我很难捕捉和处理。
例如,这里是一个死锁异常的异常:
我可以捕获后续错误(队列中后续消息的错误):
引起:javax.persistence.PersistenceException:org.hibernate.exception.GenericJDBCException:无法打开连接
但我什至不知道该怎么处理它,也许我可以得到一个没有被冲洗的新 EntityManager,但我是通过注入开始的......我知道解决这个错误的唯一方法是重新开始。
我假设最初的死锁是作为结束队列中事务的一部分发生的,这就是为什么它没有在我的代码中发生,但是有什么方法可以优雅地处理这个问题吗?
更新:
- 所有数据源都是 MySQL XA
- 在 transaction-jboss-beans.xml 中,我们将 transactionTimeout 设置为 300