6.2. Configuración de Quartz
Antes de configurar la base de datos en su servidor de aplicaciones, necesitará preparar la base de datos para que Quartz pueda crear tablas Quartz,las cuales guardarán la fecha de temporizador y el archivo de definición Quartz.
Claro está que si usted no está utilizando temporizadores Quartz en los procesos de su empresa, o si no usa el Execution Server de ninguna manera, puede ignorar esta sección. Por favor, observe que si desea replicar temporizadores en su proceso empresarial, debe usar el componente Quartz.
Para configurarlo, haga lo siguiente:
- Configure la base de datos. Asegúrese de usar una la fuente de datos con soporte non-JTA. Observe que debido a que Quartz necesita un fuente de datos non-JTA, usted no puede usar la fuente de datos de la Central empresarial. En el código de ejemplo, se utiliza PostgreSQL con el usuario
bpmsy la contraseñabpms. - Cree las tablas Quartz en su base de datos para permitir sincronización de eventos de temporizador. Para ello, use el script DDL de su base de datos, el cual está disponible en el archivo zip complementario QUARTZ_HOME/docs/dbTables.
- Cree el archivo de configuración
quartz-definition.propertiesen el directorio$JBOSS_HOME/PROFILE/configuration/y defina las propiedades Quartz.Ejemplo 6.5. Archivo de configuración para base de datos PostgreSQL
#============================================================================ # Configure Main Scheduler Properties #============================================================================ org.quartz.scheduler.instanceName = jBPMClusteredScheduler org.quartz.scheduler.instanceId = AUTO #============================================================================ # Configure ThreadPool #============================================================================ org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadCount = 5 org.quartz.threadPool.threadPriority = 5 #============================================================================ # Configure JobStore #============================================================================ org.quartz.jobStore.misfireThreshold = 60000 org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreCMT org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate org.quartz.jobStore.useProperties=false org.quartz.jobStore.dataSource=managedDS org.quartz.jobStore.nonManagedTXDataSource=notManagedDS org.quartz.jobStore.tablePrefix=QRTZ_ org.quartz.jobStore.isClustered=true org.quartz.jobStore.clusterCheckinInterval = 20000 #============================================================================ # Configure Datasources #============================================================================ org.quartz.dataSource.managedDS.jndiURL=jboss/datasources/psbpmsDS org.quartz.dataSource.notManagedDS.jndiURL=jboss/datasources/quartzNotManagedDS
Observe las fuentes de datos que se acomodarán a los dos esquemas Quartz al final del archivolImportante
El intervalo recomendado para descubrir clúster es de 20 segundos y se establece en el org.quartz.jobStore.clusterCheckinInterval del archivoquartz-definition.properties. Según su configuración considere el impacto de rendimiento y modifique el parámetro si es necesario.También observe la propiedad org.quartz.jobStore.driverDelegateClass que define el dialecto de la base de datos a usar para comunicarse con el set de base de datos (en este ejemplo,org.quartz.impl.jdbcjobstore.PostgreSQLDelegate. Para Oracle, useorg.quartz.impl.jdbcjobstore.oracle.OracleDelegate).