Limitações e Sugestões do Toolkit de Armazenamento

Este tópico descreve as limitações, sugestões e outras considerações para o Toolkit de Armazenamento. Você pode evitar problemas estando ciente sobre estas questões. Esteja ciente também sobre as outras questões documentadas neste capítulo.
  • Conjuntos de dados não bloqueado: O Toolkit de Armazenamento permite clicar no botão Editar JCL na caixa de diálogo Criar Tarefa em Lote e editar um conjunto de dados que está localizado no ambiente de mainframe. Entretanto, você deve garantir que ninguém acesse o conjunto de dados ao mesmo tempo, pois o conjunto de dados não está bloqueado durante sua sessão de edição. Um outro usuário poderia editar o conjunto de dados, por exemplo, no TSO utilizando ISPF, durante sua sessão de edição. Esse usuário não veria uma mensagem de "conjunto de dados em uso"; se ele salvar as alterações dele antes de você salvar as suas, suas alterações substituirão as dele. Se esse usuário ainda estiver editando o conjunto de dados quando você tentar salvar suas alterações, a tentativa de salvar suas alterações falhará. Os resultados de cada sessão de edição pode ser imprevisível dependendo dos cenários e ferramentas de edição que o outro usuário utilizar.
  • Apenas página de códigos 037 do EBCDIC: O editor JCL fornecido pelo OMEGAMON for Storage on z/OS suporta apenas a página de códigos 037 do EBCDIC. A edição ou autoria do código JCL em outras páginas de códigos, tal como a página de códigos 930 do EBCDIC (em outras palavras, EBCDIC japonês), não é suportada.
  • Primeira e última etapas do Toolkit de Armazenamento: Em cada tarefa em lote, o Toolkit de Armazenamento insere uma primeira etapa específica do Toolkit que configura um monitor ao longo das etapas na tarefa. O monitor coleta a saída de destino das etapas na tarefa. O Toolkit de Armazenamento também anexa uma última etapa no final da tarefa. A última etapa coleta a SYSOUT de destino a partir das etapas anteriores juntamente com a saída do JES e o código de retorno. Ele também notifica o agente de monitoramento que a tarefa em lote está concluída. A primeira etapa específica do Toolkit é inserida imediatamente antes da primeira instrução EXEC, PROC ou INCLUDE localizada no código JCL.
    Nota: Se o seu código JCL tiver uma instrução INCLUDE antes de uma instrução EXEC ou PROC, o membro INCLUDE não deve conter instruções JCL, como por exemplo JCLLIB, que devem preceder a primeira etapa da tarefa. Como a primeira etapa do kit de ferramentas é inserida antes de INCLUDE, a tarefa em lote falhará neste caso.
  • Utilizando a instrução nula para marcar o final de uma tarefa: Quando você utilizar a caixa de diálogo Criar Tarefa em Lote para executar o código JCL definido pelo usuário, o Toolkit de Armazenamento gera uma cópia do seu código JCL no qual ele inclui uma primeira etapa específica do Toolkit e uma última etapa específica do Toolkit. Se o seu código JCL terminar com a instrução JCL nula denotando o fim da tarefa,
    //
    essa instrução nula será removida do código JCL gerado porque a tarefa não termina antes da execução da última etapa específica do Toolkit.
  • Processamento condicional: Não especifique um parâmetro COND na instrução JOB ou em uma instrução EXEC que pode fazer com que as etapas do Toolkit de Armazenamento que foram inseridas no código JCL não sejam executadas. Se você utilizar o parâmetro COND ou utilizar as instruções, IF/THEN/ELSE/ENDIF, você deve garantir que a primeira e a última etapa do Toolkit de Armazenamento sejam executadas.
  • Nenhum suporte para várias tarefas no código JCL definido pelo usuário: Ao utilizar a caixa de diálogo Criar Tarefa em Lote para executar o código JCL definido pelo usuário, o código JCL não deve incluir múltiplas tarefas. O Toolkit de Armazenamento não suporta este tipo de código JCL. Os resultados são imprevisíveis.
  • Instrução JOB:
    • Quando você utiliza a caixa de diálogo Criar Tarefa em Lote para executar o código JCL definido pelo usuário, a tarefa em lote é enviada utilizando a instrução JOB do JCL de Substituição que você especifica na guia JCL. Isso substitui uma instrução JOB que pode estar presente no código JCL. Se você não especificar uma instrução JOB do JCL de Substituição, sua instrução JOB específica da instalação será utilizada.
    • Não especifique uma opção CLASS ou TYPRUN em sua instrução JOB que apenas copia ou varre a tarefa. Como a tarefa em lote não é executada, seu pedido de ação permanece no estado EXECUTANDO. Você deve cancelar o pedido para liberar o encadeamento e os recursos associados a ele e removê-lo do estado EXECUTANDO.
    • Não especifique um parâmetro COND na instrução JOB que pode fazer com que a primeira e a última etapa do Toolkit de Armazenamento inseridas no código JCL não sejam executadas.
    • Quando você solicita que a saída do JES seja copiada para visualização futura, certifique-se de que MSGLEVEL em sua instrução JOB esteja configurado com o nível de saída que deseja.
    • Quando você especificar sua instrução JOB, considere designá-la a um nome de tarefa exclusivo. Se o nome corresponder com uma tarefa em lote que está em execução em seu sistema z/OS, sua tarefa poderá ser atrasada até que a execução da tarefa seja concluída. Para evitar isso, designe um nome exclusivo para sua tarefa.
  • Utilizando PROC no código JCL definido pelo usuário: Quando você utiliza a caixa de diálogo Criar Tarefa em Lote, você pode executar o código JCL que executa um procedimento, entretanto, o Toolkit de Armazenamento talvez não seja capaz de copiar adequadamente o conteúdo dos arquivos associados às etapas nesse procedimento:
    • O procedimento pode estar no fluxo ou em um sistema ou em uma biblioteca de procedimentos privados. Se você utilizar uma biblioteca de procedimento privado, deverá assegurar que a instrução JCLLIB preceda a primeira etapa do Toolkit de Armazenamento.
    • Você pode solicitar que arquivos que são referidos no procedimento sejam copiados para visualização futura, mas com determinadas limitações:
      • O nome da etapa é o nome da etapa em seu código JCL que executa o procedimento. Não é possível especificar os nomes de etapas que estão no próprio procedimento.
      • Se o procedimento consistir em uma única etapa, o conteúdo dos arquivos solicitados será retornado.
      • Se houver várias etapas no procedimento, o conteúdo de um conjunto de dados ou nome DD solicitado que faz referência a um conjunto de dados será retornado para cada etapa do procedimento (em outras palavras, várias vezes). O conteúdo de um nome DD que é roteado para SYSOUT é retornado para cada etapa do procedimento no qual o nome DD de SYSOUT está definido (ou seja, uma ou mais vezes).
  • Utilizar nomes de etapas no código JCL definido pelo usuário: Não inclui etapas em seu código JCL definido pelo usuário sem nomes de etapas, se você pretende copiar arquivos para visualização futura que estão associados a essas etapas. O Toolkit de Armazenamento necessita de um nome de etapa.
  • /*XMIT: Não utilize a instrução /*XMIT em nenhum de seus códigos JCL. O Toolkit de Armazenamento não suporta este tipo de código JCL. Os resultados são imprevisíveis.
  • DYNAMNBR: Se você enviar o código JCL definido pelo usuário que aloca conjuntos de dados, esteja ciente de que o Toolkit de Armazenamento também aloca conjuntos de dados em cada etapa. Se necessário, pode ser necessário utilizar o parâmetro DYNAMNBR em sua instrução EXEC para permitir que seus conjuntos de dados e 3 conjuntos de dados do Toolkit de Armazenamento.
  • Erros JCL: A última etapa do Toolkit de Armazenamento anexada no final de cada tarefa em lote notifica o agente de monitoramento quando a tarefa em lote é concluída. Quando isso ocorre, o pedido de ação que está com conclusão da tarefa pendente, é atualizado com os resultados da tarefa em lote. Se a última etapa na tarefa em lote não for executada, por exemplo, a tarefa em lote falhou com um erro JCL ou um processamento condicional foi ignorado na última etapa, o pedido de ação permanece em um estado EXECUTANDO. Se você determinar que uma solicitação de ação está em estado EXECUTANDO por mais tempo do que planejado, deve-se verificar o status da tarefa em lote no sistema z/OS. Se a tarefa falhou de modo que a última etapa não foi executada, deve-se cancelar a execução da solicitação de ação no Tivoli Enterprise Portal. Isso libera o encadeamento e os recursos associados ao pedido e o remove do estado EXECUTANDO. Então, você poderá determinar o motivo da falha da tarefa, corrigir o erro e enviar novamente o pedido.
  • Códigos de retorno: Determinados códigos de retorno, que geralmente formam pares com um status, são definidos pelo Toolkit de Armazenamento quando ele detecta um erro ao processar um pedido de ação. A tabela a seguir lista códigos de retorno comuns e seus status correspondentes:
    Tabela 1. Códigos de Retorno do Toolkit de Armazenamento
    RC Estado
    117 Geralmente, este status indica que o código JCL excede 72 caracteres quando as variáveis de substituição são aplicadas. Ele também pode indicar outros erros relacionados ao JCL, como um cartão de JOB ausente, ou que um outro conjunto de dados que exige substituição da variável excede 80 caracteres, quando as variáveis de substituição são aplicadas.
    119 O Servidor de Dados do Usuário foi finalizado de forma anormal ou a tarefa em lote foi finalizada, mas o Toolkit de Armazenamento não conseguiu determinar o código de retorno.
    121 A autorização falhou.
    123 Ocorreu um erro do conjunto de dados, como por exemplo, o conjunto de dados contendo seu código JCL não existe. As mensagens no RKLVLOG do Tivoli Enterprise Monitoring Server podem ajudá-lo a analisar esse resultado.
    125
    A execução da solicitação da ação foi interrompida,porque a solicitação de ação estava associada a um conjunto de grupos que não existiam, ou estavam vazios no momento da execução. O status exibido na área de trabalho Resumo de Resultados é configurado para um dos seguintes valores:
    NonexistentGroups
    Indica que nenhum dos grupos associados à solicitação existem.
    EmptyGroups
    Indica que todos os grupos associados à solicitação estavam vazios.
    BadGroups
    Indica que uma combinação de erros de grupo vazios e ausentes afetou todo o conjunto de grupos. Este valor de status pode também indicar que um outro erro foi detectado quando os grupos foram processados. Reveja as mensagens no RKLVLOG para ajudar suas análises dos resultados.
    Nota: Os grupos podem estar vazios porque uma coleção está sendo executada ou ainda não foi executada. Se assim for, tente novamente a solicitação quando a coleção estiver concluída.
    Se você vir um código de retorno que não lhe parece familiar, você talvez deseje convertê-lo para seu valor hexadecimal equivalente, pois o código pode indicar um encerramento de forma anormal na tarefa em lote. Por exemplo, um código de retorno 193 é o mesmo que x'0C1'.
  • Substituição de variável e limites de linha: Variáveis de substituição definidas por meio do Toolkit de Armazenamento são substituídos quando a solicitação de ação for executada. O Toolkit de Armazenamento cria conjuntos de dados temporários para conter as instruções atualizadas.
    Há duas categorias básicas dos conjuntos de dados (JCL e outra) que são atualizadas com variáveis de substituição. O Toolkit de Armazenamento as processa da seguinte maneira:
    • Conjunto de dados JCL: A substituição de variável é aplicada em todos os componentes da tarefa em lote, incluindo a instrução JOB, código JCL extra, as etapas específicas do Toolkit e o corpo do seu código JCL juntamente com qualquer conjunto de dados no fluxo. O Toolkit de Armazenamento interpreta a coluna 72 como um caractere de continuação e preserva seu conteúdo. Os dados entre as colunas 2 e 71 podem se deslocar para a esquerda ou direita, dependendo do tamanho do nome da variável e seu valor de substituição. Se os dados forem deslocados além da coluna 71, o pedido falhará. O código de retorno para a solicitação está configurado para 117 e o status para esta execução é InvalidJCL . Você deve desempenhar essas ações:
      • Verifique se as variáveis de substituição e os valores estão corretos e se não possuem consequências não intencionais aos componentes da tarefa em lote
      • Corrija o código JCL para garantir que nenhuma linha exceda o limite.
      A solicitação da ação também poderá falhar com código de retorno 117 se alguma linha dos componentes originais da tarefa em lote exceder 80 caracteres.
    • Outros conjuntos de dados: A substituição da variável é aplicada a todos os registros em outros conjuntos de dados que forem especificados, conforme necessário, pela tarefa que também contiver variáveis de substituição. O kit de ferramentas não faz suposições sobre o conteúdo do conjunto de dados e considera cada linha, da coluna 1 à coluna 80, como uma linha de dados. Substituição de variável poderá fazer com que os dados nas colunas 2 a 80 sejam deslocados para a esquerda ou direita, dependendo do tamanho dos nomes das variáveis e de seus volumes. Se os dados ultrapassarem a coluna 80 (excluindo rastreio de espaços em branco), a solicitação falhará. O código de retorno para a solicitação será configurada para 117 e o status para esta execução será. Você deve desempenhar essas ações:
      • Verifique se as variáveis de substituição e os valores estão corretos e não possuem consequências não intencionais para o conteúdo do conjunto de dados.
      • Corrija o conteúdo do conjunto de dados para garantir que nenhuma linha exceda o limite.
  • Validando o código JCL: Quando você escreve o código JCL para utilização na caixa de diálogo Criar Tarefa em Lote, sempre verifique a validade das instruções antes de enviar a tarefa em lote. Por exemplo, quando você editar o código JCL na caixa de diálogo Editar JCL, considere se os comprimentos das linhas excedem o limite de 72 bytes após a realização da substituição de variáveis. Quando as variáveis de substituição são substituídas no código JCL no tempo de execução, as linhas JCL resultantes que contêm mais de 72 bytes fazem com que o código JCL não seja emitido. Um status de InvalidJCL é exibido na área de trabalho Resumo de Resultados para a solicitação de ação.
  • Nomes de variáveis reservados: O Toolkit de Armazenamento reserva os nomes de variáveis a seguir. Você não deve utilizar esses nomes para suas variáveis:
    %%KS3TK_CMD_DSN%%
    %%KS3TK_HSM%%
    %%KS3TK_DYNAMNBR%%
  • Conjuntos de Dados Totalmente Qualificados requeridos pela tarefa que também contêm variáveis de substituição: Quando você utilizar a caixa de diálogo Criar Tarefa em Lote, você pode especificar conjuntos de dados adicionais que contêm variáveis de substituição. O Toolkit de Armazenamento cria um conjunto de dados temporário com as atualizações e substitui o nome do conjunto de dados original pelo nome do conjunto de dados temporário em sua cópia do código JCL. Para que os nomes sejam substituídos, os conjuntos de dados devem ser referidos em seu código JCL; eles não podem estar em procedimento catalogados ou incluir (INCLUDE) membros que seu código JCL possa utilizar.
  • Saída JES:
    • As técnicas que o Toolkit de Armazenamento utiliza para coletar logs JES e conjuntos de dados de saída manipulados pelo sistema (SYSOUT) requerem que seu sistema operacional z/OS utilize JES2.
    • Como a última etapa do Toolkit de Armazenamento coleta a saída JES exatamente antes do encerramento da tarefa em lote, algumas das mensagens que geralmente você encontra nos logs JES, como as mensagens início da tarefa (IEF375I) e encerramento da tarefa (IEF376I), não são incluídas na saída JES.
  • Comandos de mainframe:
    • Os comandos do console do mainframe são emitidos por meio de uma interface da tarefa em lote SDSF. Uma barra (/) deve preceder o comando, como neste exemplo, que cancela um usuário de compartilhamento de tempo (tso_user_ID):
      /C U=tso_user_ID 
    • A saída do comando não é retornada para os comandos do console do Mainframe porque a execução do comando não é sincronizada com a execução da tarefa em lote.
    • Como a execução do comando não é sincronizada com a execução da tarefa em lote, o código de retorno associado ao pedido de ação reflete o envio do comando para a interface da tarefa em lote SDSF. Ele não reflete a execução do próprio comando.
    • Como o Toolkit de Armazenamento usa SDSF, seu sistema operacional z/OS deve usar JES2.
  • DASD Compartilhado: Os conjuntos de dados temporários que o Toolkit de Armazenamento cria para conter o código JCL gerado, o conjunto de dados de resultados e outros arquivos, são compartilhados entre o Toolkit e a tarefa em lote. Como a tarefa em lote pode ser executada em um sistema z/OS em seu SYSPLEX, diferente daquele em que o agente de monitoramento é executado, os conjuntos de dados temporários devem ser criados no DASD compartilhado entre os sistemas. Sua instalação pode controlar o local dos conjuntos de dados temporários usando opções em PARMGEN. Essas opções também controlam o local dos conjuntos de dados criados utilizando a opção Editar JCL na caixa de diálogo Criar Tarefa em Lote.

    Além disso, quando você utilizar a caixa de diálogo Criar Tarefa em Lote, especifique o conjunto de dados contendo o código JCL que deseja enviar e, opcionalmente, especifique os conjuntos de dados requeridos pela tarefa que também contêm variáveis de substituição. Esses conjuntos de dados devem ser catalogados e localizados no DASD on-line que está acessível ao sistema z/OS em que o agente de monitoramento é executado.

  • Biblioteca de carregamento autorizado pelo APF nos sistemas remotos: O Toolkit de Armazenamento insere uma primeira etapa e uma última etapa em cada tarefa em lote. Estas etapas executam o código do Toolkit localizado na biblioteca de carregamento TKANMODL para o ambiente de tempo de execução da instalação. A biblioteca de carregamento deve ser autorizada pelo APF. Se a tarefa em lote for executada no mesmo sistema z/OS que o agente de monitoramento, geralmente a biblioteca de carregamento já está autorizada pelo APF. Se sua tarefa em lote for executada em um outro sistema z/OS em seu SYSPLEX, deve-se assegurar que a biblioteca de carregamento seja autorizada pelo APF também nesse sistema. A biblioteca de carregamento também deve estar localizada no DASD que está compartilhado entre os sistemas.
  • Caracteres não imprimíveis: Você deve assegurar que os arquivos especificados como Arquivos cujo conteúdo deve ser copiado para visualização futura na caixa de diálogo Criar Tarefa em Lote ou na saída de um comando na caixa de diálogo Emitir Comando, conterão apenas dados de caracteres. Se os arquivos ou a saída do comando contiver caracteres não imprimíveis (por exemplo, dados hexadecimais), esses caracteres talvez não sejam exibidos adequadamente no espaço de trabalho Detalhe do Resultado do Toolkit de Armazenamento.
  • Armazenamento do conjunto de dados de ponto de verificação esgotado: Quando você enviar um pedido de ação, as informações sobre o pedido são armazenadas no banco de dados de pontos de verificação. Quando o pedido é concluído, os resultados da execução também são armazenados. As informações armazenadas no banco de dados de pontos de verificação incluem elementos como:
    • O nome e a descrição do pedido
    • A hora em que o pedido foi enviado e a hora em que foi concluído
    • Os recursos associados ao pedido
    • O código de retorno da execução do pedido
    • A saída gerada pela execução do pedido, que pode incluir:
      • Saída do comando
      • Arquivos copiados para visualização futura
      • O código JCL enviado
      • Os arquivos JES gerados pela tarefa em lote.
    O banco de dados de pontos de verificação do Toolkit de Armazenamento é alocado e inicializado quando o ambiente de tempo de execução é criado. Esse banco de dados nunca é estendido. Você deve garantir que exista espaço suficiente para as atividades do banco de dados. Caso contrário, o banco de dados poderá ficar sem espaço. Você pode remover os pedidos e os resultados quando não mais precisar deles. Você também pode utilizar opções na guia Geral das caixas de diálogo do Toolkit de Armazenamento para ajudá-lo a gerenciar os resultados.
    Nota: Se os resultados da execução de um pedido de ação excedem o espaço livre disponível no banco de dados de pontos de verificação, a saída é inteiramente perdida. A mensagem de erro KS3T830E ARMAZENAMENTO DO CONJUNTO DE DADOS DE PONTOS DE VERIFICAÇÃO DE SERVIÇOS ESGOTADO no RKLVLOG do Tivoli Enterprise Monitoring Server indica essa condição. O IBM® OMEGAMON for Storage on z/OS: Guia de Resolução de Problemas fornece informações adicionais sobre esse problema.