Resolvi esse problema na aplicação. Em Java por exemplo vc pode fazer um filter onde so vai dar o commit qdo toda a transação for terminada. E se vc for mais alem pode até esperar o subimit do cliente.
Seguindo o exemplo da compra online ele so atualizaria o saldo e o estoque se o cliente confirmasse toda a compra. MIGUEL JOSE DE LIMA wrote: > > Caros, participantes... > Sou iniciante neste mundo do PostgreSQL. > Trabalho com outro Banco de Dados - ADABAS (UNIX SOLARIS/MAINFRAME), > mas me incubiram de fazer testes no PostgreSQL para bloquer registros. > Então... > > Estou precisando de ajuda para bloquear a leitura de um registro, ou seja, > em um cenário como: > "Atualização de Estoque de um Material" : > Antes de atualizar o estoque do material selecionado eu preciso bloquear o > registro para que > nenhuma outra sessão possa obter o dado do registro. > PRECISO DE UMA LEITURA EXCLUSIVA - TOTALMENTE RESTRITIVA. > Estou usando o PostgreSQL 8.3.7 para os testes - em linux > Já li e reli sobre o Isolamento de Transação, mas pode ser que eu não > esteja > entendendo...??? > Fiz o seguinte teste via psql: > - Na Sessão "A" > db_teste=# BEGIN WORK; > BEGIN > db_teste=# LOCK TABLE tab_material IN ROW EXCLUSIVE MODE NOWAIT; > LOCK TABLE > db_teste=# SELECT * FROM tab_material where codg_serma='10' FOR UPDATE; > resultado obtido ok! > *** aqui eu preciso bloquear todos os materiais/itens (de um pedido) - > como ex. fiz de apenas 1 (um). > > - Na Sessão "B": > ** Fiz o mesmo SELECT sem a clausula FOR UPDATE: > SELECT * FROM tab_material where codg_serma='10' > > ** aqui eu obtive o resultado ok da leitura. > Portanto, é aqui, neste ponto que não deveria permitir nenhuma > leitura, > já que sessão "A" ainda não terminou! > E AI ALGUÉM PODE ME AJUDAR!? > > Obrigado! > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > -- View this message in context: http://www.nabble.com/BLOQUEIO-DE-REGISTRO-tp24923152p24937028.html Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com. _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
