Auxílios do VisualAge Generator

EZEROLLB

EZEROLLB chama serviços do sistema que faz rollback de atualizações feitas em bancos de dados ou arquivos recuperáveis desde o último ponto de commit. Um retrocesso ocorre automaticamente se o programa terminar com um erro inesperado.

Usos

Você pode utilizar EZEROLLB como o nome de função em uma instrução de chamada da função.

Pode-se usar EZEROLLB no lugar da rotina de serviço RESET de CALL.

Um roll back ocorre quando:

Ambientes de Destino

Ambiente Considerações de compatibilidade
VM CMS EZEROLLB resultará em um SQL ROLLBACK WORK se os pedidos SQL foram emitidos pelo programa.
VM batch Igual a VM CMS.
CICS para MVS/ESA EZEROLLB resulta em um CICS SYNCPOINT ROLLBACK. É feito o rollback de todas as atualizações ocorridas desde o último ponto de commit para bancos de dados DL/I, bancos de dados relacionais e arquivos definidos como recursos recuperáveis. Os serviços EZEROLLB são chamados automaticamente para o program se o programa chamar o serviço RESET.

O programa batch chamado remotamente pode chamar EZEROLLB. Chamar EZEROLLB a partir de programas remotos pode resultar em um CICS SYNCPOINT ROLLBACK se ECI_NO_EXTENDED estiver especificado na tabela de roteamento do middleware. É emitida uma mensagem de erro de runtime indicando que o rollback falhou com INVREQ se ECI_EXTEND estiver especificado na tabela de roteamento do middleware.

Arquivos spool não sofrem rollback.

MVS/TSO EZEROLLB resulta em SQL ROLLBACK WORK se o programa emitiu pedidos do SQL.

Se tiverem sido emitidos pedidos DL/I, será executada uma chamada ROLB (rollback) DL/I. O parâmetro batch IMS BKO=Y tem que ser especificado na CLIST de inicialização para que a chamada ROLB possa ser honrada. Se BKO=N estiver especificado, o DL/I retornará o código de status AL para a chamada ROLB. A execução trata AL como código de erro de programa, não sendo dada mensagem de erro.

Programas VisualAge Generator que não utilizam a DL/I emitem um rollback somente se o programa fez alterações em uma tabela SQL. Não ocorre rollback para alterações a tabela SQL feitas por programa não-VisualAge Generator.

MVS batch Se o programa executado pelo programa de supervisão de terminal TSO para acesso ao SQL, chamar EZEROLLB resultará em um SQL ROLLBACK WORK.

Se o programa for executado como um job em lote da DL/I e os pedidos DL/I or SQL foram emitidos, uma chamada ROLB da DL/I será emitida. O parâmetro de batch IMS BKO=Y tem que ser especificado quando o job do batch é iniciado para que a chamada ROLB possa ser honrada. Se BKO=N estiver especificado, o DL/I retornará o código de status AL para a chamada ROLB. A execução trata AL como código de erro de programa, não sendo dada mensagem de erro.

BKO é especificado como parâmetro na fase do job que chama o programa de controle IMS DFSRRC00.

Arquivos seriais ou de impressão associados a arquivos GSAM e CALL AUDIT resultam em pedidos DL/I e fazem com que a chamada ROLB DL/I seja emitida.

Programas VisualAge Generator que não utilizam a DL/I emitem um rollback somente se o programa fez alterações em uma tabela SQL. Não ocorre rollback para alterações a tabela SQL feitas por programa não-VisualAge Generator.

IMS/VS EZEROLLB resulta em uma chamada ROLB da DL/I.
IMS BMP Igual a IMS/VS.
CICS para VSE Igual a CICS para MVS/ESA.
VSE batch EZEROLLB resultará em um SQL ROLLBACK WORK se os pedidos SQL foram emitidos pelo programa. Não há função de rollback automática para bancos de dados DL/I sob VSE batch.

Se for preciso o roll back das alterações para um banco de dados da DL/I, você deverá codificar o programa para ser encerrado com uma mensagem de erro indicando que o usuário final deve ser executado no utilitário de backout da DOS/VS da DL/I.

Arquivos spool não sofrem rollback.

CICS para OS/2 EZEROLLB resulta primeiro em um SQL ROLLBACK WORK, se o programa emitiu pedidos SQL na estação de trabalho e, depois, um CICS SYNCPOINT ROLLBACK. O CICS coordena as funções de rollback do host e da estação de trabalho.

SYNCPOINT ROLLBACK CICS faz o backout das alterações feitas aos arquivos da estação de trabalho definidos como recursos recuperáveis para CICS OS/2. O CICS SYNCPOINT ROLLBACK também faz o back out das alterações em bancos de dados e arquivos recuperáveis em um host CICS quando as alterações são feitas por um programa batch chamado remotamente que seja chamado por este programa.

ROLLBACK WORK SQL faz o backout das alterações feitas a bancos de dados relacionais.

O programa batch chamado remotamente pode chamar EZEROLLB. Chamar EZEROLLB a partir de programas remotos pode resultar em um CICS SYNCPOINT ROLLBACK se ECI_NO_EXTENDED estiver especificado na tabela de roteamento do middleware. É emitida uma mensagem de erro de runtime indicando que o rollback falhou com INVREQ se ECI_EXTEND estiver especificado na tabela de roteamento do middleware.

Arquivos gerados com arquivo do tipo OS2COBOL não são recursos recuperáveis e não são afetados por EZEROLLB.

OS/400 Nenhum.
OS/2 (GUI) EZEROLLB usa o suporte de comunicação do cliente/servidor.
Windows (GUI) Igual a OS/2 (GUI).
Java (GUI) Igual a OS/2 (GUI).
OS/2 (C++) EZEROLLB faz o rollback das alterações sofridas por bancos de dados relacionais. Os arquivos não são afetados por EZEROLLB.
AIX Igual a OS/2 (C++).
HP-UX Igual a OS/2 (C++).
Solaris Igual a OS/2 (C++).
CICS for Solaris EZEROLLB faz o rollback das alterações sofridas por bancos de dados relacionais e por arquivos definidos como recursos recuperáveis.
CICS for AIX EZEROLLB faz o rollback das alterações sofridas por bancos de dados relacionais e por arquivos definidos como recursos recuperáveis.
Windows NT Igual a OS/2 (C++).
CICS para Windows NT Igual a CICS for AIX.
Dispositivo de Teste O ambiente de execução VSE batch DL/I não suporta EZEROLLB. dispositivo de teste emite EZEROLLB, o que torna desnecessária a limpeza manual do banco de dados.

Se estiver sendo usada a opção de emulação DL/I local, os produtos Micro Focus ignorarão pedidos de rollback. O posicionamento do banco de dados se perde quando o rollback é emitido, mas os dados em si não sofrem rollback.

Exemplo

EZEREPLY=1;
EZEROLLB();


[ Início da Página | Página Anterior | Próxima Página | Índice ]