[ https://issues.apache.org/jira/browse/BOOKKEEPER-312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13562615#comment-13562615 ]
Hadoop QA commented on BOOKKEEPER-312: -------------------------------------- Testing JIRA BOOKKEEPER-312 Patch [hedwig-client-jms.patch.10|https://issues.apache.org/jira/secure/attachment/12566500/hedwig-client-jms.patch.10] downloaded at Fri Jan 25 11:00:40 UTC 2013 ---------------------------- {color:green}+1 PATCH_APPLIES{color} {color:green}+1 CLEAN{color} {color:red}-1 RAW_PATCH_ANALYSIS{color} . {color:red}-1{color} the patch seems to contain 6 line(s) with @author tags . {color:red}-1{color} the patch contains 6 line(s) with tabs . {color:red}-1{color} the patch contains 444 line(s) with trailing spaces . {color:red}-1{color} the patch contains 163 line(s) longer than 120 characters . {color:green}+1{color} the patch does adds/modifies 104 testcase(s) {color:red}-1 RAT{color} . {color:red}-1{color} the patch seems to introduce 18 new RAT warning(s) {color:green}+1 JAVADOC{color} . {color:green}+1{color} the patch does not seem to introduce new Javadoc warnings {color:green}+1 COMPILE{color} . {color:green}+1{color} HEAD compiles . {color:green}+1{color} patch compiles . {color:green}+1{color} the patch does not seem to introduce new javac warnings {color:green}+1 FINDBUGS{color} . {color:green}+1{color} the patch does not seem to introduce new Findbugs warnings {color:green}+1 TESTS{color} . Tests run: 816 {color:green}+1 DISTRO{color} . {color:green}+1{color} distro tarball builds with the patch ---------------------------- {color:red}*-1 Overall result, please check the reported -1(s)*{color} The full output of the test-patch run is available at . https://builds.apache.org/job/bookkeeper-trunk-precommit-build/256/ > Implementation of JMS provider > ------------------------------ > > Key: BOOKKEEPER-312 > URL: https://issues.apache.org/jira/browse/BOOKKEEPER-312 > Project: Bookkeeper > Issue Type: Sub-task > Reporter: Mridul Muralidharan > Assignee: Mridul Muralidharan > Fix For: 4.3.0 > > Attachments: hedwig-client-jms.patch, hedwig-client-jms.patch.1, > hedwig-client-jms.patch.10, hedwig-client-jms.patch.10, > hedwig-client-jms.patch.2, hedwig-client-jms.patch.3, > hedwig-client-jms.patch.4, hedwig-client-jms.patch.5, > hedwig-client-jms.patch.9, hedwig-client-jms.patch.9 > > > The JMS provider implementation conforming to the 1.1 spec. > The limitations as of now are : > 1) No support for Queue's : Hedwig currently does not have a notion of JMS > queue's for us to leverage. > 2) No support for noLocal : Hedwig DOES NOT conform to JMS model of > connection -(n)-> session -(n)-> publisher/subscriber. Each session has a > hedwig connection. > Currently I am simulating noLocal, but this IS fragile and works for the > duration of connection - ONLY until the message id is still in a LRUCache. As > mentioned before, this is a kludge, and not a good solution. > 3) Note that everything is durable in hedwig - so we do not support > NON_PERSISTENT delivery mode. > 4) Calling unsubscribe on a durable subscription will fail if it was NOT > created in the current session. > In hedwig, to unsubscribe, we need the subscription id and the topic ... > To simulate unsubscribe(), we store the subscriberId to topicName mapping > when a create* api is invoked. Hence, if create* was NOT called, then we have > no way to infer which topic the subscription-id refers to from hedwig, and so > cant unsubscribe. > The workaround is - simply create a durable subsriber just as a workaround of > this limitation - the topicName will be known to the user/client anyway. > 5) Explicit session recovery is not supported. > Reconnection of hedwig session (either explicitly or implicitly by underlying > client implementation) will automatically trigger redelivery of > un-acknowledged messages. > 6) Because of the above, setting the JMSRedelivered flag is almost impossible > in a consistent way. > Currently, we simulate it for redelivery due to provider side events : > rollback of txn, exception in message listener (primarily). > At best we can simulate it with a kludge - at risk of potentially running out > of resources ... this is being investigated : but unlikely to have a clean > fix. > 7) Hedwig only supports marking all messages until seq-id as received : while > JMS indicates ability to acknowledge individual messages. > This distinction is currently unsupported. > 8) JMS spec requires > "A connection's delivery of incoming messages can be temporarily stopped > using its stop() method. It can be restarted using its start() method. When > the connection is stopped, delivery to all the connection’s MessageConsumers > is inhibited: synchronous receives block, and messages are not delivered to > MessageListeners." > We honor this for undelivered messages from server - but if stop is called > while there are pending messages yet to be delivered to a listener (or > buffered in subscriber for receive), then they will be delivered irrespective > of stop(). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira