chris lau wrote:
Hi,

I am trying to setup a situation where client A publishes a PTP message to 
client B. Client B
subscribes for updates using the callback method. The problem I'm running into 
is that I want
Client B to get a notification that a message has arrived but I *do not want* 
to remove the
message from the queue. Client B will then use the get() method at a later time 
to retrieve the
message.
If it is only one message which B is waiting on you could throw a
 "user.update.holdback"
(see http://www.xmlblaster.org/xmlBlaster/doc/requirements/interface.update.html) during update(), like this B is notified and the message remains in the servers callback queue. After retrieving the message with get() you can set the dispatcherActive=true again.

Another possibility is that B logs in as B/1 and B/2.
If the PtP is send to B, both session will receive it.
Now B/1 gets it consuming over update() and is 'notified'.
B/2 didn't specify a callback server and did set dispatcherActive=false during connect().
Now B/2 uses sync get()s only to retrieve.

Still another solution is to use a receive() call setting consuming=false.
(see http://www.xmlblaster.org/xmlBlaster/doc/client-api/org/xmlBlaster/client/I_XmlBlasterAccess.html#receive(java.lang.String,%20int,%20long,%20boolean)
Now B blocks and returns when the message has arrived ("notifiy").
Later, you can call receive() with consumable=true to access and destroy it.

Another possibility is to have another login session to subscribe on the PtP topic and is like this notified. B has set dispatcherActive=false already during connect
and only uses get() or receive() synchronously whenever needed.

Probably there are some more ways to solve it,

regards
Marcel
What is happening now is that as soon a Client A publishes a message and the 
update() method of
Client B is triggered, the message is removed from the queue.

I've tried to set the subscribeQos.setWantContent to false, but that doesn't 
keep the message in
the queue.

So, basically, here is the sequence of events.
1. Client B connects and subscribes for updates.
2. Client A connects and publishes a message.
3. Client B receives a notification that a message has arrived. Message remains 
in queue.
4. A period of time elapses...
5. Client B retrieves message contents. 6. Client B removes message from queue (if not done automatically)

Is xmlBlaster able to do this?

Thanks.

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com

Reply via email to