[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