6.2. Configurando o Quartz
Antes de configurar o banco de dados no seu servidor de aplicativo, você precisa preparar o banco de dados para o Quartz criar as tabelas Quartz, que irão manter os dados do temporizador, e o arquivo de definição Quartz.
Naturalmente, se você não estiver usando o Quartz (temporizadores) nos seus processos empresariais, ou o Servidor de Execução, você pode ignorar essa seção. Observe que, caso queira replicar os temporizadores nos seus processos empresariais, você precisará usar o componente Quartz.
Para realizar a configuração, siga as instruções a seguir:
- Configure o banco de dados. Certifique-se de usar uma das fontes de dados com suporte sem JTA. Observe que, pelo fato do Quartz precisar de uma fonte de dados sem JTA, você não pode usar a fonte de dados do Business Central. No código de exemplo, o PostgreSQL é usado com o usuário
bpmse a senhabpms. Esse banco de dados precisará ser conectado ao seu servidor de aplicativo, portanto mantenha um registro nas credenciais e nas informações do banco de dados. - Crie tabelas Quartz no seu banco de dados para permitir a sincronização dos eventos do temporizador. Para fazer isso, utilize o script DDL para o seu banco de dados, disponível no arquivo zip suplementar extraído em QUARTZ_HOME/docs/dbTables.
- Crie o arquivo de configuração Quartz
quartz-definition.propertiesno diretório$JBOSS_HOME/PROFILE/configuration/e defina as propriedades Quartz.Exemplo 6.5. Arquivo de configuração Quartz para um banco de dados 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 as fontes de dados, que acomodarão os dois esquemas Quartz, configuradas bem no fim do arquivo.Importante
O intervalo recomendado para a descoberta do cluster é de 20 segundos e está definido em org.quartz.jobStore.clusterCheckinInterval do arquivoquartz-definition.properties. Leve em consideração o impacto no desempenho e modifique a sua configuração, conforme necessário.Observe também a propriedade org.quartz.jobStore.driverDelegateClass que define o dialeto DB a ser usado quando comunicando-se com o banco de dados definido (nesse caso,org.quartz.impl.jdbcjobstore.PostgreSQLDelegate. Quando estiver usando Oracle, utilizeorg.quartz.impl.jdbcjobstore.oracle.OracleDelegate).