2013-05-02 8 views
1

Я использую JMS-опрос для опроса очереди JMS каждые 5 минут с использованием кода ниже. В приведенном ниже коде я установил частоту опроса до 1 минуты для тестирования. Опрос работает нормально, но в журналах он исключается из-за исключения. Я не могу понять, почему так происходит. Пытался поиграть, изменив некоторые настройки, но не мог понять.Ошибка при использовании JMS Transaction - javax.jms.IllegalStateException: сеанс закрыт

Пожалуйста, помогите мне решить эту проблему.

<jms:connector name="jmsConnector" jndiInitialFactory="${jndi.initialFactoryClass}" connectionFactoryJndiName="${jndi.connectionFactoryName}" 
     jndiProviderUrl="${jms.brokerURL}" username="${jms.username}" password="${jms.password}" persistentDelivery="true" maxRedelivery="2" 
     numberOfConcurrentTransactedReceivers="5" disableTemporaryReplyToDestinations="true" specification="1.1" /> 

<service-overrides transactedMessageReceiver="com.mulesoft.mule.transport.jms.TransactedPollingJmsMessageReceiver"/> 

<jms:inbound-endpoint queue="${JMS_QUEUE}" exchange-pattern="one-way"> 
    <jms:transaction action="ALWAYS_BEGIN"/> 
    <properties> 
     <spring:entry key="pollingFrequency" value="60000" /> 
    </properties> 
</jms:inbound-endpoint> 

опрос работает нормально, но он бросает ниже исключения в журналах:

WARN 2013-05-02 10:33:05,072 [jmsConnector.receiver.03] 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.rollback(Session.java:1499) 
    at com.mulesoft.mule.transport.jms.TransactedPollingJmsMessageReceiver$2.onNotification(TransactedPollingJmsMessageReceiver.java:323) 
    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.rollback(AbstractTransaction.java:98) 
    at org.mule.transaction.AbstractSingleResourceTransaction.rollback(AbstractSingleResourceTransaction.java:85) 
    at org.mule.transaction.TransactionCoordination.resolveTransaction(TransactionCoordination.java:214) 
    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) 

Пожалуйста, помогите мне, глядя в этот вопрос.

Виджай

ответ

1

Это предупреждение не ошибка: хоть немного страшно, это не ошибка, насколько Mule обеспокоен. Возможно, JMS-клиент Progress немного хулиган и не ведет себя так же, как другие JMS-клиенты, но снова Mule не сообщает об ошибке, поэтому он не должен влиять на ваше приложение.

Я предлагаю вам открыть JIRA в любом случае, чтобы MuleSoft мог изучить проблему и, возможно, добавить поддержку для этого конкретного JMS-клиента.

+0

Спасибо, Дэвид. Я открою билет JIRA для этой проблемы. – user2324686

+0

Прохладный, пожалуйста, разместите номер JIRA, чтобы мы могли следить за ним. –