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:
  1. 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 bpms y la contraseña bpms .
  2. 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.
  3. Cree el archivo de configuración quartz-definition.properties en 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 archivol

    Importante

    El intervalo recomendado para descubrir clúster es de 20 segundos y se establece en el org.quartz.jobStore.clusterCheckinInterval del archivo quartz-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, use org.quartz.impl.jdbcjobstore.oracle.OracleDelegate).