Wie kann ich feststellen, welcher Service einem bestimmten ArcSOC.exe-Prozess zugeordnet ist und umgekehrt?

10

Ich habe einen Entwicklungs-Arcgis-Server, der mit mehreren Mapservices, GP-Diensten und SOEs konfiguriert ist. Manchmal bleibt ein arcgissoc.exe-Prozess hängen. Es scheinen auch zu viele SOCs ausgeführt zu werden, basierend auf dem, was ich in ArcCatalog sehen kann.

Wie kann ich herausfinden, welche ArcSOC.exe (Prozess-ID) zu welchem ​​Service in arccatalog gehört?

Ich verwende 10.0.

Kirk Kuykendall
quelle
Ich denke, die "Bonus" ArcSOC-Prozesse sind Mitarbeiter für die SOM, sodass Sie immer ein paar mehr haben, die nicht mit einer laufenden Aufgabe verbunden sind.
Walkerer

Antworten:

6

Wenn Sie Info: Einfache Protokollierung aktivieren (gilt immer noch bei 10), werden Prozess-IDs in Ihr Serverprotokoll aufgenommen. Sie können die Protokolle über den Server-Manager anzeigen oder zu C: \ Programme \ ArcGIS \ Server10.0 \ Server \ Benutzer \ Protokoll wechseln und die DAT-Datei durchsuchen. Hier ist ein Auszug aus meiner Entwicklungsmaschine:

<Msg time='2010-12-01T12:18:43' type='INFO1' code='3007' target='Server' thread='5960'>Attempt to start configuration maps/stuff of type MapServer.</Msg>
<Msg time='2010-12-01T12:18:44' type='INFO1' code='17004' target='maps/stuff.MapServer' methodName='GraphicFeatureServer.Construct' machine='blahblah' process='9276' thread='4168'>GraphicFeatureServer Construct started.</Msg>
<Msg time='2010-12-01T12:18:44' type='INFO1' code='17002' target='maps/stuff.MapServer' methodName='GraphicFeatureServer.Construct' machine='blahblah' process='9276' thread='4168'>Default Map name is: Layers.</Msg>
<Msg time='2010-12-01T12:18:44' type='INFO1' code='17002' target='maps/stuff.MapServer' methodName='GraphicFeatureServer.InitializeLayers' machine='blahblah' process='9276' thread='4168'>Layer Initialization Summary. Layers in Map: 2. Successful Initialization on: 2. Unsupported Layers count: 0. Failed Initialization on 0.</Msg>
<Msg time='2010-12-01T12:18:44' type='INFO1' code='17002' target='maps/stuff.MapServer' methodName='GraphicFeatureServer.Construct' machine='blahblah' process='9276' thread='4168'>Initialized 2 Layer(s).</Msg>
<Msg time='2010-12-01T12:18:44' type='INFO1' code='17002' target='maps/stuff.MapServer' methodName='GraphicFeatureServer.Construct' machine='blahblah' process='9276' thread='4168'>Initialized 0 Table(s).</Msg>
<Msg time='2010-12-01T12:18:44' type='INFO1' code='17006' target='maps/stuff.MapServer' methodName='GraphicFeatureServer.Construct' machine='blahblah' process='9276' thread='4168' elapsed='0.01660'>GraphicFeatureServer Construct ended.</Msg>
<Msg time='2010-12-01T12:18:44' type='INFO1' code='12002' target='maps/stuff.MapServer' methodName='KmlServer.Construct' machine='blahblah' process='9276' thread='4168'>Construct started.</Msg>
<Msg time='2010-12-01T12:18:44' type='INFO1' code='12003' target='maps/stuff.MapServer' methodName='KmlServer.Construct' machine='blahblah' process='9276' thread='4168'>Construct ended.</Msg>
<Msg time='2010-12-01T12:18:44' type='INFO1' code='3013' target='maps/stuff.MapServer' thread='5960'>Configuration maps/stuff.MapServer is started.</Msg>

Die Prozess-ID 9276 entspricht der ArcSOC.exe für diesen Karten-Service.

Derek Swingley
quelle
2
Vielen Dank! Sicher wäre es schön, eine Benutzeroberfläche zu haben, um dies während des Debuggens zu beobachten.
Kirk Kuykendall
Sehr gut zu wissen, und abgesehen davon funktioniert dies auch unter 9.3.1.
Chad Cooper
Ich frage mich, ob es sicher ist anzunehmen, dass wenn eine PID einer arcsoc.exe nicht im Protokoll aufgeführt ist, es sich um eine Waise handelt, die sicher getötet werden kann.
Kirk Kuykendall
@Kirk: Vielleicht, aber Sie müssten alle Protokolldateien überprüfen ... Die Protokolldatei wird verschoben, sobald sie eine bestimmte Größe erreicht.
Derek Swingley