La interfaz Enterprise JavaBeans (EJB) del planificador de trabajos se utiliza para someter de forma programada y
manipular un trabajo por lotes.
Puede utilizar la interfaz EJB con el planificador base
en WebSphere Application Server para realizar un envío basado
en calendario de un trabajo por lotes.
Antes de empezar
El planificador de trabajos da soporte al acceso programado a sus funciones
mediante una interfaz EJB para aplicaciones Java™ Platform, Enterprise Edition (Java EE) y una interfaz de servicios web para aplicaciones
Java EE y no de Java EE.
La interfaz EJB para el planificador de trabajos se describe mediante interfaces que se encuentran en la documentación de la API. Para obtener más información, consulte esta documentación.
Desarrolle e instale sus aplicaciones por lotes.
Acerca de esta tarea
En este tema se describe cómo enviar un trabajo por lotes al planificador de
trabajos mediante el planificador base.
Incluye un
ejemplo de código que muestra cómo invocar el EJB de la
planificador de trabajos.
Procedimiento
- Cree y configure un planificador. Lea sobre cómo crear y configurar un planificador en
el tema sobre el desarrollo y planificación de tareas.
- Cree una tarea de planificador para someter el trabajo por lotes.
Esta tarea de planificador invoca el EJB de la planificador de trabajos para someter un trabajo por lotes.
Lea las instrucciones para crear una tarea que invoque un EJB en el tema sobre desarrollo de una tarea que llame a un bean de sesión. En este tema también se incluyen las instrucciones para utilizar la característica de calendario del planificador. En el ejemplo siguiente se muestra cómo invocar el EJB de la planificador de trabajos :
// Estas son las sentencias de importación que necesita la tarea
import javax.naming.*;
import com.ibm.websphere.longrun.JobScheduler;
import com.ibm.websphere.longrun.JobSchedulerHome
private JobSchedulerHome zjsHome = null;
private JobScheduler zjs = null;
public void process(TaskStatus task) ()
try{
// Asegurarse de que el xJCL puede colocarse en una serie, por ejemplo, leyendo un archivo xJCL
// en una serie
String xJCL = <xJCL as a string>;
//Obtener contexto de denominación a nivel de célula
InitialContext ctxt = new InitialContext();
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.ibm.websphere.naming.WsnInitialContextFactory");
env.put(Context.PROVIDER_URL,"corbaloc:rir:/NameServiceCellRoot");
ctxt = new InitialContext(env);
// Para buscar el EJB de LRS desde el contexto de célula en el espacio de nombres,
// se debe proporcioanr el contexto de denominación para el servidor de
// aplicaciones o clúster en el que se despliega la aplicación LRS
// P.e.: "nodes/myNode/servers/myServer" or "clusters/myCluster".
String longRunningContext = <long_running_context>;
zjsHome = (JobSchedulerHome) ctxt.lookup(longRunningContext +
"/ejb/com/ibm/websphere/longrun/JobSchedulerHome");
zjs = zjsHome.create();
zjs.submitJob( xJCL );
} catch(Exception e) {
System.out.println(e.getMessage());
}
- Ejecute el programa para someter el trabajo por lotes
Lea el tema sobre el sometimiento de una tarea a un planificador.