Oisin Kim,

Look at the attached email ... its the last discussion on this.

It looks like there is clustering, but not loadbalancing available for rmi
from the rmi.xml configuration. The application will treat any ejbs on the
cluster as one-to-one look-ups. Orion will go out and get the first ejb
available on the cluster. See the docs on configuring rmi.xml (and also the
note below).

That is a kind-of failover, because if machine A goes down, and the
myotherAejbs.jar are on machine B too, orion will go out and get the bean
from machine B when it can't find machine A. But it doesn't go machine A
then machine B for each remote instance of the bean. You could also specify
the maximum number of instances of a bean, and as one machine gets "loaded",
orion would go to the next available machine...but that's not really
loadbalancing.


That is, you can set up your web-apps with ejbs, but let all of the ejbs be
remote="true" in the orion-application.xml file:

<?xml version="1.0"?>
<!DOCTYPE orion-application PUBLIC "-//Evermind//DTD J2EE Application
runtime 1.2//EN" "http://www.orionserver.com/dtds/orion-application.dtd";>

<orion-application deployment-version="1.5.2">
        <ejb-module remote="true" path="myotherAejbs.jar" />
        <ejb-module remote="true" path="myotherBejbs.jar" />
        <ejb-module remote="true" path="myotherCejbs.jar" />
        <web-module id="mysite" path="mysite.war" />
      ... other stuff ...
</orion-application>

In the rmi.xml you would define your clustering:

 <cluster host="230.0.0.1" id="123" password="123abc" port="9127"
username="cluster-user" />
  Tag that is defined if the application is to be clustered. Used to set up
a local multicast cluster. A username and password used for the servers to
intercommunicate also needs to be specified.

host - The multicast host/ip to transmit and receive cluster data on. The
default is 230.0.0.1.
id - The id (number) of this cluster node to identify itself with in the
cluster. The default is based on local machine IP.
password - The password configured for cluster access. Needs to match that
of the other nodes in the cluster.
port - The port to transmit and receive cluster data on. The default is
9127.
username - The username configured for cluster access. Needs to match that
of the other nodes in the cluster.



regards,

the elephantwalker

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Oisin Kim
Sent: Saturday, June 16, 2001 9:51 AM
To: Orion-Interest
Subject: Question About Clustering EJB's


Hi All,
I've noticed that some asked for help on how-to cluster EJB's and got no
reply. I thought I read in the documentation that this isn't possible, is
it??
Or has someone got a workaround that wouldn't involve sharing a database,
hard disk or anything that would be a single point of failure?
Thanks,
Oisin Kim


Yes, I would be very glad if you could give me some hints on how to set this up.

 

I have two orion servers behind a Foundry Server Irion load balancer/switch. I tried setting up the clustering, but was only able to get the HTTP clustering to work.

 

Since I could not get my EJBs to be clustered, I configure the ejbs with exclusive-write-access="false", so the data is consistent. I also cannot use HTTP clustering because we use statefull session beans.

 

How do I setup ejb clustering?

 

thanks

 

-----Original Message-----
From: Lachezar Dobrev [mailto:[EMAIL PROTECTED]]
Sent: Friday, June 15, 2001 1:18 AM
To: Orion-Interest
Subject: RMI Clustering done. Now want more.

 

   Hello.

   OK. I was able to (at last) run the RMI clustering. It now works. But... I have a question...

   Now I can put up a cluster, and when a bean does not exist on the server it is searched on the cluster and used. However if it is deployed on more than one machine... It is not found on all of them, but rather on only one.

 

   For simplicity let's assume we have OrionA, OrionB, OrionC and OrionD.

   a) on all machines we have EnterpriseBean1 deployed. It accesses EnterpriseBean2

   b) machine OrionA does not have EnterpriseBean2 deployed.

   c) machines OrionB, OrionC and OrionD have EnterpriseBean2 deployed.

   d) all machines have a RMI cluster set-up and working.

      (BTW) Because I needed quite some time to understand why the

      cluster was not working I am eager to help anyone, that needs

      help on the subject.

 

   If machine OrionA runs EnterpriseBean1 it will have to look-up EnterpriseBean2, which is used by EnterpriseBean1.

   There is no problem to find that bean (it exists on the cluster). However... Once EnterpriseBean2 is used on OrionC it keeps using that one. Why? Also. If we deploy EnterpriseBean2 on OrionA it is always found there and not on ANY other cluster machine.

 

   1. How does Orion know on which machine to use the bean? The last one, that wakes up?

   2. Is there a way to implement (at least) a round-robin technique to access the clustered bean on more than one server? I mean... When I look-up EnterpriseBean2... I would like to have a different server answering every time. Round-robin is sufficient, even though a loadbalancing technique would be better appropriate.

 

   Ok. Waiting forward to hearing from you all...

 

   P.S. Another question... CAN I TURN WEB-SERVICES OFF??? I tried removing the default-web-app tag in the server.xml, but it starts complaining about no default web-app :((( I want to have some Orion servers to act as EJB only servers.

 

   Lachezar



Reply via email to