A long-running application is a Java 2 Platform Enterprise Edition (J2EE) application that conforms to one of the grid programming models. Grid work is expressed as jobs, and all steps in a job are processed sequentially.
A long-running application runs in an Enterprise JavaBeans (EJB) container and has access to the same container functionality as a normal EJB. The life cycle and invocation semantics of a long-running application are handled differently than a typical EJB. Rather than the request and response paradigm used for transactional J2EE applications, units of work for a long-running application are expressed as jobs. A job is an XML document that describes the work to be done, which application is needed to perform the work, and can include additional information to help WebSphere Extended Deployment handle the work effectively and efficiently. A job has a well-defined life cycle that can be managed both programmatically through EJB and Web service interfaces, and administratively using a command-line tool and the administrative console.
Jobs can be dispatched to endpoints as soon as they are submitted, up to the allowed maximum concurrent jobs of that job class. The default is 25 and is configured using the job scheduler panel in the administrative console. Click System Administration > Job Scheduler.
xJCL
Jobs are expressed using an XML dialect called XML Job Control Language (xJCL). This dialect has constructs for expressing all of the information needed for both compute-intensive and batch jobs, although some elements of xJCL are only applicable to compute-intensive or batch jobs. See the xJCL provided with the Sample applications and the xJCL schema document for more information about xJCL. The xJCL definition of a job is not part of the long-running application. This definition is constructed separately and submitted to the long-running scheduler to run. The long-running scheduler uses information in the xJCL to determine where and when the job should be run.
Submitting and controlling jobs
xJCL jobs can be submitted and controlled through the following interfaces:
The execution environment
Long-running applications run in a special runtime environment. This runtime environment is provided by a product-provided J2EE application, This application must be deployed into dynamic clusters that will host long-running applications. The application serves as an interface between the long-running scheduler and long-running applications. It provides the runtime environment for both compute-intensive and batch applications.