5 Replies Latest reply on Oct 29, 2008 10:49 AM by kurtstam

    ServiceInvoker/jUddi

    rmolin


      Clients external to the bus that plan on using ServiceInvoker must have jUddi properties configured properly. If the bus is deployed on multiple servers (sharing the same service registry) what will be the proper setting of 'discoveryUrl' in juddi.properties ?

      Do I specify 'http://<Any server in the cluster>:8080/juddi' or do I need some kind of load-balancer and specify the address of that ?

      --

      Rune

        • 1. Re: ServiceInvoker/jUddi
          kurtstam

          Yes load-balancing seems like a good idea.

          Alternatively you can configure it as a standalone jUDDI connecting to the (shared and clustered) database.

          --Kurt

          • 2. Re: ServiceInvoker/jUddi
            rmolin

            A standalone jUDDI external to the ESB sounds like a good idea. Where can I read more ?

            --

            Rune

            • 3. Re: ServiceInvoker/jUddi
              kurtstam

              Just add the db driver of your chioce to the client's classpath and set the db connection credentials in the juddi.properties file:

              # jUDDI DataStore module currently to use
              juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
              # use a dataSource (if set to false a direct
              # jdbc connection will be used.
              juddi.isUseDataSource=false
              juddi.jdbcDriver=org.apache.derby.jdbc.EmbeddedDriver
              juddi.jdbcUrl=jdbc:derby:juddi-derby-test-db;create=true
              juddi.jdbcUsername=
              juddi.jdbcPassword=
              


              and make sure to use LocalTransport between scout and jUDDI (java calls and not WS), which is configured in the jbossesb-properties.xml:

              <properties name="registry">
               <property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.registry.local.InquiryService#inquire"/>
               <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI" value="org.apache.juddi.registry.local.PublishService#publish"/>
               <property name="org.jboss.soa.esb.registry.implementationClass" value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
               <property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
               <property name="org.jboss.soa.esb.registry.user" value="jbossesb"/>
               <property name="org.jboss.soa.esb.registry.password" value="password"/>
               <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
               <property name="org.jboss.soa.esb.scout.proxy.transportClass" value="org.apache.ws.scout.transport.LocalTransport"/>
              


              You can read more about it in the http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/docs/ServicesGuide.pdf

              Use a pooled datasource when you can..

              Cheers,

              --Kurt

              • 4. Re: ServiceInvoker/jUddi
                rmolin

                Kurt,

                Let me see if I follow you here - you are talking about a JUddi service running embedded in the client application, but connecting to the shared registry database, right ?

                I foresee firewall troubles when a number of clients will try to connect to the registry running ie. postgres on port 5432, so perhaps it is more something like the SOAP scenario in Services Guide I'm looking for.

                Thanks for your input

                --
                Rune

                • 5. Re: ServiceInvoker/jUddi
                  kurtstam

                  Yep, so that leads you back to going for a load-balanced WS solution :).

                  Good luck :)
                  --Kurt