MDB Pool Size

15 respostas
RodrigoSol

Tenho que limitar meu pool de objetos MDB para não possa ser criada mais de uma instancia do Bean.

Como eu configuro o tamanho do pool de MDB no jboss 3.2.1?

No fórum do jboss tem alguns exemplos, porem testei e nenhum funcionou. Acho que é por causa da versão que eu to usando.

Algum já fez isso pra essa versão especifica?

15 Respostas

cv1

Acho que muito mais importante do que responder a sua duvida aqui eh perguntar o pq disso… afinal, pq vc quer um MDB “singleton”? :shock:

RodrigoSol

Preciso de MDB Singleton pra controlar a fila de carga de arquivos que vem do mainframe no oracle…

1 - 01_02_2003.txt
2 - 02_02_2003.txt – Depende do 01_02_2003.txt
3 - 03_02_2003.txt – Depende do 01_02_2003.txt , 02_02_2003.txt
4 - 04_02_2003.txt – Depende do 01_02_2003.txt , 02_02_2003.txt , 03_02_2003.txt

Então tenho que garantir que em nenhuma hipótese eles sejam carregados simultaneamente!

louds

Use sincronização externa ao seu container. Como filelocking.

RodrigoSol

Londs,

Mais uma vez…

Como é o caminho das pedras para “filelocking” ?

cv1

Hmm, vc nao precisa de um singleton pra isso… vc esta processando esses arquivos e jogando em algum lugar, imagino… pq nao pegar um recurso compartilhado entre todas as VMs do seu appserver (erhm, por exemplo, um DB ;)) e marcar qual foi o ultimo arquivo que vc processou com sucesso?

RodrigoSol

cv,

Ate pensei nisso…

Só que a seguinte situação me fez escolher/ tentar usar o singleton:

:arrow: A 1ª instancia está processando o arquivo 1.
:arrow: O “AS” decide criar uma nova instancia para processar o arquivo.
:arrow: a 2ª Instancia verifica o flag que indica que existe um arquivo em processamento e aborta o processamento. Nesse caso como faço para o objeto ser processado logo após o termino do outro?

Algo do tipo:

while(jaExisteArquivoSendoProcessado()){
          //executa carga
    }

Acho que não seria uma boa alternativa…

Pra usar esse esquema que você sugeriu o ideal seria usar um POJO que implementasse uma estrutura de dados do tipo FIFO, só que gosto muito do meu MDB(ele ja tah prontinho):lol: e já fiz uma interface WEB para o cara da produção acompanhar os estados da carga e da fila… Vai dar um trabalho danado mudar isso.

No mais desculpe as possíveis bobagens que eu tenha falado aqui.

Idéias?

[/code]

cv1

Jogando ele de volta na fila… o AS vai tentar pegar o 3o, 4o, 5o, 6o, … ate achar o 2o, quando o 1o estiver liberado, dando sempre uma chacoalhadinha na fila, pra q ela nao crie poeira :lol:

Sei lah, isso eh estupidamente ineficiente… tou pensando em alguma outra coisa aqui, mas nao me veio nada na cabeca ate agora nao :frowning:

RodrigoSol

A ideia do Singleton não funciona?

louds

Não

louds

Vc pode usar o método do cv, mas em fez de usar pooling como ele sugeriu, vc tenta esperar um tempo antes de desistir e voltar para a fila.

RodrigoSol

[set usuario-chato=“on”]
Como conhecimento não ocupa espaço, você bem que poderia me explicar o motivo!
[/set]

louds

“RodrigoSol”:

[set usuario-chato=“on”]
Como conhecimento não ocupa espaço, você bem que poderia me explicar o motivo!
[/set]

Não vai pq o pool não dita qual o número máximo de instancias em uso do MDB, mas sim quantas ficam prontas para usar…

danieldestro

Pegando carona na mensagem:
Preciso limitar o número de MDBs a serem executados de uma só vez, no JBoss 3.0.2.
Alguém tem idéia se é possível?

danieldestro

Pegando carona na mensagem:
Preciso limitar o número de MDBs a serem executados de uma só vez, no JBoss 3.0.2.
Alguém tem idéia se é possível?

danieldestro

Achei essa solução no site do JBoss:
http://www.jboss.org/wiki/Wiki.jsp?page=HowDoIGetAnMDBSingleton

Mas parece que aí ele limita para todos os MDBs do container.

Criado 2 de fevereiro de 2004
Ultima resposta 4 de jan. de 2005
Respostas 15
Participantes 4