◆ご質問◆
1.
Curlコントロールパネルの「全般」タブ、
「強制再同期設定」のラジオボタンを、
「全てのアプレットの再同期を強制する。」を選択しております。
resync-as-ofを使用しない場合、クライアントの強制再同期設定だけでは不完全とういことでしょうか?
2.
独立型アプレットで発生しているのですが、
ブラウザを使用したresync-as-ofの指定がないアプレットでは発生報告はありません。
ブラウザを使用した場合はブラウザの再同期設定に依存する可能性が あるということでしょうか?
◆回答◆
1. について
「全てのアプレットの再同期を強制する。」を選択した場合は、
アクセスする全てのパッケージファイルにおいて、まず、
HEADリクエストでWebサーバ上のパッケージファイルの最終更新日時を
確認し、ローカルのパッケージキャッシュよりも新しければGETリクエストで
新しいパッケージファイルを取得します。
(そうでない場合はローカルのパッケージキャッシュを使います。)
ただ、これはクライアントのCurlの挙動であり、Curlより”外の”環境については
影響を及ぼすことは出来ません。
つまり、例えばWebサーバとの間にプロキシサーバが存在し、プロキシサーバに
もキャッシュがある場合、CurlがWebサーバから新しいパッケージファイルを
取得しようとしてもプロキシサーバが古いパッケージファイルを返してしまう事が
考えられます。これはCurlの設定では回避できません。プロキシサーバ内に存在する
古いキャッシュを削除したり、そのファイルのみキャッシュに残さないように設定しなければなりません。
また、ブラウザのキャッシュの存在も考えられます。
CurlがWebサーバから新しいパッケージファイルを取得しようとしても
ブラウザのキャッシュから古いパッケージファイルが返されるということも考えられます。
この場合は、パッケージファイルをブラウザにキャッシュさせない様にWebサーバの設定を行わなければなりません。
実際にどこのデータを取得しているのかを追及するためには、
パケットのログを取得し、解析しなければ断定することは出来ません。
2. について
ブラウザを使用したアプレットでも、独立型アプレットでも使用する
通信モジュール(WinInet.dll)は同じであるため、同様の現象が
発生する可能性はあります。
独立型アプレットだけにこのような問題が発生するわけではありません。