回答:
ArcGIS Server 10.1以降:
これは可能ですが、すぐに使える機能はありません。使用されているフィーチャクラス(および使用されるデータベースファイル)に関する情報は、ArcGIS Server Manager / Services Directory / REST Adminを介して公開されません。
ただし、この情報はファイル内のC:\arcgisserver\directories\arcgissystem\arcgisinput\ServicePaths.MapServer\extracted
フォルダー内にサービスメタデータとして保存されmanifest.xml
ます(.jsonと.xmlの両方があります)。.Xmlファイルにはより詳細な情報が含まれています。このファイルを解析することをお勧めします(ただし、最初に.jsonから始めて、アイデアを得ることができます)。
.xmlファイルで確認する必要がある2つのタグは、<Name>ServicePaths</Name>
サービス名と<OnPremisePath>C:\GIS\Temp\test.gdb\StopsSandiego</OnPremisePath>
、フィーチャクラス名とそのカタログ/ジオデータベースパスを含む複数のタグです。
コード的には、Pythonを使用してこの.xmlファイルを解析し、次の構造の辞書を取得できます。
{str:(tuple)} #data type
{servicename:(featureclasspath)} #pseudocode
{servicename:(fc1,fc2,fc3); servicename1:(fc1,fc2); servicename2:(fc5);...} #pseudocode
それが終わったら、値(指定した機能クラスパス名)に基づいてディクショナリのキー(servicename)を返す関数を記述できます。これにより、フィーチャクラスのロックを解除するために停止する必要があるサービスがわかります。
2016年4月の更新:これは、ArcGIS Server 10.1 SP1で追加された、サービスのREST API サービスマニフェストで実行できます。
http://localhost:6080/arcgis/admin/services/Parks/Landmarks.MapServer/iteminfo/manifest/manifest.%format%
または%format%
はどこですかjson
xml
完全な回答の投稿はこちらです:AGSマップサービスを参照しているフィーチャクラスを印刷するPythonスクリプト
ArcGIS Server 10.0:
C:\Program Files (x86)\ArcGIS\Server10.0\server\user\cfg
サービスに関連付けられている.cfgファイルに移動して開きます。<FilePath>
タグを探します。これで、このフォルダー内のすべての.cfgファイルをPythonで反復処理して、使用されている.mxdファイルに関する情報を取得できます。.mxdにアクセスできるので、各レイヤーデータソースパスを取得して、フィーチャクラス名を取得できます。
<ServerObjectConfiguration>
<Description></Description>
<Properties>
<FilePath>D:\temp\TempService.mxd</FilePath>