JavaEE 7 Batch Processing API
This project demonstrates the features of JavaEE 7 batch processing API.
The use case is to send SMS/Email notification on daily basis to some particular group of users.
Create datasource in standalone.xml of WildFly server as follows:
<datasource jndi-name="java:jboss/jdbc/batch-ds" pool-name="BatchDatasource">
<connection-url>jdbc
//localhost:3306/batch?useSSL=false</connection-url>
<driver>mysql</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>root</user-name>
<password>root</password>
</security>
</datasource>
To make job repository persistent, replace the jberet subsystem with the following:
<subsystem xmlns="urn
domain
1.0">
<default-job-repository name="jdbc"></default-job-repository>
<default-thread-pool name="batch"></default-thread-pool>
<job-repository name="in-memory">
<in-memory></in-memory>
</job-repository>
<job-repository name="jdbc">
<jdbc data-source="BatchDatasource"></jdbc>
</job-repository>
<thread-pool name="batch">
<max-threads count="10"></max-threads>
<keepalive-time time="30" unit="seconds"></keepalive-time>
</thread-pool>
</subsystem>
Build the project using:
$ mvn clean install
Deploy the war in wildfly and start the server using:
$ standalone.bat (or standalone.sh)
Open browser and go to URL:
This will open up index.jsp page. Click on the link to start the job.