STOMPプロトコルを介していくつかのActiveMQトピックとキューに接続するiOSクライアントがあります。サーバーに接続すると、次のメッセージが送信されます。
2012-10-30 10:19:29,757 [MQ NIO Worker 2] TRACE StompIO
CONNECT
passcode:*****
login:system
2012-10-30 10:19:29,758 [MQ NIO Worker 2] DEBUG ProtocolConverter
2012-10-30 10:19:29,775 [MQ NIO Worker 2] TRACE StompIO
CONNECTED
heart-beat:0,0
session:ID:mbp.local-0123456789
server:ActiveMQ/5.6.0
version:1.0
次に、次のメッセージを使用していくつかのトピックをサブスクライブします。
2012-10-30 10:19:31,028 [MQ NIO Worker 2] TRACE StompIO
SUBSCRIBE
activemq.subscriptionName:user@mail.com-/topic/SPOT.SPOTCODE
activemq.prefetchSize:1
activemq.dispatchAsync:true
destination:/topic/SPOT.SPOTCODE
client-id:1234
activemq.retroactive:true
ActiveMQサーバーで2つの問題に直面しています。接続するたびにNumber of Consumers
、Webインターフェイスの列がインクリメントされるため、実際のコンシューマーは1つだけですが、コンシューマーの数は約50です。しかし、最も問題のある問題は、メッセージング環境をテストするために別のiOSデバイスをラップトップに接続すると、ActiveMQに接続するときに次のエラーが発生することです。
WARN | Async error occurred: javax.jms.JMSException: Durable consumer is in use for client: ID:mbp.local-0123456789 and subscriptionName: user@mail.com-/topic/SPOT.SPOTCODE
これは、他のデバイスがアプリを実行していないときにこのロギングの試行が行われるため、STOMPを介したActiveMQからの切断が適切に機能していないようです。この問題を解決するために、次のことを試しました。
- トピックをサブスクライブしようとするときは、常にログオフしてください。
- 申し込む
現在、ラップトップでサーバーを実行しているv5.6.0を使用しています。