ページの先頭行へ戻る
Interstage Business Application Server オープンJavaフレームワークユーザーズガイド Java EE 7編
FUJITSU Software

4.7.4 Step

Stepについて説明します。

4.7.4.1 提供するStepモデル

Spring Batch 3.0では、以下のStepモデルを提供しています。

4.7.4.1.1 チャンクモデル

チャンクモデルはStep処理をItemReader、ItemProcessor、ItemWriterの3つに分けたモデルです。チャンクモデルはItemReaderで一括に取得するデータ量をcommit-intervalで指定することができます。commit-intervalについては、“4.7.4.1.2 commit-intervalについて”を参照してください。

記述形式

Job定義ファイル(job.xml):

<batch:job id="testJob">
    <batch:step id="step1" next="step2">
        <batch:tasklet transaction-manager="jdbcTransactionManager">
            <batch:chunk 
              reader="itemReader" 
              processor="itemProcessor" 
              writer="itemWriter" 
              commit-interval="10000" />
        </batch:tasklet>
    </batch:step>
    <batch:step id="step2">
    </batch:step>
</batch:job>

タグ一覧

タグ一覧を以下に示します。

タグ名

概要

job

4.7.3.2 Job定義”を参照してください。

step

Stepの開始と終了

tasklet

タスクレットの定義

chunk

チャンクの定義

next

4.8.1 条件分岐”を参照してください。

end

fail

タグの説明

step

Stepの開始と終了を定義します。

指定可能な属性名を以下に示します。

属性名

必須

意味

id

定義するStepIDを指定します。StepIDはNCName型が使用されます。

next

-

次に実行するStepIDを指定します。

tasklet

タスクレットを定義します。

指定可能な属性名を以下に示します。

属性名

必須

意味

transaction-manager

-

Stepで使用するトランザクションマネージャを指定します。指定しない場合は、“transactionManager”が指定されます。

ポイント

ItemReaderとItemWriterにcsvファイルを使用する場合は、transaction-managerに“org.springframework.batch.support.transaction.ResourcelessTransactionManager”を設定してください。ResourcelessTransactionManagerはトランザクションを行わない場合に使用します。

chunk

チャンクを定義します。

指定可能な属性名を以下に示します。

属性名

必須

意味

reader

Stepで使用するItemReaderを指定します。

processor

-

Stepで使用するItemProcessorを指定します。

writer

Stepで使用するItemWriterを指定します。

commit-interval

-

ItemReaderで一括に取得するデータ量を指定します。指定しない場合はデフォルト値“10000”が指定されます。

ポイント

“commit-interval”の指定範囲を以下に示します。

0~2147483647

“0”を指定した場合は、デフォルト値“10000”が指定されます。

4.7.4.1.2 commit-intervalについて

commit-intervalにはItemReaderで一括に取得するデータ量を指定します。

一括で取得するデータ量が多いほどStepの処理速度が速くなります。データ量が多いほど多くのJavaヒープメモリを使用するため、Javaヒープメモリが枯渇し、Jobがエラー終了してしまうリスクがあります。

commit-intervalの設定値は、業務環境に合った値を設定してください。

4.7.4.1.3 JobExplorer定義(コマンドライン)

コマンドラインからJobを起動し、StopオプションでJobを停止させるためには、JobExplorer定義が必要です。JobExplorer定義は、データソースを定義する必要があります。データソースは、JobRepositoryと同じデータソースを指定してください。JobExplorer定義例を以下に示します。

Job定義(job.xml):

<!-- JobExplorer定義 -->
<bean id="jobExplorer" class="org.springframework.batch.core.explore.support.JobExplorerFactoryBean">
    <property name="dataSource" ref="jobRepository_DataSource" />
</bean>