Skip to main content

 

 

 

 
Language:

 

 

 

 
 
OutSystems

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

This article applies to:OutSystems 11

キャッシュにより、アプリケーションはデータの特定のサブセットを一時的に保存できるため、同じデータに対する以降のリクエストがより迅速に実行されるようになります。これは、データベースから再度データを読み取るよりもキャッシュからデータを読み取るほうが高速な操作であるためです。OutSystemsアプリケーションのキャッシュデータは、アプリケーションサーバーのメモリに保存されます。

OutSystemsは、キャッシュされたデータ自体とともに、そのデータを生成するモジュールまたはそのモジュールが存在するテナントへの参照も保存します。キャッシュされたデータを更新するには、モジュールやテナントに対してキャッシュ無効化操作を実行します。このプロセスによって、各フロントエンドサーバーのキャッシュされた値が「ダーティ」としてマークされ、新しい値が必要に応じて元の場所から取得されます。

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

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

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

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

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

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

  • Was this article helpful?