StarOffice Xサーバのイベントログに、以下の警告が出力されます。
警告,2013/11/21 9:06:21,PERCIO kernel,3,なし,PERCIOカーネルエラー21番が発生しました: デッドロックが発生しました
警告,2013/11/21 9:06:18,PERCIO kernel,3,なし,PERCIOカーネルエラー23番が発生しました: ロックが時間ぎれになりました
出力される原因、対応について教えてください。
該当エラーは、EDS(ディレクトリ)とキャビネットで使用しているPERCIOデータベースで、処理の競合が発生していることを示します。
利用状態が高負荷の場合に発生します。
いずれの場合も、通常運用で発生し得るエラーで、たまに発生している程度であれば問題のないエラーです。
利用者の画面にエラーが頻繁に表示されて利便性が低下している状況の場合や、ログにエラーが多数記録されすぎて運用に支障をきたしている場合には、チューニングや負荷を減らす運用方法、サーバ構成の見直し等を検討する必要があります。
●EDS(ディレクトリ)の処理で発生した場合:
EDSでは、データベースの整合性を保つために共有排他制御を行なっています。
データベースの参照や更新が行なわれる際に、参照・更新対象のロックを取得できなかった場合には、その操作は一旦取り消され、再度実行されます。
このとき、イベントログに「PERCIOカーネルエラー21番」が出力されます。
既定値では6回再実行しても、ロックを取得できなかった場合には、参照・更新操作がエラーとなります。リトライ回数が6に達していなければ、リトライにより処理は成功していますので、運用に問題はありません。
リトライ回数は、EDSのエラーログファイル
<StarOfficeフォルダ>\EDS\LOG\Error.log
に以下のような記録で出力されています。
=====================================
[E] 2013/11/21 09:06:21 EDldapd.exe[03316,M280097]: [2027] In rollback(1) PERCIO error[21] occured (retry = 4)
[E] 2013/11/21 09:06:18 EDldapd.exe[03396,M280097]: [2027] In rollback(1) PERCIO error[23] occured (retry = 1)
=====================================
(retry = x)のxがリトライ回数を表しています。
リトライ回数が5以下であれば対処は不要です。
頻繁に(retry = 6)が出力されている場合は、ディレクトリサーバへの負荷が集中しないように運用やサーバ構成を見直すなどの対策を検討してください。
既定値では、6回再実行してもロックを取得できなかった場合には、参照・更新操作がエラーとなります。
リトライ回数が6回に達していなければ、リトライにより処理は成功していますので、運用に問題はありません。
●キャビネットサーバの処理で発生した場合
キャビネットサーバにおいても、排他制御を行っています。
PERCIOカーネルエラー21番または23番が発生した場合、キャビネットサーバの既定の設定では3回まで処理のリトライを行います。
3回リトライして処理できなかった場合には、利用者のWeb画面(キャビネット/掲示板画面)には、以下のいずれかのダイアログメッセージが表示されます。
ダイアログメッセージ:
「現在、負荷が集中しています。しばらく待ってから、操作し直してください。(code=0x40280a07)」
「現在、負荷が集中しています。しばらく待ってから、操作し直してください。(code=0x40280a08)」
これらのエラーが発生した場合には、キャビネットサーバの以下のログファイルにエラーコード40280a07または40280a08のエラーが記録されます。
<StarOfficeフォルダ>\Cabinet\Server\Log
・sbxc_om.log ・・・(キャビネットAPIから利用時のキャビネットサーバの情報)
・omservice.log・・・(キャビネットサーバのサービス自体のトレース情報)
ログに記録されるエラーの例:
sbxc_om.logには、以下のようにエラー1回毎に4行で1セットのエラーが出力されます。(何回目のリトライかという情報は出力されません。)
=====================================
I 2013/04/16 22:06:13 00000A20 Return: Error: (0x40280a07) OmCCommitTransaction. Transaction error. (line=161)
I 2013/04/16 22:06:13 00000A20 (USER01 , no objectid )
I 2013/04/16 22:06:13 00000A20 Return: Error: (0x40280a07)OmCreateObject:Call OmCommitTransaction function fail.(Line=1747)
I 2013/04/16 22:06:13 00000A20 (USER01 , no objectid )
=====================================
キャビネットサーバが原因で頻繁にPERCIOカーネルエラー21番または23番が発生している場合は、キャビネットサーバへの負荷が集中しないように運用やサーバ構成を見直すなどの対策を検討してください。
●参考(詳細)
PERCIO処理競合について詳細は下記マニュアルをご参照ください。
StarOffice X ~運用管理者編~ リファレンスガイド
第 1 章 キャビネット・掲示板
- エラーメッセージ一覧
- PERCIO処理競合について
第 10 章トラブルシューティング
- ディレクトリ
- EDSのエラーログに「In rollback(1) PERCIO error[21] occured」や「In rollback(1) PERCIO error[23] occured」と出力される」
※StarOffice Xのバージョンによっては章番号が異なる場合がございます。