quinta-feira, 1 de março de 2012

Mais alguns truques com o srvrmgr

A um tempo atrás eu havia postado um artigo (Fazendo melhor uso do srvrmgr.exe) sobre o srvrmgr mas faltou falar sobre a manipulação de saída de dados, incluindo um truquezinho sujo que não está documentado. Vamos a eles.

Manipulando a saída dos comandos

É possível alterar a forma como o srvrmgr irá exibir a saída dos programas. Por exemplo, a saída padrão do comando list comp é está aqui:

srvrmgr> list comp

SV_NAME     CC_ALIAS                       CC_NAME                                   CT_ALIAS  CG_ALIAS      CC_RUNMODE   CP_DISP_RUN_STATE  CP_NUM_RUN_  CP_MAX_TASK  CP_ACTV_MTS  CP_MAX_MTS_  CP_START
_TIME        CP_END_TIME  CP_STATUS  CC_INCARN_NO  CC_DESC_TEXT
----------  -----------------------------  ----------------------------------------  --------  ------------  -----------  -----------------  -----------  -----------  -----------  -----------  --------
-----------  -----------  ---------  ------------  ------------
siebsrvdev  BusIntBatchMgr                 Business Integration Batch Manager                  EAI           Batch        Online             0            20           1            1            2012-03-
01 14:59:11
siebsrvdev  BusIntMgr                      Business Integration Manager                        EAI           Batch        Online             0            20           1            1            2012-03-
01 14:59:11
siebsrvdev  ClientAdmin                    Client Administration                               System        Background   Online             0            1                                      2012-03-
01 14:59:11
siebsrvdev  CommConfigMgr                  Communications Configuration Manager                CommMgmt      Batch        Online             0            20           1            1            2012-03-

A saída está truncada, mas isto foi proposital: é exatamente desta forma que os dados foram exibidos no meu terminal. Se você usa isto com frequência provavelmente fica meio aborrecido com o resultado não muito agradável de ler.

Isso pode ser alterado pelo comando configure list. Vamos a ajuda online dele:

srvrmgr> help configure list
  configure list <ValidListCmd> 
       [show <column_name> [ AS <column_header>]]
       [, <column_name>    [ AS <column_header>]] ....

O comando faz exatamente isto: configura um dos subcomandos disponível para o comando list. Ele permitirá que você configure, por exemplo, quais as colunas você quer que sejam exibidas. Vamos ver como está a configuração atual para o list comp:

srvrmgr> configure list comp
    SV_NAME (31):  Server name
    CC_ALIAS (31):  Component alias
    CC_NAME (76):  Component name
    CT_ALIAS (31):  Component type alias
    CG_ALIAS (31):  Component GRoup Alias
    CC_RUNMODE (31):  Component run mode (enum)
    CP_DISP_RUN_STATE (61):  Component display run state
    CP_NUM_RUN_TASKS (11):  Current number of running tasks
    CP_MAX_TASKS (11):  Maximum tasks configured
    CP_ACTV_MTS_PROCS (11):  Active MTS control processes
    CP_MAX_MTS_PROCS (11):  Maximum MTS control processes
    CP_START_TIME (21):  Component start time
    CP_END_TIME (21):  Component end time
    CP_STATUS (251):  Component-reported status
    CC_INCARN_NO (23):  Incarnation Number
    CC_DESC_TEXT (251):  Component description

Se você incluir a opção show você poderá especificar quais as colunas você quer ver e em qual ordem elas irão ser mostradas:

srvrmgr> configure list comp show SV_NAME(31),CC_ALIAS(21),CC_NAME(76)

srvrmgr> configure list comp
        SV_NAME (31):  Server name
        CC_ALIAS (21):  Component alias
        CC_NAME (76):  Component name

srvrmgr> list comp

SV_NAME     CC_ALIAS              CC_NAME
----------  --------------------  ----------------------------------------
siebsrvdev  BusIntBatchMgr        Business Integration Batch Manager
siebsrvdev  BusIntMgr             Business Integration Manager
siebsrvdev  ClientAdmin           Client Administration
siebsrvdev  CommConfigMgr         Communications Configuration Manager
siebsrvdev  CommInboundMgr        Communications Inbound Manager
...
siebsrvdev  eSitesClinicalObjMgr  eSitesClinical Object Manager (PTB)

52 rows returned.

Agora ficou mais fácil ler!

Mas pode ser que você precise ter todas as colunas e se for o caso, o que fazer?

Aí que vem o truque sujo (até aonde eu sei) não documentado. Lhes apresento o comando set. Com ele você pode exibir ou alterar alguns parâmetros do ambiente do srvrmgr. Vamos ver as opções:

srvrmgr> set
username            sadmin*
service             (null)
enterprise          (null)
app server          (null)
compression         FALSE*
encryption          FALSE*
protocol            TCP/IP*
port                (null)*
cluster             (null)*
name server         (null)*
log filter          (null)
verbose             FALSE
batch               FALSE
header              TRUE
footer              TRUE
ColumnWidth         (null)
delimiter          

Não vou explicar aqui cada um destes parâmetros (até porque isto está documentado). A questão fica por conta do parâmetro ColumnWidth. Se você habilitar ele será possível definir o tamanho das colunas através do comando configure list.

srvrmgr> set ColumnWidth true

srvrmgr> set
username            sadmin*
service             (null)
enterprise          (null)
app server          (null)
compression         FALSE*
encryption          FALSE*
protocol            TCP/IP*
port                (null)*
cluster             (null)*
name server         (null)*
log filter          (null)
verbose             FALSE
batch               FALSE
header              TRUE
footer              TRUE
ColumnWidth         1
delimiter  

Pronto! Agora você pode definir o tamanho das colunas! Repare que no comando configure list você vê o nome da coluna e um número entre parênteses: esse número é o tamanho em caracteres da coluna. O comando abaixo de exemplo altera o tamanho de alguns campos do comando list comp para que nome das colunas não seja truncado:

srvrmgr> configure list comp show SV_NAME(31),CC_ALIAS(21),CC_NAME(76),CT_ALIAS(31),CG_ALIAS(31),CC_RUNMODE(31),CP_DISP_RUN_STATE(61),CP_NUM_RUN_TASKS(16),CP_MAX_TASKS(12),CP_ACTV_MTS_PROCS(17),CP_MAX_MTS_PROCS(16),CP_START_TIME(21),CP_END_TIME(21),CP_STATUS(251),CC_INCARN_NO(23),CC_DESC_TEXT(251)

Evitando ter que repetir este trabalho todo

Depois de configurar tantas coisas você deve ter pouca vontade de ter que digitar uma segunda vez isso tudo. para isto existe os comandos save preferences e load preferences. Esses comandos vão, respectivamente, gravar um arquivo de configuração no diretório aonde está localizado srvrmgr e depois carregá-lo. O nome do arquivo é por padrão ".Siebel_svrmgr.pref". Na realidade é um arquivo texto simples. Se depois de você fazer esta configuração você salvar o arquivo e resolver editá-lo, você verá exatamente isto:

configure list components show SV_NAME(31) , CC_ALIAS(21) , CC_NAME(76) , CT_ALIAS(31) , CG_ALIAS(31) , CC_RUNMODE(31) , CP_DISP_RUN_STATE(61) , CP_NUM_RUN_TASKS(16) , CP_MAX_TASKS(12) , CP_ACTV_MTS_PROCS(17) , CP_MAX_MTS_PROCS(16) , CP_START_TIME(21) , CP_END_TIME(21) , CP_STATUS(251) , CC_INCARN_NO(23) , CC_DESC_TEXT(251)

Realmente não é nenhuma mágica, mas funciona.

Conclusão

Talvez você esteja se perguntando para que serventia ter este trabalho todo. Bem, se você estiver escrevendo um parser dos comandos do srvrmgr (como eu estou fazendo aqui) isso é de grande valia!

Falando sério agora, ter a possibilidade de customizar o ambiente do programa para suas necessidades vai lhe ajudar bastante no seu trabalho, principalmente a ganhar agilidade para fazer as coisas. Verifique também a possibilidade de criar alias e salvá-los via save preferences, você vai ver que isso vai lhe ajudar bastante!

Nenhum comentário:

Postar um comentário