pg_stat_activityビューを利用して、長時間、待ち状態のクライアントのコネクションを監視します。
以下の例は、クライアントの待ち状態が60分以上のコネクションを表示します。
ただし、アプリケーションの互換性を維持することを考慮し、下記のSQL文中のシステムカタログを直接参照しないようにしてください。
postgres=# select * from pg_stat_activity where state='idle in transaction' and current_timestamp > cast(query_start + interval '60 minutes' as timestamp); -[ RECORD 1 ]----+------------------------------ datid | 16384 datname | db01 pid | 16875 usesysid | 10 usename | symfo application_name | apl01 client_addr | 192.33.44.15 client_hostname | client_port | 51793 backend_start | 2013-05-31 17:40:24.161826+09 xact_start | 2013-05-31 17:40:27.636134+09 query_start | 2013-05-31 17:40:27.636134+09 state_change | 2013-05-31 17:40:27.636402+09 waiting | f state | idle in transaction query | begin;
参照
アプリケーションの互換性の維持に関する詳細は、“Fujitsu Enterprise Postgres アプリケーション開発ガイド”の“アプリケーションの互換に関する注意事項”を参照してください。
pg_stat_activityの詳細は、“PostgreSQL文書”の“統計情報コレクタ”を参照してください。