【SAPが動画で学べる!】YouTubeチャンネル開設しました ▶ SAPラボチャンネルはコチラ

【SAP共通】SM12ロックエントリの確認・解除方法

SAP SM12

登場人物紹介

三崎レイナ
社会人1年目。新卒でITコンサルティングファームに就職。初配属がSAPプロジェクトにアサインされる。SAPがわからないことだらけで悩んでいたところ、会社の先輩にSAPラボの所長を紹介され、毎週末に所長とSAPのお勉強中!

博士
SAPラボの所長。SAP大好き博士!SAP導入プロジェクトを構想策定~運用保守まであらゆるフェーズを数多く経験。
いまは優しきおじいちゃんだが、プロマネバリバリの時代はかなり怖かったらしい。現在は引退しSAPの後進育成と啓蒙活動に従事中!
若者に負けぬようX(旧Twitter)も奮闘中。

この記事を読むメリット
  • ロックに関する知識が体系的に習得できます
  • SM12を使ったロックエントリ状況の確認方法が理解できます

T-CODE:SM12は、SAPの“テーブルロック(Table Enqueue)”を監視・解除するための管理トランザクションです。
ロックエントリが残留すると、他ユーザの更新がブロックされて業務停止の原因になりかねません。SM12を使えば、誰が・どのテーブルの・どのキーを・いつからロックしているかを瞬時に特定し、必要に応じて適切に解除できます。

本記事では、ロックに関する概要をおさえつつ、SM12を使ったロックエントリの確認から強制解除まで実務視点で整理していますので、ぜひご参考ください!

SAPフリーランスバンク SAPフリーランスバンク
  • 転職求人
  • フリーランス案件
株式会社日立産業制御ソリューションズ

【リモート可】【PM/PL候補】【東京】SAP(S/4HANA)エンジニア ※フレックスタイム制/ワークライフバランス◎(S/4HANA)

年収
430~800万円 / 年
勤務地
東京本社:東京都台東区秋葉原6番1号(...
雇用形態
正社員
要スキル:
【必須】 SAP導入に強い興味があり、以...
キリンビジネスシステム株式会社

SAP会計領域コンサルタント(管理職)/キリングループ唯一のIT会社(FI/CO)

年収
900~1,300万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 以下A・B・Cすべてを...
キリンビジネスシステム株式会社

SAPコンサルタント/キリングループ唯一のIT会社(SD/MM/PP)

年収
500~850万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 SAPアプリケーショ...
株式会社ベイカレント・コンサルティング

【SAPコンサルタント】経営戦略実現を全社横断変革で支援/平均年収1,350万円

年収
600~2,500万円 / 年
勤務地
東京都港区麻布台1-3-1麻布台ヒル...
雇用形態
正社員
要スキル:
【必須(MUST)】 社会人経験3年以上...
株式会社 ホープス

【年収1000万円可】【リモート可】【上流工程】【SAP導入コンサルタント】リモート・ハイブリッド勤務OK|平均残業月10時間/HOPES ※基幹系業務システムの導入推進を行っていただける方を募集

年収
800~1,800万円 / 年
勤務地
〒 1040033:東京都中央区新川1-3-17新...
雇用形態
正社員
要スキル:
■SAPコンサルタント 【必須】 SAPモ...
PP

【SAP PPバージョンアップ支援】大阪・オンサイト/要件定義・Fit&Gap

月額単価
~1,300,000円 / 月
稼働場所
大阪府
業務領域
要件定義, 設計
作業内容:
SAPバージョンアップ案件におけるPP領域...
CO

【SAP運用保守(CO)】都内(週1~2日出社)/CO保守案件

月額単価
~1,100,000円 / 月
稼働場所
東京都
業務領域
運用・保守
作業内容:
複数拠点のSAP Cost Controlling保守対...
MMSD

【S/4HANAバージョンアップ(要件定義)】メーカー企業(オンサイト)/SD・MM領域

月額単価
~1,500,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
SAP S/4HANAバージョンアップのプロジェ...
FI

【製造業S/4HANAバージョンアップ(FI)】オンサイト/要件定義

月額単価
~1,500,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
SAP S/4HANAのバージョンアップに向けた...
COFIPP

【S/4HANA AMS体制Functional Lead】リモート可/R2R・P2D領域インシデント対応

月額単価
~1,500,000円 / 月
稼働場所
東京都
業務領域
要件定義, 運用・保守
作業内容:
グローバル企業のSAP S/4HANA AMS体制に...
COMMSD

【ECC6.0→S/4HANA再構築】東京・都内(出社)/SD・MM・CO ABAP開発・設計・テスト

月額単価
~1,200,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori), テスト
作業内容:
SAP ECC6.0からS/4HANAへの大型再構築プ...
MMPPSD

【SAP S/4保守・運用(ABAP)】東京・田無(テレワーク併用)/インシデント対応・ABAP改修

月額単価
~1,000,000円 / 月
稼働場所
東京都
業務領域
開発(ABAP/Fiori), 運用・保守
作業内容:
SAP S/4の保守・運用フェーズに参画し、...
COFIMMPPSD

【SAP Public Cloud導入(組立製造業・多モジュール)】兵庫(リモート対応可)/MM・SD・FI・CO・PP

月額単価
~1,100,000円 / 月
稼働場所
兵庫県
業務領域
要件定義
作業内容:
組立製造業を対象としたSAP Public Clou...
MMSD

【S/4HANA導入支援(システムテスト・移行)】東京・リモート併用/移行支援

月額単価
~1,400,000円 / 月
稼働場所
東京都
業務領域
テスト
作業内容:
S/4HANA導入プロジェクトの移行フェーズ...
COFIMMSD

【S/4HANA導入支援】東京(リモート併用)/基本設計&実装

月額単価
~1,400,000円 / 月
稼働場所
東京都
業務領域
設計
作業内容:
商社系のシステム再構築プロジェクトに...
この記事のポイント

SM12とロックエントリの概要

SAPは、同一データの同時更新を防ぐために共有メモリ上でロック情報を管理する仕組みを持っています。このロック情報は、「ロックエントリ」と呼ばれ、「どのテーブルの、どのキーを、どのモード(共有S/排他Eなど)で、誰が、いつ、どのアプリサーバでつかんでいるか」という情報を指します。

テーブルのロックはデータ同士の“取り合い”を防ぐ安全装置で、トランザクション(画面操作)やジョブ、RFC処理が更新を行うときにロックエントリを取り、コミット/ロールバック/明示解除(DEQUEUE)で手放します。

重要なのは、これらのロックエントリはデータベースに履歴として残るものではなく、アプリケーションサーバのメモリに現在有効なロックエントリとして存在します。

その為、もし処理が異常終了したり、長時間放置されたりすると、ロックエントリが残り続け、他の人の更新が待たされて業務が止まる原因になります。

T-CODE:SM12は、この現在存在するロックエントリを一覧表示し、必要に応じて安全に解除するための管理機能です。主な機能は、ロックの検索・一覧表示し、個別エントリをドリルダウンで分析すること、そして特定のロックを強制解除することです。

留意点として、強制解除の際にいきなり消すと更新中の処理を壊す恐れがあるため、SM04(ユーザセッションの状態)やSM13(更新エラーの有無)、SM37(関連ジョブ)、ST22(ダンプ)を先に確認し、本当に残留ロックなのかを見極めてから最小範囲で解除するのが基本ルールです。これを徹底すれば、データ整合性を守りつつ、詰まった業務を手早く復旧できます。

もっと詳しく💡

ロックの単位はあらかじめ定義されたロックオブジェクトが使用されます。どのテーブル(複数制御可能)をどのKEY項目で、どのモードでロックするか等を定義しています。そして、このロックオブジェクトを作成した時に自動で生成されるロック用と解除用の汎用モジュールを使って、実際にロックと解除が実行されるという仕組みです。

ロックオブジェクトの登録方法や使用方法を、もっと詳しく知りたい方はぜひ下記の記事をご参考ください!

ロックに関連するトランザクションコード

T-CODE内容
SM12ロックエントリの一覧照会と強制解除ができます
SM04対象ユーザがまだ操作中かを確認できます
SM13更新失敗の有無を確認できます
(更新エラーが原因でロックが残ることがあるため)
SM37バックグラウンド実行されたジョブの状態確認できます
(バックグラウンド起因のロックかを確認)
ST22ショートダンプを確認できます
(ダンプで処理が落ちたことでロックが残ることがあるため)
SE11ロックオブジェクトの登録/変更/照会ができます
ロックに関連するトランザクションコード

SM12でのロックエントリ確認手順

そもそもロックエントリを確認するきっかけになるのは、ある処理を行おうとしたときに「データはユーザ XXXがロックしており、照会のみ可能です。」などの警告が出ることが多いです。

例えば、下記の例はT-CODE:VA02で伝票を開こうとしたときに、他のユーザがロックをかけていることからエラーメッセージが表示されています。

SAP 受注伝票登録画面
受注伝票登録画面
博士

それでは早速SM12の使い方を説明していくぞい!

検索画面

T-CODE:SM12を実行した後、検索画面で選択条件を指定して「一覧」ボタンを押し、対象のロックエントリを絞り込みます。
テーブルやユーザ名などがわかっている場合は、直接指定すればよいですが、わかっていない場合はクライアント番号のみで検索することが可能です*。

*権限の制御で自分以外のユーザのロックエントリを照会したり、ロックの強制解除ができないケースもあります。

SAP SM12 検索画面
SM12 検索画面

ロックエントリ照会画面

検索されたロックエントリが一覧で出力されます。
基本的な項目は以下の通りです。

  • クライアント:対象のクライアント
  • ユーザ名:ロックしているユーザ名
  • 日時/時刻:ロックが開始された日時
  • Lockモード:共有(S)、排他(E)、排他累積(X)、楽観(O)
  • テーブル:ロックされているテーブル名
  • ロック引数:対象テーブルのKEY項目のデータが連結表示

Lockモードが排他ロック(E)であり、テーブル名が販売伝票ヘッダ(VBAK)、さらにロック引数がVBAKのKEY情報であるクライアント番号(800)と伝票番号(0000023032*)であることから、例に挙げたVA02のロックは上から2行目のロックエントリが影響していると考えられます。

*この伝票番号は外部書式です

SAP SM12 一覧照会画面
SM12 一覧照会画面

2行目の行をダブルクリックするとさらに明細情報がポップアップで表示されます。

ここでは、ロックされている環境のホスト名や使われているロックオブジェクト名、さらにロックしているユーザが使用しているトランザクションコードなどの情報を確認することができます。

強制解除する場合は、対象のレコードを選択した状態でゴミ箱マークの削除ボタンを押下するだけです。
上述の通り、強制解除の際にいきなり消すと更新中の処理を壊す恐れがあります。

その為、T-CODE:SM04でユーザセッションの状態を確認し、そのユーザがログイン中で作業しているのかを確認したりして、本当に残留ロックなのかを見極めてから最小範囲で解除するのが基本ルールです。
もし、そのユーザに対して連絡が取れる状態であれば、直接確認するのが一番確実です。

ロックの関連テーブル

ロックエントリの情報はテーブル上で履歴をとることはなく、あくまで共有メモリ上に存在していますので、ここではロックオブジェクトの定義に関連するテーブルをご紹介します。

テーブルIDテーブル内容
DD25Lロックオブジェクト名とロック対象テーブルなどの情報が格納されています
ビュー定義と混在しており、項目:集合体タイプでE(ロックオブジェクト)を指定するとロックオブジェクトの情報を照会できます
DD26Sロックパラメータ(キー項目)など、オブジェクト配下の“項目定義”が格納されています
ロックオブジェクト関連テーブル

まとめ

SM12は、その時点でのシステム上に存在するロックエントリを可視化し、誰が・どのテーブルの・どのキーを・どのモードで掴んでいるかを把握して、必要に応じて安全に解除するための“現場の復旧ツール”です。

強制解除の注意点としては、SM04・SM13・SM37・ST22で周辺状況を確認してから、最小範囲で解除することです。整合性と復旧速度を両立させるためにこの順番を守ることが肝要です。是非参考にしてください!

博士

SAP運用保守でよく使うトランザクションコードを以下の記事にまとめた記事が参考になるぞい!

  • 転職求人
  • フリーランス案件
株式会社日立産業制御ソリューションズ

【リモート可】【PM/PL候補】【東京】SAP(S/4HANA)エンジニア ※フレックスタイム制/ワークライフバランス◎(S/4HANA)

年収
430~800万円 / 年
勤務地
東京本社:東京都台東区秋葉原6番1号(...
雇用形態
正社員
要スキル:
【必須】 SAP導入に強い興味があり、以...
キリンビジネスシステム株式会社

SAP会計領域コンサルタント(管理職)/キリングループ唯一のIT会社(FI/CO)

年収
900~1,300万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 以下A・B・Cすべてを...
キリンビジネスシステム株式会社

SAPコンサルタント/キリングループ唯一のIT会社(SD/MM/PP)

年収
500~850万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 SAPアプリケーショ...
株式会社ベイカレント・コンサルティング

【SAPコンサルタント】経営戦略実現を全社横断変革で支援/平均年収1,350万円

年収
600~2,500万円 / 年
勤務地
東京都港区麻布台1-3-1麻布台ヒル...
雇用形態
正社員
要スキル:
【必須(MUST)】 社会人経験3年以上...
株式会社 ホープス

【年収1000万円可】【リモート可】【上流工程】【SAP導入コンサルタント】リモート・ハイブリッド勤務OK|平均残業月10時間/HOPES ※基幹系業務システムの導入推進を行っていただける方を募集

年収
800~1,800万円 / 年
勤務地
〒 1040033:東京都中央区新川1-3-17新...
雇用形態
正社員
要スキル:
■SAPコンサルタント 【必須】 SAPモ...
PP

【SAP PPバージョンアップ支援】大阪・オンサイト/要件定義・Fit&Gap

月額単価
~1,300,000円 / 月
稼働場所
大阪府
業務領域
要件定義, 設計
作業内容:
SAPバージョンアップ案件におけるPP領域...
CO

【SAP運用保守(CO)】都内(週1~2日出社)/CO保守案件

月額単価
~1,100,000円 / 月
稼働場所
東京都
業務領域
運用・保守
作業内容:
複数拠点のSAP Cost Controlling保守対...
MMSD

【S/4HANAバージョンアップ(要件定義)】メーカー企業(オンサイト)/SD・MM領域

月額単価
~1,500,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
SAP S/4HANAバージョンアップのプロジェ...
FI

【製造業S/4HANAバージョンアップ(FI)】オンサイト/要件定義

月額単価
~1,500,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
SAP S/4HANAのバージョンアップに向けた...
COFIPP

【S/4HANA AMS体制Functional Lead】リモート可/R2R・P2D領域インシデント対応

月額単価
~1,500,000円 / 月
稼働場所
東京都
業務領域
要件定義, 運用・保守
作業内容:
グローバル企業のSAP S/4HANA AMS体制に...
COMMSD

【ECC6.0→S/4HANA再構築】東京・都内(出社)/SD・MM・CO ABAP開発・設計・テスト

月額単価
~1,200,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori), テスト
作業内容:
SAP ECC6.0からS/4HANAへの大型再構築プ...
MMPPSD

【SAP S/4保守・運用(ABAP)】東京・田無(テレワーク併用)/インシデント対応・ABAP改修

月額単価
~1,000,000円 / 月
稼働場所
東京都
業務領域
開発(ABAP/Fiori), 運用・保守
作業内容:
SAP S/4の保守・運用フェーズに参画し、...
COFIMMPPSD

【SAP Public Cloud導入(組立製造業・多モジュール)】兵庫(リモート対応可)/MM・SD・FI・CO・PP

月額単価
~1,100,000円 / 月
稼働場所
兵庫県
業務領域
要件定義
作業内容:
組立製造業を対象としたSAP Public Clou...
MMSD

【S/4HANA導入支援(システムテスト・移行)】東京・リモート併用/移行支援

月額単価
~1,400,000円 / 月
稼働場所
東京都
業務領域
テスト
作業内容:
S/4HANA導入プロジェクトの移行フェーズ...
COFIMMSD

【S/4HANA導入支援】東京(リモート併用)/基本設計&実装

月額単価
~1,400,000円 / 月
稼働場所
東京都
業務領域
設計
作業内容:
商社系のシステム再構築プロジェクトに...
よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

SAPエンジニア(SD/MM/ABAP)

大学卒業後、大手日用品メーカーに社内SEとして入社し、SAP S4HANA導入プロジェクトに参画。主にSD/MMモジュールについて、知見を深めて参りました。
その後、SAPを極めたいという思いからSIerに転職。
大手機械メーカーへのSAP導入プロジェクトに参画し、SD/MM/COのアプリ側を経験しつつ、現在はロジ周りのAdd-on設計・開発をメインで担当しています。

プロジェクトを通して学んだことを発信し、言語やベンダーにより閉じられたSAPの世界を「パッケージ」として明るく開けたものにする一助になれば嬉しいです。

この記事のポイント