Skip to main content

 

 

 

 
Language:
 
 
 
OutSystems

OutSystems 11でのキャッシュ無効化

This article applies to:OutSystems 11

キャッシュにより、アプリケーションはデータのサブセットを一時的に保存できるため、同じデータに対するリクエストがより迅速に実行されるようになります。これは、データベースからデータを再度読み取るよりもキャッシュから同じデータを読み取るほうが速いためです。キャッシュ無効化は、キャッシュ内のエントリを置き換えたり削除したりするプロセスです。

OutSystemsは、キャッシュデータをアプリケーションサーバーのメモリに保存します。OutSystemsは、そのデータを生成したモジュールやそのモジュールが存在するテナントへの参照も保存します。キャッシュされたデータを更新するには、モジュールまたはテナントのどちらかに対してキャッシュ無効化操作を実行します。キャッシュ無効化は、実行されると、各フロントエンドサーバーに古いデータや期限切れのデータがあるかどうかかを確認します。古いキャッシュ値が見つかった場合、その値はキャッシュ無効化によって「ダーティ」としてマークされ、元の場所から新しい値が取得されます。

リクエストされるたびに、アプリケーションサーバーは処理に必要なデータをメモリから取得します。そのデータが存在しないか、またはダーティとしてマークされている場合は、新しいデータを元のソースから取得します。

キャッシュ無効化の仕組み

Cache Invalidation Serviceは、キャッシュされた値が最新でないことをフロントエンドサーバーに通知し、必要に応じて新しい値を取得するように強制するOutSystemsコンポーネントです。

このサービスでは、パブリッシュ/サブスクライブパターンを使用します。つまり、データの取得元であるモジュールやテナントを表すキューをアプリケーションがサブスクライブします。Cache Invalidation Serviceで使用される基盤テクノロジーは、RabbitMQと呼ばれます。これは、パブリッシュ/サブスクライブパターンを実装する分散メッセージキューサービスです。

アプリケーションがこのサービスにアクセスできるように、プラットフォームを構成する必要があります。RabbitMQインスタンスのインストールと構成は、OutSystems Configuration Toolを使用して実行できます。この操作を実行すると、Configuration Toolを実行しているマシンと同じマシンにRabbitMQがインストールされます。Cache Invalidation Serviceをインストールして構成する方法の詳細については、Platform Server 11のインストールチェックリストをご覧ください。

モジュールやテナントに対してキャッシュ無効化が発生するたびに、これらの要素の変更を監視しているすべてのアプリケーションは通知を受け、ローカルコピーにダーティとしてフラグを設定します。Cache Invalidation Serviceがダウンしているか利用できない場合(このサービスの構成変更中など)、アプリケーションは発生した可能性のあるキャッシュ無効化についての通知を受けません。このため、こうしたアプリケーションが再びサービスにアクセスできるようになるまで、または新しいサービス構成が適用されるまで、一貫性のない動作が発生する可能性があります。 Cache Invalidation Serviceの可用性を高めるには、RabbitMQクラスタを構成してTCPロードバランサを使用します。

  • Was this article helpful?