0
2

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 5 years have passed since last update.

SAP HANA DB でJOBスケジュールを設定する方法

Last updated at Posted at 2019-04-01

HANA DBでJOBスケジュールを実行してみる

XS Classicのスクリプト内で非同期でのSQL実行したかったので、
HANADB内のJOBスケジュールを動的に変更して非同期処理を行えるようにした。

本記事ではHANADBでのJOBスケジュール設定方法について記載します。

SAPHANAのjobについて

jobでできること

  • プロシージャの実行
  • XSJSアプリケーションの実行

※ cronと同様の指定で処理が実行できる
※ XSJSからスケジュールを動的に変更することで非同期処理を実装

リファレンスはこちら

.xsjobファイルと実行スクリプトの配置

  1. SAP HANA Web-Based Development Workbench -> Editor画面でXSアプリケーションを作る

  2. アプリケーションのルートPackage配下にJobディレクトリを作成する

  3. .xsjobファイルとJOBで実行するスクリプトを作成する

図1.png

.xsjobファイルの中身

insertTask.xsjob
{
    "description": "test job",
    "action": "pkg.job:jobtest.xsjs::job_insertTask.xsjs",
    "schedules": [
       {
          "description": "test schedule",
          "xscron": "* * * * * * 59",
          "parameter": {
             "param1" : "param Value"
             }
       }
    ]
}

以下を記載
"action" :実行したいスクリプトのファイル名
"schedules" :JOBスケジュールの設定
  "xscron" :jobの実行日時
  "parameter" :jobに引き渡すパラメータ(※任意)

XSjobの有効化手順

.xsjobファイルを作成したらSAP HANAのアドミン画面に行く

HANA admin画面への入り方

URL
 https:// <あなたのHANADBドメイン> /sap/hana/xs/admin/

権限
 ログインするユーザーに以下の権限が必要

必要権限
sap.hana.admin.roles::Monitoring
sap.hana.xs.admin.roles::HTTPDestAdministrator
sap.hana.xs.admin.roles::HTTPDestViewer
sap.hana.xs.admin.roles::JobAdministrator
sap.hana.xs.admin.roles::JobSchedulerAdministrator
sap.hana.xs.admin.roles::JobViewer
sap.hana.xs.admin.roles::RuntimeConfAdministrator
sap.hana.xs.admin.roles::RuntimeConfViewer
sap.hana.xs.admin.roles::SAMLAdministrator
sap.hana.xs.admin.roles::SAMLViewer
sap.hana.xs.admin.roles::SQLCCAdministrator
sap.hana.xs.admin.roles::SQLCCViewer
sap.hana.xs.admin.roles::TrustStoreAdministrator
sap.hana.xs.admin.roles::TrustStoreViewer
sap.hana.xs.lm.roles::Administrator
  1. アドミン画面で.xsjobファイルを作成したディレクトリに遷移する
    画面左側のパッケージから該当のパスまで移動
    図2.png

  2. xsjobの設定画面を開く
    作成した.xsjobファイルを選択する
    Configurationタブを押下
    3.png

  3. 下図赤枠部分に必要項目を入力する
    USER : ジョブを実行するDBユーザー
    PASSWORD : DBユーザーのパスワード
    ACTIVE : ジョブを有効化する場合はチェックを入れる
    4.png

  4. 設定を保存する
    footerのSaveボタン押下

  5. メニューから「XS Job Dashboard」を押下
    5.png

  6. Scheduler Enabled のチェックを有効にする
    8.png

.xsjobの設定確認・編集・ログ

  1. メニューから「XS Job Dashboard」を押下
    5.png

  2. 確認したいJobを選択
    6.png

  3. JobScheduleが表示される
    7.png

  4. ログ確認画面
    View Logsクリックで実行ログ画面が見れる

最後に

非同期でSQLを実行したかったので
SQL用のスクリプトを作成してJOBとして登録→XSJSで動的にスケジュール作成
という流れで実装しました。

XSCでのJOB登録等は別途記事にします。

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?