Auxílios do VisualAge Generator

EZECOMIT

EZECOMIT chama serviços para salvar todas as alterações do banco de dados e do arquivo desde o último commit.

A posição de procura é perdida e os bloqueios de atualização são liberados para quaisquer arquivos ou bancos de dados afetados pelo EZECOMIT. Ocorre porém uma exceção quando se usa Declare Cursor With Hold. A opção WITH HOLD não é suportada para ODBC. Quando se usa ODBC, todos os cursores abertos são fechados numa EZECOMIT e todas as instruções têm que ser preparadas de novo.

Usos

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

Use sempre EZECOMIT em GUIs antes de concluir o processamento de qualquer evento que resulte em atualizações de bancos de dados relacionais que estejam sendo feitas por DLLs locais chamadas pelas GUI ou por chamadas a servidor remoto em que haja unidade de trabalho controlada pelo cliente especificada para a chamada servidora.

Considerações sobre Definição
Nota:Pode não ser preciso usar EZECOMIT caso se levem em conta as situações de commit implícito mencionadas abaixo. Se for possível tirar proveito delas, o desempenho poderá melhorar pela não utilização explícita de EZECOMIT.

Um ponto de commit é considerado em qualquer uma das seguintes situações:

Ambientes de Destino


Ambiente Considerações de compatibilidade
VM CMS EZECOMIT faz o commit das alterações sofridas por bancos de dados relacionais. EZECOMIT resulta em SQL COMMIT WORK se o programa emitiu pedidos do SQL.
VM batch Igual a VM CMS.
CICS para MVS/ESA EZECOMIT resulta em um CICS SYNCPOINT, que faz commits de alterações em bancos de dados relacionais, bancos de dados DL/I e arquivos definidos como recursos recuperáveis para CICS.

O fim de um segmento (emitindo um CONVERSE ao executar no modo segmentado) tem o mesmo efeito que EZECOMIT.

Programas batch chamados remotamente (programas que residem em um sistema diferente do programa chamador) podem chamar EZECOMIT. Se ECI_NO_EXTEND tiver sido especificado, o commit vai funcionar. Se tiver sido especificado ECI_EXTEND, será dada uma mensagem de erro de runtime dizendo que o commit falhou com INVREQ.

MVS/TSO EZECOMIT faz o commit das alterações sofridas por bancos de dados relacionais e DL/I. EZECOMIT resulta em SQL COMMIT WORK se o programa emitiu pedidos do SQL.

Uma chamada CHKP da DL/I (ponto de verificação) é emitida se o programa emitiu pedidos da DL/I. O conteúdo da palavra de função especial EZEDLPSB é usado como identificador de ponto de verificação na chamada CHKP.

MVS batch Se o batch não especificou um PSB mas emitiu pedidos SQL, um SQL COMMIT WORK será emitido.

Se o programa possuir um PSB especificado, chamar EZECOMIT resultará em um chamada CHKP básica da DL/I, que faz commits de alterações em bancos de dados. O conteúdo da palavra de função especial EZEDLPSB é usado como identificador de ponto de verificação na chamada CHKP.

Arquivos GSAM não são recuperáveis quando usados com CHKP básica. Para tornar arquivos GSAM recuperáveis, use CSPTDLI como ponto de verificação simbólico em vez de EZECOMIT.

IMS/VS EZECOMIT é ignorada neste ambiente. O commit de processamento é feito pelo sistema nos seguintes pontos:
  • Em cada CONVERSE
  • Quando um programa de transação é concluído:
    • No final da última função principal
    • Executando um EZECLOS
    • Executando um XFER
  • Quando um programa batch pesquisa um arquivo serial atribuído ao PCB de E/S para o primeiro segmento da mensagem seguinte
  • Quando um programa batch utiliza CSPTDLI para emitir uma função CHKP ou uma obtenção de chamada exclusiva para o PCB de E/S

Alterações feitas a todos os bancos de dados e arquivos seriais sofrem commit.

IMS BMP Para um programa BMP orientado a batch que não pesquise um arquivo serial associado ao PCB de E/S, chamar EZECOMIT resultará em uma chamada CHKP básica da DL/I, que faz commits de alterações em todos os bancos de dados. O conteúdo da palavra de função especial EZEDLPSB é usado como identificador de ponto de verificação na chamada CHKP.

Arquivos GSAM não são recuperáveis quando usados com CHKP básica. Para tornar arquivos GSAM recuperáveis, use CSPTDLI como ponto de verificação simbólico em vez de EZECOMIT.

EZECOMIT será ignorado para programas BMP orientados a transação em que os programas pesquisam um arquivo serial associado ao PCB de E/S. Para estes programas o commit é feito pelo sistema toda vez que um SCAN é emitido para um arquivo serial atribuído ao PCB de E/S para obter o primeiro segmento de uma mensagem ou quando CSPTDLI é utilizado para solicitar uma função CHKP.

CICS para VSE Os programas do servidor remoto (programas que residem em um sistema diferente que o programa chamador) podem emitir EZECOMIT somente se a tabela de ligação especificou a unidade de trabalho do servidor para o programa.

Do contrário, é como CICS para MVS/ESA.

VSE batch Se o programa não especificou um PSB mas emitiu pedidos SQL, será emitido um SQL COMMIT WORK.

Se o programa possuir um PSB especificado, chamar EZECOMIT resultará em um chamada CHKP básica da DL/I, que faz commits de alterações em bancos de dados. O conteúdo da palavra de função especial EZEDLPSB é usado como identificador de ponto de verificação na chamada CHKP.

CICS para OS/2 EZECOMIT resulta em um CICS SYNCPOINT.

CICS SYNCPOINT faz o commit de alterações feitas a bancos de dados DB2 e a arquivos definidos como arquivos recuperáveis para o CICS. O SYNCPOINT também faz commits de alterações em bancos de dados e arquivos recuperáveis de um host CICS quando as alterações são feitas por um programa batch chamado remotamente que seja chamado pelo programa que chama EZECOMIT. O CICS coordena as funções de commit do host e da estação de trabalho.

COMMIT WORK SQL faz o commit de alterações sofridas por bancos de dados relacionais.

Programas batch chamados remotamente (programas que residem em um sistema diferente do programa chamador) podem chamar EZECOMIT. Se ECI_NO_EXTEND tiver sido especificado, o commit vai funcionar. Se tiver sido especificado ECI_EXTEND, será dada uma mensagem de erro de runtime dizendo que o commit falhou com INVREQ.

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

OS/400 Um commit implícito é emitido quando um programa do tipo MAIN termina, o qual constitui o final de uma unidade de execução. A interface mais comum disto é quando o programa MAIN retorna ao programa não-VisualAge Generator a partir do qual foi iniciado.

Outro caso de commit implícito é num XFER. Um DXFR não causa commit.

Chamar EZECOMIT resulta em um SQL COMMIT WORK se o programa emitiu pedidos SQL.

Chamar EZECOMIT resulta no equivalente a um comando OS/400 COMMIT, se o programa não emitiu pedidos SQL.

OS/2 (GUI) EZECOMIT resulta em um commit das alterações do banco de dados relacional feitas pelos programas C++ gerados localmente e quaisquer outras alterações dos recursos recuperáveis feitas pelos programas do servidor remoto chamados com a unidade de trabalho controlada pelo cliente na tabela de ligação. O commit de duas fase só é usado se todos os servidores tiverem sido chamados por meio de gerenciador de transações sob a mesma transação.
Windows (GUI) Igual a OS/2 (GUI).
Java (GUI) Igual a OS/2 (GUI).
OS/2 (C++) Faz commits de alterações em bancos de dados relacionais e alterações feitas em programas do servidor remoto chamados pela unidade de trabalho controlada pelo cliente. O commit de fase única é usado quando há gerenciadores de recursos múltiplos.
AIX Igual a OS/2 (C++).
CICS for AIX Faz commits de alterações em bancos de dados relacionais, arquivos definidos como recuperáveis para CICS e alterações feitas em programas do servidor remoto definidos na tabela de ligação como utilizados pela unidade de trabalho controlada pelo cliente. O commit pode ser configurado como commit de duas fases controlado pelo CICS.
HP-UX Igual a OS/2 (C++).
Solaris Igual a OS/2 (C++).
CICS for Solaris Faz commits de alterações em bancos de dados relacionais, arquivos definidos como recuperáveis para CICS e alterações feitas em programas do servidor remoto definidos na tabela de ligação como utilizados pela unidade de trabalho controlada pelo cliente. O commit pode ser configurado como commit de duas fases controlado pelo CICS.
Windows NT Faz o commit de alterações sofridas por bancos de dados relacionais e por arquivos definidos como recursos recuperáveis para o Windows NT.
CICS para Windows NT Igual a CICS for AIX.
Dispositivo de Teste EZECOMIT é ignorado no ambiente de execução do IMS/VS DL/I. A chamada a EZECOMIT é ignorada, mas o teste continua.

Exemplo de

EZEREPLY = 0;
EZECOMIT();


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