Muchisimas gracias x la ayuda, lo buscare ahora mismo, posiblemente ahi este el problema de los IDLE in transaction que estoy teniendo..
2010/2/8 "Ing. Marcos Ortiz Valmaseda" <[email protected]> > 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 Ortiz Valmaseda" <[email protected] <mailto: >> [email protected]>> >> >> >> 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 > > --------------------------------------------------------------------------------- > > -- Diego Ayala
