キャッシュの制御に関して

【ご質問】
アプリケーションサーバ上のアプリケーションを更新した際に、
クライアントPC側のキャッシュがONになっていると、
Curlコントロールパネルより、キャッシュを空にしないと
アプリケーションが正常に起動出来ないことがあります。

アプリケーションに更新があった際に、自動的にキャッシュを空にする方法
または、キャッシュのON/OFFに依存しない回避策はありますか?

【回答】
“キャッシュ”には”ブラウザのキャッシュ”と”CurlRTEのキャッシュ”の2つが関係しています。
問題を解決するためには”ブラウザのキャッシュ”、”CurlRTEのキャッシュ”の両方を
適切にコントロールする必要があります。

例えば、CurlRTEにキャッシュが残っている場合、
サーバのアプリケーションが修正されたとしてもCurlRTEのキャッシュ自身を使用して、
新しいアプリケーションに更新されない可能性があります。
また、CurlRTEのキャッシュを使用しない設定等を行なっても
ブラウザキャッシュが残っている場合には、サーバに新しいアプリケーションを
取得しに行かず、正常にアプリケーションが更新されない可能性があります。

CurlRTEのキャッシュをコントロールするには
「resync-as-of」アクセサを使用します。
これを使用すると、指定された日時より前にCurl RTEのキャッシュに
保存されたものはサーバからコンポーネントを取得しようとします。
この機能を利用してresync-as-ofで指定する日時をデプロイの日時に更新していけば
古いアプリケーションのコンポーネントをキャッシュしている端末は
resync-as-ofで指定された日時より古いキャッシュとなっているはずであるため、
新しいアプリケーションのコンポーネントを取得しようとします。

ブラウザのキャッシュをコントロールするには、クライアント側のブラウザの設定を
変更してキャッシュを行わないような設定にすることも可能です。
また、サーバ側でキャッシュされたファイルの有効期限を短く設定することも出来ます。
上記のような方法でブラウザのキャッシュに古いアプリケーションのコンポーネントが
キャッシュされないように調整を行うことで問題回避を図ることが出来ると思います。

詳細は、Curl開発者ガイドの
[コンテンツの構成要素]-[キャッシュと同期]
の項をご参照ください。