在 jboss 7.1 中配置 MDB 和 MQ 时面临的问题
Posted
技术标签:
【中文标题】在 jboss 7.1 中配置 MDB 和 MQ 时面临的问题【英文标题】:Facing issue while Configuring MDB and MQ in jboss 7.1 【发布时间】:2019-07-05 07:07:41 【问题描述】:我之前使用的是 jboss 6.4,现在我正在迁移到 jboss 7.1 和 MQ 8,我们已经使用 jboss-ejb3.xml 来配置 MDB 和 MQ,但是在迁移到 jboss 7.1 之后,我收到以下错误,请有人帮忙我来解决这个问题
2019-02-11 12:13:03,739 INFO [org.apache.activemq.artemis.ra] AMQ151004: Instantiating null "TRANS.CMUPT.REQ.MCOF" directly since UseJNDI=false.
2019-02-11 12:13:05,614 INFO [org.jboss.as.connector.deployers.RaXmlDeployer] wmq.jmsra.rar: MQJCA4004:Message delivery to an MDB 'null' failed with exception: 'Could not initialize class com.ge.trans.mcs.msgejb.ejb.imr.mdb.InBoundMessageMDB$$$endpoint4'.
2019-02-11 12:13:05,762 INFO [org.apache.activemq.artemis.ra] AMQ151004: Instantiating null "TRANS.CMUPT.REQ.MCOF" directly since UseJNDI=false.
2019-02-11 12:13:07,785 INFO [org.apache.activemq.artemis.ra] AMQ151004: Instantiating null "TRANS.CMUPT.REQ.MCOF" directly since UseJNDI=false.
2019-02-11 12:13:09,815 INFO [org.apache.activemq.artemis.ra] AMQ151004: Instantiating null "TRANS.CMUPT.REQ.MCOF" directly since UseJNDI=false.
2019-02-11 12:13:11,836 INFO [org.apache.activemq.artemis.ra] AMQ151004: Instantiating null "TRANS.CMUPT.REQ.MCOF" directly since UseJNDI=false.
2019-02-11 12:13:13,854 INFO [org.apache.activemq.artemis.ra] AMQ151004: Instantiating null "TRANS.CMUPT.REQ.MCOF" directly since UseJNDI=false.
2019-02-11 12:13:15,605 INFO [org.jboss.as.connector.deployers.RaXmlDeployer] wmq.jmsra.rar: MQJCA4004:Message delivery to an MDB 'null' failed with exception: 'Could n
新日志
看到流动的问题
2019-02-12 12:37:17,736 INFO [org.jboss.as.connector.deployers.RaXmlDeployer] wmq.jmsra.rar: : com.ibm.msg.client.commonservices.workqueue.WorkQueueItem.run(WorkQueueItem.java:338)
2019-02-12 12:37:17,736 INFO [org.jboss.as.connector.deployers.RaXmlDeployer] wmq.jmsra.rar: : com.ibm.msg.client.commonservices.workqueue.WorkQueueManager.runWorkQueueItem(WorkQueueManager.java:312)
2019-02-12 12:37:17,736 INFO [org.jboss.as.connector.deployers.RaXmlDeployer] wmq.jmsra.rar: : com.ibm.msg.client.commonservices.j2se.workqueue.WorkQueueManagerImplementation$ThreadPoolWorker.run(WorkQueueManagerImplementation.java:1227)
2019-02-12 12:37:17,736 INFO [org.jboss.as.connector.deployers.RaXmlDeployer] wmq.jmsra.rar: Caused by [1] --> Message : com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2053' ('MQRC_Q_FULL').
2019-02-12 12:37:17,736 INFO [org.jboss.as.connector.deployers.RaXmlDeployer] wmq.jmsra.rar: Class : class com.ibm.mq.MQException
2019-02-12 12:37:17,736 INFO [org.jboss.as.connector.deployers.RaXmlDeployer] wmq.jmsra.rar: Stack : com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:203)
2019-02-12 12:37:17,736 INFO [org.jboss.as.connector.deployers.RaXmlDeployer] wmq.jmsra.rar: : com.ibm.msg.client.wmq.internal.WMQPoison.checkJmqiCallSuccess(WMQPoison.java:1423)
2019-02-12 12:37:17,736 INFO [org.jboss.as.connector.deployers.RaXmlDeployer] wmq.jmsra.rar: : com.ibm.msg.client.wmq.internal.WMQPoison.put(WMQPoison.java:984)
2019-02-12 12:37:17,736 INFO [org.jboss.as.connector.deployers.RaXmlDeployer] wmq.jmsra.rar: : com.ibm.msg.client.wmq.internal.WMQPoison.deadletter(WMQPoison.java:894)
这是我现在看到的唯一错误,请帮助我解决此问题。
01:25:55,618 INFO [org.jboss.as.connector.deployers.RaXmlDeployer] (default-threads - 2) wmq.jmsra.rar: MQJCA4004:Message delivery to an MDB 'null' failed with exception: 'Could not initialize class com.ge.trans.mcs.msgejb.ejb.alerter.mdb.AlerterMDB$$$endpoint8'.
【问题讨论】:
您能否编辑您的问题并包括最后一个日志条目的其余部分,它似乎在failed with exception: 'Could n
处被切断。不要让我们停留在输出中似乎实际引用 IBM MQ 的唯一一行。
看起来您的 MDB 出现某种类路径错误:com.ge.trans.mcs.msgejb.ejb.imr.mdb.InBoundMessageMDB 该错误表明它无法创建“endpoint4”子类.
当您编辑问题时,请注意我如何格式化您的错误以提高可读性。最简单的方法是将三个反引号 ```
放在错误上方和下方的一行上,这会将行之间的所有文本格式化为固定字体。
答案是否能帮助您解决问题?
【参考方案1】:
reason '2053' ('MQRC_Q_FULL')
只是听起来的意思,你放入的目标队列已满,这意味着它已达到MAXDEPTH
的消息数。
Could not initialize class com.ge.trans.mcs.msgejb.ejb.alerter.mdb.AlerterMDB$$$endpoint8
在 Tim McCormick 的评论中,他陈述了以下内容:
看起来您的 MDB 存在某种类路径错误:com.ge.trans.mcs.msgejb.ejb.imr.mdb.InBoundMessageMDB 该错误表明它无法创建“endpoint4”子类。
确保 endpoint4 子类在您的类路径中。
【讨论】:
即使在清除 Q 之后我仍然有流动问题```2019-02-12 12:56:45,686 INFO [org.jboss.as.connector.deployers.RaXmlDeployer] wmq.jmsra.rar: MQJCA4004:向 MDB“null”的消息传递失败,出现异常:“无法初始化类 com.ge.trans.mcs.msgejb.ejb.omr.mdb.OutBoundMessageMDB$$$endpoint3”。 2019-02-12 12:56:45,687 INFO [org.jboss.as.connector.deployers.RaXmlDeployer] wmq.jmsra.rar:MQJCA4004:消息传递到 MDB 'null' 失败,异常:'无法初始化类 com .ge.trans.mcs.msgejb.ejb.autoretryer.mdb.AutoRetryerMDB$$$endpoint12'。 这是一个不同的错误,看起来像你第一次发布的错误。我的回答与 2053 年特别相关。 您应该始终编辑您的问题以发布错误日志,cmets 不会格式化内容并使其难以阅读。较早的错误看起来像 Tim 对类路径错误的评论。 ``` 01:25:55,618 INFO [org.jboss.as.connector.deployers.RaXmlDeployer] (default-threads - 2) wmq.jmsra.rar: MQJCA4004: 消息传递到 MDB 'null' 失败并出现异常:'Could not initialize class com.ge.trans.mcs.msgejb.ejb.alerter.mdb.AlerterMDB$$$endpoint8'.``` 抱歉没有编辑我现在得到的唯一错误.以上是关于在 jboss 7.1 中配置 MDB 和 MQ 时面临的问题的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JBoss 5 中订购 EJB 和 JMS 队列配置的部署?