[Java lista] JMS Durablesubscriber
zamek
zamek at vili.pmmf.hu
2009. Sze. 4., P, 13:27:53 CEST
hello,
Valami nagy kavaras van (a fejemben) a subject temaban.
Ha egy kliens egy topicra clientId-vel subscribe-ol, akkor ugye ez a
clientId lesz az o egyedi azoositoja, amely alapjan a jms el tudja
donteni, hogy bizonyos uzeneteket megkapott-e mar a kliens, ill., ha le
akar jelentkezni, akkor ez alapjan tudja azonositani. Erre az
azonositora kikotes, hogy egyedi legyen.
Ehhez kepest, appclientben csak akkor tudok durable subscribe-ot kiadni,
ha elotte a connection-nek is allitok setclientId()-vel (praktikusan
ugyanazzal a clientidvel) egy clientid-t. A mintapeldakban es a
tutorialban okosan "mySub" neven lehet a legtobet talalni, ami ugye nem
egy egyedi azonosito. Olyant is lattam sun-os mintapeldaban, hogy a
connection-nek adott egy "c11" azonositot, mig a subscribe-nal a mar
"jol bevalt" mySub-ot hasznalta.
Eddigi tapasztalataim alapjan, ha a connection-nek nem allitok
clientId-t, akkor a subscribe-nal elszall invalid clientid:"" hibaval.
Bonyolitja a helyzetet, hogy az appclient jmsfactory letrehozasnal van
lehetoseg egy clientID megadasara, de arra nem talaltam magyarazatot,
hogy ezt hogy kell ertelmezni.
Hogy meg idegesitobb legyen, az appclientbol InitialContext-tel allitom
elo a topic-ot es az a fent leirt modon mukodik.
Csinaltam egy stateless bean-t is, ami sorrendben ugyanugy probalja
subscribe-olni a topic-ot, az azonnal eldobja magat, ha a connect-nek
probalok setClientId()-t allitani. A hibauzenet nagyon beszedes:
Initializing Sun's JavaServer Faces implementation (1.2_04-b22-p05) for
context '/WebDemo'
MQJMSRA_DC2001:
Unsupported:setClientID():inACC=false:connectionId=2460974774123396096
javax.jms.JMSException: MQJMSRA_DC2001:
Unsupported:setClientID():inACC=false:connectionId=2460974774123396096
A kerdeseim:
- van valami ertelmes dokumentacio, ami tisztessegesen leirja a durable
subscribe mukodeset es hasznalatat, esetleg egy mukodo demo?
- hogy erdemes egyedi clientId-t eloallitani? Eddig a folyamat
elinditasat kezdemenyezo jms messageId-jebol allitottam elo ugy, hogy
egy haromjegyu random szamot es egy @ karaktert eletoldottam. Biztos van
valami jobb modszer is, kulonos tekintettel arra, hogy mindenfele
fenyegetest helyezett kilatasba a doksi, ha special karakterek vannak az
azonositoban, plane a # kerulendo.
--
thx,
----------------------------------
Zoltan Zidarics programmer
PTE-PMMFK H-7621 Pecs, Boszorkany u. 2. Hungary
E-Mail: zamek at vili.pmmf.hu
----------------------------------
További információk a(z) Javalist levelezőlistáról