Toon posts:

[Java] Checken hvh messages in een JMS queue/topic

Pagina: 1
Acties:

Verwijderd

Topicstarter
Is het mogelijk om te checken hoeveel messages er in een JMS queue of durable topic staan? Wat ik eigenlijk wil is het push karakter van JMS omdraaien naar een pull.
Reden hierachter is dat we hier een B2B server hebben die geen JMS connectivity heeft. Ik kan geen messages pushen naar die server toe dus een async listener is uitgesloten. Als ik een synchrone receive() doe zit ik met het probleem dat die call blocking is als er geen messages op de bus zitten. Oftewel, als ik weet hoeveel messages er op een queue/dur.t staan kan ik zoveel keer receiven. Klinkt allemaal erg houtje-touwtje maar goed :)

Overigens gebruiken we Tibco for JMS maar wil geen Tibco specifieke attribs gebruiken, alles binnen de JMS spec. Anyone? :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Verwijderd schreef op 10 maart 2004 @ 17:45:
Is het mogelijk om te checken hoeveel messages er in een JMS queue of durable topic staan?
Ik geloof dat alleen een administrator dit kan. Het zou ook onnodig gevaarlijk zijn dat een normale client dit zou kunnen :)
Wat ik eigenlijk wil is het push karakter van JMS omdraaien naar een pull.
Reden hierachter is dat we hier een B2B server hebben die geen JMS connectivity heeft. Ik kan geen messages pushen naar die server toe dus een async listener is uitgesloten. Als ik een synchrone receive() doe zit ik met het probleem dat die call blocking is als er geen messages op de bus zitten. Oftewel, als ik weet hoeveel messages er op een queue/dur.t staan kan ik zoveel keer receiven. Klinkt allemaal erg houtje-touwtje maar goed :)
Je zou dit op kunnen lossen met een thread. Je kan altijd van een blocking een non blocking maken en andersom. Wel rekening houden met concurrency zaken uiteraard.

Je kunt verder ook een Listener op een queue/topic aansluiten die wordt op de hoogte gesteld als er een message binnenkomt.

[edit]
*is geen JMS-prof.*

[ Voor 21% gewijzigd door Alarmnummer op 10-03-2004 18:28 ]


Verwijderd

Topicstarter
Alarmnummer schreef op 10 maart 2004 @ 18:06:
[...]

Ik geloof dat alleen een administrator dit kan. Het zou ook onnodig gevaarlijk zijn dat een normale client dit zou kunnen :)
Blijkt dat het voor een queue wel kan met een QueueBrowser alleen de JMS spec is niet al te strict op dat onderdeel, hmm
[...]

Je zou dit op kunnen lossen met een thread. Je kan altijd van een blocking een non blocking maken en andersom. Wel rekening houden met concurrency zaken uiteraard.

Je kunt verder ook een Listener op een queue/topic aansluiten die wordt op de hoogte gesteld als er een message binnenkomt.
Blijkt dat er een receiveNoWait() ook bestaat in MessageConsumer, TopicSubscriber extend die. Volgende keer toch maar een inheritance lvl hoger kijken dan m'n neus lang is :)
*is geen JMS-prof.*
ik dus ook niet, zie mijn probleem :)