3 Replies Latest reply on Jun 11, 2008 10:29 AM by tfennelly

    ServiceInvoker clarification needed

    rmolin


      The programmers guide states that "The Endpoint addresses made available to the ServiceInvoker will depend on the list of listeners configured on the Service (JMS, FTP, HTTP etc)", but is that really so ?

      The jbr-listener can only provide gateway listeners, and I assume ServiceInvoker prefers an ESB aware endpoint, so how can a non-jms (and non in-vm) endpoint ever be used by ServiceInvoker ?

      /Rune

        • 1. Re: ServiceInvoker clarification needed
          tfennelly

          1. The EPR used by ServiceInvoker depends on the Load Balancing policy in place for the deployment. The default is RoundRobin (I think).

          2. At the moment, the registry doesn't differentiate between message aware or gateway endpoints. In fact, most gateways don't even register themselves in the registry - so the ServiceInvoker can't see them. AFAIK, the jbr gateway listener is one exception to this.

          3. The Load Balancing Policy implementations provided out-of-the-box give preference to InVM endpoints, but you could implement your own policy to override this.

          • 2. Re: ServiceInvoker clarification needed
            rmolin

            Thanks Tom - but what I really was trying to ask was if it is correct to say that ServiceInvoker will always select JMS as the transport (or InVM), because only jms-listener can have is-gateway = "false" and thus be ESB aware

            /Rune

            • 3. Re: ServiceInvoker clarification needed
              tfennelly

              Hi Rune.

              Right, so ServiceInvoker (in its current form) can only be used to invoke message aware endpoints. It's purely an "on-the-bus" invocation mechanism.

              Currently, the list of transports supported on the bus are InVM, JMS, SQL, File and Hibernate. I don't think I missed anything there :)