2012-03-21 30 views
1

どのようにJMSセッションのタイムアウトを処理する方法を説明することができます。私のアプリケーションでは、いつかHornetqがうまく動作してから、(JMSセッションタイムアウト)エラーが発生します。 公共HornetQProducer(){HornetQを使用してJMSセッションタイムアウトを処理する方法は?

try { 
     ic = getInitialContext(); 

     cf = (ConnectionFactory) ic.lookup("/ConnectionFactory"); 
     queue = new HornetQQueue("ExampleQueue"); 
     connection = cf.createConnection(); 
     logger.info("Connection object of HornetQ <<<>>>>>>>" + connection); 
     session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 
     messageProducer = session.createProducer(queue); 
     connection.start(); 
     logger.info("Message Producer HornetQ....." + messageProducer); 
    } catch (NamingException e) { 
     e.printStackTrace(); 
    } catch (JMSException e) { 
     e.printStackTrace(); 

    } 
} 

おかげ

+0

例外が発生したときは?スタックトレースを投稿してください。あなたは耐久性のあるセッションを使用していますか?それはメッセージの受信時または送信時に発生しますか? – AlexR

+0

例外がタイムアウトしたときにlistnerクラスを使用しています。 –

+0

スタックトレースを送信します。それなしであなたを助けるのは難しいです。 – AlexR

答えて

1

このようなHornetQの設定ファイルで接続ファクトリを設定してみてください。

<connection-factory name="NettyConnectionFactory"> 
    <xa>false</xa> 
    <connectors> 
    <connector-ref connector-name="netty"/> 
    </connectors> 
    <entries> 
    <entry name="/ConnectionFactory"/> 
    </entries> 
    <retry-interval>1000</retry-interval> 
    <retry-interval-multiplier>1.0</retry-interval-multiplier> 
    <reconnect-attempts>1</reconnect-attempts> 
</connection-factory> 

JMSタイムアウトを処理するには、JMSExceptionを処理してください。

+2

問題を解決する_why_を説明してください。 – fuxia

関連する問題