Caro Walter,


Uma transa��o � uma sequ�ncia de opera��es de banco de dados q precisam ser
executadas juntas mesmo q sequencialmente de forma a consistir a integridade
referencial das informa��es do banco de dados durante a execu��o de um
processo q manipule estas informa��es.

exemplo:

Durante o cadastro de um cliente... seu processo pode ter a necessidade de
gravar dados em uma ou mais tabelas relacionadas.... para faz�-lo de forma
segura.... vc abre uma transa��o q armazena temporariamente as informa��es
necess�rias para desfazer todas as opera��es q estiverem sendo realizadas
dentro da mesma at� o fim de todas as opera��es necess�rias ao t�rmino bem
sucedido da tarefa, ou seja, cadastrar o cliente.... quando ent�o vc fecha a
transa��o ou gravando os dados ou retornando ao original todas as altera��es
feitas at� ent�o.... garantindo assim a integridade referencial dos dados
nas tabelas do seu BD.

Caso 1:

- Abre a transa��o....
- Grava o nome do cliente na tabela cliente....
- Verifica a disponibilidade da informa��o de endere�amento do cliente....
- Caso esteja dispon�vel ....
- grava o endere�o na tabela endere�o....
- fecha a transa��o de forma bem sucedida...
- Caso n�o esteja dispon�vel
- volta as altera��es feitas, ou seja, elimina o registro com o nome do
cliente rec�m cadastrado....
- fecha a transa��o de forma mal sucedida....

Espero q eu tenha sido claro o suficiente e q tenha ajudado...

[]'s

Antonio Carlos Antunes


-----Mensagem original-----
De: Walter do Valle <[EMAIL PROTECTED]>
Para: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Data: Quarta-feira, 22 de Mar�o de 2000 04:32
Assunto: Re: Servlets thread-safe e BD


>
>Primeiramente gostaria de agradecer a todos pela ajuda. Com o auxilio de
>voces estou dando novos rumos no projeto.
>Entretanto ainda estou tendo problemas com acesso concorrente a servlet.
>Analisei atentamente todas as sugestoes que recebi e resolvi
>experimentar a dica que o Handerson (entre outros) mandou. Consultei o
>link
>http://www.webdevelopersjournal.com/columns/connection_pool.html e li
>atentamente o artigo. Este versa sobre como criar um connection pool
>para gerenciar as conexoes. Baixei a classe disponivel lah que
>implementa isso, mudei os meus fontes, tudo funcionou, mas mesmo com o
>pool ainda tenho problemas de concorrencia. A consulta de um usuario
>volta no browser do outro.
>Fiz como sugeria o exemplo do artigo.
>
>> � muito estranho.... esse tipo de comportamento do banco de dados
pois....
>> uma consulta simples n�o tem poder de "Lockar" uma tabela.... apenas
>> instru��es SQL que executam a��es tem poder para isso...
>> portanto se conclui q o problema n�o � no banco de dados.... uma vez q se
>> trata de uma consulta simples, ou seja apenas um SELECT.... � isso
>> mesmo....?
>
>Eh um SELECT enorme feito em duas partes usando alem da sintaxe do SQL
>algumas clausulas do DB2. O BD tambem eh grande.
>WITH MEU_RESULTADO AS (SELECT... JOIN... JOIN... etc. WHERE...),
>SELECT X Y Z ... JOIN... etc WHERE... ) FOR READ ONLY
>Como disse, se ele for executado individualmente fica muito rapido.
>
>> Vc tem certeza... q n�o est� abrindo uma transa��o sobre a tabela.... o q
>> travaria o acesso a tabela ou tabelas envolvidas nas opera��es
subsequentes
>> at� o devido fechamento da transa��o....
>
>Perdoe a ignorancia, mas o que eh uma transacao exatamente?
>* Para nao receber mais e-mails da lista, acesse
<http://www.sun.com.br:8080/guest/RemoteAvailableLists>, coloque seu e-mail,
escolha a lista <[EMAIL PROTECTED]> e de um <submit>.
>

* Para nao receber mais e-mails da lista, acesse 
<http://www.sun.com.br:8080/guest/RemoteAvailableLists>, coloque seu e-mail, escolha a 
lista <[EMAIL PROTECTED]> e de um <submit>.

Responder a