summaryrefslogtreecommitdiff
path: root/TAO/tests/MProfile_Forwarding/README
blob: cc52f6d72d50b09480a43040418dc0a7c5a8a532 (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 is a test case for 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