フォアグラウンド処理とバックグラウンド処理
ツールをフォアグラウンドとバックグラウンドのどちらで実行するかを制御するには、[標準] ツールバーで [ジオプロセシング] → [ジオプロセシング オプション] の順にクリックします。
[バックグラウンド処理] パネルでは、ツールをフォアグランド モードとバックグラウンド モードのどちらで実行するかを制御することができます。
- [有効] をオンにすると、ツールはバックグラウンドで実行され、ツールの実行中も ArcMap(あるいは ArcGlobe など他の ArcGIS アプリケーション)の操作を継続することができます。ドキュメントの下部にあるプログレス バーに、現在実行中のツールの名前が表示されます。ツールの実行が終了すると、システム トレイにポップアップで通知が表示されます。[通知] スライダを動かして通知メッセージが表示される時間の長さを制御したり、スライダを一番左に動かしてメッセージを無効にしたりすることができます。
- [有効] をオフにすると、ツールはフォアグラウンドで実行されます。ツールがフォアグラウンド モードで実行されているときは、ツールの実行が停止するまで他の作業の継続を待機する必要があります。
バックグラウンド処理
ツールのダイアログ ボックスまたは Python ウィンドウを使用してツールを実行すると、ツールの進行状況が次のように表示されます。
[結果] ウィンドウでも進行状況を管理することができますポップアップ メッセージをクリックすると、[結果] ウィンドウからツールの実行メッセージが直接開きます。
1 つのツールがバックグラウンドで実行されている間に、ツール ダイアログ ボックスを使用して、さらに多くのツールを指定することができます。バックグラウンドで実行されるのは 1 つのツールだけです。他のすべてのツールは保留(実行を待機)になります。ツールの実行が終了すると、保留されていた次のツールの実行が開始します。
バックグラウンドで実行中のツールがある場合に、編集セッションを開始することはできません。バックグラウンドで実行中のツールがある場合は、編集セッションを開始できないことを通知するメッセージ ボックスが表示されます。編集セッションを開始する前に、バックグラウンドで実行されるすべてのジオプロセシング ツールを完了させる(またはキャンセルする)必要があります。
バックグラウンド処理で、ツールを Python ウィンドウから実行した場合は、そのツールの実行が終了するまで Python ウィンドウは使用できません。
デフォルトでフォアグラウンドで実行されるカスタムのモデル ツールとスクリプト ツール
バックグラウンド処理を有効にしている場合でも、カスタムのモデル ツールとスクリプト ツールは、デフォルトではフォアグラウンドで実行されます。カスタム ツールをバックグラウンドで実行するには、次の 2 つの操作が必要です。
- 対象となるカスタムのモデル ツールまたはスクリプト ツールが「カスタム ツール(モデルまたはスクリプト)のバックグラウンド実行」に指定されているガイドラインに準拠していることを確認します。
- カスタムのモデル ツールまたはスクリプト ツールを右クリックして [プロパティ] をクリックします。[一般] タブで、[常にフォアグラウンドで実行] をオフにします。
ツールがバックグラウンドで実行中の、影響を受ける ArcMap レイヤのロック
ジオプロセシング ツールの出力がマップのレイヤである場合([属性検索(Select Layer By Attribute)] ツールを使用する場合など)や、ツールによって入力データが変更される場合([フィールドの追加(Add Field)] ツールまたは [編集] ツールボックス の全ツールなど)、そのツールの実行中はレイヤがロックされます。コンテンツ テーブルのレイヤの上にロック アイコンが表示され、レイヤの処理がロックされていることを示します。レイヤがロックされている間は、マップ表示を更新してもレイヤは描画されません。ツールの処理が終了した時点でマップ表示が更新され、レイヤの操作を再開することができます。
バックグラウンドで実行中のツールのキャンセル
バックグラウンドで実行中のツールの実行をキャンセルするには、結果ウィンドウを開き、現在実行中のツール(隣に砂時計または時計のアイコンを表示)を探します。結果を右クリックし、[キャンセル] をクリックします。この方法は、まだ実行されていない、キューに配置されたタスクをキャンセルするときにも使用できます。
ツールは、キャンセル命令を受け取ると、作成したデータをすべて削除し、警告メッセージを発行して、実行していた処理をクリーンナップします。ツールが行っていたクリーンナップ作業のタイプによっては、キャンセル処理に時間がかかる場合があります。
バックグラウンドが有効な場合でもフォアグラウンドで実行されるシステム ツール
バックグラウンド処理を有効にした場合でも、ツールがフォアグラウンドで実行されることがあります。
- データの編集中は、すべてのジオプロセシング ツールがフォアグラウンドで実行されます。編集中のデータがジオプロセシング ツールで使用されない場合でも、ArcGIS ではすべてのツールがフォアグラウンドで実行されます。これは、バックグラウンドで実行されているツールによって、編集中のデータが変更される事態を回避するためです。
- ModelBuilder ウィンドウを開いてモデルを実行すると、モデル内のすべてのプロセスがフォアグラウンドで実行されます。ModelBuilder ウィンドウでの操作は編集セッションに似ています。ワークフローの変更によって望ましくない結果となる事態を回避するために、すべてのプロセスはフォアグラウンドで実行されます。
- [ジオデータベースのアップグレード(Upgrade Geodatabase)] ツールなどの一部のシステム ツールは、データのロックと整合性の必要から常にフォアグラウンドで実行されます。これ以外のシステム ツールでも、現在のマップ ドキュメントにアクセスする必要がある場合は、フォアグラウンドで実行されることがあります。
ツールの待機中またはバックグラウンド実行中のアプリケーションの終了
ツールの実行中または保留中に、ArcMap(または ArcGlobe、ArcScene)を終了してドキュメントを保存することができます。終了すると、実行中のすべてのツールが停止します。実行中および保留中だったツールのステータスは、保存されたドキュメントの [結果] ウィンドウで [実行しない] になります。これらのエントリには色の薄いアイコンが表示され、結果を右クリックして [再実行] をクリックすることによって実行することができます。
ArcCatalog が終了したときに実行中または保留中だったツールは即座に停止します。ツールの結果は [結果] ウィンドウの [実行しない] セクションに移動します。このツールは、前述と同じ方法で再び実行することができます。
フォアグラウンド処理
バックグラウンド処理を無効にすると、ツールはフォアグラウンドで実行されます。再びアプリケーションを使用するには、この処理が終了するまで待機する必要があります。ツールの実行が始まると、次に示すような進行状況ダイアログ ボックスが表示されます。実行メッセージを確認するには [詳細] をクリックします。
警告メッセージは、先頭に「WARNING」と数値コードが付いた状態で、ツールのメッセージ内に緑のテキストで表示されます。警告は、期待される内容が出力に含まれていない可能性があることを意味します。次に示した例では、ツールによって空の出力が作成されています。この数値コードはハイパーリンクになっています。クリックすると、警告の詳細な説明と可能な解決策を表示することができます。
エラー メッセージは、先頭に「ERROR」と数値コードが付いた状態で、赤のテキストで表示されます。
ツールが実行され、進行状況ダイアログ ボックスを閉じた後は、ツールの実行に関するあらゆる点について結果ウィンドウで確認することができます。
フォアグラウンドで実行中のツールのキャンセル
ツールの実行中に、進行状況ダイアログ ボックスの [キャンセル] ボタンをクリックすることにより、実行をキャンセルすることができます。
ツールは、キャンセル命令を受け取ると、作成したデータをすべて削除し、警告メッセージを発行して、実行していた処理をクリーンナップします。ツールが行っていたクリーンナップ作業のタイプによっては、キャンセル処理に時間がかかる場合があります。
パフォーマンスに関する注意事項
バックグラウンド処理は、コンピュータ上で ArcMap ウィンドウを開かずに別の ArcMap セッションを実行するものとして考えることができます。この追加プロセス(セッション)は、ツールが初めてバックグラウンドで実行されたときに開始し、ArcMap セッションを終了するまで継続します。バックグラウンド処理が開始すると、最初のツールの実行が少し遅れるのがわかります。
大きなデータセットで作業する場合、一部のジオプロセシング ツール(特にタイル化処理を使用するツール)では可能な限り多くのコンピュータ リソース(メモリや CPU)が必要になります。使用できるメモリが十分にないために、バックグラウンド処理を指定したツールが失敗する(エラー「000426: メモリが不足しています。」またはエラー「999998: 予期しないエラーです。」)場合は、次の手順を試してください。
- メモリを多く消費する不必要なアプリケーションを特定して終了します。
- [ジオプロセシング オプション] ダイアログ ボックス([ジオプロセシング] → [ジオプロセシング オプション])で、バックグラウンド処理を無効にします。これにより、バックグラウンド処理が停止し、リソースが解放されます。
- ツールを再び実行します。
上記の手順を実行すると、バックグラウンド処理が回避されます。追加のバックグラウンド処理は開始されず、バックグラウンド処理によって消費されることになっていたリソースをツールで使用できるようになります。ツールの実行中は、メモリを多く消費するアプリケーションを起動しないでください。
バックグラウンド処理では、実際には 2 つのプロセスが開始します。バックグラウンド処理は、Windows タスク マネージャで監視することができます。[プロセス] タブに、バックグラウンド処理を構成する 2 つのプロセスが表示されます。1 つの ArcSOMP.exe と 1 つの ArcSOCP.exe です。これらのプロセスは、決してタスク マネージャで終了しないでください。予期しない結果を招く恐れがあります。親アプリケーション(ArcMap や ArcCatalog など)とこれらのプロセスとの間が切断された場合は、親アプリケーションが終了してから 10 分後にプロセスが自動的にクリーンアップされます。