domingo, março 06, 2011

ADASEL - Select Protection Log - 1

Imagine que alguém deletou ou fez uma alteração em algum registro no banco Adabas, este é o utilitário que mostra quem fez isso, para descobrir este utilitário lê a mídia onde foi salvo o PLOG (Protection Log). Diferente de outros utilitários Adabas, o ADASEL não exige que o nome do utilitário no início de cada linha de parâmetro. Um pedido da seleção deve incluir os seguintes componentes:

* A palavra-chave SELECT, seguido por uma opção de seleção e quer um número de arquivo ou as palavras-chave de USER
* uma ou mais instruções de saída ou IF
* END palavra-chave.

Cláusulas opcionais e outros parâmetros podem ser incluídos que especifica os critérios de seleção adicionais ou processamento. A seguir mostra uma visão geral da sintaxe ADASEL.
JCL de Exemplo

O JCL abaixo vamos pegar do PLOG todas as alterações (ALL) do file 201;
MEMBER=ADASELCL 000023 REC SAVE:09.06.2011 08:31 BY   USERID DBA  R=00000001
DSN=DBA.ADABAS.JCLS                                LIB=S3 VOL=PRL303 UNIT=1126
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
//AAFASEL JOB (AAFA,DIBD),DBA,CLASS=S,MSGCLASS=A TYPRUN=HOLD
//*UQ ALLOW
//* --------------------------------------------------------------
//*     CHECANDO OS REGISTROS GRAVADO DO PLOG DO FILE 201
//* --------------------------------------------------------------
//ADASEL    EXEC AAFAUTIP
//DDASSOR1  DD   DISP=SHR,DSN=ADABAS.ASSO010.ASSO1
//DDASSOR2  DD   DISP=SHR,DSN=ADABAS.ASSO010.ASSO2
//DDASSOR3  DD   DISP=SHR,DSN=ADABAS.ASSO010.ASSO3
//DDASSOR4  DD   DISP=SHR,DSN=ADABAS.ASSO010.ASSO4
//* --------------------------------------------------------------
//DDSIIN    DD   DSN=ADABAS.C.DB010.PLOG.G2918V00,
//         LABEL=(1,SL),DISP=OLD,UNIT=CART,VOL=SER=CL0362
//* --------------------------------------------------------------
//DDEXPA    DD   SYSOUT=A
//DDDRUCK   DD   SYSOUT=A
//DDPRINT   DD   SYSOUT=G
//SYSUDUMP  DD   SYSOUT=A
//* --------------------------------------------------------------
//DDCARD    DD *
ADARUN PROG=ADASEL
//DDKARTE   DD *
SELECT ALL FROM FILE 201
   DISPLAY AA AB AC USERID USERTID HEX
/*


PARAMETRO TEST

O utilitário ADASEL agora inclui um de verificação de comando. Quando o parâmetro de teste for especificado, a real sintaxe do utilidade ADASEL está marcada, mas não foi executado. O parâmetro de teste devem ser especificados antes de quaisquer outros parâmetros ADASEL, como qualquer SELECT ou parâmetros SET GLOBALS.

No exemplo a seguir, a sintaxe do SELECT e outros parâmetros que serão testados. Não há dados reais serão processados.
 TEST
SELECT ALL RECORDS FROM FILE 1
DISPLAY AA BB CC
END
SELECT BEFORE IMAGE FILE 2
OUTPUT TO EXPA1
END

PARAMETRO FDTINPUT

O parâmetro FDTINPUT é opcional e pode ser usada para indicar que o FDTs utilizadas para o tratamento ADASEL deve vir de uma fonte alternativa FDT. Esta fonte alternativa FDT pode ser referenciado por todas as seleções em uma corrida ADASEL ou para arquivos individuais ou usuários selecionados na corrida ADASEL. Esta funcionalidade permite-lhe lidar com situações de dados onde o FDT foi modificado de alguma forma para que seja diferente dos dados reais no banco de dados. Nestes casos, uma FDT velhas ou diferente pode ser necessário para ADASEL processar com precisão os dados no banco de dados.

Se FDTINPUT não é especificada em uma execução ADASEL, o FDTs para os arquivos no banco de dados são usados por padrão.

Se FDTINPUT é especificado em um job ADASEL, uma declaração de job correspondente (DD / SAVE ou DD / eBand) deve ser especificado na hora de rodar o ADASEL para identificar a fonte FDT alternativa a ser utilizada.

Você pode especificar o parâmetro FDTINPUT e rodar o ADASEL em uma de duas maneiras:

1. Você pode especificá-lo como um parâmetro global para a execução ADASEL, caso em que a fonte alternativa FDT identificado pelo DD/eBand ou DD/SAVE declaração de controle do job é utilizado para todos os arquivos selecionados e processados na execução ADASEL. No exemplo a seguir, onde FDTINPUT é especificado como um parâmetro global, o FDTs na fonte FDT suplentes são usados para arquivos de 20, 35 e 36:
 FDTINPUT
SELECT ALL FROM FILE 20 
   DISPLAY AA BB CC
END
SELECT ALL FROM FILE 35 
   OUTPUT TO EXPA1
END
SELECT ALL FROM FILE 36 
   DISPLAY ALL
No exemplo a seguir, a FDTs da fonte FDT alternativos são usadas para todos os registros no banco de dados do usuário ETID1.
 END

FDTINPUT
SELECT ALL FROM USER 
   WITH USERID='ETID1' 
   DISPLAY ALL
END
2. Você pode especificá-lo separadamente para cada SELECT quando for rodar o ADASEL. No exemplo a seguir, onde FDTINPUT é especificado por dois arquivos, o FDT normal no banco de dados é usado para o arquivo 20, mas o FDTs na fonte FDT alternativo são usados tanto para arquivos de 35 e 36:
 SELECT ALL FROM FILE 20 
   DISPLAY AA BB CC
END
SELECT ALL FROM FILE 35 FDTINPUT 
   OUTPUT TO EXPA1
END
SELECT ALL FROM FILE 36 FDTINPUT
   DISPLAY ALL
Da mesma forma, no exemplo a seguir, o FDTs na fonte FDT suplentes são usadas para todos os registros no banco de dados do usuário ETID1.
END

SELECT ALL FROM USER FDTINPUT 
   WITH USERID='ETID1' 
   DISPLAY ALL
END

Requisitos Jobs ADASEL para FDTINPUT

Para o ADASEL o processamento FDTINPUT para ser bem sucedido, seja (mas não tanto) a DD/EBAND ou DD/SAVE declarações ADASEL o job deve ser especificado na hora de rodar o ADASEL para identificar a fonte FDT alternativa que deve ser usado na execução. Se nenhum ou ambos forem especificados, erros irão ocorrer. Se o FDTINPUT não for especificado, mas quer DD /EBand ou DD/SAVE ocorrera uma mensagem de aviso é emitido e as demonstrações do job são ignoradas.

Se FDTINPUT é especificado para um único arquivo em um job ADASEL, seja DD/EBand ou DD/SAVE pode ser usado para identificar a fonte FDT alternativo para a execução.

Se FDTINPUT é especificado para múltiplos arquivos em um job ADASEL (quer em várias instruções SELECT ou como um parâmetro global) ou para uma SELECT USER job ADASEL, uma DD/SAVE declaração deve ser usado para identificar a fonte FDT alternativa para a execução. Especificando um DD/EBAND declaração no job nesses casos resultará em erros.

Se a fonte FDT alternativo para a execução ADASEL é salvar uma fita, a DD/SAVE deve ser usado para identificar a fonte FDT alternativo. Especificando um DD/EBAND declaração de job, neste caso, irá resultar em erros. Obtenção de uma fonte de FDT para uso com FDTINPUT

Antes de executar um job ADASEL com o parâmetro FDTINPUT, uma fonte FDT deve ser produzido e armazenado. Isso pode ser feito de duas maneiras:

1. Execute o utilitário ADAULD para um arquivo de banco de dados que usa o FDT que você deseja usar em seu ADASEL execute e especificar NUMREC=0. Isso só vai descarregar o FDT. Para informações completas, leia mais no ADAULD Utility: Unload Files. FDTs obtida desta forma deve ser especificado na ficha de emprego DDEBAND no trabalho ADASEL.

2. Uma velha fita/cartucho de SAVE pode ser usado como entrada para o processamento do ADASEL FDTINPUT. Quando ADASEL processa a fita, ele lê sequencialmente para determinar o número dos arquivos na fita. Além disso, se uma SELECT FROM USER é solicitado em um ADASEL executado, a fita inteira salva é lido com antecedência para obter todas as FDTs e respectivos números de arquivo associado com antecedência de processamento ADASEL.

Para produzir um novo teste de fita, executar o ADASAV ou ADASAV função de utilidade ficheiros para um ou mais arquivos de banco de dados que usam o FDTs pretende utilizar na sua execução ADASEL. Isso produzirá uma gravação de fita que pode ser usado como entrada para a execução ADASEL.

Em ambos os casos, a fonte FDT previstas FDTINPUT deve corresponder à versão do diário de protecção prevista no trabalho ADASEL. Além disso, apenas uma fonte FDT alternativo pode ser especificado para processamento FDTINPUT em um job ADASEL único.

Parametros SET GLOBALS

Este parametro ADASEL substitui a tabela padrão e tamanho de buffer. Substituições são válidas somente para a execução ADASEL em que a instrução SET GLOBALS é especificado.

Se for usado, a configuração SET GLOBALS deve ser especificado antes do primeiro parâmetro ADASEL SELECT. Comentário statements, bem como os parâmetros FDTINPUT e TEST podem preceder as configurações SET GLOBALS. A configuração SET GLOBALS são especificadas na seguinte sintaxe:

SET GLOBALS {global-parameter = valor}

Global ParameterDescription
LPV={n | 0}
Utilize este parâmetro para especificar o comprimento do valor da tabela PE utilizada na avaliação de valores de campo para uma PE.Normalmente o ADASEL usa uma estimativa do número de ocorrências de PE para calcular o tamanho da tabela. Se table size é insuficiente, ocorre um erro SEL047, você pode aumentar o tamanho da tabela usando o parâmetro LPV global, tal como indicado na tela.
LS={n | 80}
Utilize este parâmetro para especificar o tamanho da linha a ser utilizada para alterar o número de colunas impressas. Se uma linha desaída é maior que o tamanho da linha, a linha é truncado na próxima em branco. O restante da linha é continua na próxima linha de saída, começando na coluna 1. O tamanho mínimo é de 1 linha, o máximo é 132.
LST={len | 12000 }
Utilize este parâmetro para especificar o comprimento da tabela declaração, que é usado para armazenar as declarações ADASEL.Dependendo de sua complexidade, uma instrução é traduzida em um ou mais segmentos. Cada segmento é de 44 bytes de comprimento, mais um valor. Por exemplo: IF BA EQ 'SMITH'... requer 49 bytes: 44 bytes mais 5 bytes para o "Smith". O tamanho da tabela padrão (12, 000 bytes) lida com aproximadamente 200 segmentos. Se o tamanho da tabela for ultrapassado, um erroSEL003 ocorre.
LWP={n | 1048576}
Utilize este parâmetro para especificar o tamanho da work pool usada internamente pelo utilitário ADASEL para o processamento deregistro estendido. O valor padrão de LWP é 1048576 bytes (ou 1MB). Se o valor especificado para LWP anexado com a letra "K", queé multiplicado por 1024. Válido valores variam de 100K - 1048576K (ou 1 GB).
MAXLOGRECLEN={n | 1048576
Utilize este parâmetro é usado para especificar o tamanho do record buffer descompactado atribuído pelo ADASEL utilitário para usono processamento de registro estendido. O valor padrão é MAXLOGRECLEN 1048576 bytes (ou 1MB). Se o valor especificado paraMAXLOGRECLEN é anexado com a letra "K", que é multiplicado por 1024. O valor mínimo é de 32768 bytes.
NCFLD={n | 10}
NCUPD={n | 10}
Utilize este parâmetro para especificar o número máximo de "mudanças de nomes-de-campos" esta declarações permitido a consultade seleção, bem como o número máximo de atualizações paralelas durante a sessão original. Quando uma instrução inclui um critérioCHANGES, O ADASEL usa um pool de mudança com entradas NCFLD * NCUPD para controlar os valores de campo mudou. Se essapool é muito pequeno, um erro SEL060 ocorre. Neste caso, é necessário aumentar um ou ambos os parâmetros e, em seguida rode de novo o ADASEL.
NF={n | 20}
Utilize este parâmetro para especificar o número máximo de arquivos que podem ser processadas durante uma corrida ADASELúnico. NF é usado para alocar espaço para o FDT para cada arquivo processado. Um erro SEL014 ocorre se o valor for ultrapassadoNF. Esse valor não está relacionado com o número máximo de arquivos de saída (DDEXPAn/EXPAN), embora mais de 20 arquivospodem ser processadas durante uma corrida ADASEL, um máximo de 20 arquivos de saída podem ser escritos.
NIF={n | 20}
Utilize este parâmetro para especificar o número de IF níveis permitidos (NIF).
NOUSERABEND
Se especificado, ADASEL termina com o condition code 20 em vez de um user abend 034 depois de um erro é encontrado.
NU={n | 20}
Use this parameter to specify the maximum number of user values (or ranges of user values) that can be processed during a single ADASEL run. NU is used to allocate work storage for the user data requested via a SELECT FROM USER specification in ADASEL. The default is 20 user values.
NV={n | 100}
Utilize este parâmetro para especificar o número máximo de valores de usuário (ou intervalos de valores de usuário) que podem ser processadas durante uma único job ADASEL. NU é utilizado para alocar memória de Work Storage do usuário solicitar através de uma especificação SELECT USER em ADASEL. O padrão é de 20 valores do usuário.
IF BA ='SMITH'
THEN OUTPUT TO EXPA1
ELSE IF BA ='SMYTH'
THEN OUTPUT TO EXPA2
PS={n | 60}
Utilize este parâmetro para especificar o parâmetro de tamanho de página é usado para alterar o número de linhas impressas antes deuma nova página é iniciada. O tamanho mínimo da página é 2, a máxima é de 999.

 Exemplo:

SET GLOBALS LST=15000 NF=15 SET GLOBALS LS=132

Seleção de Parâmetros

A sintaxe do parâmetro SELECT é mostrada abaixo. Ela começa com uma palavra-chave SELECT e termina com a palavra FIM.
O parâmetro SELECT exige as seguintes especificações mínimas:

A palavra chave SELECT, seguido por uma opção de seleção e quer um número de arquivo ou as palavras-chave de USER uma ou mais instruções de saída ou IF END palavra-chave.

Cláusulas opcionais e outros parâmetros podem ser incluídos que especificam os critérios de seleção adicionais ou processamento. A seguir mostra uma visão geral da sintaxe ADASEL.

Esta seção descreve os elementos obrigatórios e opcionais de um parâmetro SELECT, na ordem em que são apresentadas na sintaxe acima.

The SELECT Keyword - A palavra-chave SELECT é um elemento necessário do parâmetro e deve ser especificado em primeiro lugar.

Selection Options (ALL, BEFORE IMAGE, AFTER IMAGE, etc.) - Uma das opções de seleção descritos na tabela a seguir é necessário um parâmetro SELECT e deve ser especificado imediatamente após a palavra chave SELECT:
 +---------------------+-----------------------------------------------------------------------------------------------------+
| Selection Option    | Records Selected                                                                                    |
+---------------------+-----------------------------------------------------------------------------------------------------+
| ALL                 | Before-image derivadas de comandos A1 (UPDATE) e E1 (DELETE); pós-imagens derivadas de A1 e N1 (ADD)|
+---------------------+-----------------------------------------------------------------------------------------------------+
| BEFORE IMAGE | BI   | Before-images derivados de comandos A1 e E1                                                         |
+---------------------+-----------------------------------------------------------------------------------------------------+
| AFTER IMAGE | AI    | After-images derivados de comandos A1 e N1                                                          |
+---------------------+-----------------------------------------------------------------------------------------------------+
| NEW                 | After-images derivados de comandos N1                                                               |
+---------------------+-----------------------------------------------------------------------------------------------------+
| DELETED             | Before-images derivados de comandos E1                                                              |
+---------------------+-----------------------------------------------------------------------------------------------------+
| NEWDEL              | After-images derivados de comandos N1 e before-images derivados de comandos E1                      |
+---------------------+-----------------------------------------------------------------------------------------------------+
| UPDATED             | Before-images e after-images derivados de comandos A1                                               |
+---------------------+-----------------------------------------------------------------------------------------------------+

A palavra chave RECORDS

A palavra chave RECORDS é opcional no parâmetro SELECT. Quando especificado, deve seguir imediatamente o selection option.

FROM and IN [FILE] file-number Clause

Uma das FROM [FILE], em [FILE} ou as cláusulas de USER é necessário um parâmetro SELECT. Apenas um é necessária, se mais de um for especificado, um erro vai ocorrer. A cláusula FROM USER é descrito no FROM USER FROM USER Clause

Uma das cláusulas FROM [FILE], em [FILE} é necessário em um parâmetro SELECT. Apenas uma é necessária, se mais de um for especificado, erros irão ocorrer. A FROM e nas cláusulas [FILE] são descritos em FROM and IN [FILE] .

FDTINPUT Parameter

O parâmetro FDTINPUT é opcional e pode ser usada para indicar que o FDT diferente do FDT no banco de dados deve ser usado para arquivos específicos ou usuários selecionados na job ADASEL. Esta funcionalidade permite-lhe lidar com situações de dados onde a FDT foi modificado de alguma forma para que seja diferente dos dados reais no banco de dados. Nestes casos, uma velha FDT pode ser necessário para ADASEL processar com precisão os dados no banco de dados. Para obter mais informações, leia FDTINPUT Parameter.

STARTING FROM and ENDING AT date-time Clauses

As clásulas STARTING FROM and ENDING AT podem ser usada para restringir a seleções para registros adicionados, atualizados ou apagados dentro de um intervalo de tempo. Os seguintes formatos são válidos para as variáveis de data e hora:
+------------------+-----------------------------------+
| Formato          | Descrição                         |
+------------------+-----------------------------------+
| yyyymmdd hhmmss  | date/time                         |
+------------------+-----------------------------------+
| J(yyyyddd hhmmss)| Julian date/time                  |
+------------------+-----------------------------------+
| X ' xxxxxxxx '   | store-clock (STCK) representation |
+------------------+-----------------------------------+
Nota:

O menor valor é válido para o aaaa é "1980".

Exemplos:

Selecione todos os registros de um arquivo que foram acrescentados, apagados ou atualizados em ou antes da meia-noite de 12 de maio de 1996 (data juliana 132):
SELECT ALL RECORDS FROM FILE 1
ENDING AT J(1996132/240000)
DISPLAY AA BB CC
END
Selecionar todos os registros do arquivo 112 que foi adicionado, apagados ou atualizados entre 01 de janeiro e 31 de dezembro de 1996:
SELECT ALL 112
STARTING FROM 19960101/000000
ENDING AT 19961231/240000
OUTPUT TO EXPA1
END

Cláusula WITH

A cláusula opcional WITH pode ser utilizado para selecionar registros que satisfazem os critérios de valor especificado. Várias condições podem ser especificados usando os operadores lógicos AND e OR.

Se o valor de critérios estão ligados pelo operador AND, todas as condições especificadas devem ser satisfeitas para que o registro seja selecionado. Se o valor de critérios estão ligados pelo operador OR, o registro é selecionado se nenhuma das condições é satisfeita.

A sintaxe da variável critério do valor é descrito na seção critério de valor.

Exemplo:

O registo de proteção contém imagens de antes e depois de dois registros atualizados. O conteúdo do campo BB nos registos são mostrados abaixo:
+------------------+------------------+
| Before-Image    | After-Image      |
+------------------+------------------+
| BB = SMITH    | BB = ZINN        |
+------------------+------------------+
| BB = SMITH    | BB = JONES       |
+------------------+------------------+
A instrução SELECT inclui uma cláusula WITH que qualifica ainda mais a seleção:
SELECT ALL RECORDS FROM FILE 1
WITH BB ='SMITH'
DISPLAY AA BB CC
END
Neste exemplo, apesar do fato de que a opção ALL seja utilizado, apenas as duas imagens anteriores são selecionados (porque o campo BB contém "SMITH" em imagens anteriores). O ADASEL ignora todos os registros (neste caso, as duas depois do after-images) no qual o campo BB tem um valor diferente de "Smith". Se a opção after da imagem for especificado, não há registros serão selecionados.

IF Statement

A declaração IF pode ser utilizado para selecionar registros e executar instruções de saída em uma base condicional. Uma instrução IF é opcional em um parâmetro SELECT, mas pode ser usado para especificar instruções de saída condicional para o parâmetro SELECT. Pelo menos uma instrução de saída é necessária em um parâmetro SELECT, então se não tiver sido especificado fora de uma instrução IF, uma declaração IF é necessário fornecer as informações instrução de saída.

Por padrão, ADASEL permite o alinhamento de até 20 IF. Para mudar isso, use o parâmetro NIF ADASEL global. Para mais informações sobre o parâmetro NIF global, leia mais sobre o parametro SET GLOBALS.
O critério da sintaxe da variável do valor é descrito na seção critério de valor. Instruções de saída são descritas na instrução seção de saída.

As mudanças de nome de campo "critério de seleção de registros em que o valor de um campo especificado alterado durante uma atualização. ADASEL detecta a alteração entre a imagem anterior ea imagem posterior. Assim, este critério é válido somente para o comando (UPDATE) A1, que escreve um tanto antes da imagem e uma pós-imagem para o log de proteção. O campo nome deve ser o nome de dois caracteres Adabas de um campo fundamental na FDT. Não pode se referir a um grupo, periódicos (PE), superdescriptor, subdescritor, descritor fonético, ou hyperdescriptor. No entanto, ele pode se referir a um campo de valor múltiplo (MU) ou de um campo de membro de um grupo de periódicos (PE), consulte a seção valor-critério, em especial nos índices subseção MUs e os Estados-PE Campos.

0 comentários:

Enviar um comentário