I am running a variant of HelloWorld demo pgm. My setup is as follows:
sender <--->xmlBlaster_server <----> receiver x 4
There is just 1 "sender", but 4 "receivers".
Sender publishes a msg on "forward" channel that is subscribed to by
all the receivers. When they get a msg, they reply back to a "reverse"
channel. The sender blocks till it receives 4 replies. It measures the
time from its send to receipt of all the 4 replies. It then does sends
a next message on "forward" channel.
This goes on for 100,000 times. Message sizes are small, byte or
What i have noticed is that when using
-protocol XMLRPC at various times, after few 10's of thousand
exchanges, the sender is stuck in a state where it has received 3 of
the 4 replies it was expecting. As the sender gets multiple replies
back potentially its "update()" routine may have multiple concurrent
active callbacks (Is this possible?) In any event, all my variables
that know how many replies have come in so far are "synchronized", i
was fearing I was getting threads stomping on each other. Even w/ all
variable access well synchronized I get to this state where 3 of 4
replies have come in and I am hung.
To repeat, just by changing command line args to use -protocol SOCKET
I have never seen this happen to me.
Can published messages in such simple, synchronized message exchanges
where queues can never have more than 1 (or 4) messages in it, can
msgs be lost by xmlBlaster?
Thank for any hints. I need reliable message delivery.