Revert "Use a variable on the stack to not have a temporary in the call"
[ACE_TAO.git] / TAO / orbsvcs / tests / FT_Naming / FaultTolerant / README
blob0b5479f17dd060dd5a07c5cc4915ad331a26d7ce
1 This program tests the following fault tolerant naming service implementation
2 use cases:
4 1) Failover: Validate that a client can seamlessly connect to the alternate
5    server of a server naming server pair after the other server has been
6    terminated.
8 2) Persistence: Validate that repository data written by the naming service is
9    available upon startup.
11 3) Equivalence: Validate that a client can seamlessly invoke naming operations
12    on either server instance.
14 ================================================================================
15 Failover Test
16 ================================================================================
18 <hostname> = <local_host>
19 <port1>    = <first unused port>
20 <port2>    = <second unused port>
22 1) Create empty NameService and GroupService directories
24   cd $TAO_ROOT/orbsvcs/tests/FT_Naming/FaultTolerant
25   mkdir NameService
26   mkdir GroupService
28 2) Start primary tao_ft_naming process
29     $TAO_ROOT/orbsvcs/FT_Naming_Service/tao_ft_naming --primary \
30       -ORBListenEndPoints iiop://<hostname>:<port1> \
31       -m 0 \
32       -r NameService \
33       -v GroupService &
35 3) Start backup tao_ft_naming process
37     $TAO_ROOT/orbsvcs/FT_Naming_Service/tao_ft_naming --backup \
38       -ORBListenEndPoints iiop://<hostname>:<port2> \
39       -m 0 \
40       -c $TAO_ROOT/orbsvcs/tests/FT_Naming/FaultTolerant/ns.ior \
41       -g $TAO_ROOT/orbsvcs/tests/FT_Naming/FaultTolerant/nm.ior \
42       -r NameService \
43       -v GroupService &
45 4) Terminate primary tao_ft_naming process
47 5) Run client with failover argument
49     client --failover \
50           -p file:///$TAO_ROOT/orbsvcs/tests/FT_Naming/FaultTolerant/ns.ior \
51           -r file://$TAO_ROOT/orbsvcs/tests/FT_Naming/FaultTolerant/nm.ior \
52           -b 4 -d 4
54 ==============================================================================
55 Example Output:
56 ==============================================================================
57 INFO: Failover Name Test OK
58 INFO: nm1ref: file:///tmp/ramdisk/tmp/nm.ior
59 INFO: Object Group Found In Repository
60 INFO: Failover ObjectGroup Test OK
62 6) Cleanup
64 rm -rf NameService
65 rm -rf GroupService
67 ================================================================================
68 Persistence Test
69 ================================================================================
71 <hostname> = <local_host>
72 <port1>    = <unused port>
74 1) Create empty NameService and GroupService directories
76   cd $TAO_ROOT/orbsvcs/tests/FT_Naming/FaultTolerant
77   mkdir NameService
78   mkdir GroupService
80 2) Start tao_ft_naming
82   $TAO_ROOT/orbsvcs/FT_Naming_Service/tao_ft_naming \
83     -ORBListenEndPoints iiop://<hostname>:<port1> \
84     -g $TAO_ROOT/orbsvcs/tests/FT_Naming/FaultTolerant/nm.ior \
85     -o $TAO_ROOT/orbsvcs/tests/FT_Naming/FaultTolerant/ns.ior \
86     -v GroupService \
87     -u NameService &
89 3) Start test object server
91   server -ORBDefaultInitRef corbaloc:iiop:<hostname>:<port1> \
92          -o $TAO_ROOT/orbsvcs/tests/FT_Naming/FaultTolerant/srv.ior &
94 4) Run the test client with the persistence and create arguments
96   client --persistence --create \
97          -p corbaloc:iiop:<hostname>:<port1>/NameService \
98          -r corbaloc:iiop:<hostname>:<port1>/NamingManager \
99          -b 4 -d 4
101 ==============================================================================
102 Example Output:
103 ==============================================================================
104 INFO: Persistence Creation Name Test OK
105 INFO: Object Group BasicGroup Found In Repository
106 INFO: validating group member location1
107 INFO: object group member at location1 reports location1
108 INFO: validating group member location2
109 INFO: object group member at location2 reports location2
110 INFO: validating group member location3
111 INFO: object group member at location3 reports location3
112 INFO: validating group member location4
113 INFO: object group member at location4 reports location4
114 INFO: validating group member location5
115 INFO: object group member at location5 reports location5
116 INFO: validating group member location6
117 INFO: object group member at location6 reports location6
118 INFO: Persistence Creation ObjectGroup Test OK
120 5) Terminate tao_ft_naming and then restart it with the original arguments
122   kill `pidof $TAO_ROOT/orbsvcs/FT_Naming_Service/tao_ft_naming`
124   $TAO_ROOT/orbsvcs/FT_Naming_Service/tao_ft_naming \
125     -ORBListenEndPoints iiop://<hostname>:<port1> \
126     -g $TAO_ROOT/orbsvcs/tests/FT_Naming/FaultTolerant/nm.ior \
127     -o $TAO_ROOT/orbsvcs/tests/FT_Naming/FaultTolerant/ns.ior \
128     -v GroupService \
129     -u NameService &
131 6) Now run the test client with the persistence and valdiate arguments
133   client --persistence --validate \
134     -p corbaloc:iiop:<hostname>:<port1>/NameService \
135     -r corbaloc:iiop:<hostname>:<port1>/NamingManager \
136     -b 4 -d 4
138 ==============================================================================
139 Example Output:
140 ==============================================================================
141 INFO: Persistence Validation Name Test OK
142 INFO: Object Group BasicGroup Found In Repository
143 INFO: validating group member location1
144 INFO: object group member at location1 reports location1
145 INFO: validating group member location2
146 INFO: object group member at location2 reports location2
147 INFO: validating group member location3
148 INFO: object group member at location3 reports location3
149 INFO: validating group member location4
150 INFO: object group member at location4 reports location4
151 INFO: validating group member location5
152 INFO: object group member at location5 reports location5
153 INFO: validating group member location6
154 INFO: object group member at location6 reports location6
155 INFO: Persistence Validation ObjectGroup Test OK
157 7) Cleanup
159   rm -rf NameService
160   rm -rf GroupService
162 ================================================================================
163 Redundant Equivalancy Test
164 ================================================================================
166 <hostname> = <local_host>
167 <port1>    = <first unused port>
168 <port2>    = <second unused port>
170 1) Create empty NameService and GroupService directories
172   cd $TAO_ROOT/orbsvcs/tests/FT_Naming/FaultTolerant
173   mkdir NameService
174   mkdir GroupService
176 2) Start primary tao_ft_naming process
178   $TAO_ROOT/orbsvcs/FT_Naming_Service/tao_ft_naming \
179     --primary \
180     -ORBListenEndPoints iiop://<hostname>:<port1> \
181     -o /tmp/ns_primary.ior \
182     -h /tmp/nm_primary.ior \
183     -r NameService \
184     -v GroupService &
186 3) Start backup tao_ft_naming process
188   $TAO_ROOT/orbsvcs/FT_Naming_Service/tao_ft_naming \
189     --backup \
190     -ORBListenEndPoints iiop://<hostname>:<port2> \
191     -o /tmp/ns_backup.ior \
192     -h /tmp/nm_backup.ior \
193     -c /tmp/ns_multi_profile.ior \
194     -g /tmp/nm_multi_profile.ior \
195     -r NameService \
196     -v GroupService &
198 4) Now run the test client with the equivalence argument
200   client --equivalence \
201     -p file:///tmp/ns_primary.ior \
202     -q file:///tmp/ns_backup.ior \
203     -r file:///tmp/nm_primary.ior \
204     -s file:///tmp/nm_backup.ior \
205     -b 4 -d 4
207 ==============================================================================
208 Example Output:
209 ==============================================================================
210 INFO: ns1ref is not equivalent to ns2ref
211 INFO: ns1ref profile count: 1
212 INFO: ns2ref profile count: 1
213 INFO: Equivalence Name Test OK
214 INFO: nm1ref: file:///tmp/nm_primary.ior
215 INFO: nm2ref: file:///tmp/nm_backup.ior
216 INFO: nm1ref is not equivalent to nm2ref
217 INFO: nm1ref profile count: 1
218 INFO: nm2ref profile count: 1
219 INFO: Primary Found Object Group test_group_1 Created By Primary In Repository
220 INFO: Backup Found Object Group test_group_2 Created By Backup In Repository
221 INFO: Primary Found Object Group test_group_2 Created By Backup In Repository
222 INFO: Backup Found Object Group test_group_1 Created By Primary In Repository
223 INFO: Equivalence ObjectGroup Test OK
225 5) Cleanup
227   rm -rf NameService
228   rm -rf GroupService