Re: [pgbr-geral] Transações em funções

2016-05-13 Por tôpico Silfar Goulart
Pessoal ainda com problema na transação.

Eu preciso fazer um processo em lote, mas queria efetivar a alteração em
pequenos pedaços, mas nada do que tentei funcionou, se alguém tiver
disponibilidade para uma ajuda, ficaria muito grato.



Enviado com MailTrack


Silfar Goulart

Em 11 de maio de 2016 09:53, Silfar Goulart  escreveu:

> Euler, eu também pensei nisso. Tipo criar um vetor e ir acumulando as
> linhas de uma transação, depois passar esse vetor para uma outra função e
> nela sim processar, mas empaquei na falta de conhecimento.
>
> Eu sei criar um vetor, sei colocar os componentes nele, mas não sei como
> recria-lo , isto zerar o vetor para receber uma nova transação.
>
> Vc tem skype ou hangout, se vc tiver um tempo gostaria de conversar um
> pouco, talvez mostrar melhor.
>
> skype: silfar.castro
>
>
>
> Enviado com MailTrack
> 
>
> Silfar Goulart
>
> Em 10 de maio de 2016 19:36, Euler Taveira 
> escreveu:
>
>> On 10-05-2016 18:51, Silfar Goulart wrote:
>> > Fazer isso num aplicativo, é possível, mas a importação se torna lenta,
>> > por isso eu fiz uma rotina apenas para importar o arquivo numa tabela
>> > temporária, com um campo para armazenar a linha, e fiz uma rotina no
>> > pgpsql para ler estes registros e num for processar as transações.
>> >
>> Você não mencionou número de linhas, portanto, fica difícil avaliar se é
>> lento. Contudo, pelo que você explicou acho que dá para ir acumulando os
>> comandos até o fim de uma "transação" e depois executá-los um a um
>> adicionando um bloco EXCEPTION (isso não deve ser tão rápido assim).
>> Estou muito cansado para fazer um exemplo ...
>>
>>
>> PS> evite top posting.
>>
>>
>> --
>>Euler Taveira   Timbira - http://www.timbira.com.br/
>>PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Transações em funções

2016-05-11 Por tôpico Silfar Goulart
Euler, eu também pensei nisso. Tipo criar um vetor e ir acumulando as
linhas de uma transação, depois passar esse vetor para uma outra função e
nela sim processar, mas empaquei na falta de conhecimento.

Eu sei criar um vetor, sei colocar os componentes nele, mas não sei como
recria-lo , isto zerar o vetor para receber uma nova transação.

Vc tem skype ou hangout, se vc tiver um tempo gostaria de conversar um
pouco, talvez mostrar melhor.

skype: silfar.castro



Enviado com MailTrack


Silfar Goulart

Em 10 de maio de 2016 19:36, Euler Taveira  escreveu:

> On 10-05-2016 18:51, Silfar Goulart wrote:
> > Fazer isso num aplicativo, é possível, mas a importação se torna lenta,
> > por isso eu fiz uma rotina apenas para importar o arquivo numa tabela
> > temporária, com um campo para armazenar a linha, e fiz uma rotina no
> > pgpsql para ler estes registros e num for processar as transações.
> >
> Você não mencionou número de linhas, portanto, fica difícil avaliar se é
> lento. Contudo, pelo que você explicou acho que dá para ir acumulando os
> comandos até o fim de uma "transação" e depois executá-los um a um
> adicionando um bloco EXCEPTION (isso não deve ser tão rápido assim).
> Estou muito cansado para fazer um exemplo ...
>
>
> PS> evite top posting.
>
>
> --
>Euler Taveira   Timbira - http://www.timbira.com.br/
>PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Transações em funções

2016-05-10 Por tôpico Euler Taveira
On 10-05-2016 18:51, Silfar Goulart wrote:
> Fazer isso num aplicativo, é possível, mas a importação se torna lenta,
> por isso eu fiz uma rotina apenas para importar o arquivo numa tabela
> temporária, com um campo para armazenar a linha, e fiz uma rotina no
> pgpsql para ler estes registros e num for processar as transações.
> 
Você não mencionou número de linhas, portanto, fica difícil avaliar se é
lento. Contudo, pelo que você explicou acho que dá para ir acumulando os
comandos até o fim de uma "transação" e depois executá-los um a um
adicionando um bloco EXCEPTION (isso não deve ser tão rápido assim).
Estou muito cansado para fazer um exemplo ...


PS> evite top posting.


-- 
   Euler Taveira   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Transações em funções

2016-05-10 Por tôpico Silfar Goulart
Deixa eu tentar explicar melhor.
Eu preciso importar registros de arquivos txt, o problema é que o arquivo
não tem delimitadores, ele tem um layout de definição de campo por tamanho,
e para piorar existem registros de várias tabelas no mesmo arquivo. Por
exemplo :

0TIT0 - essa linha indica que é o começo de uma transação para a tabela de
titular e seus xomplementos
1TIT1 - registro de tabela de titulares
1TIT2 - registro de tabela de documento de titulares
1TIT3 - registro de tabela de dependente de titular
1TIT3 - Outro registro de dependente.
9TIT0 - Este registro indica o fim desse grupo de registro de titular

O número na posição 1 indica :
1 abertura de transação
2 fechamento de transação

Então tenho que ter esse controle, ou grava a transação toda ou não grava
nada dela.

Nesse arquivo tem pelo menos 5 tipo de grupo de registro, cada um com pelo
menos 2 registro de tabelas diferentes.

Fazer isso num aplicativo, é possível, mas a importação se torna lenta, por
isso eu fiz uma rotina apenas para importar o arquivo numa tabela
temporária, com um campo para armazenar a linha, e fiz uma rotina no pgpsql
para ler estes registros e num for processar as transações.

Ficou mais claro?
Em 10/05/2016 6:30 PM, "Euler Taveira"  escreveu:

On 10-05-2016 18:13, Silfar Goulart wrote:
> Então não tenho como resolver isso.
>
Com SQL e a sua linguagem de programação. Sem saber detalhes sobre o que
faz "processa" fica difícil avaliar se há algum impedimento de fazer
como estou sugerindo.


PS> evite top posting. Bagunça o histórico da lista.


--
   Euler Taveira   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Transações em funções

2016-05-10 Por tôpico Euler Taveira
On 10-05-2016 18:13, Silfar Goulart wrote:
> Então não tenho como resolver isso.
> 
Com SQL e a sua linguagem de programação. Sem saber detalhes sobre o que
faz "processa" fica difícil avaliar se há algum impedimento de fazer
como estou sugerindo.


PS> evite top posting. Bagunça o histórico da lista.


-- 
   Euler Taveira   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Transações em funções

2016-05-10 Por tôpico Silfar Goulart
Então não tenho como resolver isso.
Em 10/05/2016 5:36 PM, "Euler Taveira"  escreveu:

> On 10-05-2016 16:39, Silfar Goulart wrote:
> > Euler, mas a ideia é essa mesmo, o problema é são muitas iterações, é
> > como se fosse uma tabela cheia de linhas, cada linha faz parte de uma
> > transação,
> >
> Repetindo: funções *não* suportam transações.
>
> > por exemplo:
> >
> > linhainiciodatarndazacao
> > linhadados
> > linhadados
> > fimdatransação
> >
> > isso se repete várias vezes dentro do cursor.
> >
> > o que ue preciso é
> >
> > iniciatrans
> >processa
> >processa
> > commit
> > exception
> >  rollback
> >
> Se "processa" emitir um erro você já tem o ROLLBACK e não precisa do
> "exception".
>
>
> --
>Euler Taveira   Timbira - http://www.timbira.com.br/
>PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Transações em funções

2016-05-10 Por tôpico Euler Taveira
On 10-05-2016 16:39, Silfar Goulart wrote:
> Euler, mas a ideia é essa mesmo, o problema é são muitas iterações, é
> como se fosse uma tabela cheia de linhas, cada linha faz parte de uma
> transação,
> 
Repetindo: funções *não* suportam transações.

> por exemplo:
> 
> linhainiciodatarndazacao
> linhadados
> linhadados
> fimdatransação
> 
> isso se repete várias vezes dentro do cursor.
> 
> o que ue preciso é
> 
> iniciatrans
>processa
>processa
> commit
> exception
>  rollback
> 
Se "processa" emitir um erro você já tem o ROLLBACK e não precisa do
"exception".


-- 
   Euler Taveira   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Transações em funções

2016-05-10 Por tôpico Silfar Goulart
Euler, mas a ideia é essa mesmo, o problema é são muitas iterações, é como
se fosse uma tabela cheia de linhas, cada linha faz parte de uma transação,

por exemplo:

linhainiciodatarndazacao
linhadados
linhadados
fimdatransação

isso se repete várias vezes dentro do cursor.

o que ue preciso é

iniciatrans
   processa
   processa
commit
exception
 rollback





Enviado com MailTrack


Silfar Goulart

Em 10 de maio de 2016 16:20, Euler Taveira  escreveu:

> On 10-05-2016 15:24, Silfar Goulart wrote:
> > Preciso fazer uma função que lê vários registros de uma tabela e
> > processa a informação, mas preciso fazer isso com controle de transação,
> > já tentei de tudo mas nada deu certo, o rollback não funciona de jeito
> > nenhum.
> >
> Funções *não* podem abrir transações explicitamente. Isso quer dizer que
> não se pode usar BEGIN, COMMIT/END, ROLLBACK ou subtransações. Muita
> gente acha que o BEGIN/END da PL/pgSQL é um bloco de transação. *Não* é.
> Na verdade, é só a delimitação do corpo da função.
>
> Pelo corpo da sua função não dá para entender o que quer fazer mas será
> que não dá para usar um cursor para ir iterando linha a linha e fazer
> isso no próprio SQL?
>
>
> --
>Euler Taveira   Timbira - http://www.timbira.com.br/
>PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Transações em funções

2016-05-10 Por tôpico Euler Taveira
On 10-05-2016 15:24, Silfar Goulart wrote:
> Preciso fazer uma função que lê vários registros de uma tabela e
> processa a informação, mas preciso fazer isso com controle de transação,
> já tentei de tudo mas nada deu certo, o rollback não funciona de jeito
> nenhum.
> 
Funções *não* podem abrir transações explicitamente. Isso quer dizer que
não se pode usar BEGIN, COMMIT/END, ROLLBACK ou subtransações. Muita
gente acha que o BEGIN/END da PL/pgSQL é um bloco de transação. *Não* é.
Na verdade, é só a delimitação do corpo da função.

Pelo corpo da sua função não dá para entender o que quer fazer mas será
que não dá para usar um cursor para ir iterando linha a linha e fazer
isso no próprio SQL?


-- 
   Euler Taveira   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Transações por hora

2015-03-02 Por tôpico Danilo Silva
Em 2 de março de 2015 17:11, Matheus de Oliveira 
escreveu:

>
> 2015-03-02 17:08 GMT-03:00 Danilo Silva :
>
>> Essas transações são independentes da quantidade de comandos? Por
>> exemplo: em uma única transação eu executo vários comandos, como inserts,
>> updates, deletes, etc, a ​
>>
>> ​coluna
>> ​
>> xact_commit
>> ​ irá considerar tudo como uma transação apenas?
>>
>>
> Isso, uma transação só.
>
>
>
>> É possível saber quantos arquivos WAL foram gerados para essas transações?
>>
>
> Você pode pegar a posição atual do WAL usando a função
> pg_xlog_insert_location. Recupere e salve, depois de um tempo recupere
> novamente e use a pg_xlog_location_diff para saber em bytes a diferença
> entre os dois. Se quiser saber em número de segmentos do WAL, basta dividir
> por 16MB.
>
> ​Valeu...

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações por hora

2015-03-02 Por tôpico Matheus de Oliveira
2015-03-02 17:08 GMT-03:00 Danilo Silva :

> Essas transações são independentes da quantidade de comandos? Por exemplo:
> em uma única transação eu executo vários comandos, como inserts, updates,
> deletes, etc, a ​
>
> ​coluna
> ​
> xact_commit
> ​ irá considerar tudo como uma transação apenas?
>
>
Isso, uma transação só.



> É possível saber quantos arquivos WAL foram gerados para essas transações?
>

Você pode pegar a posição atual do WAL usando a função
pg_xlog_insert_location. Recupere e salve, depois de um tempo recupere
novamente e use a pg_xlog_location_diff para saber em bytes a diferença
entre os dois. Se quiser saber em número de segmentos do WAL, basta dividir
por 16MB.

Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações por hora

2015-03-02 Por tôpico Danilo Silva
Em 2 de março de 2015 10:37, Matheus de Oliveira 
escreveu:

>
> 2015-03-02 10:32 GMT-03:00 Ariel Alves :
>
>> Senhores, tem como saber quantas transações por hora efetivamente estou
>> fazendo no meu cluster?
>>
>> Essa informação vai servir para dimensionar hardware para futuras
>> maquinas.
>>
>
> Você pode a cada hora consultar a view pg_stat_database, a soma das
> colunas
> ​​
> xact_commit+xact_rollback vão te dar um valor aproximado de quantas
> transações foram realizadas, daí basta pegar a diferença a cada hora.
>
> Essas transações são independentes da quantidade de comandos? Por exemplo:
em uma única transação eu executo vários comandos, como inserts, updates,
deletes, etc, a ​

​coluna
​
xact_commit
​ irá considerar tudo como uma transação apenas?

É possível saber quantos arquivos WAL foram gerados para essas transações?

[]s
Danilo​
​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações por hora

2015-03-02 Por tôpico Ariel Alves
Obrigado Matheus.



Em 2 de março de 2015 10:37, Matheus de Oliveira 
escreveu:

>
> 2015-03-02 10:32 GMT-03:00 Ariel Alves :
>
>> Senhores, tem como saber quantas transações por hora efetivamente estou
>> fazendo no meu cluster?
>>
>> Essa informação vai servir para dimensionar hardware para futuras
>> maquinas.
>>
>
> Você pode a cada hora consultar a view pg_stat_database, a soma das
> colunas xact_commit+xact_rollback vão te dar um valor aproximado de quantas
> transações foram realizadas, daí basta pegar a diferença a cada hora.
>
> Atenciosamente,
> --
> Matheus de Oliveira
> Analista de Banco de Dados
> Dextra Sistemas - MPS.Br nível F!
> www.dextra.com.br/postgres
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 

José Ariel Ferreira Alves
arielalves...@gmail.com
ariel.al...@msn.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações por hora

2015-03-02 Por tôpico Matheus de Oliveira
2015-03-02 10:32 GMT-03:00 Ariel Alves :

> Senhores, tem como saber quantas transações por hora efetivamente estou
> fazendo no meu cluster?
>
> Essa informação vai servir para dimensionar hardware para futuras maquinas.
>

Você pode a cada hora consultar a view pg_stat_database, a soma das colunas
xact_commit+xact_rollback vão te dar um valor aproximado de quantas
transações foram realizadas, daí basta pegar a diferença a cada hora.

Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações / Problema de estouro

2012-07-04 Por tôpico Tiago Adami
Em 4 de julho de 2012 10:30, SOUTO  escreveu:
> Galera, o postgres 8.2.10 instalado em meu servidor esta com a
> seguinte mensagem:
>
> bdnovo:/usr/local/bin# ./psql -U postgres -l
> psql: FATAL:  banco de dados não está aceitando comandos para evitar
> perda de dados por reiní­cio no banco de dados "bd"
> DICA:  Pare o postmaster e use um servidor autônomo para limpar o
> banco de dados "bd".
>
> Tentativas que fiz afim de voltar o serviço do PostgreSQL:
> 1º - Tentei um pg_dump, nada a mensagem de erro aparece também.
> 2º - Reiniciei o Servidor do bd e não funcionou. Conecto na banco de
> dados mas não conecto em nenhum banco sempre aparecendo a mensagem
> acima.
> 3º - Conectei como monousuário e estou fazendo um Vacuum, e está me
> dando a mensagem AVISO:  banco de dados "bd" deve ser limpado em
> 4290383412 transações DICA:  Para evitar um desligamento do banco de
> dados, execute um VACUUM completo em "bd". e ela vem decrescendo o
> valor de 4290383412 um a um e mostrando esse erro.
>
> Pergunto, há uma forma mais ágil de disponibilizar o banco de dados novamente?

Algumas perguntas para poder te ajudar:

1) Por "conectar como monousuário" você diz ter carregado o banco com
o executável "postgres", e não pelo "pg_ctl" ou pelo serviço
"postgresql-8.2" ? Para garantir, lembre-se de mudar a opção no
postgresql.conf chamada "listen_adresses" para o valor "localhost" e
mudar as permissões no "pg_hba.conf" para permitir apenas uma única
conexão quando estiver fazendo alguma manutenção

2) Você diz que conseguiu conectar em monousuário e fazer vacuum. Após
carregar o banco em monousuário você consegue realizar uma conexão
direta via psql ?

3) Poste aqui o que está escrito nos logs logo após a mensagem de erro
do console quando você tentou conectar da forma normal.

Acredito que o seu banco de dados ficou muito tempo sem vaccum
chegando a um ponto crítico. Eu particularmente nunca vi esta
mensagem, então sugiro que você faça um VACUUM FULL caso o VACUUM
normal não dê conta do recado. E se a sua pergunta for estritamente se
há alguma forma de disponibilizar o banco mais rápidamente, eu diria
que não.

Talvez alguém na lista já tenha visto esta mensagem e possa explicar
mais detalhes sobre ela, mas ao que tudo indica este seu banco sofre
uma grande quantidade de DELETEs e UPDATEs e não há uma janela de
manutenção programada para limpeza com VACUUM.

-- 
TIAGO J. ADAMI
http://www.adamiworks.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações / Problema de estouro

2012-07-04 Por tôpico Euler Taveira
On 04-07-2012 10:30, SOUTO wrote:
> Pergunto, há uma forma mais ágil de disponibilizar o banco de dados novamente?
> 
Não. Você deve fazer as manutenções necessárias para evitar esses "problemas"
no futuro.


-- 
   Euler Taveira de Oliveira - Timbira   http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações / Problema de estouro

2012-07-04 Por tôpico Flavio Henrique Araque Gurgel
Em 04-07-2012 10:30, SOUTO escreveu:
> Galera, o postgres 8.2.10 instalado em meu servidor esta com a
> seguinte mensagem:

Você está usando uma versão antiga e não suportada do PostgreSQL.
Considere um upgrade com urgência.

> bdnovo:/usr/local/bin# ./psql -U postgres -l
> psql: FATAL:  banco de dados não está aceitando comandos para evitar
> perda de dados por reiní­cio no banco de dados "bd"
> DICA:  Pare o postmaster e use um servidor autônomo para limpar o
> banco de dados "bd".

Você deve iniciar o postmaster como monousuário. Veja em [1] se você 
está fazendo isso corretamente.

> Tentativas que fiz afim de voltar o serviço do PostgreSQL:
> 1º - Tentei um pg_dump, nada a mensagem de erro aparece também.
> 2º - Reiniciei o Servidor do bd e não funcionou. Conecto na banco de
> dados mas não conecto em nenhum banco sempre aparecendo a mensagem
> acima.
> 3º - Conectei como monousuário e estou fazendo um Vacuum, e está me
> dando a mensagem AVISO:  banco de dados "bd" deve ser limpado em
> 4290383412 transações DICA:  Para evitar um desligamento do banco de
> dados, execute um VACUUM completo em "bd". e ela vem decrescendo o
> valor de 4290383412 um a um e mostrando esse erro.
>
> Pergunto, há uma forma mais ágil de disponibilizar o banco de dados novamente?

Você terá de fazer um VACUUM FREEZE [2] ou setar vacuum_freeze_min_age 
para 0 e executar VACUUM.
Você provavelmente está com o autovacuum desligado (erro fatal dos 
administradores PostgreSQL inexperientes).

[1] http://www.postgresql.org/docs/8.2/static/app-postgres.html
[2] http://www.postgresql.org/docs/8.2/static/sql-vacuum.html

[]s

Flavio Henrique A. Gurgel
Consultor e Instrutor 4Linux
Tel: +55-11-2125-4747
www.4linux.com.br
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-02 Por tôpico Ronei Heck
Olá, Roberto,

Eu penso que está enviando, porque está da seguinte forma:

vendas{Prop:SQL}='DELETE ...'
if Checa_Erro(Loc:Mensagem)=true
...vendas{Prop:SQL}='ROLLBACK'
...message(Loc:Mensagem)
end

Se a mensagem é mostrada, obrigatoriamente entrou no if e passou pelo ROLLBACK.
Mas vou fazer uns testes pra garantir.

Obrigado.

Ronei


  - Original Message - 
  From: Roberto Mello 
  To: Comunidade PostgreSQL Brasileira 
  Sent: Thursday, February 02, 2012 11:05 AM
  Subject: Re: [pgbr-geral] Transações



  > Realmente eu envio vários scripts dentro da transação, mas mesmo assim, se 
eu substituir o COMMIT do final pelo ROLLBACK, ou colocar o ROLLBACK em algum 
ponto da rotina, o postgres cancela toda a transação.

  Por que o clarion/obscuro esta enviando o rollback corretamente para o PG.

  > Agora vamos imaginar que exista relacionado à tabela vendas a tabela 
vendas_observacoes e eu tenha esquecido de excluir, vai dar erro de 
relacionamento. Neste caso, a função delete(0) do clarion mostra uma mensagem 
de erro, a aplicação mostra a mensagem 'Não consegui excluir a venda', o que me 
faz concluir que o ROLLBACK foi enviado, 

  A sua conclusão esta incorreta. O clarion nao esta mandando o rollback para o 
PG e segue em frente como se tudo estivesse certo.

  Veja se há alguma configuração do clarion que mude esse comportamento, ou 
então você vai ter que verificar o retorno depois de cada chamada.

  Roberto 


--


  ___
  pgbr-geral mailing list
  pgbr-geral@listas.postgresql.org.br
  https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-02 Por tôpico Ronei Heck
Mello, não encontrei o material no gescla. Tens o email dele para que eu possa 
entrar em contato?

Muito obrigado!

Ronei

  - Original Message - 
  From: José Mello Júnior 
  To: Comunidade PostgreSQL Brasileira 
  Sent: Thursday, February 02, 2012 7:37 AM
  Subject: Re: [pgbr-geral] Transações


  Ronei,


  O acesso ODBC é um acesso genérico e no momento de uma transação você 
necessita de um acesso especialista, apesar de o Banco ter a capacidade de 
saber que as solicitações vieram do mesmo endereço, ele considera cada chamada 
uma nova requisição o que em acesso concorrente pode impossibilita-lo de 
concluir a operação. Em casos de transação é interessante juntar toda a 
requisição e enviar de uma só vez ao banco, daí mesmo que haja qualquer 
problema de percurso você obterá o ROLLBACK, pois toda a transação estaria por 
conta efetivamente do Postgresql. Veja o acesso pela dll nativa do postgres, 
palestra ministrada pelo Rogério Bassete em 2008, que será sempre muito mais 
especialista do que ODBC.


  []´s

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-02 Por tôpico Roberto Mello
> Realmente eu envio vários scripts dentro da transação, mas mesmo assim,
se eu substituir o COMMIT do final pelo ROLLBACK, ou colocar o ROLLBACK em
algum ponto da rotina, o postgres cancela toda a transação.

Por que o clarion/obscuro esta enviando o rollback corretamente para o PG.

> Agora vamos imaginar que exista relacionado à tabela vendas a tabela
vendas_observacoes e eu tenha esquecido de excluir, vai dar erro de
relacionamento. Neste caso, a função delete(0) do clarion mostra uma
mensagem de erro, a aplicação mostra a mensagem 'Não consegui excluir a
venda', o que me faz concluir que o ROLLBACK foi enviado,

A sua conclusão esta incorreta. O clarion nao esta mandando o rollback para
o PG e segue em frente como se tudo estivesse certo.

Veja se há alguma configuração do clarion que mude esse comportamento, ou
então você vai ter que verificar o retorno depois de cada chamada.

Roberto
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-02 Por tôpico Leandro Guimarães Faria Corce DUTRA
Le 2012-F-2  10h2, Ronei Heck a écrit :
> Obrigado a todos que responderam.
> Então, concluo, que se por algum motivo eu envio um ROLLBACK, o postgres
> cancela toda a operação, mas se houver erro de sintaxe, de construção do
> sql, de relacionamento, ou algo assim, aparentemente o postgres para a
> transação e o ROLLBACK que eu envio fica sem sentido pra ele.

Como já dissemos, isso parece problema ou do Clarion, ou do teu ODBC…


> Mello, usando esta dll ainda será necessário o uso do odbc, para os
> browses, por exemplo, ou pode ser eliminado totalmente?

Podidévi!



-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-02 Por tôpico Ronei Heck
Obrigado a todos que responderam.

Então, concluo, que se por algum motivo eu envio um ROLLBACK, o postgres 
cancela toda a operação, mas se houver erro de sintaxe, de construção do sql, 
de relacionamento, ou algo assim, aparentemente o postgres para a transação e o 
ROLLBACK que eu envio fica sem sentido pra ele.

Mello, usando esta dll ainda será necessário o uso do odbc, para os browses, 
por exemplo, ou pode ser eliminado totalmente?

Abraço!

Ronei



  O acesso ODBC é um acesso genérico e no momento de uma transação você 
necessita de um acesso especialista, apesar de o Banco ter a capacidade de 
saber que as solicitações vieram do mesmo endereço, ele considera cada chamada 
uma nova requisição o que em acesso concorrente pode impossibilita-lo de 
concluir a operação. Em casos de transação é interessante juntar toda a 
requisição e enviar de uma só vez ao banco, daí mesmo que haja qualquer 
problema de percurso você obterá o ROLLBACK, pois toda a transação estaria por 
conta efetivamente do Postgresql. Veja o acesso pela dll nativa do postgres, 
palestra ministrada pelo Rogério Bassete em 2008, que será sempre muito mais 
especialista do que ODBC.


  []´s


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-02 Por tôpico José Mello Júnior
Ronei,

O acesso ODBC é um acesso genérico e no momento de uma transação você
necessita de um acesso especialista, apesar de o Banco ter a capacidade de
saber que as solicitações vieram do mesmo endereço, ele considera cada
chamada uma nova requisição o que em acesso concorrente pode
impossibilita-lo de concluir a operação. Em casos de transação é
interessante juntar toda a requisição e enviar de uma só vez ao banco, daí
mesmo que haja qualquer problema de percurso você obterá o ROLLBACK, pois
toda a transação estaria por conta efetivamente do Postgresql. Veja o
acesso pela dll nativa do postgres, palestra ministrada pelo Rogério
Bassete em 2008, que será sempre muito mais especialista do que ODBC.

[]´s


Em 2 de fevereiro de 2012 02:44, Euler Taveira de Oliveira <
eu...@timbira.com> escreveu:

> On 01-02-2012 23:16, Ronei Heck wrote:
> > Pode ser um problema do clarion, ou a maneira como estou programando.
> Alguma
> > idéia do que pode ser?
> >
> É o que parece. Ele deve estar no modo auto-efetivação (aka autocommit).
> Para
> tirar a prova, habilite o log de todas as consultas
> (log_min_duration_statement = 0) e teste sua aplicação.
>
>
> --
>   Euler Taveira de Oliveira - Timbira   http://www.timbira.com.br/
>   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Mello Júnior
41.3252-3555
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico Euler Taveira de Oliveira
On 01-02-2012 23:16, Ronei Heck wrote:
> Pode ser um problema do clarion, ou a maneira como estou programando. Alguma
> idéia do que pode ser?
>  
É o que parece. Ele deve estar no modo auto-efetivação (aka autocommit). Para
tirar a prova, habilite o log de todas as consultas
(log_min_duration_statement = 0) e teste sua aplicação.


-- 
   Euler Taveira de Oliveira - Timbira   http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico Bruno Silva
Olha só, talvez seja mais interessante tirar esse processo da aplicação e
gerar uma função plsql que execute todo o processo.
Evita inclusive que, caso ocorra, falha na estação, a transação fique
aberta.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico Leandro Guimarães Faria Corce DUTRA
Le 2012-F-2  00h16, Ronei Heck a écrit :
> Bom, então o problema deve estar na maneira como faço.

Ou na ferramenta.


> Uso clarion 6.1

Acho que ouvi falar disso nalguma vida passada.  Não tenho a menor 
lembrança.  Não é nenhum gerador de código, não?


> e acesso o postgres via odbc

Como tudo criado pela Microsoft, ODBC dá muita dor de cabeça…


> Pode ser um problema do clarion, ou a maneira como estou programando.
> Alguma idéia do que pode ser?

Parece coisa do Clarion… já perguntaste nalguma lista dele?



-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico Ronei Heck
Tom Lane... Tenho que falar com este cara... Pra pedir desculpas por ter 
levantado a hipótese de o Postgres estar com erro, hehehe.

Respondendo ao Flávio, Leandro, Danilo e Mello.

Bom, então o problema deve estar na maneira como faço.

Uso clarion 6.1 e acesso o postgres via odbc. Segue uma rotina simples de 
exclusão de uma venda:

vendas{Prop:SQL}='BEGIN TRANSACTION'
...ven:numero_venda=1
...if access:vendas.tryfetch(ven_numero)
..vendas{Prop:SQL}='ROLLBACK TRANSACTION'
..message('Não encontrei esta venda')
..exit
...end
...vendas{Prop:SQL}='DELETE FROM vendas_produtos WHERE numero_venda=1'
...if Checa_Erro(Loc:Mensagem)=true
..vendas{Prop:SQL}='ROLLBACK TRANSACTION'
..message(Loc:Mensagem)
..exit
...end
...vendas{Prop:SQL}='DELETE FROM vendas_parcelas WHERE numero_venda=1'
...if Checa_Erro(Loc:Mensagem)=true
..vendas{Prop:SQL}='ROLLBACK TRANSACTION'
..message(Loc:Mensagem)
..exit
...end
...if relate:vendas.delete(0)
..vendas{Prop:SQL}='ROLLBACK TRANSACTION'
..message('Não consegui excluir a venda')
..exit
...end
vendas{Prop:SQL}='COMMIT TRANSACTION'

Checa_Erro(*cstring),byte ! função checa_erro
if fileerrorcode()>0
...Par:Mensagem=clip(left(fileerror()))
...if Par:Mensagem='' and errorcode()>0
..Par:Mensagem=clip(left(error()))
...end
...return true
end
if errorcode()>0
...Par:Mensagem=clip(left(error()))
...return true
end
return false

Realmente eu envio vários scripts dentro da transação, mas mesmo assim, se eu 
substituir o COMMIT do final pelo ROLLBACK, ou colocar o ROLLBACK em algum 
ponto da rotina, o postgres cancela toda a transação.

Agora vamos imaginar que exista relacionado à tabela vendas a tabela 
vendas_observacoes e eu tenha esquecido de excluir, vai dar erro de 
relacionamento. Neste caso, a função delete(0) do clarion mostra uma mensagem 
de erro, a aplicação mostra a mensagem 'Não consegui excluir a venda', o que me 
faz concluir que o ROLLBACK foi enviado, porém, nesta situação, a transação não 
é cancelada, os produtos e as parcelas ficam excluídas, e a venda incompleta.

Pode ser um problema do clarion, ou a maneira como estou programando. Alguma 
idéia do que pode ser?

Muito obrigado.

Ronei





Se você achar um bug como esses, numa funcionalidade básica do banco
de dados, justamente no PostgreSQL, tenho certeza que o Tom Lane te
manda alguns dólares de prêmio lá dos EUA direto na sua conta
bancária.

[]s
Flavio Gurgel

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico Leandro Guimarães Faria Corce DUTRA
Le 2012-F-1  19h20, Danilo Silva a écrit :
> Uma vez aconteceu isso comigo, iniciei uma transação, após alguns
> inserts válidos, ocorreu um com erro de sintaxe e todos os inserts
> anteriores sofreram ROLLBACK, só não lembro se foi na versão 8.2 ou 8.4.

Mas é justamente isso o que tem de acontecer… e, segundo o Ronei, não 
teria sido o que aconteceu com ele.  Se bem que o José Melo parece ter 
apontado o problema acertadamente — espero que o Ronei confirme.

Ou seja, não é que ‘uma vez aconteceu’ contigo, mas que tem de 
acontecer sempre.



-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico Danilo Silva
Uma vez aconteceu isso comigo, iniciei uma transação, após alguns inserts
válidos, ocorreu um com erro de sintaxe e todos os inserts anteriores
sofreram ROLLBACK, só não lembro se foi na versão 8.2 ou 8.4.

Realmente é estranho, pois no meu caso ocorreu exatamente como dito o
Flavio.

Resta saber, como está definido a função errorfile?

Danilo

Em 1 de fevereiro de 2012 16:24, Guimarães Faria Corcete DUTRA, Leandro <
l...@dutras.org> escreveu:

> 2012/2/1 José Mello Júnior :
> > Se reparar como indicou na mensagem inicial, onde o teste do sucesso não
> > integra um comando SQL, podedesconfiar que seja esse o problema.
>
> Verdade.  Eu disse que eu ando lesado…
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2012/2/1 José Mello Júnior :
> Se reparar como indicou na mensagem inicial, onde o teste do sucesso não
> integra um comando SQL, podedesconfiar que seja esse o problema.

Verdade.  Eu disse que eu ando lesado…
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico José Mello Júnior
Se reparar como indicou na mensagem inicial, onde o teste do sucesso não
integra um comando SQL, podedesconfiar que seja esse o problema.

[]´s


Em 1 de fevereiro de 2012 14:14, Guimarães Faria Corcete DUTRA, Leandro <
l...@dutras.org> escreveu:

> 2012/2/1 José Mello Júnior :
> > Você está enviando vários scripts SQL para o banco e o Postgres considera
> > cada um independente pois cada um está em uma sessão diferente. Não
> seria o
> > caso de você montar tudo em um único script e enviar para o banco?
>
> Não duvidando, mas é que ando meio lesado: com base em que podemos
> afirmar que são vários programetas, cada um numa sessão diferente?
> Não achei nada que indicasse isso nas informações prestadas à lista…
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Mello Júnior
41.3252-3555
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2012/2/1 José Mello Júnior :
> Você está enviando vários scripts SQL para o banco e o Postgres considera
> cada um independente pois cada um está em uma sessão diferente. Não seria o
> caso de você montar tudo em um único script e enviar para o banco?

Não duvidando, mas é que ando meio lesado: com base em que podemos
afirmar que são vários programetas, cada um numa sessão diferente?
Não achei nada que indicasse isso nas informações prestadas à lista…
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico José Mello Júnior
Você está enviando vários scripts SQL para o banco e o Postgres considera
cada um independente pois cada um está em uma sessão diferente. Não seria o
caso de você montar tudo em um único script e enviar para o banco?

[]´s

Em 1 de fevereiro de 2012 10:56, Flavio Henrique Araque Gurgel <
fha...@gmail.com> escreveu:

> > Sim, a gente toma todo o cuidado, fazemos testes e mais testes.
> Geralmente
> > pegamos os erros na fase de testes. Mas uma e outra vez escapa alguma
> coisa.
> > Penso que isso seria uma falha do postgres, já que está tudo dentro de
> uma
> > transação e, no meu modo de ver, havendo erro, deveria abortá-la toda.
>
> Se você achar um bug como esses, numa funcionalidade básica do banco
> de dados, justamente no PostgreSQL, tenho certeza que o Tom Lane te
> manda alguns dólares de prêmio lá dos EUA direto na sua conta
> bancária.
>
> []s
> Flavio Gurgel
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Mello Júnior
41.3252-3555
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico Flavio Henrique Araque Gurgel
> Sim, a gente toma todo o cuidado, fazemos testes e mais testes. Geralmente
> pegamos os erros na fase de testes. Mas uma e outra vez escapa alguma coisa.
> Penso que isso seria uma falha do postgres, já que está tudo dentro de uma
> transação e, no meu modo de ver, havendo erro, deveria abortá-la toda.

Se você achar um bug como esses, numa funcionalidade básica do banco
de dados, justamente no PostgreSQL, tenho certeza que o Tom Lane te
manda alguns dólares de prêmio lá dos EUA direto na sua conta
bancária.

[]s
Flavio Gurgel
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico Flavio Henrique Araque Gurgel
> Mas se acontecer um erro a nível de postgres, tipo, inserindo o registro em
> vendas_parcelas com um campo inexistente na tabela, o postgres retorna um
> erro, mas mesmo eu enviando um ROLLBACK, o que já foi gravado fica gravado,
> a venda fica incompleta. Ou seja, quando há algum erro de dados que eu
> detecto na minha aplicação, envio um ROLLBACK e toda a operação é cancelada,
> mas quando ocorre um erro de sintaxe ou outro equivalente, o ROLLBACK não
> cancela o que já foi gravado.

Não entendi.
Um ROLLBACK sempre desfaz toda a transação.
Certos tipos de erros fazem com que o PostgreSQL faça automaticamente
o ROLLBACK e invalide tudo por você.

> Isto tem causado alguns transtornos para mim e para meus clientes.
>
> Porque isso acontece? Há uma solução pra isso?

Tem certeza que você está fazendo corretamente o tratamento da transação?
Qual a linguagem que está utilizando?
Sua biblioteca de conexão ao SGBD, ORM, driver JDBC ou outra camada
entre sua aplicação e o banco não está em modo autocommit?

[]s
Flavio Gurgel
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico Ronei Heck
Sim, a gente toma todo o cuidado, fazemos testes e mais testes. Geralmente 
pegamos os erros na fase de testes. Mas uma e outra vez escapa alguma coisa. 
Penso que isso seria uma falha do postgres, já que está tudo dentro de uma 
transação e, no meu modo de ver, havendo erro, deveria abortá-la toda.

Muito obrigado.

Ronei



  Você poderia colocar uma validação dos dados a ser inseridos na sua 
aplicação, pelo menos você teria mais garantia sobre os dados que serão 
gravados no banco, evitando assim insert de dados incompletos ou fora do padrão.

  Danilo

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico Leandro Guimarães Faria Corce DUTRA
Le 2012-F-1  10h36, Danilo Silva a écrit :
> Você poderia colocar uma validação dos dados a ser inseridos na sua
> aplicação, pelo menos você teria mais garantia sobre os dados que serão
> gravados no banco, evitando assim insert de dados incompletos ou fora do
> padrão.

Não sei se entendi, Danilo — que queres dizer com validação? 
Normalmente, a validação deve ficar a cargo da estrutura de dados e das 
restrições de integridade: chaves, conferências &c.


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico Leandro Guimarães Faria Corce DUTRA
Le 2012-F-1  10h25, Ronei Heck a écrit :
> BEGIN TRANSACTION;
> INSERT INTO vendas (...);
> if errorfile() then ROLLBACK TRANSACTION; exit.(Isso na minha aplicação)
[…]
> COMMIT TRANSACTION;

Cadê o tratamento de erros da base?

Basicamente, precisas duma subrotina de tratamento de erros, que os 
capture quando emitidos pela base.  Se não os capturares e seguires 
contente para a efetivação da transação…

E leia atentamente o capítulo sobre controle de transações, nunca é 
demais.


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações

2012-02-01 Por tôpico Danilo Silva
Você poderia colocar uma validação dos dados a ser inseridos na sua
aplicação, pelo menos você teria mais garantia sobre os dados que serão
gravados no banco, evitando assim insert de dados incompletos ou fora do
padrão.

Danilo

Em 1 de fevereiro de 2012 10:25, Ronei Heck escreveu:

> **
> Senhores(as),
>
> Tenho a seguinte situação (a grosso modo):
>
> BEGIN TRANSACTION;
> INSERT INTO vendas (...);
> if errorfile() then ROLLBACK TRANSACTION; exit.(Isso na minha aplicação)
> INSERT INTO vendas_produtos (...);
>  if errorfile() then ROLLBACK TRANSACTION; exit.
> INSERT INTO vendas_produtos (...);
>  if errorfile() then ROLLBACK TRANSACTION; exit.
> INSERT INTO vendas_produtos (...);
>  if errorfile() then ROLLBACK TRANSACTION; exit.
> INSERT INTO vendas_parcelas (...);
>  if errorfile() then ROLLBACK TRANSACTION; exit.
> INSERT INTO vendas_parcelas (...);
>  if errorfile() then ROLLBACK TRANSACTION; exit.
> COMMIT TRANSACTION;
>
> Funciona blz.
>
> Se eu trocar o COMMIT pelo ROLLBACK, toda a transação é cancelada. Blz.
>
> Mas se acontecer um erro a nível de postgres, tipo, inserindo o registro
> em vendas_parcelas com um campo inexistente na tabela, o postgres retorna
> um erro, mas mesmo eu enviando um ROLLBACK, o que já foi gravado fica
> gravado, a venda fica incompleta. Ou seja, quando há algum erro de dados
> que eu detecto na minha aplicação, envio um ROLLBACK e toda a operação é
> cancelada, mas quando ocorre um erro de sintaxe ou outro equivalente, o
> ROLLBACK não cancela o que já foi gravado.
>
> Isto tem causado alguns transtornos para mim e para meus clientes.
>
> Porque isso acontece? Há uma solução pra isso?
>
> Muito obrigado
>
> Ronei
> RH Sistemas
> Postgres 8.3
> Clarino 6.1
> Windows XP
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações Concorrentes ou paral elas no PostgreSQL.

2009-04-14 Por tôpico Roberto Mello
2009/4/7 Adenilton B. da Silva 

>  Bom dia a todos,
>
> Gostaria de saber se é possível, no PostgreSQL, obter várias transações
> concorrentes ou paralelas em uma mesma conexão, tal qual ocorre no
> Interbase/Firebird.
>

Como ja' foi dito, nao.


> Quanto ao porque do questionamento está no fato de o PostgreSQL criar um
> processo no servidor cada vez que um conexão/transação é aberta, gerando um
> grande consumo de memória (ao meu ver sem necessidade).
>

Acho que voce esta' sofrendo de otimizacao precoce (que e' a raiz de todo
mal)

Os processos que respondem a conexoes no postgresql nao usam muita memoria
na minha experiencia de muitos anos usando esse SGBD. Talvez voce esteja
pensando que cada processo use a memoria do postmaster, mas nao.

Roberto
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Transações Concorrentes ou parale las no PostgreSQL.

2009-04-07 Por tôpico Euler Taveira de Oliveira
Adenilton B. da Silva escreveu:
> Gostaria de saber se é possível, no PostgreSQL, obter várias transações 
> concorrentes ou paralelas em uma mesma conexão, tal qual ocorre no 
> Interbase/Firebird.
> 
O PostgreSQL não trabalha assim; uma transação por vez em cada conexão.

> Algo como obter a ID da transação em seu início em efetuar commit ou 
> rollback de acordo com esse ID, pois se executarmos duas vezes o comando 
> begin em determinada query/conexão no postgreSQL, na segunda execução é 
> retornado a mensagem "WARNING:  there is already a transaction in progress".
> 
Não entendi qual o seu objetivo aqui... Acho que você está confundindo os 
conceitos; o PostgreSQL não paraleliza transações na mesma conexão.

> Quanto ao porque do questionamento está no fato de o PostgreSQL criar um 
> processo no servidor cada vez que um conexão/transação é aberta, gerando 
> um grande consumo de memória (ao meu ver sem necessidade).
> 
Isso é uma questão de arquitetura. Não, o PostgreSQL *não* mudará isso. Se o 
tempo de abertura de conexões é crítico para a sua aplicação, utilize um 
aglomerador (aka pool).


-- 
   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