【SAP】LOCK TABLE(ロックテーブル) OVERFLOW ERRORの解消方法【basis】

今回は、LOCK TABLE OVERFLOW ERRORが起きた際のエラー解消方法について説明します。

LOCK TABLE OVERFLOW ERRORとは?

ラップトップ, エラー, Web, 警告, テキスト, メッセージ, 記号

ロックテーブルオーバーフローエラーとは、プログラム実行時に、ロックエントリ数が上限値を超えると発生するエラーのことです。

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 BASISを勉強するなら//

SAP basisについて体系的にまとめられたベストセラー本。

500ページ超えとボリューム満点の本書は、basisを担当するのであれば抑えておきたいポイントが網羅されており、勉強にはもちろん何かあった時の辞書としても活用することが可能です。

言語は英語ですが、SAPのドキュメントは基本的に英語なので慣れの意味でもおすすめです。(電子書籍であれば翻訳ツールを使いながら読めます)

最後までご覧いただきありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です