ORB Configuration
The ORB has the same basic requirements as other Inf processes, that is,
a logical name and a definition for it's command queue. If the
keyword
"SERVER2"
followed by a queue name, is defined an
additional queue will be opened. This second queue is normally used
for encrypted communication. If the keyword
"MAINORB"
followed by a queue name, is defined this ORB will try to contact the
main orb and exchange service type information.
In order for the ORB to handle some requests uniquely it uses the concept of
service classes
.
The minimum definition requires at least one class to define the default operation. The
ORB's default handling of requests is to find an available server,
assign the new request to it, and when the server completes, pass
this response message back to the originator.
Classes are configured using the "ADDCLS" keyword followed by a minimum
of four fields with one optional field. They are, class name, type,
code, and flags. The optional field is an ascii set definition
field name, which must be surrounded by double quotes. The class
name is a convenience for the infCtl tool. The "Type" and
"Code" define the service type and code which will trigger this
class. A zero in either field will act as a wild card. The "Flags"
field determines the exact operation and may be:
READY
| Make the request READY for assignment immediately.
|
CACHIT
| Cache the request, on hard disk, until it is complete
|
RSPIMM
| Acknowledge the request to the client immediately
|
SETMBR
| Defines a member of a set. The optional "Field Name" must be included.
|
SETRDY
| The last member of a set, makes the set ready for assignment.
Also requires the optionsl "Field Name"
|
Below is an example of an ORB's class configuration:
CAG
| 2
|
PODS
|
3
|
TEST
|
4
|
FNF
|
5
| # TEST FIRE & FORGET
|
# | Name | TYPE | CODE | FLAGS | FldNam
|
ADDCLS
| DLYONtid
| $(PODS)
| 8
| RSPIMM+SETMBR
| "tid"
| # Marshal BGN
|
ADDCLS
| RDYONtid
| $(PODS)
| 9
| RSPIMM+SETRDY
| "tid"
| # Marshal END
|
ADDCLS
| CAGWT
| $(CAG)
| 3
| RSPIMM+READY
|
ADDCLS
| FNF
| $(FNF)
| DEFAULT
| RSPIMM+READY
| | # FIRE & FORGET
|
ADDCLS
| DEFAULT
| DEFAULT
| DEFAULT
| READY
| | # DEFAULT
|
The Default class is required and must be the last class defined. In
this example the class CAGWT has a service type of 2 and a service
code of 3, an acknowledge message is immediately sent to the
requestor, and the request is immediately ready for assignment. The
class FNF (fire & forget) has a type of 5, a code of anything,
the server is sent an acknowledge immediately, and it is immediately
ready for assignment. The class DLYONtid has a type 3, code 8, an
immediate acknowledge is sent to the requestor, and is a set member
based on the "tid" field. The class RDYONtid has type 3, code 9,
is the last member of the set with matching "tid" fields, and
makes the set ready to assign.