2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[SAP][ABAP] ジョブの多重実行を防ぐ標準プログラム RSBTONEJOB2を使ってみた

Last updated at Posted at 2021-10-01

こんにちは。

今回は、SAPプログラムをジョブ実行した場合の、多重実行処理を防ぐ標準プログラムについての情報です。参考にさせていただきましたのはこちらの記事です。
HOW TO PREVENT JOBS FROM RUNNING MULTIPLE TIMES IN PARALLEL

一例としてですが、周期ジョブ(サイクリックジョブ)の多重実行防止をアドオン不要で実装でき、設計やテスト工数を大きく削減できます。要件定義者や設計者の方には有用な知識になるものと思います。

内容

  • 設定方法

  • 試してみた

  • まとめ

設定方法

RSBTONEJOB2を実行すると以下のような選択画面が表示されます。
各項目には以下を設定します。

・JOBNAME:このプログラムをジョブ実行する際のジョブID
・REPORT:多重実行したくない実行ログラムID
・VARIANT:上記REPORTのプログラムで使用するバリアントID

image.png

このプログラムの簡単な処理フローを以下に記述してみました。
image.png

このプログラムは、自身のジョブを重複チェック対象として、今実行されているのが自分自身のみだと判定した場合にREPORTで指定したプログラムを実行する(俗にいう、「キックする」)仕様となっています。自分と同じジョブIDが自分以外にも動いている時は何もせず処理を終了することで、多重実行処理を防ぐ仕様となっています。逆に言うと、REPORT:BBBBBを直接実行するジョブが存在する場合は多重実行を防ぐことはできません。

試してみた

RSBTONEJOB2のバリアント設定
image.png

RSBTONEJOB2のジョブ設定(トランザクション:SM36)
※ジョブ名は、RSBTONEJOB2のJOBNAMEと同じ(自分自身)
image.png

image.png

ジョブステップはRSBTONEJOB2が1つのみ
image.png

ジョブを実行の実行結果確認(トランザクション:SM37)
最初の1つのみが実行され、あとの2つはすぐ終了している。多重実行が行われていないことが確認できる。
image.png

多重実行と判定されすぐに終了したジョブのジョブログを確認。実行中の1つと自分自身で実行中ジョブが2とカウントされている。
image.png

まとめ

・RSBTONEJOB2を使用することで、アドオン不要で指定プログラムの多重実行を防ぐことができる

今回は以上となります。ありがとうございました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?