この節では,Cosminexus JMSプロバイダ使用時の注意事項について説明します。
デフォルトの設定では,Cosminexus JMSプロバイダは次のように動作します。
Cosminexus JMSプロバイダのメッセージ送信では,優先順位の高いメッセージが最初に実行されることが保証されません。例えば,優先順位を1,2,3と設定した「メッセージ1」「メッセージ2」および「メッセージ3」というの三つのメッセージをプロデューサーから送信した場合に,コンシューマーでは「メッセージ1」「メッセージ3」「メッセージ2」のように異なる順番で処理が実行されることがあります。
優先順位と処理順の相違は,次のような要因で発生します。
送信先があるマシンのシステム時間を変更した場合,クライアントは期限切れのメッセージを受信することがあります。
メッセージの有効期限は,JMSExpirationヘッダーフィールドにメッセージを送信したメソッドによって設定されます。もし,誤ってシステムの時間設定が変更されていた場合,有効期限が過ぎたメッセージがコンシューマーに送信されるおそれがあります。
メッセージプロパティの処理順序は保証されません。
メッセージプロパティは,順序性を維持した構造で管理されていません。このため,例えば,「プロパティ1」「プロパティ2」「プロパティ3」というプロパティがある場合に,この順序で送信先に送信しても,同じ順序で処理されるとは限りません。ただし,プロパティとその値は,送信前と受信時で変わりません。
メッセージプロパティでは,バイトメッセージを使用しないでください。
バイトメッセージでは,すべてのデータ型のデータを読み出すことができます。例えば,long型の値を含むメッセージをshort型のメソッドで呼び出して処理した場合,意味的には不正な値ですが,最初の2バイトの読み出しには成功してしまいます。これは,ほかのメッセージのデータ型では禁止されている処理です。
Cosminexus JMSプロバイダでは,データのデータ型を保持し,正しい変換規則の適用に対応するよう,データを管理しています。