Aplicativo em Rede + Start Transction + Generator

Firebird

05/09/2012

Olá bom dia!


Tenho a seguinte dúvida usando Aplicativo em Rede + Start Transction + Generator;


Tenho um funcao grava Registro usando o Generator GNt_Registo com valor = a 100;


Tenho três Registros para gravar na seguinte sequencia:


Start Transaction = true;

(1)-Micro-1
-Codreg := 100 (gnt_Receber = 100)
-Dados do regstro


(2)-Micro-2
-Codreg := 101
-Dados do regstro


(3)-Micro-3
-Codreg := 102
-Dados do regstro


valor do Gnt_Receber igual a 102, ok!, ainda não executei comit.


O Micro-2 e Micro-3 executa o comit mas o MICRO-1 caiu numa Except e executa o RollBack,
como ficariA agora o valor do Gnt_Receber ?

Gnt_Receber = 102 ou Gnt_Receber = 100 ?


Desde já meus agradecimentos a quem puider ajudar.


100+

ANT.CARLOS/SP
Antonio Jesus

Antonio Jesus

Curtidas 0

Respostas

Antonio Jesus

Antonio Jesus

05/09/2012

Olá boa noite!

Fiz varios teste e tive a seguinte conclusão:

Usando Transações (Start/Commit) os Generations não são afetados pelo Rollback.
Fiz três instancias do aplicativo seguindo a sequencia maq-1, maq-2, maq-3
executei o commit na maq-1 e maq-2 e na maq-1 executei um RollBack e o valor do Generation continuou sendo o da última sequencia.

Valores do generation: Maq-1 = 100, Maq-2 = 101, Maq-3 = 103, após todas as execuçoes, o valor do generation continuou em 103.


100+

ANT.CARLOS/SP
GOSTEI 0
POSTAR