この記事を読むメリット
- SM21(システムログ)で「何を・どう見れば」不具合の手がかりがつかめるかがわかる
- 検索条件の指定から一覧・詳細の読み方まで、実際の画面で一通り追える
- ログを見たあと、ST22・SM37・SM12 などどのトランザクションへ進めばよいかがわかる
「ダンプは出ていないのに処理が失敗する」「ジョブが原因不明で止まった」。SAPの運用保守でこんな相談を受けたとき、最初に見る場所がシステムログです。
システムログには、SAPアプリケーションサーバで発生したシステムメッセージ、警告、エラーなどが記録されます。SM21で照会できますが、初期表示は通常、現在ログオンしているインスタンスのログです。
本記事では、SM21の基本的な使い方を実際の画面で追いながら解説します。
博士!ST22を見てもショートダンプが出ていないんです。でもユーザーからは「処理が失敗した」と言われていて…どこを見ればいいんでしょうか?
うむ、そういうときはT-CODE:SM21 のシステムログを見るのじゃ。ダンプにならない失敗、たとえばジョブのログオン失敗や通信エラーもここに残っておるぞい!
不具合調査で使うトランザクション全体の流れは、こちらの記事にまとめています。本記事はその中の「SM21」を深掘りする位置づけです。
あわせて読みたい
【SAP運用保守】障害・不具合調査で使うT-CODE早見表
この記事を読むメリット 症状から、最初に開く T-CODE がすぐに分かる 各 T-CODE の使い方を、解説記事でそのまま確かめられる エラーメッセージ・権限・連携・データの…
この記事のポイント
T-CODE:SM21 の概要
T-CODE:SM21 とは
T-CODE:SM21 は、SAPのアプリケーションサーバが記録したシステムログを照会するトランザクションです。
ユーザーごとの操作履歴ではなく、システムとして「いつ・誰の処理で・何が起きたか」を記録しているのが特徴です。
| できること | 使いどころ |
|---|
| 期間・ユーザ・トランザクションなどで絞り込む | 「昨日の夜、特定ユーザで何が起きたか」を調べる |
| 優先度の高いメッセージに絞って表示する | 障害の一次切り分け |
| 1件ごとの詳細(プログラム名・メッセージIDなど)を見る | 原因のあたりを付け、次のトランザクション(T-CODE:ST22・SM37など)へ進む |
T-CODE:SM21 は照会専用のトランザクションです。データを変更することはないので、安心して実行できます。
アプリケーションサーバが何台もあるときは、全部のサーバのログがまとめて表示されるんですか?
いや、既定で表示されるのは、今ログオンしているインスタンスのログじゃ。別のインスタンスのログは「拡張インスタンス名」で指定するのじゃよ。
実務の例
SAPの運用保守の担当者は、処理の失敗やジョブの停止の相談を受けると、報告された時刻のシステムログから手がかりを探します。
手がかりが見つかったら、ログの内容に応じて T-CODE:ST22・SM37 などで詳しく調べます。
この記事の操作との対応は、次のとおりです。
SAP での処理の流れ
障害の報告を受けて T-CODE:SM21 で調べるときの、調査の進め方の一例です。
STEP
期間と優先度で絞り込んで実行する(T-CODE:SM21)
障害の報告時刻の前後1時間を期間に指定し、「重大度の高いメッセージのみ」にチェックして実行します。
STEP
報告内容に近いメッセージを探す(T-CODE:SM21)
赤い丸(非常に高い優先度)の行を上から順に見て、報告内容に近いメッセージを探します。
STEP
詳細ビューで手がかりを控える(T-CODE:SM21)
詳細ビューで、プログラム名・ユーザ・メッセージ ID を控えます。
ログの内容に応じた次の調査先は、次のとおりです(どれもこの記事の手順では使いません)。
| ログの内容 | T-CODE |
|---|
| ダンプ(Short dump)に関するメッセージ | ST22 |
| ジョブに関するメッセージ(Jobstep、Job: …) | SM37 |
| ロック(Lock)に関するメッセージ | SM12 |
| RFC・通信に関するメッセージ | SM58 / SM59 |
このあとの操作の画面では、直近1週間を指定する例で説明します。
報告された時刻の近くに、それらしいエラーが見当たらなかったら、どうすればいいんですか?
「重大度の高いメッセージのみ」のチェックを外して検索し直せば、警告も含めて見られるぞい。
期間を指定してシステムログを表示する(T-CODE:SM21)
1. T-CODE:SM21 を開く
SAP Easy Access 画面のコマンドフィールド(①)に SM21 と入力し、Enter キーを押します。
操作手順
- コマンドフィールド。ここにトランザクションコードを入力します。
2. 検索条件を確かめる
「システムログの照会」画面が開きます。まずは期間を指定します。
操作手順
- 開始日付:画面に表示された日付を確認します。初期表示の対象期間が前日にまたがる場合もあります。
- 開始時刻:深夜のジョブを調べるときは
00:00:00 など対象時刻を設定します。
- 終了日付/時刻:空欄のままだと「現在まで」が対象です。
- 重大度の高いメッセージのみ:チェックを入れると、優先度の高いメッセージに絞れます。警告も含めて確認したい場合は、チェックを外して再検索してください。
- 実行(F8):条件を入れたら押します。
そのほか、よく使う条件は次の通りです。
| 項目 | 使い方の例 |
|---|
| ユーザ | 「このユーザの操作で何が起きたか」を追うときに指定 |
| トランザクションCode | 特定の画面(例:VA01)で発生したログだけを見る |
| Workprocess Type | BTC でバックグラウンドジョブ、DIA で対話処理に絞る |
| プログラム | 自社開発プログラム(Z*)のログだけを見る |
3. 期間を入力して実行する
この例では、直近1週間のログを表示します。
※システムログは保存容量の上限に達すると古い記録から上書きされるため、指定した1週間分がすべて残っているとは限りません。
開始日付(①)に1週間前の日付、終了日付(②)に当日の日付を入力し、実行(③)を押します。
操作手順
- 開始日付を1週間前、開始時刻を
00:00:00 に変更
- 終了日付を当日、終了時刻を
23:59:59 に変更
- 実行(F8)
期間を広げすぎると件数が多くなり、表示に時間がかかります。まずは1日〜1週間程度で試し、必要に応じて広げてください。
一覧から調べるログを探す(T-CODE:SM21)
1. 一覧の主な列を確かめる
「システムログメッセージ」画面に、条件に合ったログが時系列で表示されます。
画面の見方
- 日付/TIME:発生日時。障害の報告時刻と突き合わせます。
- ユーザ:処理を実行したユーザ。
SAPSYS や SAP_SYSTEM はシステム内部の処理です。
- 優先度のアイコン:重大度です。赤い丸は「非常に高い優先度」(エラー)を表します。アイコンにマウスを乗せると重大度の名称が表示されます。
- Message ID:メッセージを識別する3文字のコード。同じIDが繰り返し出ていれば、同じ原因で起きている可能性が高いです。
- Msg. テキスト:メッセージの本文。「Logon of Jobstep User Failed」(ジョブ実行ユーザのログオン失敗)、「トランザクション取消済」(処理が中断された)などが読み取れます。
まずは、報告された時刻に近い赤い丸の行から見るとよいでしょう。
この例では、ログオン失敗の次の行に対象ユーザ名やジョブ名が続いておる。詳細ビューの「次エントリ」で前後のログを読めるのじゃ。
2. 一覧の上のボタンを確かめる
画面上部のボタンも覚えておくと便利です。
画面の見方
- 詳細照会(F2):選んだ行の詳細を開きます(次の手順)。
- エラーログ表示(F9):エラーとして記録されたログだけを別画面にまとめます。
- フィルタ設定:一覧を列の値で絞り込みます。たとえば「ユーザ」列で特定ユーザだけを残せます。
- 統計照会(F5):メッセージIDごとの件数を集計します。「何がいちばん多く起きているか」を把握するときに使います。
ログの詳細を確かめる(T-CODE:SM21)
1. 詳細ビューを開く
調べたい行(①)をクリックして選び、詳細照会(②)を押します。行をダブルクリックしても同じです。
2. 詳細ビューで手がかりを読む
「システムログの詳細ビュー」が開きます。
画面の見方
- メッセージテキスト:何が起きたかの本文。
- ユーザ:実行ユーザ。
- プログラム:実行されていたプログラム名。ここから ST22(ダンプ)や SE38(プログラム)で追跡できます。この例の
RSBTCRTE はバックグラウンドジョブの起動処理です。
- メッセージ ID:一覧の Message ID と同じもの。SAP Note を検索するときのキーワードになります。
- 次エントリ/前エントリ:一覧に戻らずに前後のログへ移動できます。同じ時刻に連続して出ているログをまとめて読むときに便利です。
この例では、「ジョブ実行ユーザのログオンに失敗した」ことが分かります。次の行には、対象ユーザ名やジョブ名が続いています。
この例では、「次エントリ」で読み進めると、どのジョブがどのユーザで失敗したかまで特定できます。
プログラム名とメッセージIDが分かれば、次に何を見ればいいかも決められそうですね!
T-CODE:SM21 は、次にどこを見るかを決める地図なんじゃ。ログの内容に応じて T-CODE:ST22・SM37 などへ進むのじゃよ!
よくあるつまずき
- 一覧に何も出ない:条件に合うログがない場合や、古いログが容量上限によって上書きされている場合があります。
まず対象期間、優先度の絞り込み、対象インスタンスを確認してください。
- 件数が多すぎて読めない:期間を広げすぎると、件数が多くなります。
「重大度の高いメッセージのみ」にチェックを入れるか、ユーザ・トランザクションCode で絞ります。フィルタ設定で一覧側から絞ることもできます。
- 「システムログ文書」を押しても何も出ない:メッセージ ID によっては日本語の説明文書が用意されていません。
その場合はメッセージ ID で SAP Note を検索します。
- 複数のアプリケーションサーバがある:T-CODE:SM21 は既定で現在ログオンしているインスタンスのログを表示します。
別のインスタンスのログは「拡張インスタンス名」で指定します。
まとめ
- T-CODE:SM21 はシステムログを時系列で照会するトランザクションです。照会のみで安全に実行できます。
- 複数インスタンスのログを調べる際は、対象インスタンスの選択条件も確認します。
- 期間と「重大度の高いメッセージのみ」で絞り込み、赤い丸の行から詳細ビューを開くのが基本の流れです。
- 詳細ビューのプログラム名・メッセージ ID を手がかりに、T-CODE:ST22・SM37 などへ調査を広げます。
ショートダンプがなくても、システムログを見れば手がかりがつかめるんですね。次からは T-CODE:ST22 とセットで確認します!
うむ。調査の全体の流れは下の記事にまとめてあるから、あわせて読んでおくとよいぞい!
あわせて読みたい
あわせて読みたい
【SAP運用保守】障害・不具合調査で使うT-CODE早見表
この記事を読むメリット 症状から、最初に開く T-CODE がすぐに分かる 各 T-CODE の使い方を、解説記事でそのまま確かめられる エラーメッセージ・権限・連携・データの…
あわせて読みたい
【SAP不具合調査】ショートダンプの調査方法(ST22)について解説!
この記事を読むメリット SAPにおけるT-CODE:ST22(ABAP実行時エラー)についての基本を理解することができます。 SAPでは、ABAPプログラムが異常終了したときにショー…
あわせて読みたい
【SAP基礎】JOBログの確認方法(T-CODE:SM37)
この記事を読むメリット SAPジョブの基礎知識を理解することができます。 今回は、SAP運用で避けては通れないSAPジョブの解説とJOBログの確認方法について解説していき…