Com toda humildade possivel :)

Não vejo como, no meu caso que preciso de transações concorrentes (tempo
real), abrir e fechar as transações sem um malabarismo excepcional.
Por exemplo, meu cadastro de clientes se o usuário abre, não posso abrir
pegar X registros e fechar a transação, eu trabalho com componentes DBWare
(conexão direta com a tabela), eu tenho um controle manual por assim dizer,
quando um registro está em uso e outro tenta abri-lo o sistema não deixa...
funciona de boa.
 O Financeiro tem que ver uma venda que acabou de ser efetivada e dar o
aval, se não retorna ao vendedor e por ai vai... é bem dinâmico mesmo, é
atendimento ao público (balcão).
Esse meu problema não acontece toda hora, é bem exporádico, mas quando
acontece me dá esse transtorno.
Na minha aplicação enquanto um formulario está aberto tenho que manter a
transação aberta senão ele limpa as informações.

Quanto a terminar somente o processo do tal registro eu consigo fazer isso
pelo pgadmin mas ele trava o registro mesmo sem a conexão, isso que estou
achando estranho.

Eu pedi pra todos sairem, vi que não havia mais conexão, só a minha, então
tentei alterar o tal registro, mas não foi, ele só liberou depois que
restartei o postgres.

Só a título de comparação, quando usava o MySQL nesse mesmo conceito que
trabalho não ocorria isso, um colega disse aqui na lista que o modo do
MySQL trabalhar é diferente, é tipo um espelho, tanto é que posso alterar
uma tabela colocando ou inserindo novos campos que ele não grita. No
postgres já vi que isso não é possível, mas compreendo que são arquiteturas
diferentes.
Só preciso compreender melhor o postgres pra lidar com essas situações

A ajuda dos colegas aqui tem me ajudado muito, mais uma vez agradeço!


Marcelo Silva
---------------------------------------


Em 12 de abril de 2013 16:15, Marcone <[email protected]> escreveu:

> Em 12 de abril de 2013 15:58, Marcelo da Silva <[email protected]>
> escreveu:
> > Veja a tela do PGAdmin
> >
> > http://imagebin.org/253758
>
> A imagem tá chei de "<IDLE> in transaction"... cara isso só dá dor de
> cabeça como essa que você tá tendo agora.
>
> > Quando ele trava eu só consigo parar a sessão pelo PGAdmin nesta tela aí,
> > mas se eu tentar alterar o registro seja pelo pgadmin ou pela minha
> > aplicação ele trava denovo, ou seja, tenho que mandar todo mundo sair do
> > sistema, reiniciar o postgres pra ele liberar o tal registro.
>
> Se você tá com moral de mandar todo mundo sair do sistema no meio do
> expediente para reiniciar o banco, é bom você canalizar isso para ser
> feita uma alteração urgente nessa aplicação para ela começar a
> terminar as transações (commit ou rollback)!!
>
> > Tenho notado que isso ocorre quando dá uma queda de conexão, mas não
> > necessariamente trava um registro, mas quando trava é este transtorno.
> > Bem, as maquinas com cabo fisico é tranquilo, não dá problema pois não
> cai,
> > mas as com wireless sempre me causam isso.
> >
> > Como liberar o tal registro pra não ter que parar todos, tem um esquema ?
>
> Um solução sintomática e paliativa seria você terminar o processo do
> postgres que está causando o lock com a função pg_terminate_backend[1]
> - USE COM EXTREMA CAUTELA para não matar quem não tem culpa!
>
> > Se desse pra eu fazer algo pela aplicação que travou o registro eu daria
> um
> > Rollback e beleza, mas ele chega a perder a conexão, aí já era.
> >
> > To na luta pra achar uma solução amigável...
> >
> >
> > Marcelo Silva
> > ---------------------------------------
>
>
>
> 1 - http://www.postgresql.org/docs/9.2/static/functions-admin.html
>
>
> --
> Marcone Peres - DBA
> http://www.linkedin.com/in/marconeperes
> oraculogeo.blogspot.com
> @marconeperes
> (61) 8146-0028
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a