存続期間の長い変数

存続期間の長い適切な ESQL データ・タイプを使用して、データをメモリーにキャッシュできます。

フローを通過する 1 つのメッセージの存続期間より長い期間に渡ってデータを保管しなければならない場合もあります。そのようなデータを保管する 1 つの方法は、データベースにデータを保管することです。データベースを使用する方法は、長期の持続性とトランザクション特性の点では優れていますが、アクセス (特に書き込みアクセス) は低速になります。

代わりに、適切な存続期間の長い ESQL データ・タイプを使用し、一定期間に渡ってデータのメモリー内キャッシュを提供できます。存続期間の長い ESQL データ・タイプを使用するならデータベースを使った場合よりもアクセスが高速になりますが、この速度の持続性が短くなり、トランザクション特性がなくなるという犠牲が伴います。

存続期間の長い変数を作成するには、DECLARE ステートメントで SHARED キーワードを使用します。詳細については、 DECLARE ステートメントを参照してください。

以下のサンプルは、DECLARE ステートメントを使用して共用変数を定義する方法を示しています。 このサンプルは、ルーティング情報をデータベース表に保管する方法、および共用変数を使用してメモリー内のデータベース表をメッセージ・フローに保管してパフォーマンスを改善する方法を示しています。 サンプルは、Message Brokers Toolkit と統合されているインフォメーション・センターを使用する場合にのみ表示できます。

存続期間の長いデータ・タイプは長期に渡って存続し、ノードを通り抜ける単一のメッセージの存続時間を上回ります。以下の表で説明されているように、存続期間の長いデータ・タイプは複数のスレッドの間で共用され、メッセージ・フローの存続期間 (厳密に言えば、メッセージ・フローへの構成変更から次の構成変更までの間) 存在します。

  有効範囲 存続期間 共用
存続期間の短い変数
スキーマおよびモジュール ノード ノード内のスレッド なし
ルーチンのローカル ノード ルーチン内のスレッド なし
ブロックのローカル ノード ブロック内のスレッド なし
存続期間の長い変数
ノード共用 ノード ノードの存続期間 フローのすべてのスレッド
フロー共用 フロー フローの存続期間 フローのすべてのスレッド
存続期間の長い ESQL データ・タイプの特徴は以下のとおりです。

これらのデータ・タイプの典型的な使用法として、データ表がフローに対しては「読み取り専用」である場合に、そのフローの中でこうしたデータ・タイプを使用するというものがあります。表データは実際には静的ではありませんが、フローがこれを変更することはありません。表データに何らかの変更が加えられるまでの間に、何千ものメッセージがフローの中を移動します。

以下に例を挙げます。
  • 1 日のクレジット・カードの取り引きが入った表。この表は毎日作成され、その日のメッセージはこの表に対して実行されます。それからフローが停止し、表が更新され、次の日のメッセージが実行されます。この種のフローの場合、メッセージごとにデータベースから読み取るよりも、表データをキャッシュに入れれば、パフォーマンスが良くなるでしょう。
  • 複数のメッセージからのデータの集計と統合。
関連概念
ESQL 変数
ESQL でのユーザー定義プロパティー
関連資料
DECLARE ステートメント
ESQL ROW データ・タイプ
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:44:08

ak35120_