メモリー内のキャッシュ・データに対して、適切な存続期間の長い ESQL データ・タイプを使用できます。
フローを通過する単一のメッセージの存続期間より長い期間に渡ってデータを保管する必要がある場合があります。 データの保管方法の 1 つとして、データベースにデータを保管するというものがあります。 データベースを使用する方法は、長期の持続性とトランザクション特性の点では優れていますが、アクセス (特に書き込みアクセス) は低速になります。
代わりに、適切な存続期間の長い ESQL データ・タイプを使用し、一定期間に渡ってデータのメモリー内キャッシュを提供できます。 存続期間の長い ESQL データ・タイプを使用するならデータベースを使った場合よりもアクセスが高速になりますが、この速度には、持続性が短くなりトランザクション特性がなくなるという犠牲が伴います。
存続期間の長い変数を作成するには、DECLARE ステートメントで SHARED キーワードを使用します。 詳細については、DECLARE ステートメントを参照してください。
サンプルに関する情報は、WebSphere® Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。
存続期間の長いデータ・タイプは長期に渡って存続し、ノードを通り抜ける単一のメッセージの存続時間を上回ります。 以下の表で説明されているように、存続期間の長いデータ・タイプは複数のスレッドの間で共用され、メッセージ・フローの存続期間 (メッセージ・フローへの構成変更から次の構成変更までの間) 存在します。
有効範囲 | 存続期間 | 共用 | |
---|---|---|---|
スキーマおよびモジュール | ノード | ノード内のスレッド | なし |
ルーチンのローカル | ノード | ルーチン内のスレッド | なし |
ブロックのローカル | ノード | ブロック内のスレッド | なし |
有効範囲 | 存続期間 | 共用 | |
---|---|---|---|
ノード共用 | ノード | ノードの存続期間 | フローのすべてのスレッド |
フロー共用 | フロー | フローの存続期間 | フローのすべてのスレッド |
これらのデータ・タイプの典型的な使用法として、データ表がフローに対しては「読み取り専用」である場合に、そのフローの中でこうしたデータ・タイプを使用するというものがあります。 表データは実際には静的ではありませんが、フローがこれを変更することはありません。表データに何らかの変更が加えられるまでの間に、何千ものメッセージがフローの中を移動します。