マップ キャッシュの更新
マップ キャッシュを作成すると、その時点におけるマップのスナップショット(ピクチャ)が作成されます。データを編集または更新する際には、他のユーザに変更内容を表示する前に、次の作業が必要になります。
- キャッシュを更新する必要があります。
- キャッシュを以前に使用しているユーザは、それぞれのコンピュータに格納されているかもしれない古くなったタイルを削除する必要があります。これをキャッシュのクリアといいます。
キャッシュの更新
キャッシュを更新するには、キャッシュ内の一部またはすべてのタイルの再作成が必要になります。キャッシュを更新するには、[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] ツールを使用します。このツールに簡単にアクセスするには、[サービス プロパティ] を開いて [キャッシュ] タブをクリックし、[タイルの更新] をクリックします。[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] ツールを開いたら、[更新方法] で [すべてのタイルを再構築(Recreate All Tiles)] を選択します。
Linux または Solaris の場合は、コマンド ラインからキャッシュを作成および更新できます。
マップの特定の長方形領域に含まれているタイルだけを更新したい場合は、サービスの全範囲に設定されているデフォルトの [更新範囲] を変更することができます。
変更されているのは 1 つのデータセットまたは 1 つの地理領域内のフィーチャだけであることがわかっている場合は、[フィーチャクラスを使用して特定のエリアを更新] オプションを選択できます。このオプションにより、指定したフィーチャクラスのフィーチャをカバーするタイルだけが再作成されます。このオプションはポリゴン データを編集している場合に適しています。たとえば、アメリカ全土をカバーするキャッシュがあり、国立公園の境界線を編集した場合は、[フィーチャクラスを使用して特定のエリアを更新] を選択して国立公園フィーチャクラスを指定します。これにより、国立公園内のタイルだけが再作成されます。
タイルの補填
部分的に作成されたキャッシュを完成させる場合、またはキャッシュの品質チェックを実行する場合は、[更新方法] を [空タイルを再構築] に設定して、[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] を実行します。この設定は、キャッシュのフォルダをチェックし、欠けているタイルを作成します。他の [更新方法] と同様に、空のタイルを作成するための境界として、長方形の範囲またはフィーチャクラスを設定できます。
次の図で [空タイルを再構築] を実行すると、青のアウトラインで囲まれたタイルがすべて作成されます。
タイルの削除
状況によっては、特定エリアのタイルを削除したり、さらにはキャッシュ全体を削除したいことがあります。
- 特定エリアのタイルを削除するには、[更新方法] を [タイルを削除] に設定して、[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] ツールを実行します。このツールを実行する前に、[更新範囲] として、削除しようとしているエリアを設定してください。フィーチャクラスを指定して、キャッシュから削除するタイルを空間的に特定することもできます。
- キャッシュ全体を削除するには、[サービス プロパティ] ダイアログ ボックスを開き、[キャッシュ] タブをクリックして、[キャッシュの削除] をクリックします。[マップ サービス キャッシュの削除(Delete Map Server Cache)] ツールが実行され、キャッシュに関連付けられているすべてのタイルとフォルダが削除されます。
フォルダ構造とタイル スキーマを残してすべてのタイルを削除するには、[更新方法] を [タイルを削除] に設定して、[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] ツールを実行します。このツールを実行する前に、[更新範囲] がマップの全範囲に設定されていることを確認します。
キャッシュ内の縮尺の変更
キャッシュ タイル スキーマに縮尺を追加したり、キャッシュ タイル スキーマから縮尺を削除するには、[マップ サービス キャッシュの縮尺を管理(Manage Map Server Cache Scales)] ツールを使用します。このシンプルなツールでは、マップ サービスを選択して縮尺セットを定義し、必要に応じて縮尺を追加または削除できます。
更新ツールのスクリプト化
スクリプトを使用すれば、[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] を定期的に自動実行できます。これは、データを定常的に更新している編集ユーザがいる場合に役立ちます。キャッシュの更新を自動化する方法および実装例については、「ジオプロセシングによるキャッシュの作成と更新の自動化」をご参照ください。
クライアントのローカル キャッシュのクリア
キャッシュ マップ サービスを表示する際、ArcGIS クライアントはタイルをローカルに格納して、ユーザがそのエリアを再び参照したときにそれらのタイルを再び取得せずに済むようにします。キャッシュを更新したとしても、以前にキャッシュを使用したことがあるユーザが自身のコンピュータにタイルを格納しているかもしれません。それらのユーザが変更内容を表示するには、ローカル キャッシュをクリアする必要があります。
キャッシュを頻繁に更新する場合は、クライアントがタイルをローカルにキャッシュするためのオプションを無効にすることを検討してください。そうすれば、キャッシュを使用する他のユーザに、ローカル コンピュータに格納されている古いタイルではなく、最新のタイルが常に表示されるようになります。
クライアントのローカル キャッシュを無効にしていない場合は、キャッシュのユーザがタイルをローカルにキャッシュするかどうかを選択できます。キャッシュのユーザは、ローカル キャッシュを継続的に構築する、アプリケーション セッションごとに新しいローカル キャッシュを構築する、またはローカル キャッシュを構築しないことを選択できます。
更新へのサーバ リソースの割り当て
キャッシュを更新している間もサーバはマップ タイルを継続的に描画しなければならないため、キャッシュの更新にはサーバ リソースが使用されます。最も効率的な対応策は、ステージング サーバ上で更新を実行し、更新したタイルを運用サーバへコピーする方法です。
ステージング サーバを利用できない場合は、次善策として、トラフィックが少ない時間帯に更新を実行する方法があります。それでもやはり、CPU リソース全体が更新に費やされるのを避けたい場合は、[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] ツールの実行時に [マップ サービスのインスタンス数] を小さくします。このパラメータは、[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] ツールの実行中、タイルの作成に使用するマップ サービス インスタンス(ArcSOC.exe プロセス)の数を設定します。Windows タスク マネージャまたは Windows パフォーマンス モニタを使用して、キャッシュの更新時に ArcSOC.exe プロセスが CPU を占有していないことを確認してください。
更新時のインスタンス数を少なくすると、更新処理にかかる時間が長くなります。ハードウェア リソースが十分でない場合は、キャッシュの更新速度を優先させるか、他の処理を優先させるかを判断する必要があります。