summaryrefslogtreecommitdiff
path: root/trunk/TAO/tests/MProfile_Forwarding/README
blob: 518d6d7ec14ba0d05ff6dc663d478073ed42aa81 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
This test evalutes ORB fault tolerance support, based on one of the
problems that was reported by the DOORS team at Lucent. The test is
aimed at testing the following scenario.

1. We will have three copies of the same server running. Let me call
   them as ref1, ref2 & ref3.
     
2. We will have a manager application which does the following. Hosts
   a POA with the policies set for a Servant_Locator.  Then it creates
   the reference on that and does the following

   a. A merged IOR with ref1, ref2 & the reference of the manager
   b. A merged IOR with ref2, ref3 & the reference of the manager.

   It publishes/writes the merged IOR from 'a.' in to a file. It uses the IOR
   created out of 'b'  to throw a ForwardRequest exception.

3. The client starts by reading  the IOR written to a file by the
   Manager,  that was created by 2a.  The client basically makes a remote
   call and a shutdown call on the remote objects in a loop ie. multiple times. 

   a. When the first call is made, the call is responded by the server who published
      ref1. He is then shutdown.
   b. On the second call, the call is answered by the server who published ref2. he
      is also shutdown next.
   c. On the third call, the call first comes to the preinvoke () method in the
      Locator class who throws the ForwardRequest exception with the IOR created in
      2b.  
   d. After the exception is thrown the calls get resolved on the server
     who published ref3. He is also shutdown next. 

The above sequence SHOULD be seen to consider the test as being
succesfull.

To run the test
---------------

* Start three copies of the server like this

  $ ./server -o file1.ior 
  $ ./server -o file2.ior 
  $ ./server -o file3.ior 

* Then start the Manager like this

  $ ./Manager -a file://file1.ior -b file://file2.ior -c \
    file://file3.ior -d file4.ior 

   (The above should be on the same line in the command prompt. The
   file4.ior is for publishing the first merged IOR (refer step 2.a).

* The start the client like this
  
  $ ./client -o file://file4.ior