1 Reply Latest reply on May 25, 2006 10:43 PM by jahlborn

    Talking to two separate jboss instances at the same time

    jahlborn

      Hey,
      I'm trying to write a client which will communicate with two separate remote jboss instances (version 4.0.3SP1), call them JBSrc and JBDst (both are actually clusters). The end goal is to copy data from JBSrc into JBDst. There are 3 scenarios i can think of for doing this:

      1. Get remote interface from JBSrc (call it Exporter) and hand that interface directly to the import method in JBDst, and allow JBDst to suck the data directly from JBSrc. The data path is JBSrc -> JBDst, which is the ideal scenario

      2. Get Exporter interface from JBSrc and create Exporter proxy in client which is handed to JBDst. The data path is then JBSrc -> client -> JBDst, which is okay, but not the ideal.

      3. Get the Exporter interface from JBSrc, suck all the data to local disk, then create Exporter proxy which gets data from the local dist. The data path is then 2-part: JBSrc -> client/disk, then client/disk -> JBDst.

      So, I've started experimenting with scenarios 1/2, but i can't for the life of me manage to get the client to talk to two different remote jboss instances at the same time. I want to avoid 3 because the data can be very large and it would suck to have to cache it all locally first. The stuff I've done so far:

      - for the security config, i'm using the ClientLoginModule with multi-threaded="true"
      - I set up two separate Properties configurations (one on each thread) with the provider url, and the init context factory set to "org.jboss.naming:org.jnp.interfaces" (i've also tried "org.jboss.naming.NamingContextFactory" which doesn't seem to help)

      What seems to happen is that thread1 will login to JBSrc and talk to it successfully, then thread2 will login to JBDst and talk to it successfully. However, when thread1 tries to talk to JBSrc again, it actually tries to talk to JBDst. It seems like some global state is being set as to the "current" jboss instance, and all threads have to talk to that instance...?

      Has anyone else had to manage simultaneous communication to separate instances, and if so, am i missing something?

        • 1. Re: Talking to two separate jboss instances at the same time
          jahlborn

          So, i found a solution to this problem while tracking down related issues with cross-jboss communication. It boils down to the fact that if you need communicate between distinct jboss clusters, they *must* have distinct partition names. we were using only the mcast_addr and mcast_port to keep the clusters separate. this works fine in isolation, but once communication starts to bridge that gap, things start to get whacky if the clusters have the same partition name. you can find more details here:

          http://jira.jboss.org/jira/browse/JBAS-3241