どのフィーチャクラスがサービスで使用されていますか?


8

いくつかの機能クラスと多くのサービスがあります。フィーチャクラスをバージョン対応にしようとすると、フィーチャクラスがロックされているというメッセージが表示されますが、これは明らかです。しかし、どのサービスでロックされているかはわかりません。

ArcPyですべてのフィーチャクラスを処理し、それがどのサービスで参照されているかを調べる可能性はありますか?

回答:


7

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%はどこですかjsonxml

完全な回答の投稿はこちらです: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>

アレックス、答えてくれてありがとう。理解しましたが、バージョン10.1に関連しているようです。私は10.0(;-()で作業していますが、そのディレクトリ構造とxmlファイルを正確に見つけることができません。ヒントはありますか?Thnxs !!
user32324

ああ、分かった。私はあなたのニーズを満たすために私の答えを変更しました。
Alex Tereshenkov 14年

アレックス、回答ありがとうございます。それは今でははっきりしていて、私の「検索」で進むことができます。
user32324 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.