Desistalação do Oracle xe

Para desistalar o banco de dados Oracle XE no ubuntu, ou quaisquer outro programa. Você digita os seguinte comando no terminal.



 sudo apt-get --purge remove oracle-xe-universal
 sudo apt-get autoremove oracle-xe-universal

Com isso ele remove os subdiretórios dependende do Oracle XE.

Espero ter ajudado. Gostou? Indique para um colega.

Quartz Part3

Antes de começar, não deixe de ver os post anterior Post1 e Post 2.

Agora irei falar sobre o framework Quartz para JEE, então irei criar um servlet, no qual será utilizado o Tomcat 6.0, mas poderia utilizar Jboss, Weblogic. Fique alerto para cada Servidor de Aplicação será necessário os respectivos libs. Lembrando estas libs vem junto com a lib do framework. Neste poste irei mostrar passo a passo, como construir um simples exemplo usando essa framework.

Pre-requisito:

Supondo que estes requisitos já esteja na sua máquina. Começando abra o eclipse e segue os passos.

Criar Projeto Novo, “Dynamic Web Project”. New->Other

Defina um nome para Projeto, Add : “ProjectQuartzWeb”, depois confere se o Tomcat foi marcado com o Servidor de Aplicação do Projeto.

Depois de criar o Projeto, vai até o pasta “src”, e cria o pacote “br.com.quartz”, no qual serão adicionados as classes do projetos.

Depois de criar os pacotes, crie os seguinte Serviços (O mesmo dos outros post). Adicione as seguintes classes abaixo:

Esse Classe “EnviarEmail”, nada mais que um serviço que envia um email.

package br.com.quartz;

import org.apache.commons.mail.SimpleEmail;

public class EnviarEmail {

	public static void main(String[] args)
	{
		SimpleEmail email = new SimpleEmail();

		try {
			email.setDebug(true);
			email.setHostName("smtp.gmail.com");
			email.setAuthentication("seu_login", "xxxxxxxxxx");
			email.setSSL(true);
			email.addTo("email_destinatario");
			email.setFrom("seu_email");
			email.setSubject("Testando");
			email.send();

		} catch (Exception e) {
			// TODO: handle exception
			System.out.println(e.getMessage());
		}

	}

}

Aqui a Classe foi criado um JOB

package br.com.quartz;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class EmailJob implements Job {

	public EmailJob() {

	}

	@Override
	public void execute(JobExecutionContext arg0) throws JobExecutionException {
		// TODO Auto-generated method stub
		EnviarEmail teste = new EnviarEmail();
		teste.main(null);

	}

}

A Classe que chama o serviço JOB, e determina o temporizador.

package br.com.quartz;

import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;

public class ExecutarServico implements ServletContextListener{

	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		  System.out.println("THE APPLICATION STOPPED");

	}

	@Override
	public void contextInitialized(ServletContextEvent arg0) {

		try {

			JobDetail job = newJob(EmailJob.class)
				    .withIdentity("myJob", "myGroup")
				    .storeDurably()
				    .requestRecovery()
				    .usingJobData("someKey", "someValue")
				    .build();

			Trigger trigger = newTrigger()
				      .withIdentity("myTrigger", "group1")
				      .startNow()
				      .withSchedule(simpleSchedule()
				          .withIntervalInSeconds(10)
				          .repeatForever())
				      .build();

			Scheduler sched = new StdSchedulerFactory().getScheduler();

			sched.scheduleJob(job, trigger);

			  sched.start();
		} catch (SchedulerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 // Tell quartz to schedule the job using our trigger

    }

}

Aqui, tem que criar um arquivo “quartz.properties”, no próprio “src”.

org.quartz.scheduler.instanceName = MeuApp
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.rmi.export = false
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 3
org.quartz.threadPool.threadPriority = 5
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

Duplo clik em web.xml, no Web XML Editor, procura “Listeners” -> Add -> “br.com.quartz.ExecutarServico”.

 ...

  br.com.quartz.ExecutarServico

 ...

Lembre-se que tem que adicionar os jar, na lib do projeto.

Caso você não consegui abaixar todas as libs, deixe um comentário com seu email e twitte este post, que irei encaminar os jar’s.

Quartz Parte2

No primeiro post, deu um pequeno exemplo de temporizador que roda em tempos em tempos, digo segundos em segundos. Mas se eu quero agendar que o meu sistema lança um job, em um determinado hora de cada dia do mês? É possível?

Sim, não muda quase nada, o que precisamos é do CronTrigger, e dos parametros de que controla do time. Seja abaixo os parametros que VOCÊ deve saber:

Expressão Significado
“0 0 12 * * ?” Dispara do meio dia de cada dia
“0 15 10 ? * *” Dispara 10:15 da manhã de cada dia
“0 15 10 * * ?” Dispara 10:15 da manhã de cada dia
“0 15 10 * * ? *” Dispara 10:15 da manhã de cada dia
“0 15 10 * * ? 2005” Dispara 10:15 da manhã de cada dia durante ano de 2005
“0 * 14 * * ?” Dispara a cada minuto a partir das 02:00 e terminando às 2:59 pm, todos os dias
“0 0/5 14 * * ?” Dispara a cada 5 minuto a partir das 02:00 e terminando às 2:55 pm, todos os dias
“0 0/5 14,18 * * ?” Dispara a cada 5 minutos a partir de duas horas e terminando às 2:55 pm, e disparar a cada 5 minutos a partir de 18:00 e terminando às 6:55 pm, todos os dias
“0 0-5 14 * * ?” Dispara a cada minuto a partir das 02:00 e terminando às 2:05 pm, todos os dias
“0 10,44 14 ? 3 WED” Dispara em 2:10 da tarde até 02:44 da tarde,isso toda quarta-feira no mês de março
“0 15 10 ? * MON-FRI” Dispara às 10:15 de toda segunda-feira, terça, quarta, quinta e sexta-feira
“0 15 10 15 * ?” Dispara às 10:15 horas do dia 15 de cada mês
“0 15 10 L * ?” Dispara às 10:15 no último dia de cada mês
“0 15 10 ? * 6L” Dispara às 10:15 na última sexta-feira de cada mês
“0 15 10 ? * 6L 2002-2005” Dispara às 10:15 em cada última sexta-feira de cada mês durante os anos 2002, 2003, 2004 e 2005
“0 15 10 ? * 6#3” às 10:15 na terceira sexta-feira de cada mês

Neste post não irei tratar como instalar o framework Quartz,isso pode ser visto no post anterior.O códigos abaixo é referente a parte1, aproveitando a idéia do serviço, mas mostrando um jeito diferente de disparo do serviço.


package br.com.chikasawa.teste;

import org.apache.commons.mail.SimpleEmail;

public class EnviarEmail {

	public static void main(String[] args)
	{
		SimpleEmail email = new SimpleEmail();

		try {
			email.setDebug(true);
			email.setHostName("smtp.gmail.com");
			email.setAuthentication("seu_login", "sua_senha");
			email.setSSL(true);
			email.addTo("email_destinatario@gmail.com");
			email.setFrom("seu_email@gmail.com");
			email.setSubject("Testando");
			email.send();

		} catch (Exception e) {
			// TODO: handle exception
			System.out.println(e.getMessage());
		}

	}

}

Essa Classe, cria-se um Job.

package br.com.chikasawa.teste;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class EmailJob implements Job {

	public EmailJob() {

	}

	@Override
	public void execute(JobExecutionContext arg0) throws JobExecutionException {
		// TODO Auto-generated method stub
		EnviarEmail teste = new EnviarEmail();
		teste.main(null);

	}

}

Criei um job que despara todos os dias 31 de cada mês no horário 9:32 da manhã.

package br.com.chikasawa.teste;

import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
import static org.quartz.TriggerBuilder.*;
import static org.quartz.JobBuilder.*;
import static org.quartz.CronScheduleBuilder.*;

public class ExecTarefa {

	public static void main(String[] args) throws SchedulerException
	{
		JobDetail job = newJob(EmailJob.class)
			    .withIdentity("myJob", "myGroup")
			    .storeDurably()
			    .requestRecovery()
			    .usingJobData("someKey", "someValue")
			    .build();

		CronTrigger trigger = newTrigger()
			    .withIdentity("trigger1", "group1")
			    .withSchedule(cronSchedule("0 32 9 31 * ?"))
			    .build();

		Scheduler sched = new StdSchedulerFactory().getScheduler();
		 // Tell quartz to schedule the job using our trigger
		  sched.scheduleJob(job, trigger);

		  sched.start();

	}

}

Procurei mostra neste post, um forma diferente em agendar suas tarefas, serviços.

Mais informações, nada melhor que o site do framework.

Blog no WordPress.com.

Acima ↑