10

I've got a development ArcGIS Server machine configured with multiple mapservices, GP services and SOE's. Sometimes an arcgissoc.exe process gets hung. There also seem to be too many SOC's running based on what I can see in ArcCatalog.

How can I figure out which ArcSOC.exe (process id) goes with which service in ArcCatalog?

I'm running 10.0.

1
  • I think the "bonus" ArcSOC processes are workers for the SOM, so you'll always have a few more that aren't associated with a running task.
    – mwalker
    Commented Dec 3, 2010 at 19:39

2 Answers 2

6

If you enable Info:Simple logging (still applies at 10), process IDs get put in your server log. You can view the logs via server manager or you can go to C:\Program Files\ArcGIS\Server10.0\server\user\log and dig through the .dat file. Here's a excerpt from my dev machine:

<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>

Process ID 9276 corresponds to the ArcSOC.exe for this map service.

4
  • 2
    Thanks! Sure would be nice to have a UI to watch this during debugging. Commented Dec 1, 2010 at 20:44
  • Very good to know, and just as an aside, this works on 9.3.1 as well. Commented Dec 1, 2010 at 20:55
  • I wonder if it is safe to assume that if an arcsoc.exe's pid is not listed in the log then it is an orphan that can safely be killed. Commented Dec 1, 2010 at 20:56
  • @Kirk: maybe, but you would need to check all logfiles...the log file will roll over once it hits a specific size. Commented Dec 1, 2010 at 22:00
2

Use windows task manager. Enable the command line column if it's not already. That should show you the service name.

.... -Dservice=XXXXXXX ....

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.