3
ActiveMQ接続からセッションオブジェクトを作成するときにタイムアウトを設定する方法はありますか?ActiveMQ createSession timeout
次のように私はルックスを使用しているコード:
ConnectionFactory factory = Settings.getJmsConnectionFactory(ip);
connection = factory.createConnection();
// insert timeout here
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic(Settings.Topic);
MessageConsumer consumer = session.createConsumer(topic);
consumer.setMessageListener(this);
connection.start();
これは限りメッセージサーバがすでに起動されて正常に動作します。それ以外の場合は、createSession呼び出しがブロックされます。アプリケーションをブロックするのを避けるために別のスレッドで実行することもできましたが、それを行うための「クリーン」な方法があるかどうかを尋ねると思いました。
乾杯、 マックス
createConnectionは正常に動作します。 – Max
私は数年前からActiveMQを使ってきましたが、このようなことは一度もありませんでした。それは常にcreateConnection()で失敗するか、それ以外の場合はすべて接続されます。ブローカーと同じJVMで何かをやっていて、何とかそれが失速するかもしれませんか? –
私は、永久に再接続しようとするフェールオーバーと同じ問題がありました。無限ループを防ぐために、私たちのアクティブなmqサービスURLの終わりにquery文字列としてtransport.startupMaxReconnectAttempts = 6(または何でも選択してください)を追加しました。今それは適切に失敗します。 – lcrepas