Re: IDLE in transaction

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

Diego Ayala wrote:
> 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
> <mailto: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
Hay un blog que tiene bien explicado como usar Hibernate con PostgreSQL
de manera eficiente. Son como buenas prácticas, ahora no sé donde está.
Si tuviera un poco de tiempo, te lo buscaría pero estoy ahora en medio
del trabajo. Búscalo en Google.

Otra recomendación: En caso que estén trabajando con Java, les
recomiendo Grails, framework de desarrollo web relativamente nuevo,pero
muy completo y funcional y está basado en Spring, Hibernate, y otros
proyectos. Está desarrollado con el lenguaje Groovy, el cual corre sobre
la máquina virtual de Java y además ejecuta código Java igualmente.

http://www.grails.org --: The search is over

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

Attachment Content-Type Size
mlortiz.vcf text/x-vcard 639 bytes

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Diego Ayala 2010-02-08 15:06:08 Re: IDLE in transaction
Previous Message Diego Ayala 2010-02-08 14:52:13 Re: IDLE in transaction