• Nenhum resultado encontrado

DTLUCBRG Utilitário de Registro em Lotes

Parâmetro Padrão Descrição

PowerExchange, esse valor da instância também deve corresponder ao valor do parâmetro DBID no membro CAPTPARM.

- Para DB2, digite um ID do subsistema do DB2 (SSID). - Para DCM, digite um nome Datacom Multi-User Facility (MUF). - Para IDL, digite um CDC baseado em log IDMS valor da instância que

corresponde ao parâmetro registration_logsid na instrução LOGSID no membro de configuração DBMOVER.

- Para IMS, digite um ID de subsistema IMS que corresponde ao valor de parâmetro ims_ssid na instrução IMSID no membro de configuração DBMOVER.

- Para MSS, o parâmetro da instância não é usado.

- Para ORA, digite o ID de coleta definida pelo usuário para a instância Oracle que corresponde ao parâmetro collection_ID na instrução ORACLEID no membro de configuração DBMOVER do PowerExchange.

- Para UDB, digite o DB2 para nome do banco de dados Linux, UNIX e Windows.

- Para VSM, digite um identificador de coleta do VSAM. LOCATION Obrigatório. Aponta para o nó de destino.

Se os registros de mapas de dados e a fonte de dados residir no mesmo sistema, você não precisa definir também os outros LOCATION_ parameters. Você pode definir LOCATION para LOCAL.

LOCATION_CRG Valor de LOCATION

Especifique a localização do arquivo de registro (CCT).

LOCATION_DM Valor de LOCATION

Especifique a localização do arquivo DATAMAP.

LOCATION_XDM Valor de LOCATION

Especifique a localização dos mapas de extração.

NOTIFYCHANGES Y para fontes de dados suportadas

Disponível para origens DB2 e Oracle. Se NOTIFYCHANGES=Y, qualquer mudança no esquema para a tabela faz com que o CDC do PowerExchange falhe e registre uma mensagem de erro.

Para uma origem DB2 para z/OS, o ECCR do DB2 termina de forma anormal depois de ler o primeiro registro de mudança para a tabela depois da mudança do esquema.

Para uma origem Oracle, o CDC do Oracle falha e registra uma mensagem de erro nas seguintes situações:

- Se um registro de mudança para uma tabela registrada para captura contiver uma coluna que você não registrou para captura

- Se um registro de mudança não contiver uma coluna que você registrou para captura

Para o CDC do Oracle, se uma definição para uma tabela for alterada de forma compatível com o registro de captura do PowerExchange, o CDC do Oracle continuará a capturar mudanças para essa tabela.

Por exemplo, se o tamanho de uma coluna de caracteres diminuir, mas o registro de captura não refletir essa mudança, o CDC do Oracle continuará a capturar mudanças para a tabela.

De modo inverso, se o tipo de dados de uma coluna for alterado de numérico para caractere sem uma mudança no registro de captura, o CDC do Oracle continuará a capturar mudanças para a tabela até encontrar o primeiro registro de mudança que contém dados não numéricos para a coluna. Quando o CDC do Oracle encontra um registro de mudança contendo dados não numéricos para a coluna, ele falha e registra uma mensagem de erro.

Para fontes de dados diferentes de DB2 e Oracle, esse parâmetro será ignorado e assume o padrão N.

OUTPUT No z/OS

SYSPRINT, no Win STDOUT

Especifique a localização e o nome do arquivo de relatório do DTLUCBRG. No Windows, o formato é:

OUTPUT=c:\pwx\outfile.txt

Se o caminho incluir nomes com espaços, coloque o caminho entre aspas.

Parâmetro Padrão Descrição

No z/OS, o relatório é direcionado à saída SYSPRINT DD. PWD Especifique uma senha de texto não criptografado.

Não especifique EPWD ou PWD. REPLACE N Especifique uma das opções a seguir:

- Y. Substitua os registros inativos que correspondem à máscara especificada

no parâmetro de tabela.

- N. Não substitua os registros existentes. Adicione registros para tabelas que

correspondem à máscara e que ainda não existem. REPLACEACTIVE N Especifique uma das opções a seguir:

- Y. Substitua os registros ativos que correspondem à máscara especificada

no parâmetro TABLE. Para que ocorra essa sunstituição, o parâmetro REPLACE também deve ser definido como Y.

- N. Não substitua os registros ativos.

REUSECRGNAME N Especifique uma das opções a seguir:

- Y. Para registros existentes, manter o nome atual.

- N. Renomeie os registros existentes usando o CRGPREFIX e o formato de

número sequencial.

RPTCOLS Y Especifique uma das opções a seguir:

- N. Reporte somente os nomes de tabela que foram registrados durante a

execução.

- Y. Reporte nos nomes de tabelas e colunas que foram registrados durante a

execução.

STATUS Especifique uma das opções a seguir: - A. Crie registros em um estado ativo.

- I. Crie registros em um estado inativo. Você precisará ativar os registros para

torná-los elegíveis para captura de alterações.

Para origens do Microsoft SQL Server, se você especificar UPDATESTATUS=Y no parâmetro MSSOPTS, esse parâmetro STATUS redefine o status de todos os registros que correspondem aos critérios de filtro especificados. TABLE Especifique uma máscara que restringe os registros a ser criado. Para tabelas

relacionais, essa máscara é especificada no seguinte formato:

OWNER.TABLE

Se a fonte de dados não for relacional, esse mapa se relaciona à estrutura de mapa de dados e é especificado no seguinte formato:

SCHEMA.MAPNAME

Você pode usar um caractere curinga asterisco (*) em qualquer parte do nome para especificar um grupo de tabelas, por exemplo:

OWNAB.T*

Nesse caso, todas as tabelas que têm o proprietário e um esquema que começa com a letra "T" serão registradas para captura de alterações.

Para IMS, você também pode especificar um terceiro parâmetro para um nome de tabela. Use esse parâmetro quando várias tabelas são definidas em um mapa de dados, mas não todas as tabelas precisam ser registradas. Você pode incluir o caractere curinga asterisco (*) para criar um nome de máscara de tabela. Use o seguinte formato para esse parâmetro:

SCHEMA.MAPNAME.TABLENAME

Para fontes de dados não relacionais diferentes do IMS, o mesmo tipo de máscara está disponível para refinar a seleção, mas o formato é um pouco diferente:

SCHEMA.MAPNAME_TABLENAME

Parâmetro Padrão Descrição

TESTRUN Y Especifique uma das opções a seguir:

- Y. Execute o utilitário e reportar os registros a serem atualizados ou

adicionados. Nenhum registro será afetado por essa execução. - N. Execute o utilitário e adicionar/atualizar os registros.

UID Especifique a identificação de usuário para usar para acessar os dados de origem. O requisito desse parâmetro depende de ambos os dados de origem que estão sendo registrados e o valor do parâmetro SECURITY no arquivo de configuração DBMOVER do PowerExchange.

Especificando Vários Conjuntos de Parâmetros no Utilitário

DTLUCBRG

Vários conjuntos de parâmetros podem ser colocados no mesmo arquivo de parâmetros. Esses conjuntos devem ser separados com ‘;’ posicionado em uma nova linha entre os conjuntos de parâmetros. Por exemplo, no Linux, UNIX ou Windows, você poderia incluir as seguintes linhas:

DBTYPE DB2 TABLE DTL* OUTPUT=c:\dtlucdb2.txt etc. ... ; DBTYPE DB2 TABLE PWX* OUTPUT=c:\dtlucdb2_1.txt etc. ...

Nota: Para ver a saída de cada conjunto de parâmetros no Linux, UNIX ou Windows, defina um arquivo diferente

para OUTPUT=. No z/OS, você não pode especificar vários arquivos de saída. Cada conjunto de parâmetros é anexado à saída SYSPRINT DD.

Parâmetros Específicos da Fonte do Utilitário DTLUCBRG

Para Adabas, IMS, Microsoft SQL Server e origens de dados do Oracle, o utilitário DTLCUBRG requer informações adicionais para atualizar os registros. Você fornece essas informações nos parâmetros específicos da fonte.

Esses parâmetros têm nomes que começam com o valor DBTYPE e terminam com um sufixo OPTS. Cada um tem um ou mais subparâmetros.

A tabela a seguir descreve os parâmetros específicos de fonte:

Parâmetro Subparâmetro Padrão Obrigatório? Descrição

ADAOPTS FileNo Nenhuma Sim Número do Arquivo do Adabas

ADAOPTS DBID Nenhuma Sim Adabas DBID

IMSOPTS TYPE SYN Não Determina se o processamento de captura é para um ambiente do CDC síncrono do IMS ou baseado em log.

Os valores válidos são SYN ou LOG. IMSOPTS DBDNAME Do Mapa de

Dados

Não Nome do banco de dados do DBD.

IMSOPTS IMSID Nenhuma Não ID do subsistema do IMS que corresponde ao valor na instrução IMSID no membro DBMOVER de RUNLIB.

IMSOPTS PRIMDSN Nenhuma Não Nome do conjunto de dados primário.

Parâmetro Subparâmetro Padrão Obrigatório? Descrição

MSSOPTS DBSERVER Nenhuma Sim Nome do servidor de banco de dados.

MSSOPTS DBNAME De

Mapa de Dados

Sim Nome do banco de dados que contém as tabelas cujas alterações são capturadas. MSSOPTS UPDATESTATUS N Não Para origens do Microsoft SQL Server, indica

se o utilitário pode alterar o status de vários registros em uma operação e excluir e recriar as publicações associadas. Use esse parâmetro quando precisar alternar o status de vários registros de uma só vez ou quando precisar fazer alterações de DDL a várias tabelas de origem e não quiser recriar manualmente os registros e regenerar as publicações.

Se você especificar UPDATESTATUS=Y, o utilitário executa as seguintes ações, dependendo da configuração STATUS: - Se STATUS for definido como I, os registros

ativos que você selecionar são definidos como inativos e as publicações associadas são excluídas.

- Se STATUS for definido como A, os registros inativos que você selecionar são definidos como ativos e as publicações associadas são automaticamente reformuladas com base nos registros existentes.

Você pode filtrar os registros para o utilitário processar especificando os parâmetros CONDTYPE, TABLE, e CRGNAME ou CRGPREFIX.

ORAOPTS DDLFILE dtlucbrg_ora.sql Não O nome do arquivo que armazena ALTER DDL para grupos de log complementar. Esse parâmetro pode incluir um caminho completo e o nome de arquivo, como c:\sql

\oraopts.sql.

Se o valor inclui espaços, não use aspas para delimitar o caminho e nome de arquivo. Se você definir DDLFILE =, o utilitário usa o nome de arquivo padrão e o diretório padrão. Para usar outro nome de arquivo, especifique o caminho completo e o nome do arquivo. Se você especificar apenas um caminho, o utilitário retornará um erro.

T

ÓPICOS

R

ELACIONADOS

:

¨ “Parâmetros do Utilitário DTLUCBRG” na página 35

Parâmetro ADAOPTS - Adabas

A sintaxe do parâmetro ADAOPTS é:

ADAOPTS=(FileNo=<file number>,DBID=<dbid>)

Se o ADAOPTS for especificado para qualquer DBTYPE diferente do Adabas, o resultado será uma mensagem de erro.

Parâmetro IMSOPTS - IMS

A sintaxe do parâmetro IMSOPTS é:

IMSOPTS=(TYPE=<type>,DBDNAME=<name>,IMSID=<name>, PRIMDSN=<dsname>)

Se o IMSOPTS for especificado para qualquer DBTYPE diferente do IMS, o resultado será uma mensagem de erro.

Parâmetro MSSOPTS - Microsoft SQL Server

Use a sintaxe a seguir para o parâmetro MSSOPTS:

MSSOPTS=(DBSERVER=server_name,DBNAME=database_name,[UPDATESTATUS={Y|N}])

Se o MSSOPTS for especificado para um DBTYPE diferente do MSS, o utilitário DTLUCBRG emite uma mensagem de erro.

Parâmetro ORAOPTS - Oracle

A sintaxe do parâmetro ORAOPTS é: ORAOPTS=(DDLFILE=<filename>)

DDLFILE é um subparâmetro obrigatório do ORAOPTS. Para acessar o código do nome do arquivo e o caminho padrão:

ORAOPTS=(DDLFILE=)

A DDL criada pela execução deve ser executada manualmente para criar os grupos de logs complementares exigidos para captura do PowerExchange Oracle.

T

ÓPICOS

R

ELACIONADOS

:

¨ “Parâmetros Específicos da Fonte do Utilitário DTLUCBRG” na página 39

Processamento de Página de Código DTLUCBRG

O DTLUCBRG ignora a instrução CODEPAGE do arquivo de configuração DBMOVER e, em vez disso, usa a página de código que é usada para armazenar os metadados de dados de mapas de registros e captura, como a seguir:

¨ IBM037 no i5/OS ¨ IBM1047 no z/OS

¨ UTF8 no Linux, UNIX ou Windows

Sempre que a instrução DBMOVER CODEPAGE é substituída, o PowerExchange emite a seguinte mensagem:

Changed client code pages to name (internal_code_page_number)

No i5/OS e z/OS, o PowerExchange oferece suporte a nomes de tabelas e colunas com caracteres que estão presentes nas páginas de código IBM1037 e IBM1047, respectivamente. Caracteres acentuados que não estão em páginas de código não são suportados. No Linux, UNIX e Windows, todos os caracteres são suportados. Quando o Ouvinte do PowerExchange recupera dados, a conversão de página de códigos de SQL e os dados é executada automaticamente. Por exemplo, um Ouvinte do PowerExchange no z/OS pode precisar usar uma determinada página de código do SQL para atender aos requisitos de um subsistema do DB2. O SQL é convertido para a página de códigos necessária e é recebido pelo Ouvinte pronto para ser usado pelo DB2. Dados da coluna é descrita de acordo com os CCSIDs do DB2 e envia de volta para DTLUCBRG, que converte para a página de código de metadados necessária.

Processamento de página de código para os registros do DB2 no

modo local no z/OS

Devido a um Ouvinte do PowerExchange que não está envolvido, o processamento de registros do DB2 no modo local no z/OS não ativa a conversão de página de código do SQL automático. Nesse caso, o DTLUCBRG executa a conversão de página de código necessária e emite a seguinte mensagem:

Using codepage code_page_name (code_page_number for table names in DB2 subsystem subsystem. Observe que porque o DTLUCBRG usa o pool de conexões ao usar um Ouvinte do PowerExchange, o desempenho é apenas um pouco mais lento que a execução local.

Executando o Utilitário DTLUCBRG

É altamente recomendável que o utilitário seja executado com TESTRUN=Y inicialmente para avaliar o escopo das alterações e adições ao registro resultantes de uma determinada execução. Depois de ver as alterações reportadas pela execução TESTRUN=Y, altere TESTRUN para N e execute para ver as alterações se tornarem efetivas.

Amostra de Entrada para o Utilitário DTLUCBRG

A amostra de entrada a seguir registrará todas as tabelas do DB2 no subsistema DSN1 (INSTANCE) e com um proprietário que começa com os caracteres DTL (TABLE).

Os dados de destino estão na máquina endereçada por MP3000 (LOCATION relativo a um nó do arquivo de configuração do PowerExchange), com os arquivos de registro, mapa de dados e mapa de extração.

Todo registro que satisfizer a máscara especificada no parâmetro TABLE, quer inativo ou ativo, será substituído durante essa execução (REPLACE e REPLACEACTIVE).

Os registros serão criados como ativos (STATUS), prefixados pelo DB2 (CRGPREFIX) e serão reportados por nome de tabela somente (RPTCOLS) sem informações de coluna.

Os dados não estarão disponíveis para condensação porque CONDTYPE é especificado como NONE. Para obter informações sobre as regras que determinam qual fonte de dados é elegível para condensação, consulte o guia do CDC do PowerExchange relativo ao seu sistema operacional.

O relatório é gravado da seguinte forma no arquivo ucbrgoutput.txt: OUTPUT=\MyDir\ucbrgoutput.txt

A amostra a seguir apresenta a entrada para DTLUCBRG: DBTYPE DB2 TABLE DTL* CONDTYPE NONE INSTANCE DSN1 LOCATION MP3000 LOCATION_CRG MP3000 LOCATION_DM MP3000 LOCATION_XDM MP3000 CRGPREFIX DB2 TESTRUN N STATUS A UID dtlusr PWD dtlusr OUTPUT=c:\dtlucdb2.txt REPLACE Y REPLACEACTIVE Y RPTCOLS N

T

ÓPICOS

R

ELACIONADOS

:

¨ “Utilitário DTLUCBRG com Descrição do Relatório RPTCOLS=N” na página 44 ¨ “Utilitário DTLUCBRG com Descrição do Relatório RPTCOLS=Y” na página 45

Executando o Utilitário DTLURDMO no i5/OS

No i5/OS, execute o utilitário inserindo o seguinte comando: call dtlucbrg parm('cs=filepath1/filepath2(myparmfile)') Onde myparmfile contém o DTLUCBRG instruções de controle.

Executando o Utilitário DTLUCBRG no Linux, UNIX e Windows

Os parâmetros de entrada devem ser definidos no arquivo dtlucbrg.txt por padrão. Se os parâmetros forem codificados nesse arquivo, execute o utilitário digitando DTLUCBRG na linha de comando. Os parâmetros podem ser especificados em um arquivo de outro nome. O relatório será gravado no local especificado no parâmetro OUTPUT.

Sintaxe do Utilitário DTLUCBRG no Linux e UNIX

No Linux e UNIX, execute o utilitário inserindo DTLUCBRG na linha de comando da seguinte forma: dtlucbrg CS=/MyParms/PWX/ucbrgtest.txt

Sintaxe do Utilitário DTLUCBRG no Windows

No Windows, para executar com um caminho e nome de arquivo especificados, use a seguinte sintaxe: c:\>dtlucbrg CS=C:\MyParms\PWX\ucbrgtest.txt

Se o caminho ou o nome do arquivo contiver espaços em branco, use a seguinte sintaxe: c:\>dtlucbrg CS="C:\MyParms\PWX\In Quotes for Embedded Blanks.txt"

Executando o Utilitário DTLUCBRG no z/OS

A JCL a seguir oferece exemplos de instruções para uso durante a execução desse utilitário no z/OS. //DTLUSRRG JOB 'DTLSETFL',MSGCLASS=X,NOTIFY=&SYSUID,

// CLASS=A,REGION=64M

//******************************************************************** //* * //* RUN BATCH REGISTRATION UTILITY * //* * //******************************************************************** //INCS1 INCLUDE MEMBER=GENBULK

//***

//RUN EXEC PGM=DTLUCBRG /* /* //STEPLIB DD DISP=SHR,DSN=&HLQ..LOADLIB // DD DISP=SHR,DSN=&HLQ..LOAD // DD DISP=SHR,DSN=&SCERUN // DD DISP=SHR,DSN=&DB2LOAD // DD DISP=SHR,DSN=&DB2EXIT //* //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //*** //SYSIN DD * DBTYPE DB2 TABLE DTLUSR.DTL* CONDTYPE NONE INSTANCE DSN1 LOCATION node1 LOCATION_CRG node1 LOCATION_DM node1 LOCATION_XDM node1 CRGPREFIX DB2 TESTRUN N STATUS A UID <logonid> PWD xxxxxx REPLACE Y REPLACEACTIVE Y RPTCOLS N /* //* - other parms

//* EPWD //* REUSECRGNAME //*

//* CDC Datasets - need to be open if CDC to be used //* //DTLMSG DD DISP=SHR,DSN=&HLQ..DTLMSG //DTLCFG DD DISP=SHR,DSN=&RUNLIB(DBMOVER) //DTLKEY DD DISP=SHR,DSN=&RUNLIB(LICENSE) //DTLSGN DD DISP=SHR,DSN=&RUNLIB(SIGNON) //DTLLOG DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //CEEDUMP DD SYSOUT=*

Utilitário DTLUCBRG com Descrição do Relatório RPTCOLS=N

O exemplo de relatório a seguir está no nível de tabela sem coluna de detalhes (RPTCOLS=N). O cabeçalho contém o valor TESTRUN e isso deverá ser verificado para garantir a execução do utilitário no modo esperado. Após o cabeçalho, os valores do arquivo de parâmetro de entrada são repetidos no relatório.

2005-01-24 11:07:16 DTLUCBRG REGISTRATION REPORT (TESTRUN=N) CONDTYPE = <None> CRGPREFIX = <DB2> DBTYPE = <DB2> INSTANCE = <DSN1> LOCATION = <MP3000> LOCATION_CRG = <MP3000> LOCATION_DM = <MP3000> LOCATION_XDM = <DB3000> OUTPUT = <c:\dtlucdb2.txt> REPLACE = <Y> REPLACEACTIVE= <Y> REUSECRGNAME = <N> RPTCOLS = <N> STATUS = <A> TABLE = <DTL*>

IMSOPTS: Not relevant for this run ORAOPTS: Not relevant for this run MSSOPTS: Not relevant for this run ADAOPTS: Not relevant for this run

RegName Old Table-name Old Old Vers RegName Cond Status >1 ========================================================================= db20008 db2captc DTLUSR.DTLRESTART Part A - db20009 db20001 DTLUSR.DTLSTATUS None A - db20010 db20002 DTLUSR.DTLTST4 None A - db20011 db20003 DTLUSR.DTLTST5 None A - db20012 db20004 DTLUSR.DTLTST6 None A - db20013 db20005 DTLUSR.DTLTST8 None A - db20014 db20006 DTLUSR.DTLTST9 None A - ========================================================================= Summary of registrations created with status ACTIVE and

condense type NONE

No of registrations created = 0 No of registrations updated = 7

No of existing registrations not matching update parameters: = 0 2005-01-24 11:08:13 END OF DTLUCBRG REGISTRATION REPORT

A tabela a seguir descreve o conteúdo no relatório de amostra:

Campo do Relatório Descrição

Nome do Registro O nome do novo registro.

Nome do Registro Antigo O nome do registro antigo onde estes foram substituídos por novos nomes (determinado pela definição REUSECRGNAME=N).

Nome da Tabela A tabela que está sendo registrada para captura.

Tipo de Condensação Antigo Onde um registro está sendo substituído, o valor da opção de condensação antigo. Status Antigo Onde um registro está sendo substituído, o valor do status antigo.

Utilitário DTLUCBRG com Descrição do Relatório RPTCOLS=Y

O exemplo a seguir mostra as informações adicionais geradas quando você executa o utilitário DTLUCBRG com RPTCOLS definido como Y:

--- db20030 db20023 DTLUSR.DTLSTATUS None A - -Column Name ---Type---Precision--Scale--Nulls-Key--- TABLE_NAME VARCHAR 255 0 N Y STATUS CHAR 20 0 N N STATUS_REASON CHAR 20 0 N N APPLY_SEQUENCE VARCHAR 255 0 Y N RESTART_POINT VARCHAR 255 0 Y N --- A tabela a seguir descreve os campos no formato de relatório estendido:

Campo Descrição

Nome da Coluna Nome da coluna

Tipo Tipo, como CHAR, VARCHAR, e assim por diante

Precisão Tamanho da coluna

Escala Casas decimais

Nulos Nulos, S/N

Chave Coluna de chave, S/N

As informações da coluna são exibidas imediatamente após as informações relativas do registro de tabela.

Nota: Os nomes de tabela e de coluna poderão ser truncados no relatório.

Notas de Uso do Utilitário DTLUCBRG

Ao executar o utilitário DTLUCBRG, você poderá receber mensagens de erro que não interrompem a criação de registros, mas podem indicar que eles não podem ser usados.