File: README

package info (click to toggle)
gnat-glade 2006-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 3,056 kB
  • ctags: 20
  • sloc: ada: 28,261; sh: 2,888; makefile: 627; ansic: 2
file content (40 lines) | stat: -rw-r--r-- 2,235 bytes parent folder | download | duplicates (4)
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
This is an example to illustrate the reconnection policy. In this example,
we have four partitions. Part0 executes RPC RCI_1.F on part1 which
uses Failed_Until_Restart as reconnection policy. On part1, RCI_1.F executes
RPC RCI_2.F on part2 which uses Blocked_Until_Restart as reconnection
policy. On part2, RCI_2.F executes a RPC on part3 which uses
Rejected_On_Restart as reconnection policy.

Build the application (make) and execute each partition in separate sessions
(three separate windows for example) on the same machine.

* part0 prints a message for every RPC that gets executed.

* Kill part1. part0 reports that RCI_1.F cannot be executed and that
  Communication_Error was raised. Any attempt to execute RCI_1.F
  will raise Communication_Error again until part1 (and RCI_1) is restarted.
  Now restart part1. part0 will print the usual message again.
  This is the Failed_Until_Restart reconnection policy.

* Kill part2. part0 hangs and no longer prints the usual message.
  Any attempt to execute RCI_2.F is kept blocking until part2 (and RCI_2)
  is restarted. No Communication_Error exception is raised. This
  behaviour is similar to the one you would get with a partition
  whose elaboration is not finished yet. Now restart part2. part0 will print
  the usual message again. This is the Blocked_Until_Restart reconnection
  policy.

* Kill part3. part0 hangs and no longer prints the usual message.
  Communication_Error is raised on part2 for any attempt to execute
  RCI_3.F. Restart part3 and you will get "raised PROGRAM_ERROR : RCI unit
  rci_3 is already declared". This is the Rejected_On_Restart reconnection
  policy. Once a partition which contains at least one RCI package has been
  started, it is forbidden to restart it later. This is the same behaviour
  you would get by executing a partition which contains at least a RCI package
  twice.  A RCI package has to be unique in the distributed system. In this
  example, RCI_3 was already declared and even if its partition dies, it cannot
  be relocated. This is the default reconnection policy.

After several attempts to execute RCI_3.F, RCI_2.F raises Program_Error
which is propagated to Main and the distributed application terminates
smoothly.