Merge pull request #1551 from DOCGroup/plm_jira_333
[ACE_TAO.git] / TAO / orbsvcs / Concurrency_Service / README
blobbdb7d51dc666e8dde9b2805ff186f2b3e57b8de9
3 This file describes how to run the TAO Concurrency Service and its
4 accompanying tests.  In addition, it describes the locations of the
5 files that make up the service and tests.  For a general description
6 of the directory structure for the services please consult
8         $TAO_ROOT/docs/orbsvcs.html
10 ----------------------------------------
12 HOW TO RUN THE SERVICE
14 The Concurrency Service server runs in a thread-per-connection
15 concurrency model, which is specified by the svc.conf file.  This
16 model is necessary to enable the server to block in a dedicated
17 thread, i.e., one for each client.  The concurrency service will not
18 run in the reactive model.
20 The server itself is located in the
22 $TAO_ROOT/orbsvcs/Concurrency_Service
24 directory.
26 The server accepts the following options:
28         usage:  ./Concurrency_Service [-d] [-o] <ior_output_file>
29         [-d] is the debug option
30         [-o] <ior_output_file> outputs the IOR of the lock set factory
31              to the file
32         [-s] Prevents the concurrency server from using the naming server
34 The lock set factory is registered in the naming service in the
35 CosConcurrency context with the name "LockSetFactory".
37 ----------------------------------------
39 THE IMPLEMENTATION
41 The implementation of the concurrency service objects is located in
42 the $TAO_ROOT/orbsvcs/orbsvcs/Concurrency directory and consists of
43 the following files:
45         CC_LockSet.{h,cpp} Implementation of the lock set. At present
46                 there is only one implementation of the lock set which
47                 implements multiple possession semantics for both
48                 transactional (which is not otherwise supported) and
49                 non-transactional clients. Please see the comments in
50                 the CC_LockSet.h file for further details.
52         CC_LockSetFactory.{h,cpp} Implementation of the lock set
53                 factory
55         Concurrency_Utils.{h,cpp} Wrapper around the concurrency
56                 server.
58 The current implementation does not support transactions.  If you'd
59 like to add support for transactions to TAO please let us know.
61 ----------------------------------------
63 THE TESTS
65 The tests are located in the $TAO_ROOT/orbsvcs/tests/Concurrency
66 directory.  There are two types of tests:
68         . A simple test -- which tests that it is possible to create
69           locks and lock them in all the different lock modes
71         . A more extended test which requires two (or more)
72           processes.
74 The client accepts the following options:
76         usage:  ./CC_client [-b] [-d]
77                         [-c] <stdin|testscriptname>
78                         [-e] <test;arg1;arg2>
79                         [-f cc_factory-obj-ref-key-file]
80                         [-k cc-obj-ref-key] [-x] [-s]
82         . The [-b] option runs the basic tests.
83         . The [-c] option runs a test script against the concurrency
84           service server. This option is described in more detail in
85           the $TAO_ROOT/orbsvcs/tests/Concurrency/README file. It is
86           the intent that this type of testing will be used instead of
87           the [-b] and [-e] tests. These tests are retained for
88           backwards compatibility.
89         . The [-d] option is the debug option.
90         . The [-e] option is for running one of the extended tests. The
91           format of the argument to the -e option is <test;arg1;arg2>
92           where test is the name of the test (at present test =
93           {1,2,3}) and arg1 and arg2 are arguments to the test.  See
94           the example below.
96         . The [-f] option reads the factory IOR from a file. This is
97           currently not supported.
99         . The [-k] option takes the factory IOR as argument on the
100           commandline. This is currently not supported.
102         . The [-x] option tells the server to shut down
103           gracefully. Currently this has no effect.
105         . The [-s] option tells the test not to use the naming
106           service. This is currently not supported.
108 ----------------------------------------
110 EXAMPLE TEST RUN
112         Window-1> ./Concurrency_Service -d
113         Window-2> ./CC_client -b
114         Window-2> ./CC_client -e '1;Name'
115         Window-2> ./CC_client -e '2;Name'
116         Window-3> ./CC_client -e '3;Name'
118 NOTE: It seems that there is a problem using the naming service the
119       first time the client is run. This error does not appear if the
120       environment variable 'NameService' is set to the IOR of the naming
121       service (the IOR of the naming service is printed when the
122       Concurrency_Control server is started).
124 ----------------------------------------
126 CONTACT POINT
128 If you have any questions about this service, please contact Torben
129 Worm at <tworm@cs.wustl.edu>.