This page is in Japanese version. The English version is in preparation.
|
他のユーザによる処理との競合のため、処理がキャンセルされる
回答
(A-1) 「フォームによるドキュメント取得」(ブラウザから実行)の直後に
(A-2) 「フォームリスト更新」(マネージャから実行)が連続して行われたため、文字どおりの競合が発生したものと思われます。
ここで「他のユーザ」というのは、[ブラウザ] と [マネージャ] などの 別モジュールによる同一ユーザ の場合も含まれます。 以下はログ該当部分の抜粋です。
ログ (A)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ (A-1) "INFO","リクエストの処理を開始しました。リクエスト:フォームによるドキュメント取得 (A-2) "INFO","リクエストの処理を開始しました。リクエスト:フォームリスト更新 (A-3) "INFO","競合によりキャンセルされた処理をリトライしています。1 回目。" (A-4) "INFO","競合によりキャンセルされた処理をリトライしています。2 回目。" (A-5) "INFO","競合によりキャンセルされた処理をリトライしています。3 回目。" (A-6) "INFO","競合によりキャンセルされた処理をリトライしています。4 回目。" (A-7) "INFO","競合によりキャンセルされた処理をリトライしています。5 回目。" (A-8) "ERROR","他のユーザによる処理との競合のため、処理はキャンセルされました。 多数の処理要求が重なっているか、長時間かかる処理を管理者が実行している可能性があります。 しばらく待って再実行してください。" (A-9) "INFO","リクエストの処理を終了しました。実行時間:199000ミリ秒(内、待ち時間:0ミリ秒), リクエスト:フォームリスト更新 (A-10) "INFO","リクエストの処理がキャンセルされました。リクエスト:フォームリスト更新 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ログ (A) の場合は、(A-1)「フォームによるドキュメント取得」中に (A-2)「フォームリスト更新」が実行されたため、競合となったと考えられます。
ログ (B)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ (B-1) "INFO","リクエストの処理を開始しました。リクエスト:フォームによるドキュメント取得 (B-2) "INFO","リクエストの処理を終了しました。実行時間:15ミリ秒(内、待ち時間:16ミリ秒), リクエスト:フォームによるドキュメント取得 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ログ (B) によると、(B-2) 「フォームによるドキュメント取得」が正常終了している場合の処理時間は 15 ミリ秒となっておりますが、
ログ (A) にはログ (B-2) に該当する「フォームによるドキュメント取得」が終了した記録がありません。これはアプリケーションサーバーの停止によるものと思われます。
また、アプリケーションサーバーを再起動すると、DBのロック状態は解消されます。このようなロック状態が再起動をまたがることはありません。
再起動後に再度同様のリクエストのパターンが発生したことが原因で、ロック解消後に再びロックがかかり、再起動しても DB がロックされているように見えます。