【问题标题】:setting polling frequency for jms queue in mule在 mule 中设置 jms 队列的轮询频率
【发布时间】:2013-04-20 23:57:19
【问题描述】:

我有一个要求,我想每 5 分钟轮询一次 JMS 队列并使用 jms 队列中的所有消息。我正在尝试在 mule 中执行以下操作:

        <jms:inbound-endpoint queue="jmsqueue" exchange-pattern="one-way" >
             <properties>
                  <spring:entry key="pollingFrequency" value="100000" />
             </properties>
        </jms:inbound-endpoint>

上面的代码可以工作,但是它忽略了 pollingFrequency 属性。

谁能帮我在 Mule 中设置 JMS 队列的轮询频率?

上述问题已解决。但是通过我的修复,我遇到了以下异常:

WARN  2013-05-01 15:04:05,268 [jmsConnector.receiver.14] com.mulesoft.mule.transport.jms.TransactedPollingJmsMessageReceiver: Error in TX notification handler.
javax.jms.IllegalStateException: The session is closed.
    at progress.message.jimpl.Session.getJMSObjectClosedException(Session.java:3341)
    at progress.message.jimpl.Session.commit(Session.java:1022)
    at progress.message.jimpl.Session.commit(Session.java:1008)
    at progress.message.jimpl.Session.commit(Session.java:969)
    at com.mulesoft.mule.transport.jms.TransactedPollingJmsMessageReceiver$2.onNotification(TransactedPollingJmsMessageReceiver.java:314)
    at com.mulesoft.mule.transport.jms.TransactedPollingJmsMessageReceiver$2.onNotification(TransactedPollingJmsMessageReceiver.java:298)
    at org.mule.context.notification.Sender.dispatch(Sender.java:40)
    at org.mule.context.notification.Policy.dispatch(Policy.java:122)
    at org.mule.context.notification.ServerNotificationManager.notifyListeners(ServerNotificationManager.java:249)
    at org.mule.context.notification.ServerNotificationManager.fireNotification(ServerNotificationManager.java:200)
    at org.mule.DefaultMuleContext.fireNotification(DefaultMuleContext.java:435)
    at org.mule.transaction.AbstractTransaction.fireNotification(AbstractTransaction.java:144)
    at org.mule.transaction.AbstractTransaction.commit(AbstractTransaction.java:83)
    at org.mule.transaction.AbstractSingleResourceTransaction.commit(AbstractSingleResourceTransaction.java:79)
    at org.mule.transaction.TransactionCoordination.resolveTransaction(TransactionCoordination.java:222)
    at org.mule.execution.BeginAndResolveTransactionInterceptor.resolveTransactionIfRequired(BeginAndResolveTransactionInterceptor.java:77)
    at org.mule.execution.BeginAndResolveTransactionInterceptor.execute(BeginAndResolveTransactionInterceptor.java:59)
    at org.mule.execution.ResolvePreviousTransactionInterceptor.execute(ResolvePreviousTransactionInterceptor.java:48)
    at org.mule.execution.SuspendXaTransactionInterceptor.execute(SuspendXaTransactionInterceptor.java:54)
    at org.mule.execution.ValidateTransactionalStateInterceptor.execute(ValidateTransactionalStateInterceptor.java:44)
    at org.mule.execution.IsolateCurrentTransactionInterceptor.execute(IsolateCurrentTransactionInterceptor.java:44)
    at org.mule.execution.ExternalTransactionInterceptor.execute(ExternalTransactionInterceptor.java:52)
    at org.mule.execution.RethrowExceptionInterceptor.execute(RethrowExceptionInterceptor.java:32)
    at org.mule.execution.RethrowExceptionInterceptor.execute(RethrowExceptionInterceptor.java:17)
    at org.mule.execution.TransactionalErrorHandlingExecutionTemplate.execute(TransactionalErrorHandlingExecutionTemplate.java:113)
    at org.mule.execution.TransactionalErrorHandlingExecutionTemplate.execute(TransactionalErrorHandlingExecutionTemplate.java:34)
    at com.mulesoft.mule.transport.jms.TransactedPollingJmsMessageReceiver.poll(TransactedPollingJmsMessageReceiver.java:110)
    at org.mule.transport.AbstractPollingMessageReceiver.performPoll(AbstractPollingMessageReceiver.java:219)
    at org.mule.transport.PollingReceiverWorker.poll(PollingReceiverWorker.java:84)
    at org.mule.transport.PollingReceiverWorker.run(PollingReceiverWorker.java:53)
    at org.mule.work.WorkerContext.run(WorkerContext.java:311)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

请帮我解决这个问题。

谢谢, 库马尔

【问题讨论】:

  • 您是与 XaTransactedJmsMessageReceiver 还是与 JBoss 一起使用它?
  • 我使用 TransactedPollingJmsMessageReceiver 如下:
  • 我解决了上述问题。我错过了一个 JMS 事务声明。 现在我面临其他问题:WARN 2013-05-01 11:02:57,044 [jmsConnector.receiver.72] org.mule.transport.jms.JmsConnector: Jms connection failed to正确停止:javax.jms.IllegalStateException:连接已关闭。在progress.message.jimpl.Connection.getJMSObjectClosedException(Connection.java:2328)。帮我解决这个问题

标签: mule


【解决方案1】:

您是否尝试过增加响应超时

如果您的连接丢失,您还可以配置重新连接策略

【讨论】:

    猜你喜欢
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    相关资源
    最近更新 更多