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
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
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 ----------------------------------------
41 The implementation of the concurrency service objects is located in
42 the $TAO_ROOT/orbsvcs/orbsvcs/Concurrency directory and consists of
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
55 Concurrency_Utils.{h,cpp} Wrapper around the concurrency
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 ----------------------------------------
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)
74 The client accepts the following options:
76 usage: ./CC_client [-b] [-d]
77 [-c] <stdin|testscriptname>
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
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 ----------------------------------------
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 ----------------------------------------
128 If you have any questions about this service, please contact Torben
129 Worm at <tworm@cs.wustl.edu>.