Euler, acho que entendi a questão... Na verdade nós não estávamos fazendo uma unidade lógica quando temos somente selects, ou seja, ao invés de fazer:
BEGIN; SELECT * FROM tabela1; SELECT * FROM tabelan; COMMIT; estávamos simplesmente fazendo SELECT * FROM tabela1; SELECT * FROM tabelan Pensava que a unidade lógica iniciava no primeiro UPDATE ou DELETE. No MS-SQLSERVER é assim e não me ative a este detalhe. Muito oObrigado, Clayton 2009/12/19 Euler Taveira de Oliveira <eu...@timbira.com> > Clayton Graf escreveu: > > É estranho mas o AccessShareLock ocorre mesmo quando o primeiro comando > > após a conexão é um SELECT e este select não tem a cláusula FOR SHARE. > > > Todo SELECT adiquire AccessShareLock; SELECT ... FOR UPDATE adquire > AccessRowShareLock. > > > Estou conectando via jdbc e parece que é algo no driver. Revisei tudo e > > não consegui achar o problema. O driver é o último que tem disponível > > (postgresql-8.4-701.jdbc4.jar) > > > Não. Você que *não* está terminando as transações adequadamente. No seu > exemplo, você terá: > > BEGIN; > SELECT * FROM controle; > > Faltou o COMMIT ali. Caso você tenha um pool de conexões, esta transação > ficará em aberto e, consequentemente, você terá problemas com transações > que > querem obter um AccessExclusiveLock. > > > -- > Euler Taveira de Oliveira > http://www.timbira.com/ > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > -- Clayton Graf
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral