プログラム動作の変更

Magicキャッシュを使用すると、プログラムの動作が変化します。データがキャッシュ内で見つかった場合には、そのデータがテーブル内のデータと同一でない可能性があります。したがってMagic uniPaaSはデータの更新前に、必ずレコードをディスクから読み取ります。

APGで作成した単純なオンラインプログラムを例に考えてみましょう。ある行から別の行にカーソルを移動した場合は、必ず新しい行のデータビューが自動的に再度読み取られます。

別のユーザがデータを変更した場合、データがキャッシュ内にあって、その行に留まっていると、変更内容を確認することはできませんが、データを修正しようとした時に、現在の値がディスクから読み取られて次のメッセージが表示されます。

このレコードは他のユーザが更新しました-再読み込みを行います。

キャッシュ範囲]特性で「位置とデータ」を指定した場合、Magic uniPaaSは行の実データをキャッシュします。その行を再度読み込んだ場合、キャッシュ内の古い値が読み込まれます。別のタスクによってこのデータが修正されていても、現在のタスクには表示されません。別のタスクによって変更されたレコードを更新しようとした場合、前述のメッセージが表示されます。

プロジェクトによっては、キャッシュを使用してはいけない場合があります。例えば、書込共有で読み取り用に価格テーブルにアクセスする受注入力プロジェクトがあるとします。あるエンドユーザが価格を変更した場合、その項目の新価格がそのユーザのキャッシュ内に常駐すると、その他のエンドユーザは新しい価格を確認できません。