7 Replies Latest reply on Feb 1, 2007 1:44 PM by Clebert Suconic

    New wireformat

    Tim Fox Master

      I have committed the refactoring of our wireformat.

      Gone is the ugly if...else ladder matching on method names, and in is a set of new request and response objects encapsulating each request, response.

      I think you'll find it's much cleaner and OO now.

        • 1. Re: New wireformat
          Clebert Suconic Master

          I see that you're calling remoting directly on DelegateSupport now for the new wire format. (so.. I think that means we don't have an interceptor for doing remote calls any more, right?)

          How FailoverValveInterceptor is being involved on the invocation now? Is it still capturing exceptions?

          I had the impression by briefly looking on code that FailoverValveInterceptor is inactive on this new codebase, as doInvoke methods are only throwing JMSException, and we will have to add the FailoverValve back somehow.

          • 2. Re: New wireformat
            Tim Fox Master

             

            "clebert.suconic@jboss.com" wrote:
            I see that you're calling remoting directly on DelegateSupport now for the new wire format. (so.. I think that means we don't have an interceptor for doing remote calls any more, right?)

            How FailoverValveInterceptor is being involved on the invocation now? Is it still capturing exceptions?

            I had the impression by briefly looking on code that FailoverValveInterceptor is inactive on this new codebase, as doInvoke methods are only throwing JMSException, and we will have to add the FailoverValve back somehow.


            This is a good point. I will investigate today.

            • 3. Re: New wireformat
              Tim Fox Master

              I am now catching network exceptions in DelegateSupport:

              else if ((t instanceof CannotConnectException) || (t instanceof IOException))
               {
               return new MessagingNetworkFailureException((Exception)t);
               }
              


              And wrapping them in a JMSException subtype so they can reach the FailoverInterceptor.

              This seems to work. Well most if the clustering tests run through now, although I am getting spurious failures where the test just times out and no failover seems to have occurred. Need to investigate further.

              • 4. Re: New wireformat
                Clebert Suconic Master

                Just as a brain storm...

                I had the impression we could refactor failover a bit, to be called directly from these new methods.

                Maybe adding new methods to FailoverCommandCenter.

                As we are interested in capturing remoting failures only, we could have the valve and failure detection right on top of the invocation.. maybe having a hook to add such behavior on DelegateSupport.

                • 5. Re: New wireformat
                  Clebert Suconic Master

                  I've run the clustering testsuite...

                  and the only failure I get now is FailoverTest::testFailoverMessageOnServer


                  It looks like we need a server valve, or some sort of lock on the server side, for while the serverSide failover is being executed.

                  • 6. Re: New wireformat
                    Tim Fox Master

                     

                    "clebert.suconic@jboss.com" wrote:
                    I've run the clustering testsuite...

                    and the only failure I get now is FailoverTest::testFailoverMessageOnServer


                    It looks like we need a server valve, or some sort of lock on the server side, for while the serverSide failover is being executed.


                    We already have a server side valve. Were you not aware of this?

                    • 7. Re: New wireformat
                      Clebert Suconic Master

                      I guess I was coding under the influence (CUI)

                      American's have an acronym for Driving Under the Influence - DUI... I guess that has happened to me on coding :-)