sql >> データベース >  >> RDS >> Oracle

非同期 JMS リスナーを初期化し、無限に実行させるための正しいアプローチ

    スレッドを実行して JMS コンシューマーを作成し、そのメッセージ リスナーを設定する理由はありません。 JMSメッセージリスナーの要点は、メッセージを非同期に受信することです(何らかの理由で複製しようとしているように見える機能)。

    JMS コンシューマを作成してメッセージ リスナを設定し、コンシューマが閉じられていないことを確認するだけです。アプリケーションの書き方によっては、while が必要になる場合があります。 ループして、プログラムが終了しないことを確認し、コンシューマーを閉じます。あなたのスレッドはそれをしていません。メッセージを 5 秒間待った後、コンシューマーがスコープから外れます。これは、ガベージ コレクションが行われることを意味します。ほとんどの JMS 実装では、それが閉じられることを期待しています。しかし、それはそれよりも悪いかもしれません。コンシューマーを明示的にクローズせずに範囲外に放置すると、コンシューマーにリークが発生し、最終的にメッセージ ブローカーが停止する可能性があります。これはずさんなプログラミングであるだけでなく、メッセージを消費しようとする他のユーザーにとって問題になる可能性があります。




    1. MYSQLクエリをMSSQLクエリに変換する方法

    2. codeigniterで挿入または置換を使用する方法

    3. フィールド「id」にはデフォルト値がありませんか?

    4. Oracleのpro*CコンパイラとgnuC(__builtin_va_list、__ attribute__など)