Mule ESB策略处理Socket读取超时异常

时间:2013-12-17 13:24:30

标签: mule

处理IO异常引起的异常的最佳方法是什么。我有一个jms端点,它侦听队列中的消息。我意识到我的错误处理程序没有处理由于套接字超时错误而无法访问消息队列而导致的错误。 我尝试创建一个defaultsystemexception策略,但这不适用于mule 3.4。 异常跟踪如下

ERROR 2013-12-17 17:39:52,419 [Thread-2]  org.mule.exception.DefaultSystemExceptionStrategy: 
********************************************************************************
Message               : java.sql.SQLException: Io exception: Socket read timed out (javax.jms.JMSException)
Code                  : MULE_ERROR--2
--------------------------------------------------------------------------------
Exception stack is:
1. java.sql.SQLException: Io exception: Socket read timed out(JMS Code: null) (javax.jms.JMSException)
oracle.jms.AQjmsExceptionListener:222 (http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/jms/JMSException.html)
2. java.sql.SQLException: Io exception: Socket read timed out (javax.jms.JMSException) (org.mule.transport.ConnectException)
org.mule.transport.jms.JmsConnector:508 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/transport/ConnectException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
javax.jms.JMSException: java.sql.SQLException: Io exception: Socket read timed out
at oracle.jms.AQjmsExceptionListener.run(AQjmsExceptionListener.java:222)
+ 1 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************

请建议。

问候 桑托什

1 个答案:

答案 0 :(得分:0)

根据问题中提供的信息,以下解决方案应该有所帮助

<choice-exception-strategy>
        <catch-exception-strategy when="#[exception.causedBy(javax.jms.JMSException)]">
            ........  Processing of the Message.
            ....................
        </catch-exception-strategy> 
</choice-exception-strategy>

希望这有帮助。