Glassfish má konfigurační parametr Maximum Number of Unconsumed Messages,
kterým lze počet uložených zpráv omezit. Je-li topic plný, odesílatel
dostane výjimku.

Z.T.
-- 
Zdenek Tronicek
FIT CTU in Prague


Vlastimil Elias napsal(a):

> BTW tady se skrývá jedno "provozní nebezpečí" které není na první pohled
> úplně patrné. Pokud se totiž nějaký klient, který má durable
> subscription, přestane k JMS serveru připojovat ale nezruší to
> subscription,
> tak vám časem přeplní persistentní úložiště JMS serveru. Samozřejmě toto
> nebezpečí je hlavně u systémů kde těch zpráv je opravdu hodně nebo jsou
> velké.
>
> Vlastik
>
> Dne 18.3.2011 11:41, Petr Novak napsal(a):
>> Zdravím všechny,
>>
>> zkouším vytvořit komponentu, která by umožňovala dynamicky propojovat
>> různé systémy. Prakticky se mi jedná o realizaci integračního patternu
>> "Dynamic Recipient List
>> <http://books.google.cz/books?id=dH9zp14-1KYC&pg=PA34&lpg=PA34&dq=Dynamic+Recipient+list+pattern&source=bl&ots=UwUspEa-47&sig=IOOD5ngPz6Wwp5_tm6PvBdkeMDQ&hl=cs&ei=OyeDTdu9KYjvsgbN5NCWAw&sa=X&oi=book_result&ct=result&resnum=3&ved=0CC0Q6AEwAg#v=onepage&q=Dynamic%20Recipient%20list%20pattern&f=false>".
>>
>>
>>
>> Principiálně by to mělo fungovat tak, že není dopředu znám seznam
>> příjemců, různé systémy se mohou zaregistrovat prostřednictvím
>> nějakého API k odběru určitých typů zpráv. V rámci registrace jsem
>> chtěl vytvořit dynamicky jejich odběrný kanál (frontu) a ten Dynamic
>> Recipient List Router by podle typu zprávy, která mu přijde na vstupu,
>> poslal kopii do všech registrovaných kanálů, které mají o tento typ
>> zprávy zájem (tedy na základě té registrace).
>>
>> Chtěl jsem použít řešení založené na Spring Integration + nějaké JMS,
>> asi ActiveMQ.  Ale narážím na tu dynamičnost řešení - jak vytvořit
>> Spring Channel podle nějakého seznamu registrovaných (třeba z
>> databáze). Připadá mi, že Spring má všechno staticky - vše
>> nakonfigurovat a propojit  v XML a pak nastartovat aplikaci. Ano mohl
>> bych zkusit zavádět beany (Channel, Router, ...) do Spring Contextu za
>> chodu, ale to se mi moc nezdá - nevím, jak pak Spring rozdýchá procesy
>> jako injection, postprocesing, AOP a ostatní zpracování
>> koleminicializace bean, které probíhá při jeho startování. Nebo
>> myslíte, že Springu nebude vadit,když mu za chodu aplikace zadefinuji
>> nějaké další beany ? Ani nevím, jestli na to má nějaké API,něco ve
>> smyslu  ApplicationContext.createBean(bean.class,"beanID",properties);
>>
>> Ještě jsem zvažoval omrknout Apache Camel, nemám s ním zkušenost.
>> Našel jsem, že lze psát pomocí jeho DSL kódy jako
>>
>> from("jms:xmlOrders").recipientList(header("recipients"));
>>
>> Ale nejsem si jistý, zda toto lze dělat i za chodu aplikace a nebo to
>> je jen jiný zápis statické XML configurace, která se provede při
>> startu, navytváří se fronty a pospojují se těmi transformatory a
>> routery. To bych pak na tom byl stejně jako s tím Springem.
>>
>> Co byste použili vy na řešení takové úlohy ? Rád bych se vyhnul
>> objevování kola - tedy že bych si na to musel napsat vlastní
>> integrační framework.  Zároveň si myslím, že jde v principu o
>> relativně jednoduchou úlohu a tak řešení typu použít ESB mi připadne
>> jako kanón na vrabce.
>>
>> Google mi zatím moc nepomohl, nebo jen nevím, jak se ho správně zeptat
>> :o).
>> V této oblasti nemám moc zkušeností, začínám se s tím seznamovat, tak
>> budu rád za každý váš tip, radu nebo zkušenost.
>>
>> Přeji úspěšný den
>>
>> Petr
>>
>>
>
> --
> Vlastimil Elias
> Senior Software Engineer
> JBoss.org community team
>
>

Odpovedet emailem