目次
現象
エンキュー・テーブル・オーバーフロー(Enqueue Table Overflow)が発生しました。エンキュー・テーブル(Enqueue Table)のサイズはパラメータ"enque/table_size"で定義されます。アプリケーション側から申請されたエンキュー・リクエスト(Enqueue Request)の総量が"enque/table_size"を越えてしまうと、エンキュー・テーブル・オーバーフローが発生します。
確認方法
“SM12 -> Extras -> Statistics”でエンキュー・テーブルの状態を確認できます。"Maximum Number of Lock XXX"の値と"Maximum Fill Level"の値がほぼ同じである場合、エンキュー・テーブル・オーバーフローが発生していると判断できます。
補足1:下記の三つの最大値はいつも同じです。どちらの"現行書き込みレベル(Maximum Fill Level)"は関連の最大値に達すれば、エンキュー・テーブル・オーバーフローは発生しました。
------------------
Maximum Number of Lock Owners
Maximum Number of Lock Arguments
Maximum Number of Lock Entries
------------------
補足2:“SM12 -> Extras -> Statistics”各項目の意味について、下記のURLをご参照ください。
http://help.sap.com/saphelp_nw74/helpdata/en/47/ea5dcce97f486ee10000000a42189d/frameset.htm
対策
対エンキュー・テーブル・オーバーフローについて、下記二つの解決策をご検討ください。
対策①:enque/table_sizeを増加します。
T_cd: RZ11で"enque/table_size"の文書を確認できます。NetWeaverにおいて最大値は102400です(NetWeaver以外の場合、RZ11より当パラメータの文書を参照し、最大値をご確認ください。)。場合によって(業務案件により、暫定的に膨大な量のエンキュー要求が必要となる場合)は、102400以上に設定できます。ノート552289の"Question 1"に関連の情報がありますので、ご参照ください。
注意1: "enque/table_size"の適正値は、お客様のシステム利用状況(業務要求)と関連するため、標準サポートからはそれぞれのシステムに合う適正値のご提案をいたしかねます。一般的に、テーブル・オーバーフローが発生しない値まで"enque/table_size"を少しづつ拡張してください。
注意2: ASCSを利用している場合は、エンキュー・サーバはASCSに存在しておりますので、ASCSのプロファイルに"enque/table_size"を調整していただくことになります。T_cd:RZ10もしくはRZ11からは変更できません。
対策②:業務視点より改善します。
"SM12 -> Top Capacity Used -> History"より、エンキュー・リクエストを作成したユーザ、またはトランザクション(T_cd)を確認できます。その後、ユーザの行った作業を確認し、大量のエンキュー・リクエストが必要であるかをご確認ください。あるいは、トランザクション側で大量のエンキュー・リクエストに対して解決策があるかをご確認ください。
よくある質問
質問①:エンキュー・テーブル・オーバーフローは発生した後で、システムを再起動する必要はありますか。
再起動の必要はありませんでした。一部のロックを解放して、新しいエンキュー・リクエストは出来ます。一般的に「対策②」で表示されたユーザ操作を終了して、十分なは解放されます。
補足:再起動を通じてロック・テーブルを空にして、本件も改善できます。
質問②:なぜ"Maximum Number of Lock XXX"とenque/table_sizeの設定値は差異がありますか。
enque/table_sizeはエンキュー・テーブルのサイズを定義しております。SM12の"Maximum Number of Lock XXX"は、enque/table_sizeで定義されたサイズで、保存できるエンキュー・エントリの数です。単位は異なりますので、差異はあります。
"Maximum Number of Lock XXX"を二倍まで拡張したい場合は、enque/table_sizeを二倍まで拡張すればいいです。
質問③:enque/table_sizeの拡張より、システムへ何か悪い影響はありますでしょうか。
パラメータenque/table_sizeの拡張より、悪い影響はありません。
関連のエラー
エンキュー・テーブル・オーバーフロー発生時、一般的に下記のような情報がシステムログ(SM21)或は開発者トレース(dev_w*)に出力されます。
“Error locking table TBTCO”
“Lock table overflow”
“Internal lock administration error”
“internal error occurred in lock management”
“Enqueue: Transfer error while reading lock entries”
“EnqueCluster: rtc=16 enxxmenq1997"
*** ERROR => EqSet1(): GetFreeEntry() failed, EntryTable overflow
*** ERROR => EqSet1(): GetFreeUser() failed, user table overflow
*** ERROR => EnqueCluster: ArgTable overflow
***LOG GZZ=> EnqueCluster: rtc=16
関連のノート
SAP Note 746138 - ロックテーブルオーバーフローの分析
SAP Note 13907 - ブロックハンドラのエラー: ロックテーブルのオーバーフロー
SAP Note 552289 - FAQ: R/3 ロック管理
SAP Note 2126913 - ENQU: エンキューログ
SAP Note 1722708 - ENQU: "Session Quota" (セッション割当)