• Nenhum resultado encontrado

Enterprise Java Beans (2)

N/A
N/A
Protected

Academic year: 2021

Share "Enterprise Java Beans (2)"

Copied!
13
0
0

Texto

(1)

Enterprise Java Beans (2)

Formador

•O ciclo de vida de um EJB

•O serviço EJB timer

(2)

Ciclo de vida de um EJB (1)

Stateful Session Bean

Único método invocado pelo utilizador

O cliente obtém a

referência para o Bean

O Bean é removido da memória para o disco

(3)

Ciclo de vida de um EJB (2)

■ Stateless Session Bean

(O EJB container cria uma pool de stateless beans) - Para cada instância:

■Singleton Session Bean

- Se o Singleton bean tem a anotação @Startup, a única instância do Bean é iniciada pelo container quando é feito o deploy da aplicação.

- Possui os mesmos estados que um Stateless bean.

(4)

Ciclo de vida de um EJB (3)

Message Driven Bean

- O EJB container cria uma pool de MDBs

(5)

Timers

O serviço de Timer do contentor de JEBs permite:

- Programar no tempo notificações para todos os tipos de EJB com exceção de Stateful Session Beans

■São possíveis notificações que ocorrem:

- De acordo com um determinado calendário

- Num tempo específico (e.g.,12 de Setembro, 9:00 a.m.) - Após um certo período de tempo (e.g., dentro de 4 dias) - Em intervalos de tempo (e.g., cada 3 minutos)

(6)

Timers

Os Timers podem ser programados ou automáticos

■Timers programados são criados por invocação de um dos métodos da interface TimerService

- Quando expira o tempo de um timer programado é executado o método anotado com @Timeout

e.g.,

@Timeout

public void timeout(Timer timer) {

System.out.println("TimerBean: timeout occurred");

(7)

Timers

■ Criar um Timer programado (1)

long duration = 60000;

Timer timer =

timerService.createSingleActionTimer(duration, new TimerConfig());

SimpleDateFormatter formatter =

new SimpleDateFormatter("MM/dd/yyyy ’at’ HH:mm");

Date date = formatter.parse(“22/04/2021 at 13:00");

Timer timer = timerService.createSingleActionTimer(date, new TimerConfig());

Expira em 1 minuto (60000 milissegundos

Expira numa data específica

(8)

Timers

Criar um Timer programado (2)

ScheduleExpression schedule = new ScheduleExpression();

schedule.dayOfWeek("Mon");

schedule.hour("12-17, 23");

Timer timer = timerService.createCalendarTimer(schedule);

Timer baseado num calendário

(9)

9

Timers

Criar um Timer programado (3)

Por omissão os Timers são persistentes.

- Se o servidor falha, o timer fica guardado em memória persistente e reativado quando o servidor recupera.

- Se o timer expirar enquanto o servidor estiver inativo, o método @Timeout é invocado, após o restart do servidor.

Para um Timer não persistente: TimerConfig.setPersistent(false);

(10)

EJB Timers

Criar um Timer automático (1)

- Timers automáticos são criados após o deploy de um Bean que contém um método anotado com

- java.ejb.Schedule ou java.ejb.Schedules

- Um Bean pode ter vários timers automáticos (os timers programados são únicos por bean)

- Um método anotado com @Schedule funciona como um método de timeout para o calendário especificado nos

(11)

EJB Timers

Criar um Timer automático (2)

- e.g.

@Schedule(dayOfWeek="Sun", hour="0")

public void cleanupWeekData() { ... }

Executado todos os domingos à meia-noite

(12)

EJB Timers

Criar um Timer automático (2)

- Usar Schedules para especificar vários calendários para o mesmo método.

e.g.

@Schedules ({

@Schedule(dayOfMonth="Last"),

@Schedule(dayOfWeek="Fri", hour="23") })

public void doPeriodicCleanup() { ... }

Executado no último dia de cada mês e todas as 6º feiras às 23 horas

(13)

13

EJB Timers

■Especificação de Intervalos

- Numa expressão da forma x/y,

x o ponto de partida e y o intervalo.

O wildcard (*) pode ser usado na posição x e equivale a x=0.

e.g.

minute="*/10“ significa ,todos os 10 minutos começando às 0 horas.

hour="12/2“ significa todas as duas horas a começar ao meio-dia.

Referências

Documentos relacionados

Cinco espécies de vespas, Polybia paulista von Ihering, 1896, Polybia sericea (Olivier, 1705), Polybia ignobilis (Haliday, 1836), Polistes canadensis (Linnaeus, 1758) e Polistes

“real” e o literário, mas sem oposição radical entre ambos, ou seja, é o ponto de intersecção de uma totalidade que inclui o texto e o mundo. No item 2, “O

Contudo, o simulador MASSES n˜ao provia meios para a troca de men- sagens entre os agentes, o que restringia as possibilidades de implementa¸c˜ao de conceitos b´asicos inerentes

Penalidades: suspensão imediata da conduta vedada, quando for o caso; multa no valor de R$ 5.320,50 a R$ 106.410,00 aos agentes responsáveis, aos partidos políticos, às

6.4.5.8 Quando este ensaio for realizado como ensaio de tipo, para cabos não blindados individualmente, a medição da resistência de isolamento deve ser feita com o

GUILHERME TORRES AFFONSO LUCAS ALMEIDA GONÇALVES MATEUS PEREIRA DOS SANTOS RICARDO LAURINDO PEREIRA ALEXANDRE DE SOUZA FERREIRA RICARDO SILVA PEREIRA DA CRUZ FELIPE GARCIA DOS

Todavia, há poucos trabalhos sobre interferência de herbicidas no crescimento da cultura; portanto, visando avaliar os efeitos de amicarbazone e diuron + paraquat, estes foram

[r]