ActiveMQ-cpp (ライブラリ バージョン 3.8.2) と相互接続されたスレッド化されたデータ プーリング システムを開発しています。システムは定期的にプールできるデバイスのグループを管理し、ポーリング結果はブローカーのキューに送信されます。応答キューは制御メッセージによっていつでも変更できるため、プロデューサーと宛先は常に変更されます。1 つのサブスクライバだけがすべての制御コマンドを受信し、複数のスレッドが独自のセッションからプロデューサとメッセージを作成します。すべてのメッセージは TextMessages です。
すべての activemq-cpp 要素は RAII 要素にラップされていますが、集中的に使用した後のある時点で、接続はメッセージを受信しますが、応答を送信しようとすると、ライブラリは「スレッド ローカル ストレージの制限に達しました」という例外をスローします。その後、さらにいくつかのメッセージを受信します (テキストが壊れている場合があります) が、新しいメッセージを送信しようとすると、スレッド ストレージ例外に再び陥り、受信と送信が完全に停止します。
この種の問題を見つけた人はいますか?どんな助けでも大歓迎です。
更新: 新しい 3.8.3 バージョンをコンパイルして使用しましたが、まだエラーを再現できます。テストは RHEL 5.7 と Fedora 20 で行われ、どちらも 64 ビット アーキテクチャです。