0

これを行うためのいくつかの方法 (つまり、pg_stat_activity テーブルにクエリを実行して pid を取得する) を読んだことがありますが、それらのクエリで返されるデータはありません。MSSQL などの他の DBMS では、少なくともコミットされていないデータを確認したり、プロファイラーを使用してアクティブな接続を確認したりできました。postgres では、Java アプリケーションを実行していて予期せず終了することがあり、アプリが変更をコミットまたはロールバックできないため、これが事実であることを知っているだけです。アプリを実行しようとすると、コミットされていないが何らかの形でまだアクティブな重複キー データのエラーが表示されます。postgres インスタンスを停止しましたが、再度開くと問題が発生しました。私のdbサーバーへの接続がハングしているものを表示して強制終了する別の方法はありますか?

4

1 に答える 1

0

コミットされていない値の重複キーから一意制約エラーが発生する唯一の方法は、両方の重複が同じトランザクションに挿入された場合です。それ以外の場合、最初のブロックがコミットまたはロールバックされるまでブロックを挿入する 2 番目のプロセス。

プロセスが自分自身を爆撃している場合、pg_stat_activity に何も表示されないことは驚くべきことではありません。

于 2019-12-17T13:50:16.650 に答える