PostgreSQL 9.4ドキュメント は、NOWAIT
オプションをSELECT FOR UPDATE
に追加すると、行をロックできないときにエラーが生成されることを示しています。
操作が他のトランザクションのコミットを待機しないようにするには、NOWAITオプションを使用します。 NOWAITを使用すると、選択した行をすぐにロックできない場合、ステートメントは待機せずにエラーを報告します。
正確にはどのようなエラーになりますか?
これは許容できる条件なので、Javaコードでこのような予期されるエラーを確認し、回避する必要があります。
55P03
Postgres 9.4.xでは、未解決のSELECT FOR UPDATE
をpgAdminで実行し、次にSELECT FOR UPDATE NOWAIT
in my Java app。私はJDBCドライバーを使用しましたJDBC41 Postgresql Driver, Version 9.4-1201
。
結果は次の PostgreSQLエラーコード でした。
ERROR: could not obtain lock on row in relation "my_table_"
Class 55 — Object Not In Prerequisite State
55P03
lock_not_available