zhang zhi wei wrote: > Question 1: > 1. run the "java HelloWorldPublish -numPublish 100 -persistent true" > command, and then in the XB_ENTRIES , there are two queues: > msgUnitStore_xmlBlaster_10_0_0_239_3412Hello and > history_inforMessaging_10_0_0_239_3412Hello > 2. run "java HelloWorldSubscribe -session.name joe/2 > -dispatch/callback/retries -1 -multiSubscribe false > -dispatch/callback/pingInterval 2000 -interactiveUpdate true > -historyNumUpdates 0 " > two more queue are created : > callback_nodexmlBlaster_10_0_0_239_3412clientjoe2 and > subject_nodexmlBlaster_10_0_0_239_3412clientjoe > the first queue is used for callback queue , what's the > purpose of the second queue, say > subject_nodexmlBlaster_10_0_0_239_3412clientjoe ? > and what are the contents of the > subject_nodexmlBlaster_10_0_0_239_3412clientjoe??
The first picture of http://www.xmlblaster.org/xmlBlaster/doc/requirements/engine.message.lifecycle.html shows the queues. Additionally we have subject queues: The subject queue is the queue of a client. E.g. if you login two clients with 'joe/2' and 'joe/3' the subject 'joe' has a exactly one 'subject queue'. This queue holds point to point messages even if no 'joe' is logged in. More infos about subject queues are in http://www.xmlblaster.org/xmlBlaster/doc/requirements/engine.queue.html http://www.xmlblaster.org/xmlBlaster/doc/requirements/engine.qos.publish.destination.offline.html http://www.xmlblaster.org/xmlBlaster/doc/requirements/engine.qos.publish.destination.ForceQueuing.html > Question 2; > The real message is in msgUnitStore and history queue and callback > queue are only references to real message. > the question is : > when a publisher publish a message, will the message be fist put > into msgUnitStore, > and then callback queue , and then history queue? > I have see the doc in the requirements directory and still was > puzzled by this procedure can you explain this to me? The implementation of this is in xmlBlaster/src/java/org/xmlBlaster/engine/TopicHandler.java:publish() First the message is put into the msgUnitStore and a reference into the historyQueue. Later all subscribers get a reference into their callbackQueues Note: If the server is swapping messages to the harddisk the callback queues hold the complete message (not a reference anymore) on reload. regards Marcel -- http://www.xmlBlaster.org
