Como posso determinar qual serviço está associado a um processo específico do ArcSOC.exe e vice-versa?

10

Eu tenho uma máquina servidor de desenvolvimento arcgis configurada com vários serviços de mapas, serviços de gp e SOE. Às vezes, um processo do arcgissoc.exe é interrompido. Também parece haver muitos SOCs funcionando, com base no que posso ver no ArcCatalog.

Como posso descobrir qual ArcSOC.exe (identificação do processo) combina com qual serviço no arccatalog?

Estou executando o 10.0.

Kirk Kuykendall
fonte
Eu acho que os processos do "bônus" do ArcSOC são trabalhadores do SOM, então você sempre terá mais alguns que não estão associados a uma tarefa em execução.
mwalker

Respostas:

6

Se você ativar Informações: Log simples (ainda se aplica a 10), os IDs do processo serão colocados no log do servidor. Você pode visualizar os logs através do gerenciador de servidores ou acessar C: \ Arquivos de programas \ ArcGIS \ Server10.0 \ server \ user \ log e pesquisar no arquivo .dat. Aqui está um trecho da minha máquina de desenvolvimento:

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

A identificação do processo 9276 corresponde ao ArcSOC.exe para este serviço de mapa.

Derek Swingley
fonte
2
Obrigado! Claro que seria bom ter uma interface do usuário para assistir a isso durante a depuração.
Kirk Kuykendall
Muito bom saber, e apenas como um aparte, isso funciona na 9.3.1 também.
Chad Cooper
Gostaria de saber se é seguro supor que, se o pid de um arcsoc.exe não estiver listado no log, é um órfão que pode ser morto com segurança.
Kirk Kuykendall
@ Kirk: talvez, mas você precisaria verificar todos os arquivos de log ... o arquivo de log será rolado assim que atingir um tamanho específico.
Derek Swingley