[EMAIL PROTECTED] wrote:

>Hi,
>
>I'm currently trying to use 2 XMLBlaster clusters to make clients
>communicate between 2 different geographical places. Actually, I'm just
>testing a prototype of this configuration on a single PC, but you get the
>idea.
>
>Like this :
>
>
>                            Cluster A ====================(non reliable
>connection)================== Cluster B
>                           /                 \
>/                  \
>                         /                     \
>/                      \
>               client 1                 client 2
>client 3                client 4
>
>So, basically, what I need is to have all messages transmitted to all
>clients whatever the domain is, so that each client at any place can
>receive any message.
>
>What would be the best configuration for the servers ? Should I try
>something with acceptDefault ? Or declare both clusters as masters for all
>kinds of domain ?
>
>So far, the only thing I managed to do was send from client 1 to all
>clients of cluster B, or from client 1 to all clients of cluster A. But I
>can't get the message sent to all the clients at once.
>
>Do anyone see a simple configuration pattern I could use for this ?
>
Mirroring is not explicitly implemented yet (as nobody needed it up to now)
but you can simulate it like this:

Save the two attached files to your harddisk, they configure
two xmlBlaster nodes.

1. Start the servers:
-----------------------

java -jar ~/xmlBlaster/lib/xmlBlaster.jar -propertyFile A.properties 
-call[core] true
java -jar ~/xmlBlaster/lib/xmlBlaster.jar -propertyFile B.properties

The first node 'A' is configured as master and listens on port 7600
The other node 'B' is slave for everything and listens on port 7601

2. Start two subscribers, one for A and one for B:
--------------------------------------------------------

java org.xmlBlaster.client.reader.SubscribeMessage -xpath 
"/xmlBlaster/key[starts-with(@oid,'HelloFrom')]" -port 7600
java org.xmlBlaster.client.reader.SubscribeMessage -xpath 
"/xmlBlaster/key[starts-with(@oid,'HelloFrom')]" -port 7601

You can see that they connect to the different xmlBlaster nodes 
subscribing the same
messages.

3. Start two publishers, one for A and one for B:
------------------------------------------------------

java org.xmlBlaster.client.feeder.PublishFile -xmlKey "<key 
oid='HelloFromA'/>" -port 7600
java org.xmlBlaster.client.feeder.PublishFile -xmlKey "<key 
oid='HelloFromB'/>" -port 7601

Here it is: both publisher publish a message and these are received
by both subscribers.


Note:
------
I have added support for domain="*" configuration so you don't need
to play around with domains in your messages.
You need to checkout the newest from cvs that the above works!
(or if you don't want to you need to use explicit domains or filtering 
with XPATH
for cluster setup).


regards,

Marcel


>
>Thanks,
>--
>Brome
>
>
>
>--
>DISCLAIMER:
>This e-mail contains proprietary information some or all of which may be
>legally privileged. It is for the intended recipient only. If an addressing
>or transmission error has misdirected this e-mail, please notify the author
>by replying to this e-mail. If you are not the intended recipient you must
>not use, disclose, distribute, copy, print, or rely on this e-mail.
>
>
>
>  
>


#------------------------------------------------------------------------------
# Configures an xmlBlaster node with the name "A"
#
# Change the hostname='' setting if A is running on another IP,
# for example to hostname='192.168.1.2'
#
# INVOKE: java org.xmlBlaster.Main -propertyFile A.properties
#------------------------------------------------------------------------------


# Switch on CORBA driver only, listens on port 7600:
Protocol.Drivers=IOR:org.xmlBlaster.protocol.corba.CorbaDriver
Protocol.CallbackDrivers=IOR:org.xmlBlaster.protocol.corba.CallbackCorbaDriver
jacorb.verbosity=0
ns=false
port=7600

# Configuer cluster - the A node:
cluster=true

cluster.node.id=A
#------------------------------------------------------------------------------
# Configures an xmlBlaster node with the name "B"
#
# Change the hostname='' setting if A is running on another IP,
# for example to hostname='192.168.1.2'
#
# INVOKE: java org.xmlBlaster.Main -propertyFile B.properties
#------------------------------------------------------------------------------


# Switch on CORBA driver only, listens on port 7601:
Protocol.Drivers=IOR:org.xmlBlaster.protocol.corba.CorbaDriver
Protocol.CallbackDrivers=IOR:org.xmlBlaster.protocol.corba.CallbackCorbaDriver
jacorb.verbosity=0
ns=false
port=7601

# Switch off telnet access, we don't need it
admin.remoteconsole.port=-1

# Example to switch on SOCKET driver only:
#Protocol.Drivers=SOCKET:org.xmlBlaster.protocol.socket.SocketDriver
#Protocol.CallbackDrivers=SOCKET:org.xmlBlaster.protocol.socket.CallbackSocketDriver
#socket.port 7501

# Configuer cluster - the B node:
cluster=true

cluster.node.id=B

cluster.node.master[B]=\
   <clusternode id='B'>\
      <master type='DomainToMaster' acceptDefault='false'/>\
   </clusternode>


# Configure cluster - how to find A:
cluster.node[A]=\
   <clusternode id='A'>\
      <info>\
         <address type='IOR' hostname='' port='7600'/>\
      </info>\
      <master type='DomainToMaster'>\
         <key queryType='DOMAIN' domain='*'/>\
      </master>\
   </clusternode>

Reply via email to