*******************************************************************************
      TERASOLUNA Batch Framework for Java
      機能網羅サンプルアプリケーション 導入手順について

      Copyright 2007 NTT DATA Corporation.
*******************************************************************************

■  概要：

  このreadmeは、TERASOLUNA Batch Framework for Javaの
  機能網羅サンプルアプリケーションを導入する手順書です。
  下記手順に従うことにより、TERASOLUNAフレームワークの機能網羅サンプルアプリケーションの
  実行環境を準備することができます。

■  前提条件：

  開発環境には、あらかじめ下記のものが用意されている必要があります。
  また併記されているバージョンを元に動作確認を行なっていますが、
  このバージョン以外の環境で動作を制限することを示すものではありません。
  また、これらのインストール及び設定の手順については、
  別途Web上の利用ガイド等を参照してください。 

  ・Java 2 Runtime Environment Standard Edition 1.5.0
  ・Eclipse SDK 3.2.0 
  ・PostgreSQL Database Server 8.1
  　または
  ・Oracle10g

■  Antタスク一覧：

  プロジェクトの「\ant」フォルダには、antタスクが記述された
  「build.xml」が存在します。以下にantタスクの一覧を記述します。

  ・clean
      コンパイルされたクラスファイルの削除を行う。
  ・compile
      コンパイルを行う。
  ・createJavaDoc
      JavaDocの生成を行う。
        
■  プロジェクトの実行：

　①JDBCドライバの配置
    PostgreSQL,OracleのJDBCドライバは付属していないので、利用者各自で別途入手する必要があります。
      ・PostgreSQL
          http://jdbc.postgresql.org/download.html
      ・Oracle
          http://otn.oracle.co.jp/software/tech/java/jdbc/index.html
    　※付属のbatファイルからジョブを起動する場合は、
        取得したドライバを以下のフォルダに配置してください。
    　・「functionsample-batch\lib」
      
  ②ZIPファイルの展開
    terasoluna-batch4j-funcsample_(バージョン番号).zipを任意のフォルダに展開します。 

    展開されたterasoluna-batch4j-funcsample_(バージョン番号).zipのフォルダ名が
    「functionsample-batch」であることを確認します。
    展開ツールや展開のしかたによっては、フォルダ名が
    「terasoluna-batch4j-funcsample_(バージョン番号)」となる場合がありますが、
    フォルダ名を手動で「functionsample-batch」に変更してください。 

  ③データベース環境の設定
   ◇Oracleの場合
    1.前提条件(環境により変更可能)
        インスタンス名･･･XE
        DBユーザー名/パスワード･･･sample/sample

    2.「setup_for_Oracle.bat」の編集
        「/sql/oracle/setup_for_Oracle.bat」を自端末の環境に合った値に書き換えます。
        詳細は「/sql/oracle/setup_for_Oracle.bat」を参照してください。

    3.テーブルの作成
      「/sql/oracle/setup_for_Oracle.bat」を実行します。(eclipseから実行不可)
      「SQL> 」が表示されたら exitと入力して終了します。
      ※実行時パスの整合性のため、必ず 当該ファイルが存在するフォルダで実行してください。

   ◇PostgreSQLの場合
    1.前提条件(環境により変更可能)
      pgAdminを起動し、新しいデータベースを作成する。
        名前･･･functionsampledb
        オーナー･･･sample
        エンコーディング･･･UTF8
        Template･･･（なし）
        テーブル空間･･･pg_default

    2.「setup_for_PostgreSQL.bat」の編集
        「/sql/postgresql/setup_for_PostgreSQL.bat」を自端末の環境に合った値に書き換えます。
        詳細は「/sql/postgresql/setup_for_PostgreSQL.bat」を参照してください。

    3.テーブルの作成
      「/sql/postgresql/setup_for_PostgreSQL.bat」を実行します。(eclipseから実行不可)
      ※実行時パスの整合性のため、必ず 当該ファイルが存在するフォルダで実行してください。

  ④Eclipseへのインポート
    ・Eclipse画面にて「ファイル＞インポート」を実行し、
      「一般＞既存プロジェクトをワークスペースへ」を選択し「次へ」をクリックします。
    ・「ルート・ディレクトリーの選択」にチェックが入った状態で「参照」をクリックし、
    　プロジェクト内容のブラウズから②で展開したディレクトリを指定します。
    ・「プロジェクトをワークスペースへコピー」にチェックが入っていることを確認後、
      「終了」をクリックします。
 
　⑤テーブル初期化用ジョブを実行
	「/script/SAMPLE000-01.bat」および「/script/SAMPLE000-02.bat」を実行します。

■ジョブの起動方法

　scriptフォルダ配下のbatファイルを参考に起動します。


■動作確認用サンプルのジョブについて

　　本サンプルのジョブ一覧を下記に示します。

	1. SAMPLE000
	　・テーブル初期設定用ジョブ
		・SAMPLE000-01：
　　　　　        “NYUSYUKKINTBL”に初期データを設定します。（Sample000PreLogic.javaを参照）
	　	　“ZANDAKATBL”のデータを削除します。（Sample000PreLogic02.javaを参照）
		　“RIREKITBL”のデータを削除します。（Sample000PreLogic03.javaを参照）

		※起動パラメータの第3引数に、“NYUSYUKKINTBL”に追加するデータ件数を指定することができます。
		　指定しない場合は1万件作成されます。　
		※SAMPLE001,SAMPLE003,SAMPLE006,SAMPLE007を実行する前に、
　　	　        少なくとも1度はSAMPLE000-01を実行する必要があります。
	
	2. SAMPLE001
	　・トランザクションモデル別のサンプルジョブ（監視、リスタート含む）
		・SAMPLE001-01：全チャンク単一トランザクションモデル（ジョブ分割）。
		・SAMPLE001-02：逐次単一トランザクションモデル。
		・SAMPLE001-03：チャンク別トランザクションモデル（ジョブ分割）。監視あり。
		・SAMPLE001-04：全チャンク単一トランザクションモデル（通常ジョブ）。
		・SAMPLE001-05：チャンク別トランザクションモデル（通常ジョブ）。
		・SAMPLE001-06(PostgreSQL用),SAMPLE001-07(Oracle用):
		                チャンク別トランザクションモデル（リスタート）。
				起動1回目で例外が発生し（デフォルトは30件目）、
				起動2回目でリスタートポイントから最終まで処理を行います。
		　※起動パラメータの第3引数に、例外発生ポイントを指定することができます。
						
		※SAMPLE001-03の監視を行う場合は、Java SE 5.0に付属する「jconsole」を使用します。

	3. SAMPLE002
	　・固定長・可変長ファイルを用いたサンプルジョブ
		・SAMPLE002-01：入出力ファイルが固定長ファイル。
		・SAMPLE002-02：入出力ファイルが可変長ファイル。
	
	4. SAMPLE003
	　・ファイル出力のサンプルジョブ
	　　	・SAMPLE003-01：ヘッダ部、データ部、トレイラ部を出力します。
	
	5. SAMPLE004
	　・テーブルをキャッシュするサンプルジョブ
		・SAMPLE004-01：
			コードテーブルをキャッシュします。(SAMPLE004_sqlMapConfig.xml,
			                                   SAMPLE004_sqlMap.xmlを参照)
			ファイルの存在をチェックします。(Sample004PreLogic.javaを参照）
			ファイルの更新日時を変更します。（Sample004PostLogic.javaを参照）
			
	6. SAMPLE005
	　・ファイルコレクターでファイルをマージするサンプルジョブ
		・SAMPLE005-01:2つの入力ファイルをマージします。

	7. SAMPLE006
	　・ヒープサイズ検証用サンプルジョブ
	　　	・SAMPLE006-01：通常ジョブ
	　　	・SAMPLE006-02：分割ジョブ

	8. SAMPLE007
	　・ヘッダ-明細構造の取得サンプル
	　　	・SAMPLE007-01: iBatisの機能を用いたヘッダ-明細構造の取得サンプルです。
	                       （SAMPLE007_sqlMap.xmlを参照）

	9. SAMPLE008
	　・コントロールブレイクを使用したサンプルジョブ
		・SAMPLE008-01: ブレイクキー、コントロールブレイクハンドラの設定例です。
				
	※ファイルを出力するジョブに関して、ファイルの削除処理は特に記述しておらず、
　　　    ファイル出力時には上書きとなるよう設定しています。

■非同期型ジョブ起動機能について

	非同期バッチデーモンの起動方法については
	下記のbatファイルを参考にしてください。
　　	・script/SAMPLE-ASYNC.bat

　　非同期バッチデーモン起動後は下記のsqlを参考に
　　ジョブ管理テーブルにジョブ依頼情報を登録します。
    サンプルではSAMPLE006を対象としています。
	　　・sql/oracle/start_job.sql
		・sql/postgresql/start_job.sql

-------------------------------------------------------------------------------
Copyright 2007 NTT DATA Corporation.
