Pessoal,
É possível implementar de alguma forma o conceito de semáforos em EJB (wait / notify)?
Estou utilizando MDBs ao invés de Threads, e tenho um processamento paralelo que deve ser sincronizado.
Alguém tem alguma sugestão?
Pessoal,
É possível implementar de alguma forma o conceito de semáforos em EJB (wait / notify)?
Estou utilizando MDBs ao invés de Threads, e tenho um processamento paralelo que deve ser sincronizado.
Alguém tem alguma sugestão?
Muito Obrigada,
Fernanda
F
ferstring
Na verdade eu fui mais abrangente para não restringir as respostas…
Bom, é o seguinte:
Eu tinha threads em minha aplicação e precisei convertê-las para MDB.
O problema é que tenho um trecho sincronizado entre 2 threads:
Thread A: insere cartas em um Malote. (exemplificando…)
Thread B: fecha o malote se o malote estiver aberto a mais de 10 minutos.
O malote não pode ser fechado (Thread B) ao mesmo tempo que a Thread A está inserindo uma carta… tem que esperar terminar a inserção da carta. A Thread B fica wait enquando a Thread A não emite um notify… é o conceito de Semáforo.
Eu poderia estar sincronizando o objeto Malote, só que como eu coloco ele na fila, e depois populo com mais coisas, tenho a impressão que a instância não é a mesma.
Além disso li que não deve se usar trechos sincronizados com EJB…
Por isso gostaria de sugestões para resolução deste problema.
Obrigada!
A
andre_salvati
Ao usar EJBs esqueça de Threads e Synchronizes. O AS deve comandar tudo por debaixo dos panos. Faça um teste…
Além disso, alguns ASs (o Websphere por exemplo) oferecem um EJB do tipo Timer que poderia ser útil no seu caso.
F
ferstring
Taz,
Obrigada pela resposta, mas será que o AS é tão “esperto” assim para que eu não precise me preocupar com isso… bom, tentarei fazer um teste.
Mesmo assim, eu tb estava pensando nesta solução utilizando TimerService, mas o problema do semáforo permanece… a não ser que o AS controle tudo mesmo…