|
From: Jack K. <jk...@ce...> - 2003-11-21 02:43:38
|
Hi Ng, Thanks for replying. The String[0] was displayed by the Eclipse = Debugger. Probably means there is 1 element in the array, but the = content is an empty string. Yes, it did not return a valid pending = message id. =20 Just tried the scenario described earlier few more time just now, but = could not reproduce the same behavior. =20 returnPendingMessage are returning valid messageIDs. From what you described, it seems the earlier problem happened after = failing all retries since getPendingMessage returns empty string array. = But somehow unregister() claims that there is still message pending, as = can be seen from the earlier log. The only thing I can think of that = might cause problem earlier was when I received the String[] from = getPendingMessage(), I passed that directly into = mshReq.deletePendingMessages(...) even tho it was empty. Didn't do = empty String[] check at that time. Unfortunately I can not go back to = the db to see if ack message is marked SENT_FAILED. Will be on the = lookout the next time. =20 Thanks, Jack -----Original Message----- From: Ng Chi Yuen [mailto:cy...@cs...] Sent: Thursday, November 20, 2003 6:12 PM To: ebx...@li... Subject: Re: [ebxmlms-develop] Unregister problem Hi, > Ran into problem unregister a context due to a pending ack message = that could not be sent. >=20 > Problems: > 1) getPendingmessage() returns String[0]?? Is this correct? Should = it return a String[] of messageIds > in this case should it be = 20031120-193806082-CPA-2002.http://www.cecid.hku.hk/ebxml/service.Order.1= @10.100.8.65 > 2) unregister() failed due to pending messages. I would like to know what you mean by "String[0]". Does it mean = it=20 returns no pending message id? > Workaround: (Sort-of) > I used deletePendingMessages(...) with this messageID = 20031120-193806082-CPA-2002.http://www.cecid.hku.hk/ebxml/service.Order.1= @10.100.8.65. It caused RequestException. However, executing = unregister() the next time around, it deleted the context. The behaviour of getPendingMessage() is like this: if the = sending=20 ack fails BUT it is still retrying, a sending thread still exists and=20 getPendingMessage() would return its message id. However, if the sending = ack=20 fails for all retry, getPendingMessage() would return nothing because = that=20 ack message is marked SENT_FAILED in DB. Then, unregister() should be=20 successful and should not report there is still pending message. Regards, CY -------------------------------------------------------------------------= --- Ng Chi Yuen, CY. cy...@ce... http://www.cecid.hku.hk/ Technology Officer, Centre for E-Commerce Infrastructure Development, The University of Hong Kong -------------------------------------------------------------------------= --- ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ _______________________________________________ ebxmlms-develop mailing list ebx...@li... https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop |