3. サンプル

WebOTX Batch Serverでは本ガイドで説明したファイルとデータベースの読み書きを行うための簡単なジョブの定義サンプルを提供しています。

3.1. サンプルの構成

WebOTX Batch Serverのインストールディレクトリには下記のサンプルが提供されます。

サンプルディレクトリ構成
${BS_HOME} WebOTX Batch Serverインストールディレクトリ
  +-- sample サンプル格納ディレクトリ
  +-- application サンプルアプリケーション
  +-- apps ジョブ定義ファイル
  +-- default default.jarの内容
+-- default.jar 単純なバッチアプリケーション
+-- simple simple.jarの内容
  +-- db2db DB上のテーブルからレコードを読み込み、DB上の別のテーブルに書込みを行うジョブ
+-- db2file DB上のテーブルからレコードを読み込み、ファイルに書込みを行うジョブ
+-- file2db CSVファイルからレコードを読み込み、DB上のテーブルに書込みを行うジョブ
+-- file2file CSVファイルからレコードを読み込み、別のファイルに書込みを行うジョブ
+-- lib バッチアプリケーション共通ライブラリ
+-- simple.jar 典型的な処理パターンのバッチアプリケーション
+-- hattyu hattyu.jarの内容
  +-- report 発注レポート生成ジョブ(チュートリアル用サンプル)
+-- hattyu.jar 発注業務を模したバッチアプリケーション(チュートリアル用サンプル)
+-- src Javaコード格納ディレクトリ
  +-- simple 典型的処理パターン用のソースコード
  +-- build.cmd Windows用ビルドスクリプト
+-- build.sh Unix用ビルドスクリプト
+-- tutorial チュートリアル用ソースコード
+-- data データ格納ディレクトリ
  +-- input.csv ファイル用入力データ
+-- sample_table.sql データベース用入出力テーブル作成用SQL

本ガイドで説明したファイルやデータベースの読込を行う、基本的なジョブの定義を含んでいます。

3.2. サンプルの実行方法

3.2.1. コンテナの作成と起動

以下のサンプルの実行例では、既定値のドメイン batchsv1 に container1 というコンテナが追加された環境での実行例となっています。
初めに、サンプルの実行環境の設定を行います。

3.2.1.1. コンテナの作成

バッチアプリケーションを実行させるバッチコンテナの作成を行います。ドメインが起動した状態で以下のコマンドを実行し、コンテナの作成を行ってください。

(例) container1のコンテナを作成する例
[root@localhost bin]# ./otxadmin add-bs-container --user <rootユーザ名> --password <rootパスワード> --port <ドメインのポート番号> --container container1
[root@localhost bin]# 

ドメインのポート番号は、デフォルトの設定で作成したドメインでは 6312 となります。

参照

3.2.1.2. コンテナの設定

続いて、コンテナに対してデータベースの設定を行います。
まず、/opt/WebOTX/domains/batchsv1/containers/config.sample.shを、config.shという名前で、container1フォルダ配下にコピーします。
その後、テキストエディタで/opt/WebOTX/domains/batchsv1/containers/container1/config.shを開き、環境変数BS_CLASSPATH_PREFIXにderby clientへのパスを追加します。

	  
(container1にDerbyのライブラリのパスを設定する例) 

 /opt/WebOTX/batch/lib/databases/derbyclient-10.6.2.1.jarへのパスを追加する例
 修正前
	BS_CLASSPATH_PREFIX=
 修正後
	BS_CLASSPATH_PREFIX=${AS_INSTALL}/batch/lib/databases/derbyclient-10.6.2.1.jar
参照

3.2.1.3. コンテナの起動

作成したバッチコンテナを動作させるには以下のコマンドを実行します。

(container1のコンテナをスタートする例)	

[root@localhost bin]# ./otxadmin start-bs-container --user <rootユーザ名> --password <rootパスワード> --port <ドメインのポート番号> --container container1	
[root@localhost bin]# 
参照

3.2.2. 単純なサンプルの実行方法

下記手順によって${BS_HOME}/sample/application/apps/default.jarに格納されているサンプルを実行することができます。

手順
  1. 環境のセットアップ

    コンテナの作成と起動 を参考にバッチドメイン環境をセットアップしてください。
    以下WebOTX Batch Serverのインストールディレクトリを${BS_HOME}とします。
    また、バッチドメインのルートディレクトリを${DOMAIN_HOME}、バッチコンテナのルートディレクトリを${CONTAINER_HOME}とします。

  2. ドメインの起動とサンプルのデプロイ

    otxadmin start-domainコマンドでバッチドメインを起動し、otxadmin get-bs-container-statusコマンドでコンテナが存在し、スタートしていることを確認して、${BS_HOME}/sample/application/apps/default.jarファイルをotxadmin install-bs-batchapgroupコマンドによって配備します。
    以下の実行例では、${BS_HOME}を/opt/WebOTX/batch としています。

    [root@localhost bin]# ./otxadmin install-bs-batchapgroup --user root --password bsadmin --port 6312 --container container1 /opt/WebOTX/batch/sample/application/apps/default.jar  
    [BS240333007] バッチアプリケーショングループ名が省略されています。"default"をバッチアプリケーショングループ名として使用します。
    [BS240343001] /opt/WebOTX/batch/sample/application/apps/default.jar を転送中
    [BS240343002] /opt/WebOTX/batch/sample/application/apps/default.jar の転送が完了しました。
    [BS240343004] /opt/WebOTX/batch/sample/application/apps/default.jar のインストールと有効化を実行中
    [BS240343005] /opt/WebOTX/batch/sample/application/apps/default.jar のインストールと有効化が完了しました。
    [root@localhost bin]# 
    
  3. サンプルジョブの実行

    ジョブの開始コマンドを実行しサンプルのジョブが実行されることを確認してください。

    > jobctl start --user userName --password password --jobname hello
    

    各コマンドや設定の詳細については運用、利用ガイドを参照してください。

3.2.3. 典型的な処理パターンのサンプル実行方法

下記手順によって${BS_HOME}/sample/application/apps/simple.jarに格納されているサンプルを実行することができます。

手順
  1. 環境のセットアップ

    コンテナの作成と起動 を参考にバッチドメイン環境をセットアップしてください。
    以下WebOTX Batch Serverのインストールディレクトリを${BS_HOME}とします。
    また、バッチドメインのルートディレクトリを${DOMAIN_HOME}、バッチコンテナのルートディレクトリを${CONTAINER_HOME}とします。

  2. データベースのテーブルを作成(データベースの読み書きを行う場合)

    サンプルアプリケーションが必要とするテーブルを初期化します。${BS_HOME}/sample/data/sample_table.sql を実行してテーブルを初期化します。

  3. ドメインの起動とサンプルのデプロイ

    otxadmin start-domainコマンドでバッチドメインを起動し、otxadmin get-bs-container-statusコマンドでコンテナが存在し、スタートしていることを確認して、${BS_HOME}/sample/application/apps/simple.jarファイルをotxadmin install-bs-batchapgroupコマンドによって配備します。

  4. サンプルジョブの実行

    ジョブの開始コマンドを実行しサンプルのジョブが実行されることを確認してください。
    db2db、file2db とも WRITE_ITEMS テーブルにレコードを追加します。
    また、db2file は${BS_HOME}/sample/out/db2file_output.txt に出力し、file2file は${BS_HOME}/sample/out/file2file_output.txt に出力します。

    > jobctl start ... --batchapgroup simple --batchap db2db --jobname db2db
    > jobctl start ... --batchapgroup simple --batchap db2file --jobname db2file
    > jobctl start ... --batchapgroup simple --batchap file2file --jobname file2file
    > jobctl start ... --batchapgroup simple --batchap file2db --jobname file2db
    (--user, --passwordの指定を省略しています)

    単純なサンプルの実行時には指定していなかった--batchapgroup、--batchapオプションをしている点に注意してください。
    ジョブの実行コマンドは、--batchapgroupや--batchapオプションを省略した場合、"default"バッチアプリケーショングループと "default"バッチアプリケーションがそれぞれ指定されたものとして動作します。
    典型的な処理パターンのサンプルのように、"default"で無いバッチアプリケーショングループや、 バッチアプリケーションとしてデプロイした場合には、明示的にオプションを指定する必要があります。

各コマンドや設定の詳細については運用、利用ガイドを参照してください。

3.2.4. 発注レポートジョブのサンプル実行方法

下記手順によって${BS_HOME}/sample/application/apps/hattyu.jarに格納されているサンプルを実行することができます。

手順
  1. 環境のセットアップ

    コンテナの作成と起動 を参考にバッチドメイン環境をセットアップしてください。
    以下WebOTX Batch Serverのインストールディレクトリを${BS_HOME}とします。
    また、バッチドメインのルートディレクトリを${DOMAIN_HOME}、バッチコンテナのルートディレクトリを${CONTAINER_HOME}とします。

  2. データベースのテーブルを作成

    サンプルアプリケーションが必要とするテーブルを初期化します。${BS_HOME}/sample/application/src/tutorial/0_HattyuApg/createData.xxx.sql を実行してテーブルを初期化します。 このSQL文には日本語のデータを含んでいます。 UTF-8用(createData.utf8.sql)・Shift_JIS用(createData.sjis.sql)・EUC用(createData.euc.sql)が それぞれ用意されているので、利用する環境に応じて使い分けてください。

    このSQLによって下記テーブルとテスト用のデータが生成されます。

    テーブル名説明
    SYOHIN_MST商品ID、商品名、価格商品情報のマスタテーブル
    TENPO_MST店舗ID、店舗名店舗情報のマスタテーブル
    HATTYU_TENPO00001商品ID、発注数、発注日'TENPO00001'の発注データ
    HATTYU_TENPO00002商品ID、発注数、発注日'TENPO00002'の発注データ
    HATTYU_TENPO00003商品ID、発注数、発注日'TENPO00003'の発注データ
    HATTYU_TENPO00004商品ID、発注数、発注日'TENPO00004'の発注データ
    HATTYU_TENPO00005商品ID、発注数、発注日'TENPO00005'の発注データ
  3. ドメインの起動とサンプルのデプロイ

    otxadmin start-domainコマンドでバッチドメインを起動し、otxadmin get-bs-container-statusコマンドでコンテナが存在し、スタートしていることを確認して、${BS_HOME}/sample/application/apps/hattyu.jarファイルをotxadmin install-bs-batchapgroupコマンドによって配備します。

  4. サンプルジョブの実行

    ジョブの開始コマンドを実行しサンプルのジョブが実行されることを確認してください。

    発注レポートジョブでは、以下のような流れで発注レポートのテキストファイルを生成します。

    1. hattyu/report/job1 にtarget.tenpo.id=店舗ID をジョブパラメータと指定して実行
    2. DOMAIN_HOME/data/input/ディレクトリに店舗ID.csvとして、各店舗の発注データファイルを作成
    3. 全店舗分のIDをそれぞれ指定してhattyu/report/job1を実行し全店舗の発注データファイルを作成
    4. hattyu/report/job2を実行してDOMAIN_HOME/data/report/ディレクトリに商品毎の発注レポートとして下記のようなテキストファイルを出力
      ***************************************
       発注レポート: 2010/06/30
       商品 : syohin0003
      
       発注内訳 :- 
      サンプル店舗1 (ID:tenpo00001)   50 個
      サンプル店舗2 (ID:tenpo00002)   20 個
      サンプル店舗3 (ID:tenpo00003)   30 個
      サンプル店舗4 (ID:tenpo00004)   90 個
      サンプル店舗5 (ID:tenpo00005)   30 個
      
       発注総数 : 220 個
      **************************************
      

    まずは、下記コマンドを実行して発注データファイルを作成します。

    > jobctl start ... --batchapgroup hattyu --batchap report --jobname job1 target.tenpo.id=tenpo00001
    > jobctl start ... --batchapgroup hattyu --batchap report --jobname job1 target.tenpo.id=tenpo00002
    > jobctl start ... --batchapgroup hattyu --batchap report --jobname job1 target.tenpo.id=tenpo00003
    > jobctl start ... --batchapgroup hattyu --batchap report --jobname job1 target.tenpo.id=tenpo00004
    > jobctl start ... --batchapgroup hattyu --batchap report --jobname job1 target.tenpo.id=tenpo00005
    (--user, --passwordの指定を省略しています)

    次に、下記コマンドを実行して発注レポートを作成します。

    > jobctl start ... --batchapgroup hattyu --batchap report --jobname job2
    (--user, --passwordの指定を省略しています)

    BS_HOME/data/report/商品ID.txt に整形された発注レポートが出力されていることを確認してください。

各コマンドや設定の詳細については運用、利用ガイドを参照してください。