[firebase-br] Erro TransactionID invalido!!

Renato Miranda renato.smiranda em gmail.com
Seg Abr 2 16:36:46 -03 2007


Tudo bem, Pineli ?

Acho que o Kleber atentou para o detalhe mais importante: o "embedded" é
monousuário. Como você está conseguindo receber todas essas transações
dentro de uma mesma aplicação num mesmo micro e elas não são seqüenciais ?

Abraços,

RMiranda

Em 02/04/07, Kleber Caneva <kdcc em terra.com.br> escreveu:
>
> Será que por ele gerar uam thread para cada conexão, ele não está tentando
> fazer conexão simultanea ao FB ?
>
> Lembre-se que o FB Embarcado, não permite multiplas conexões.
>
> []´s
>
> Kléber Caneva
>
>
> ----- Original Message -----
> From: "Pineli" <carlospineli em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Friday, March 30, 2007 3:24 PM
> Subject: Re: [firebase-br] Erro TransactionID invalido!!
>
>
> putz galera...nada a ver essa discucao da porra...
>
> ja fiz de todo jeito.... é muito rapido...nao da conta de gravar no db
>
> Em 30/03/07, Kleber Caneva<kdcc em terra.com.br> escreveu:
> > A linha
> >       TransacaoSQL.TransactionID := IDTransacao; //1;
> > contradiz sua informação que " D transacao estou gerando o valor
> > aleatoriamente"
> >
> > Esse codigo sugere que você está usando Selec MAX
> >     DM.SQLUltimoCod.Close ;
> >     DM.SQLUltimoCod.Open  ;
> >    codigonovo := inttostr( DM.SQLUltimoCod.Fields[0].AsInteger + 1);
> >
> > Substitua por GENERATOR, eles existem pra isso.
> >
> > []´s
> >
> > Kléber Caneva
> >
> >
> > ----- Original Message -----
> > From: "Pineli" <carlospineli em gmail.com>
> > To: <lista em firebase.com.br>; <pineli em ecp.com.br>
> > Sent: Friday, March 30, 2007 8:34 AM
> > Subject: [firebase-br] Erro TransactionID invalido!!
> >
> >
> > Ola para todos....
> > estou fazendo uma aplicacao com firebird 1.5 embarcado + delphi 7.
> > recebo centenas de eventos através de 1 sockets e preciso gravar tudo
> > no banco...
> > só que tudo acontece muito rápido e esta dando erro após a quinta
> > conexao. Qual uma maneira segura de gravar tudo com segurança... estou
> > fazendo assim:
> >
> > tem um data modulo com a conexao
> > e cada conexao do socket cria uma thread com o codigo abaixo. Criando
> > um query tbm para cada.
> > O ID transacao estou gerando o valor aleatoriamente para tentar nao
> > repetir
> > (...)
> >
> > DM.SQLUltimoCod.Close ;
> > DM.SQLUltimoCod.Open  ;
> > codigonovo := inttostr( DM.SQLUltimoCod.Fields[0].AsInteger + 1);
> >
> > //gravando informacao no banco de dados
> >
> > SQLQueryThread.Close     ;  // Não sei se já tava aberta, então fecho
> > SQLQueryThread.SQL.Clear ;
> > SQLQueryThread.SQL.Add('INSERT INTO EVENTOS(ID_EVENTOS, EVENTO, IP) ');
> > SQLQueryThread.SQL.Add
> ('VALUES('+CODIGONOVO+','+#39+COPY(RecText,1,4)+#39+','+#39+ClientSocket.RemoteAddress+#39+')')
> > ;
> >
> > Gravou := False;       // Controla se conseguiu ou não gravar
> > for i := 1 to 100 do   // Tentativa de gravação por 100 vezes
> > begin
> >     try
> >       TransacaoSQL.TransactionID := IDTransacao; //1;
> >       TransacaoSQL.IsolationLevel := xilREPEATABLEREAD ;
> >       DM.SQLConexao.StartTransaction( TransacaoSQL ) ;
> >       SQLQueryThread.ExecSQL( True ) ;
> >       DM.SQLConexao.Commit( TransacaoSQL ) ; // Efetiva gravação
> >       Gravou := True;   // Se chegou aqui é pq conseguiu gravar
> >     except
> >       on e:Exception do
> >       begin
> >          DM.SQLConexao.Rollback( TransacaoSQL ); // Desfaz alteraes
> >          Erro   := e.Message;
> >          Gravou := False    ;   // Faiô, tio!
> >       end;
> >     end;
> >     if Gravou then   // Conseguiu gravar, iupiiiii!
> >        break         // Sai do 'For'
> >     else
> >        Sleep(1000);  // Espera 1 segundo antes de ir p/ prox. passo do
> > 'For'
> > end;
> > if not Gravou then   // Faiô mesmo, depois de 100 tentativas :-(
> > begin
> >    ShowMessage(Erro);   // Mostra mensagem de erro
> > (....)
> >
> > quando ocorre o erro ele esgora as 100 tentativas....
> > Como fazer isso de uma forma mais segura??????
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para editar sua configuração na lista, use o endereço
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> > Esta mensagem foi verificada pelo E-mail Protegido Terra.
> > Scan engine: McAfee VirusScan / Atualizado em 29/03/2007 / Versão:
> > 5.1.00/4995
> > Proteja o seu e-mail Terra: http://mail.terra.com.br/
> >
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para editar sua configuração na lista, use o endereço
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> Scan engine: McAfee VirusScan / Atualizado em 30/03/2007 / Versão:
> 5.1.00/4996
> Proteja o seu e-mail Terra: http://mail.terra.com.br/
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Abraços,

RMiranda



Mais detalhes sobre a lista de discussão lista