|
From: Frankie L. <fr...@mi...> - 2003-02-03 08:55:37
|
Dear Boxman, The waiting time is reset to REQUEST_MIN_WAIT_INTERVAL when the last = polling to MSH shows positive response, i.e. a new message arrives. It = is because we expect that the client would specify an interval larger = than that and resetting it causes the messages to be delivered to the = client application faster. But we are quite concerned about the message = loss for frequent polling. It seems to me that it is a thread-safety = issue. Could you please tell us more about "issues with database connection" = using hsqldb? And also the use of "getPendingMessages()" is to obtain = the number of messages pending to be *sent* rather than *received*. So = perhaps there is a misunderstanding here. It's a good suggestion that the messages can be retrieved by message ID. = However, I think the ebMS specification does not allow such use if = "MessageOrder" is enabled, when the messages must be delivered = sequentially to the application in a specified order. Personally I = suggest that you may get all the messages and put it in your own buffer = for further processing. Best regards, Frankie ----- Original Message -----=20 From: Gait Boxman=20 To: ebx...@li...=20 Sent: Monday, February 03, 2003 4:35 PM Subject: [ebxmlms-develop] Why the delay after receiving a message? Hi team, while trying to speed up the receiving process (one of our apps is = batch oriented and typically needs to retrieve any buffered messages as = fast as possible without waiting for new ones), I found that the wait = time is reset to REQUEST_MIN_WAIT_INTERVAL after receiving a message = from the server (in Request.java), rather than the value set explicitly. = While my testing showed having 2 listeners polling every 10ms will = result in message loss (I patched Request.java to leave the value at the = customInterval), I am curious about the cause behind that, and a = possibly more accurate timing. For instance, making my listeners poll at = 100ms went just fine. Trying to bypass the polling mechanism in Request.java and going = directly through the MessageServiceHandlerConnection, as suggested a = while ago to Jason by Ng, gave me some issues with the database = connection when the MSH is running (using hsqldb) and with null pointers = when the MSH is not running.=20 Ideally, I'd like to retrieve the number of messages queued in the MSH = for my AC, and then just retrieve those messages in a burst. However, = getPendingMessages always returns an empty list, rather than a list of = queued messages, so I can't even count the number pending. It would be = even cooler if I could retrieve the messages by their messageId. thnx, Gait. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Gait Boxman Manager Advanced Technology & Standards TIE Product Development BV Amsterdam, The Netherlands Tel: +31 20 658 9091 Fax: +31 20 658 9945 E-mail: gai...@ti... WWW: www.TIEglobal.com ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |