我有一个带有MQ队列和Liberty应用程序的安装程序,该应用程序从MQ接收消息并将消息放入数据库中。
经过随机数条消息后,我得到了超时异常(请参阅下文),当发生这种情况时,线程似乎正在使用100%CPU挂起,发生的次数越多,服务器上的负载就越高。有什么建议吗?
com.ibm.tx.jta.embeddable.impl.EmbeddableTimeoutManager I WTRN0124I:发生超时时,与事务相关或最近关联的线程是Thread [Default Executor-thread-37,5,Default执行程序线程组]。发生超时时此线程的堆栈跟踪为:com.ibm.mq.jmqi.remote.impl.RemoteSession.receiveOneTSH(RemoteSession.java:884)com.ibm.mq.jmqi.remote.impl.RemoteSession.receive1stGetReplyTSH( RemoteSession.java:1509)com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiGetMessageWithProps(RemoteFAP.java:9820)com.ibm.mq.jmqi.remote.api.RemoteFAP.MQGET(RemoteFAP.java:9511) com.ibm.mq.ese.jmqi.InterceptedJmqiImpl.MQGET(InterceptedJmqiImpl.java:1213)com.ibm.mq.ese.jmqi.ESEJMQI.MQGET(ESEJMQI.java:430)com.ibm.msg.client.wmq。 compat.base.internal.MQSESSION.MQGET(MQSESSION.java:975)com.ibm.msg.client.wmq.compat.base.internal.MQQueue.getMsg2Int(MQQueue.java:1355)com.ibm.msg.client wmq.compat.base.internal.MQQueue.getMsg2NoExc(MQQueue.java:1445)com.ibm.msg.client.wmq.compat.jms.internal.MQSession.consume(MQSession.java:1865)com.ibm.msg client.wmq.compat.jms.internal.MQSession.loadMessageReference(MQSession.java:4224)com.ibm.msg.client.jms.internal.JmsSessionImpl.consume(JmsSessionImpl.j ava:3639)com.ibm.msg.client.jms.internal.JmsSessionImpl.run(JmsSessionImpl.java:3227)com.ibm.mq.jms.MQSession.run(MQSession.java:937)com.ibm.mq. connector.inbound.ASFWorkImpl.doDelivery(ASFWorkImpl.java:110)com.ibm.mq.connector.inbound.AbstractWorkImpl.run(AbstractWorkImpl.java:229)com.ibm.ws.jca.inbound.security.JCASecurityContextService.runInInboundSecurityContext( JCASecurityContextService.java:49)com.ibm.ws.jca.internal.WorkProxy.run(WorkProxy.java:354)com.ibm.ws.context.service.serializable.ContextualRunnable.run(ContextualRunnable.java:79)com。 ibm.ws.jca.internal.WorkProxy.call(WorkProxy.java:285)com.ibm.ws.jca.internal.WorkProxy.call(WorkProxy.java:58)java.util.concurrent.FutureTask.run(FutureTask。 java:277)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160)java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:635)java.lang.Thread.run(Thread.java: 811)