[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [xmlblaster-devel] how to diagnose subscriber that stops getting messages after a while?

Hi Brad,
my rougth guess is that you got an exception on the client code which
then is transformed by the library to a Communication Holdback exception.
(you can verify this by analyzing the error message you got when it
stopped delivering).

This is the normal behavior: If the client throws an exception in the
update method, the dispatcher is going to false. The idea is that you
then fix the error in your client code and then manually set the
dispatcher to true for that client.

You can verify/change that by opening your jconsole:

here you have the property DispatcherActive:
if my guess was right it should show false. You can toggle it by
changing it to true and from then on you should start receive again your


Brad Clements wrote:
> another problem.
> I killed my client and restarted it. It logs in ok (it's using persistent login and a 
> positive session id number)
> After login, jconsole still shows 70 cbQueueNumMsgs and loginDate of yesterday 
> and uptime of 24991.
> I'm using the socket protocol.. 
> It seems that when it goes from DEAD to the ALIVE state, xmlblaster doesn't start 
> delivering queued messages.
is this really happening ? It should be POLLING to ALIVE.
> I clicked "clear callback queue".. Now the queued messages are 0.
> I then send another message.
> It doesn't get delivered.
> Now cbQueueNumMsgs is 1. The lastCallbackException hasn't changed.
> So I think, after a communication exception (update doesn't reply), xmlblaster 
> knows there's a problem. If the client disconnects and then re-logs in, xmlblaster 
> doesn't clear "the problem flag". So the connection is up, there really isn't an 
> error, but it's not going to try to deliver any more messages to this persistent 
> login.
> I also note that uptime is still 25650 and login date is from yesterday. I think login 
> date should be when I last logged in, not when  I first established the persistent 
> session.
> The only way I can get this session to start working again is to restart xmlblaster.
> Is there something else you want me to check with jconsole before I do that? I 
> have to leave in 30 minutes.