Re: IDLE in transaction

From: Diego Ayala <netdiego81(at)gmail(dot)com>
To: Ing(dot) Marcos Orti­z Valmaseda <mlortiz(at)uci(dot)cu>
Cc: Postgres Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: IDLE in transaction
Date: 2010-02-08 14:52:13
Message-ID: 6b81cb151002080652q555d3f7bie2a319ca7151e200@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

muchas gracias x tu ayuda, esa es la discusión que tengo con los
desarrolladores ya que ellos creen que la solucion debe estar de parte de
PostgreSQL, se utiliza Hibernate, JBoss y el Framework SEAM, con
programación JAVA.

2010/2/8 "Ing. Marcos Orti­z Valmaseda" <mlortiz(at)uci(dot)cu>

> Diego Ayala wrote:
>
>> Buenos dias listeros, quisiera saber si podrian ayudarme, ya que estoy con
>> este problema desde mas de 2 semanas, ya busque algunos topicos referentes a
>> esto, pero no he podido solucionarlo, hablando con los desarrolladores, me
>> dicen que las tablas que quedan afectados son de solo lectura, que no se
>> ejecuta ninguna transaccion, en mi postgresql.conf tengo configurados los
>> parametros
>> tcp_keepalives_idle = 900 # TCP_KEEPIDLE, in seconds;
>> # 0 selects the system default
>> tcp_keepalives_interval = 90 # TCP_KEEPINTVL, in seconds;
>> # 0 selects the system default
>> tcp_keepalives_count = 5, pero al parecer esto no surje efecto ya que
>> algunas transacciones estan x horas y lo mato utilizando el pgadmin, la
>> version de postgresql que tengo es la 8.4.1 sobre CenOS 5.3 de 64 bits.
>>
>> Hay alguna manera de matar o cerrar una transaccion que tiene estado IDLE
>> IN TRANSACTION hay alguna forma de poner límite por usuario o un timeout
>> para las transacciones bloqueadas y que sólas vayan muriendo si quedaron así
>> zombies, como podria hacer esto, gracias de antemano x la ayuda..!!!
>>
>> --
>> Diego Ayala
>>
> Diego, según me estaba explicando una vez, en la vista pg_locks del
> information_schema, tu puedes averiguar cuáles son las transacciones que
> están IDLE con la consulta:
> SELECT locktype, database, relation, virtualxid, pid, mode, granted FROM
> pg_locks;
>
> locktype | database | relation | virtualxid | pid | mode |
> granted
>
> ------------+----------+----------+------------+-------+-----------------+---------
> relation | 11564 | 10969 | | 12633 | AccessShareLock | t
> virtualxid | | | 5/11974 | 12633 | ExclusiveLock | t
> (2 rows)
>
>
> Luego con : SELECT * from pg_stat_activity:
>
> datid | datname | procpid | usesysid | usename |
> current_query | waiting | xact_start |
> query_start | backend_start | client_addr |
> client_port
>
> -------+-------------+---------+----------+----------+---------------------------------+---------+---------------------------
>
> ----+-------------------------------+-------------------------------+--------------+-------------
> 16420 | uci_db | 11760 | 16386 | dba | <IDLE>
> | f | | 2010-02-08
> 09:10:05.683647-05 | 2010-02-08 08:52:24.164219-05 | 10.36.18.56 |
> 1399
> 16420 | uci_db | 11909 | 16386 | dba | <IDLE>
> | f | | 2010-02-08
> 08:59:21.524631-05 | 2010-02-08 08:59:21.408665-05 | 10.36.18.56 |
> 3088
> 16421 | uci_test_db | 12328 | 16386 | dba | <IDLE>
> | f | |
> | 2010-02-08 09:18:58.732188-05 | 10.36.18.107 | 1172
> 11564 | postgres | 12633 | 10 | postgres | select * from
> pg_stat_activity; | f | 2010-02-08 09:33:32.137225
> -05 | 2010-02-08 09:33:32.137225-05 | 2010-02-08 09:31:53.54647-05 |
> | -1
> (4 rows)
>
> Puedes ver en el campo current_query, que los procesos 11760, 11909 y 12328
> que están IDLE.
>
> Lo que se recomienda en este caso es:
> 1- Cerrar las transacciones lo más rápido posible.
> 2- Arreglar la aplicación en caso de que deje abiertas las
> transacciones(Michas veces es causa de los desarrolladores, por eso el
> PostgreSQL DBA debe estar presente en el desarrollo para guiarlos en el
> proceso)
>
> Otra observación:
> En caso de que usen algún ORM para el desarrollo, hay muchos que no hacen
> un uso eficiente de las transacciones en PostgreSQL, y muchas veces bloquean
> la tabla o el registro; y entonces lo que toca es corregir el ORM o no
> usarlo.
>
> Saludos, espero que te ayuden mis comentarios en algo.
>
> --
>
> --------------------------------------------------------------------------------
> "Para ser realmente grande, hay que estar con la gente, no por encima de
> ella."
>
> Montesquieu
> Ing. Marcos Luís Ortíz Valmaseda
> PostgreSQL System DBA && DWH -- BI Apprentice
>
> Centro de Tecnologías de Almacenamiento y Análisis de Datos (CENTALAD)
> Universidad de las Ciencias Informáticas
>
> Linux User # 418229
>
> -- PostgreSQL --
> "TIP 4: No hagas 'kill -9' a postmaster"
> http://www.postgresql-es.org
> http://www.postgresql.org
> http://www.planetpostgresql.org
>
> -- DWH + BI --
> The Data WareHousing Institute
> http://www.tdwi.org
> http://www.tdwi.org/cbip
>
> ---------------------------------------------------------------------------------
>
>

--
Diego Ayala

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ing. Marcos Orti­z Valmaseda 2010-02-08 15:05:18 Re: IDLE in transaction
Previous Message Ing. Marcos Orti­z Valmaseda 2010-02-08 14:40:57 Re: IDLE in transaction