▼SAP転職なら! LINE追加で気軽に相談▼
今回は、LOCK TABLE OVERFLOW ERRORが起きた際のエラー解消方法について説明します。
知りたい情報をチェック
LOCK TABLE OVERFLOW ERRORとは?
ロックテーブルオーバーフローエラーとは、プログラム実行時に、ロックエントリ数が上限値を超えると発生するエラーのことです。
SAP note 746138によると、想定される根本原因として以下があります。
- ロックテーブルの設定値が小さすぎる
- アプリケーションが多くのテーブルをロックしてしまう
- 更新がハングアップした結果、更新タスクによって多数のロックが継承されてします
そのため、上記の根本原因をつぶすことでエラーの発生を防ぐことが可能です。
Tr-cd:SM12よりロックエントリ数の上限値が確認可能
ロックエントリ数の上限値はSM12より確認することが可能です。以下で手順を説明します。
SM12を叩く。
補足 > 統計をクリック。
現時点でのエンキュー統計情報が表示される。
*ロック引数の最大値に最大書込レベルの値が追い付いてきていたら注意する必要あり
【ロック引数の最大値】
ロックエントリ数の上限値
【最大書込レベル】
現時点のロックエントリ数
LOCK TABLE OVERFLOW ERRORの解消方法
ロックテーブルオーバーフローエラーの解消方法は大きくわけて2つあります。
①:enque/table_sizeパラメータの値を大きくする
1つ目は、enque/table_sizeというパラメータの値を大きくする方法です。
enque/table_sizeとは、ロックテーブルのサイズを定義するパラメータです。ロックテーブルのサイズによって、ロックエントリの最大数、基本ロック名の最大数、およびロック所有者の最大数が制限されます。
パラメータの見方については以下の手順をご覧ください。
RZ11を叩く。
enque/table_sizeを入力して照会をクリック。
パラメータの設定値が確認可能。
文書照会をクリックすると、パラメータの詳細説明が確認可能。
②:プログラムを改修する
2つ目は、ロックエントリを大量に取得しないようにプログラムを改修する方法です。
具体的に、どのテーブルでどのくらいロックを取得しているのかといった情報はSM12から確認することができるので、それを基にプログラムを改修することで対応するというのも1つの手です。
ただし、これはbasisではなくアプリの範疇となります。そのため、本記事では詳細は割愛しますが、アプリの方は「ロックエントリ数」も考慮してプログラムを設計する必要があるという点は頭に入れておくといいと思います。
【参考記事】
https://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=426546541
以上。
SAPコンサルタントとして長年にわたり複数のPJに携わってきたプロによる一冊。
本書では宅配ピザ屋を例に、会社の業務とそれに紐づく各SAPモジュールの説明が丁寧にされており、この一冊で体系的に業務とSAPの基礎知識を身に付けることが可能です。
これからSAPの業務に携わる人や、改めてSAPの全体観を把握したい人など、初心者~中級者まで自信を持っておすすめします。
SAP転職なら! LINE追加で気軽に相談▼
コメントを残す