[omniORB] Getting ORB's to see each other

Johan Cronje jcronje at dsp.sun.ac.za
Mon Sep 22 13:51:20 BST 2003


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all

Maybe somone could just point me in the right direction (or to the right
section in the manual) please.

I am struggling to understand (and therefore to get it working) how to access 
an object om another machine. I understand that the ORB's are supposed to 
handle this transparantly, which brings me to the point: how do I make them 
aware of each other? In the config file I have set up the two ORB's as 
defaultInitRef. Also, how are the endpoints supposed to be configured? Are 
they only allowed to be on the host machine? I ask because it complains when I 
enter the other machines' name and port as an endpoint.

I must add that I am trying to get the omniORB4 eg3_impl and eg3_clt examples 
working in this way; if I understand CORBA correctly, it should not be
necessary to change the source code, right?

I have attached my config files of the two machines for your inspection.

Thank You
Johan
- -- 
"There is beauty in simplicity"		-- Johan Cronje
- ---------------------------------------------------------------
Johan Cronje
Digital Signal Processing / Telecommunications Group
Electrical and Electronic Engineering Department
University of Stellenbosch
http://www.dsp.sun.ac.za/~jcronje
- ---------------------------------------------------------------
GNUPG Key: http://www.dsp.sun.ac.za/~jcronje/jcronje.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)

iQEVAwUBP27ULuEeclgONaRbAQL8Cgf/UiAzVhLq1B8UwH03laPW4cQFJh/LsqyP
8bIBtadSwXRUAzleliOg3rKq6m048MX7X+0AkLKn/xdl3CJmlLCqMh5MW4cTowtj
4Y/+sByg1c8qZSl4KwfVZQ6B5GOgyCE10VwaLhvsn1X66/Biu1Y/g32pBDnYasXH
UD/B/al7XCK8D22qOrhOAdV/QCEdlUeZZ/v5YGFCwbHbiz/HGswRmWPjLIHyxZcf
SAJ+1TA8s2Ou4oEnMSiqVj2pntMQQz9OWMYIoysa5851GqviIcQ6b8mee9lPh/hH
kwe+K3mjeuACl0IxvLPUX1pi60kIW542HZzgCNgUITT0li2d6rV/Fw==
=vFms
-----END PGP SIGNATURE-----
-------------- next part --------------
############################################################################
#           omniORB (4.0 or above) configuration file                      #
############################################################################

############################################################################
############################################################################
############################################################################
#                                                                          #
#            ORB wide options                                              #
#                                                                          #
############################################################################

############################################################################
# Tracing level
#     level 0 -  critical errors only
#     level 1 -  informational messages only
#     level 2 -  configuration information and warnings
#     level 5 -  the above plus report server thread creation and
#                communication socket shutdown
#     level 10 - the above plus execution trace messages
#     level 25 - output trace message per send or receive giop message
#     level 30 - dump up to 128 bytes of a giop message
#     level 40 - dump the complete giop message
#
#     Valid values = (n >= 0)
#

#traceLevel = 1

############################################################################
# Trace Invocations
#     If true, then each local and remote invocation will generate a trace 
#     message.
#
#     Valid values = 0 or 1
#
traceInvocations = 0

############################################################################
# Trace thread id
#     If true, all trace messages include the thread id of the thread doing
#     the logging.
#
#     Valid values = 0 or 1
#
traceThreadId = 0

############################################################################
# dumpConfiguration
#     Set to 1 to cause the ORB to dump the current set of configuration
#     parameters.
#
#     Valid values = 0 or 1
#
dumpConfiguration = 0

############################################################################
# maxGIOPVersion
#
#   Set the maximum GIOP version the ORB should support. The ORB tries
#   to match the <major>.<minor> version as specified.
#
#   Valid values = 1.0 | 1.1 | 1.2
#
maxGIOPVersion = 1.2

############################################################################
# giopMaxMsgSize
#
#    This value defines the ORB-wide limit on the size of GIOP message 
#    (excluding the header). If this limit is exceeded, the ORB will
#    refuse to send or receive the message and raise a MARSHAL exception.
#
#    Valid values = (n >= 8192)
#
giopMaxMsgSize = 2097152    # 2 MBytes.


############################################################################
# strictIIOP flag
#    Enable vigorous check on incoming IIOP messages
#
#    In some (sloppy) IIOP implementations, the message size value in
#    the header can be larger than the actual body size, i.e. there is
#    garbage at the end. As the spec does not say the message size
#    must match the body size exactly, this is not a clear violation
#    of the spec.
#
#    If this flag is non-zero, the incoming message is expected to
#    be well-behaved. Any messages that have garbage at the end will
#    be rejected.
#    
#    The default value of this flag is true, so invalid messages are
#    rejected. If you set it to zero, the ORB will silently skip the
#    unread part. The problem with this behaviour is that the header
#    message size may actually be garbage, caused by a bug in the
#    sender's code. The receiving thread may block forever on the
#    strand as it tries to read more data from it. In this case the
#    sender won't send any more as it thinks it has marshalled in all
#    the data.
#
#    Valid values = 0 or 1
#
strictIIOP = 1

############################################################################
# lcdMode
#
#   Set to 1 to enable 'Lowest Common Denominator' Mode.
#   This will disable various features of IIOP and GIOP which are
#   poorly supported by some ORBs, and disable warnings/errors when
#   certain types of erroneous message are received on the wire.
#
#   Valid values = 0 or 1
#
lcdMode = 0

############################################################################
# tcAliasExpand flag
#
#    This flag is used to indicate whether TypeCodes associated with Anys
#    should have aliases removed. This functionality is included because
#    some ORBs will not recognise an Any containing a TypeCode with
#    aliases to be the same as the actual type contained in the Any. Note
#    that omniORB will always remove top-level aliases, but will not remove
#    aliases from TypeCodes that are members of other TypeCodes (e.g.
#    TypeCodes for members of structs etc.), unless tcAliasExpand is set to 1.
#    There is a performance penalty when inserting into an Any if 
#    tcAliasExpand is set to 1. The default value is 0 (i.e. aliases of
#    member TypeCodes are not expanded). Note that aliases won't be expanded
#    when one of the non-type-safe methods of inserting into an Any is
#    used (i.e. when the replace() member function or non - type-safe Any
#    constructor is used. )
#
#     Valid values = 0 or 1
#
tcAliasExpand = 0

############################################################################
# useTypeCodeIndirections
#
#    If true (the default), typecode indirections will be used. Set
#    this to false to disable that. Setting this to false might be
#    useful to interoperate with another ORB implementation that cannot
#    handle indirections properly.
#   
#    Valid values = 0 or 1
useTypeCodeIndirections = 1

############################################################################
# acceptMisalignedTcIndirections
#
#    If true, try to fix a mis-aligned indirection in a typecode. This
#    is used to work around a bug in some versions of Visibroker's Java
#    ORB.
#   
#    Valid values = 0 or 1
acceptMisalignedTcIndirections = 0


############################################################################
# scanGranularity
#
#   The granularity at which the ORB scans for idle connections.
#   This value determines the minimum value that inConScanPeriod or
#   outConScanPeriod can be.
#
#   Valid values = (n >= 0 in seconds) 
#                   0 --> do not scan for idle connections.
#
scanGranularity = 5


############################################################################
# nativeCharCodeSet
#
#   set the native code set for char and string
#
nativeCharCodeSet = ISO-8859-1

############################################################################
# nativeWCharCodeSet
#
#   set the native code set for wchar and wstring
#
nativeWCharCodeSet = UTF-16

############################################################################
# omniORB_27_CompatibleAnyExtraction
#
#   In omniORB pre-2.8.0 versions, the CORBA::Any extraction operator for
#     1. unbounded string operator>>=(char*&)
#     2. bounded string   operator>>=(to_string)
#     3. object reference operator>>=(A_ptr&) for interface A
#   Return a copy of the value. The caller must free the returned
#   value later.
#
#   With 2.8.0 and later, the semantics becomes non-copy, i.e. the Any
#   still own the storage of the returned value.
#   This would cause a problem in a program that is written to use the
#   pre-2.8.0 semantics. To make it easier for the transition,
#   set omniORB_27_CompatibleAnyExtraction to 1.
#   This would revert the semantics to the pre-2.8.0 versions.
#
#   Valid values = 0 or 1
#
omniORB_27_CompatibleAnyExtraction = 0

############################################################################
# abortOnInternalError
#
#   If the value of this variable is TRUE then the ORB will abort
#   instead of throwing an exception when a fatal internal error is
#   detected. This is useful for debuging the ORB -- as the stack will
#   not be unwound by the exception handler, so a stack trace can be
#   obtained.
#   It is hoped that this will not often be needed by users of omniORB!
#
#   Valid values = 0 or 1
#
abortOnInternalError = 0


############################################################################
############################################################################
############################################################################
#                                                                          #
#            Client Side Options                                           #
#                                                                          #
############################################################################

############################################################################
# InitRef
#
#   Specify the objects the ORB should return in response to calls to
#   resolve_initial_references.
#
#   There can be more than one configuration line defining InitRef.
#   Each line adds one initial reference to the ORB.
#
#   Here are some valid examples:
#
#   Specify the root context of the Naming Service. (Notice the end of line
#   continuation marker '\'
#
#   InitRef = NameService=IOR:010000002800000049444c3a6f6d672e6f72672f436f734\
#e616d696e672f4e616d696e67436f6e746578743a312e300001000000000000002c000000010\
#102000c0000003139322e3136382e312e3000f90a00000c000000349568c45cb1e6780000000\
#100000000
#
#   Alternatively, and more cleanly, specify the Naming service with a
#   corbaname URI:
#
InitRef = NameService=corbaname::michelle.dsp.sun.ac.za
#
#
#   Specify the Trading service and the interface repository using corbaloc:
#
#   InitRef = TradingService=corbaloc:iiop:marrow:5009/MyObjectKey
#           = InterfaceRepository=corbaloc::1.2 at marrow:5009/Intf
#
#   The default for the set of initial references is empty.

############################################################################
# DefaultInitRef
#
#   DefaultInitRef provides a prefix string which is used to resolve 
#   otherwise unknown names. When resolve_initial_references() is unable to 
#   resolve a name which has been specifically configured (with InitRef),
#   it constructs a string consisting of the default prefix, a `/' character,
#   and the name requested. The string is then fed to string_to_object().
#   For example, if DefaultInitRef is set up like this:
DefaultInitRef = corbaloc:iiop:fee.dsp.sun.ac.za/NameService
#   A call to resolve_initial_references("MyService") will return the object
#   reference denoted by `corbaloc::myhost.example.com/MyService'.
#
#   The default is empty.


############################################################################
# clientTransportRule
#
#    When the client receives an IOR that defines 1 or more ways to contact
#    the server, the rules in clientTransportRule filter and prioritise
#    the order in which the transports are used. 
#
#    There can be more than one configuration line of this type.
#    Each line adds one rule to the selection process. The rules are applied
#    in the order they are defined. The relative positions of the rules define
#    the relative priority. The first rule has the highest priority.
#
#    The syntax of a rule is as follows:
#    clientTransportRule =  [^]<address mask>      [action]+
#
#        <address mask> can be:
#            1. localhost            the address is this machine
#            2. w.x.y.z/m1.m2.m3.m4  IPv4 address with the bits selected by
#                                    the mask. e.g. 172.16.0.0/255.240.0.0
#            3. *                    the wildcard that matches any address
#
#        <action>+ can be one or more of the following:
#            1. none              Do not use this address
#            2. tcp,ssl,unix      Use the 3 transports in the specified order 
#                                 if any or all of them are available
#            3. bidir             Any connection to this address should be
#                                 used bidirectionally.
#
#         The optional prefix ^ before <address mask>, if present, causes
#         the ORB to remove previously declared clientTransportRules from
#         its internal store because adding the current rule.
#
#    By default, no rule is defined. The ORB implicitly uses the following
#    rule:
#        clientTransportRule =     *   unix,tcp,ssl
#    If any rule is specified, no implicit rule will be applied.
#
#    Given an IOR, for each of the addresses within it, the ORB matches the
#    address to the rules. If one is found, the position of the matched rule
#    and the action is noted. If the action is none, the address is discarded.
#    If the action does not contain the transport the address is specified for,
#    e.g. the action is "ssl" but the address is "tcp", the address is 
#    discarded. Otherwise, the address and action is entered as one of the
#    candidates to use. Having gone through all the addresses, the candidiates
#    available are then ordered based on the priority of the matching rules and
#    used accordingly.
#
#    Here are some example usages:
#
#    A) Restrict to only contacting server on the same host:
#           clientTransportRule = localhost      unix,tcp
#                               =   *            none
#    B) Use tcp to contact servers in the intranet and must use bidirectional
#       ssl otherwise.
#           clientTransportRule = 172.16.0.0/255.240.0.0  unix,tcp
#                               =            *            bidir,ssl
#    C) When a fast network (192.168.1.0) exists in the cluster, use it in
#       preference to the external network.
#           clientTransportRule = 192.168.1.0/255.255.255.0  unix,tcp
#           clientTransportRule = 172.16.0.0/255.240.0.0     unix,tcp
#                               =       *                    none
#     
#             

           clientTransportRule = 146.232.147.0/255.255.255.0      unix,tcp
                               =   *            none


############################################################################
# clientCallTimeOutPeriod
#
#    Call timeout. On the client side, if a remote call takes longer
#    than the timeout value, the ORB will shutdown the connection and
#    raise a COMM_FAILURE.
#
#    Valid values = (n >= 0 in milliseconds) 
#                    0 --> no timeout. Block till a reply comes back
#
clientCallTimeOutPeriod = 0

############################################################################
# supportPerThreadTimeOut
#

#    If true, each client thread may have its own timeout. This adds
#    some overhead to each call, so it is off by default.
#
#    Valid values = 0 or 1
#
supportPerThreadTimeOut = 0

############################################################################
# outConScanPeriod
#
#   Idle connections shutdown. The ORB periodically scans all the
#   outgoing connections to detect if they are idle.
#   If no operation has passed through a connection for a scan period,
#   the ORB would treat this connection idle and shut it down.
#
#   Valid values = (n >= 0 in seconds) 
#                   0 --> do not close idle connections.
#
outConScanPeriod = 120

############################################################################
# maxGIOPConnectionPerServer
#
#   The ORB could open more than one connection to a server
#   depending on the number of concurrent invocations to the same
#   server. This variable decides the maximum number of connections 
#   to use per server. This variable is read only once at ORB_init.
#   If the number of concurrent invocations exceeds this number, the
#   extra invocations are blocked until the the outstanding ones
#   return.
#
#   Valid values = (n >= 1) 
#
maxGIOPConnectionPerServer = 5

############################################################################
# oneCallPerConnection
#
#   1 means only one call can be in progress at any time per connection.
#
#   Valid values = 0 or 1
#
oneCallPerConnection = 1


############################################################################
# offerBiDirectionalGIOP
#
#   Applies to the client side. Set to 1 to indicate that the
#   ORB may choose to use a connection to do bidirectional GIOP
#   calls. Set to 0 means the ORB should never do bidirectional.
#
#   Valid values = 0 or 1
#
offerBiDirectionalGIOP = 0

############################################################################
# diiThrowsSysExceptions
#
#   If the value of this variable is 1 then the Dynamic Invocation Interface
#   functions (Request::invoke, send_oneway, send_deferred, get_response,
#   poll_response) will throw system exceptions as appropriate. Otherwise 
#   the exception will be stored in the Environment pseudo object associated
#   with the Request. By default system exceptions are passed through the 
#   Environment object.
#
#   Valid values = 0 or 1
#
diiThrowsSysExceptions = 0

############################################################################
# verifyObjectExistsAndType
#
#   If the value of this variable is 0 then the ORB will not
#   send a GIOP LOCATE_REQUEST message to verify the existence of
#   the object prior to the first invocation. Set this variable
#   if the other end is a buggy ORB that cannot handle GIOP
#   LOCATE_REQUEST. 
#
#   Valid values = 0 or 1
#
verifyObjectExistsAndType = 1

############################################################################
# giopTargetAddressMode
#
#   On the client side, if it is to use GIOP 1.2 or above to talk to a 
#   server, use this Target Address Mode.
#
#   Valid values = 0 (GIOP::KeyAddr)
#                  1 (GIOP::ProfileAddr)
#                  2 (GIOP::ReferenceAddr)
#
giopTargetAddressMode = 0

############################################################################
# bootstrapAgentHostname
#
# Applies to the client side. Non-zero enables the use of Sun's bootstrap
# agent protocol to resolve initial references. The value is the host name
# where requests for initial references should be sent. Only use this
# option to interoperate with Sun's javaIDL.
#
#bootstrapAgentHostname = localhost

############################################################################
# bootstrapAgentPort
#
# Applies to the client side. Use this port no. to contact the bootstrap 
# agent.
#
bootstrapAgentPort = 900


############################################################################
# principal
#
# The value of the principal field in GIOP 1.0 and 1.1 requests
#
# principal = me



############################################################################
############################################################################
############################################################################
#                                                                          #
#            Server Side Options                                           #
#                                                                          #
############################################################################


############################################################################
# endPoint
# endPointNoPublish
# endPointNoListen
# endPointPublishAllIFs
#
#    There are 3 possible way to specify the endpoints a server should create.
#    The 3 forms differ in the following ways:
#         endPoint - create, listen on the connection and publish it in IORs
#         endPointNoPublish - same as endPoint but do not publish it in IORs
#         endPointNoListen - only publish it in IORs
#
#    There can be more than one configuration line defining endPoints.
#    Each line adds one endpoint to the server.
#
#    Each configuration line can start with the keyword 'endPoint', e.g.
#        endPoint = giop:tcp:neem:12345
#        endPoint = giop:ssl:neem:23456
#
#    Or a short hand form can be used, like this:
#
#        endPoint = giop:tcp:neem:12345
#                 = giop:ssl:neem:23456
#
#    The value of an endPoint configuration is a transport specific string.
#    The transport strings recongised by the ORB and its supported transports
#    are:
#         1. giop:tcp:[<host>]:[<port>]
#               The <host> and <port> parameter are optional. If either or
#               both are missing, the ORB fills in the blank. For example,
#               "giop:tcp::" will cause the ORB to pick an arbitrary tcp port
#               as the endpoint and it will pick one IP address of the host
#               as the host name.
#
#         2. giop:ssl:[<host>]:[<port>]
#               Similar to the tcp transport except that SSL is run on top
#               of the tcp connection.
#
#         3. giop:unix:[<filename>]
#               Create a unix domain socket and bind to the file with pathname
#               <filename>. If <filename> is not specified, e.g. "giop:unix:",
#               the ORB would pick a file name based on the process ID and 
#               the current timestamp.
#               Therefore, if one wants to write an application that always
#               restarts to use the same file to bind to its unix domain 
#               socket, a filename should be specified in the transport string.
#
#   It is possible to use the ORB's transport extension framework to add
#   a new transport to the ORB. In that case, the transport must define its
#   own transport string format and must obey the colon separation rule.
#   For example, if one is to create a transport which executes an arbitrary
#   shell script and let the ORB use its stdin and stdout for sending and
#   receiving giop messages,  a transport string could look like this:
#         giop:shell:magic_gw
#                ^     ^
#                |     +--------- transport specific part
#                +--------------- transport name
#
#   By default, no endPoint configuration is defined. In this case the ORB
#   will create just 1 tcp endpoint as if the line:
#         endPoint = giop:tcp::
#   is specified in the configuration file
#
#   Other than tcp, none of the transports are guaranteed to be available
#   on all platforms. If one specifies say:
#          endPoint = giop:ssl::
#   and the ORB cannot initialise an ssl endpoint, the INITIALIZE exception
#   will be raised. Even though ssl is supported on a platform, its transport
#   is implemented as a separate shared library and must be linked with the
#   application for the ORB to initialise the endpoint.
#
#   Here are some examples of valid endPoint configurations:
#
#endPoint = giop:tcp:fee.dsp.sun.ac.za:56791
#endPoint = giop:tcp:michelle.dsp.sun.ac.za:56791
#endPoint = giop:unix::
#            = giop:ssl::
#
#   endPointNoPublish = giop:tcp::
#                     = giop:unix:
#                     = giop:ssl::
#
#   endPointNoListen = giop:tcp:192.168.1.1:12345
#
#
#   If the endPointPublishAllIFs boolean parameter is set to true, all
#   non-loopback IP network interfaces are published in IORs, rather
#   than just the first one.


############################################################################
# serverTransportRule
#
#    When the server sees a connection request from a client, it looks at the
#    client's address and uses the rules in serverTransportRule to determine
#    if the connection should be accepted.
#
#    There can be more than one configuration line of this type.
#    Each line adds one rule to the selection process. The rules are applied
#    in the order they are defined until one matching rule is found. 
#
#    The syntax of a rule is as follows:
#    serverTransportRule =   [^]<address mask>      [action]+
#
#        <address mask> can be:
#            1. localhost            if the address is this machine
#            2. w.x.y.z/m1.m2.m3.m4  IPv4 address with the bits selected by
#                                    the mask. e.g. 172.16.0.0/255.240.0.0
#            3. *                    the wildcard that matches any address
#
#        <action>+ can be one or more of the following:
#            1. none              Do not accept this connection.
#            2. tcp,ssl,unix      Accept if the transport is any of the
#                                 3 specified.
#            3. bidir             Allow bidirectional requests if the
#                                 client requests it.
#
#         The optional prefix ^ before <address mask>, if present, causes
#         the ORB to remove previously declared clientTransportRules from
#         its internal store because adding the current rule.
#
#    By default, no rule is defined. The ORB implicitly uses the following
#    rule:
#         serverTransportRule =    *     unix,tcp,ssl
#    If any rule is specified, the implicit rule will not be applied.
#
#    Here are some example usages:
#
#    A) Only accept connections from our intranet
#        serverTransportRule = localhost                  unix,tcp,ssl
#                            = 172.16.0.0/255.240.0.0     tcp,ssl
#                            = *                          none
#
#    B) Only accept ssl connections if the client is not on our intranet
#        serverTransportRule = localhost                  unix,tcp,ssl
#                            = 172.16.0.0/255.240.0.0     tcp,ssl
#                            = *                          bidir,ssl

           serverTransportRule = 146.232.147.0/255.255.255.0   unix,tcp
                               =   *                           none


############################################################################
# serverCallTimeOutPeriod
#
#    Call timeout. On the server side, if the ORB cannot completely 
#    unmarshal a call's arguments in the defined timeout, it shutdown the
#    connection.
#
#    Valid values = (n >= 0 in milliseconds) 
#                    0 --> no timeout.
#
serverCallTimeOutPeriod = 0

############################################################################
# inConScanPeriod
#
#   Idle connections shutdown. The ORB periodically scans all the
#   incoming connections to detect if they are idle.
#   If no operation has passed through a connection for a scan period,
#   the ORB would treat this connection idle and shut it down.
#
#    Valid values = (n >= 0 in seconds) 
#                    0 --> do not close idle connections.
#
inConScanPeriod = 180


############################################################################
# threadPerConnectionPolicy
#
#   1 means the ORB should dedicate one thread per connection on the 
#   server side. 0 means the ORB should dispatch a thread from a pool
#   to a connection only when a request has arrived.
#
#   Valid values = 0 or 1
#
threadPerConnectionPolicy = 1

############################################################################
# maxServerThreadPerConnection
#
#   The max. no. of threads the server will dispatch to serve the
#   requests coming from one connection.
#
#   Valid values = (n >= 1) 
#
maxServerThreadPerConnection = 100


############################################################################
# maxServerThreadPoolSize
#   The max. no. of threads the server will allocate to do various
#   ORB tasks. This number does not include the dedicated thread
#   per connection when the threadPerConnectionPolicy is in effect
#
#   Valid values = (n >= 1) 
#
maxServerThreadPoolSize = 100

############################################################################
# threadPerConnectionUpperLimit
#
#   If the one thread per connection is in effect, this number is
#   the max. no. of connections the server will allow before it
#   switch off the one thread per connection policy and move to
#   the thread pool policy.
#
#   Valid values = (n >= 1) 
#
threadPerConnectionUpperLimit = 10000

############################################################################
# threadPerConnectionLowerLimit
#
#   If the one thread per connection was in effect and was switched
#   off because threadPerConnectionUpperLimit has been exceeded
#   previously, this number tells when the policy should be restored
#   when the number of connections drop.
#
#   Valid values = (n >= 1 && n < threadPerConnectionUpperLimit) 
#
threadPerConnectionLowerLimit = 9000

############################################################################
# threadPoolWatchConnection
#
#   1 means that after dispatching an upcall in thread pool mode, the
#   thread should watch the connection for a short time before
#   returning to the pool. This leads to less thread switching for
#   series of calls from a single client, but is less fair if there
#   are concurrent clients.

threadPoolWatchConnection = 1

############################################################################
# acceptBiDirectionalGIOP
#
#   Applies to the server side. Set to 1 to indicate that the
#   ORB may choose to accept a client's offer to use bidirectional
#   GIOP calls on a connection. Set to 0 means the ORB should
#   never accept any bidirectional offer and should stick to normal
#   GIOP.
#
#   Valid values = 0 or 1
#
acceptBiDirectionalGIOP = 0

############################################################################
# unixTransportDirectory
#
#   Applies to the server side. Determine the directory in which
#   the unix domain socket is to be created.
#
#   Valid values = a valid pathname for a directory
#
unixTransportDirectory = /tmp/omni-%u
# %u is expanded into user name.

############################################################################
# unixTransportPermission
#
#   Applies to the server side. Determine the permission mode bits
#   the unix domain socket is set to.
#
#   Valid values = unix permission mode bits in octal radix (e.g. 0755)
#
unixTransportPermission = 0777

############################################################################
# supportCurrent
#
#   If the value of this variable is TRUE, per-thread information is
#   made available through the Current interfaces, e.g.
#   PortableServer::Current. If you do not need this information, you
#   can set the value to 0, resulting in a small performance
#   improvement.
#
supportCurrent = 1

############################################################################
# objectTableSize
#
#   Hash table size of the Active Object Map. If this is zero, the ORB
#   uses a dynamically resized open hash table. This is normally the  
#   best option, but it leads to less predictable performance since   
#   any operation which adds or removes a table entry may trigger a   
#   resize. If you set this to a non-zero value, the hash table has   
#   the specified number of entries, and is never resized. Note that  
#   the hash table is open, so this does not limit the number of      
#   active objects, just how efficiently they can be located.
#
#   Valid values = (n >= 0)
#                  0 --> use a dynamically resized table.
#
objectTableSize = 0

############################################################################
# poaHoldRequestTimeout
#
#   This variable can be used to set a time-out for calls being held
#   in a POA which is in the HOLDING state.  It gives the time in
#   milliseconds after which a TRANSIENT exception will be thrown if the
#   POA is not transitioned to a different state.
#
#   Valid values = (n >= 0 in milliseconds) 
#                   0 --> no time-out.
#
poaHoldRequestTimeout = 0

############################################################################
# poaUniquePersistentSystemIds
#
#   The POA specification requires that object ids in POAs with the
#   PERSISTENT and SYSTEM_ID policies are unique between
#   instantiations of the POA. Older versions of omniORB did not
#   comply with that, and reused object ids. With this value true, the
#   POA has the correct behaviour; with false, the POA uses the old
#   scheme for compatibility.
#
#   Valid values = 0 or 1
#
poaUniquePersistentSystemIds = 1

############################################################################
# supportBootstrapAgent
#
# Applies to the server side. 1 means enable the support for Sun's
# bootstrap agent protocol.  This enables interoperability between omniORB
# servers and Sun's javaIDL clients. When this option is enabled, an
# omniORB server will respond to a bootstrap agent request.
supportBootstrapAgent = 0
-------------- next part --------------
############################################################################
#           omniORB (4.0 or above) configuration file                      #
############################################################################

############################################################################
############################################################################
############################################################################
#                                                                          #
#            ORB wide options                                              #
#                                                                          #
############################################################################

############################################################################
# Tracing level
#     level 0 -  critical errors only
#     level 1 -  informational messages only
#     level 2 -  configuration information and warnings
#     level 5 -  the above plus report server thread creation and
#                communication socket shutdown
#     level 10 - the above plus execution trace messages
#     level 25 - output trace message per send or receive giop message
#     level 30 - dump up to 128 bytes of a giop message
#     level 40 - dump the complete giop message
#
#     Valid values = (n >= 0)
#

#traceLevel = 1

############################################################################
# Trace Invocations
#     If true, then each local and remote invocation will generate a trace 
#     message.
#
#     Valid values = 0 or 1
#
traceInvocations = 0

############################################################################
# Trace thread id
#     If true, all trace messages include the thread id of the thread doing
#     the logging.
#
#     Valid values = 0 or 1
#
traceThreadId = 0

############################################################################
# dumpConfiguration
#     Set to 1 to cause the ORB to dump the current set of configuration
#     parameters.
#
#     Valid values = 0 or 1
#
dumpConfiguration = 0

############################################################################
# maxGIOPVersion
#
#   Set the maximum GIOP version the ORB should support. The ORB tries
#   to match the <major>.<minor> version as specified.
#
#   Valid values = 1.0 | 1.1 | 1.2
#
maxGIOPVersion = 1.2

############################################################################
# giopMaxMsgSize
#
#    This value defines the ORB-wide limit on the size of GIOP message 
#    (excluding the header). If this limit is exceeded, the ORB will
#    refuse to send or receive the message and raise a MARSHAL exception.
#
#    Valid values = (n >= 8192)
#
giopMaxMsgSize = 2097152    # 2 MBytes.


############################################################################
# strictIIOP flag
#    Enable vigorous check on incoming IIOP messages
#
#    In some (sloppy) IIOP implementations, the message size value in
#    the header can be larger than the actual body size, i.e. there is
#    garbage at the end. As the spec does not say the message size
#    must match the body size exactly, this is not a clear violation
#    of the spec.
#
#    If this flag is non-zero, the incoming message is expected to
#    be well-behaved. Any messages that have garbage at the end will
#    be rejected.
#    
#    The default value of this flag is true, so invalid messages are
#    rejected. If you set it to zero, the ORB will silently skip the
#    unread part. The problem with this behaviour is that the header
#    message size may actually be garbage, caused by a bug in the
#    sender's code. The receiving thread may block forever on the
#    strand as it tries to read more data from it. In this case the
#    sender won't send any more as it thinks it has marshalled in all
#    the data.
#
#    Valid values = 0 or 1
#
strictIIOP = 1

############################################################################
# lcdMode
#
#   Set to 1 to enable 'Lowest Common Denominator' Mode.
#   This will disable various features of IIOP and GIOP which are
#   poorly supported by some ORBs, and disable warnings/errors when
#   certain types of erroneous message are received on the wire.
#
#   Valid values = 0 or 1
#
lcdMode = 0

############################################################################
# tcAliasExpand flag
#
#    This flag is used to indicate whether TypeCodes associated with Anys
#    should have aliases removed. This functionality is included because
#    some ORBs will not recognise an Any containing a TypeCode with
#    aliases to be the same as the actual type contained in the Any. Note
#    that omniORB will always remove top-level aliases, but will not remove
#    aliases from TypeCodes that are members of other TypeCodes (e.g.
#    TypeCodes for members of structs etc.), unless tcAliasExpand is set to 1.
#    There is a performance penalty when inserting into an Any if 
#    tcAliasExpand is set to 1. The default value is 0 (i.e. aliases of
#    member TypeCodes are not expanded). Note that aliases won't be expanded
#    when one of the non-type-safe methods of inserting into an Any is
#    used (i.e. when the replace() member function or non - type-safe Any
#    constructor is used. )
#
#     Valid values = 0 or 1
#
tcAliasExpand = 0

############################################################################
# useTypeCodeIndirections
#
#    If true (the default), typecode indirections will be used. Set
#    this to false to disable that. Setting this to false might be
#    useful to interoperate with another ORB implementation that cannot
#    handle indirections properly.
#   
#    Valid values = 0 or 1
useTypeCodeIndirections = 1

############################################################################
# acceptMisalignedTcIndirections
#
#    If true, try to fix a mis-aligned indirection in a typecode. This
#    is used to work around a bug in some versions of Visibroker's Java
#    ORB.
#   
#    Valid values = 0 or 1
acceptMisalignedTcIndirections = 0


############################################################################
# scanGranularity
#
#   The granularity at which the ORB scans for idle connections.
#   This value determines the minimum value that inConScanPeriod or
#   outConScanPeriod can be.
#
#   Valid values = (n >= 0 in seconds) 
#                   0 --> do not scan for idle connections.
#
scanGranularity = 5


############################################################################
# nativeCharCodeSet
#
#   set the native code set for char and string
#
nativeCharCodeSet = ISO-8859-1

############################################################################
# nativeWCharCodeSet
#
#   set the native code set for wchar and wstring
#
nativeWCharCodeSet = UTF-16

############################################################################
# omniORB_27_CompatibleAnyExtraction
#
#   In omniORB pre-2.8.0 versions, the CORBA::Any extraction operator for
#     1. unbounded string operator>>=(char*&)
#     2. bounded string   operator>>=(to_string)
#     3. object reference operator>>=(A_ptr&) for interface A
#   Return a copy of the value. The caller must free the returned
#   value later.
#
#   With 2.8.0 and later, the semantics becomes non-copy, i.e. the Any
#   still own the storage of the returned value.
#   This would cause a problem in a program that is written to use the
#   pre-2.8.0 semantics. To make it easier for the transition,
#   set omniORB_27_CompatibleAnyExtraction to 1.
#   This would revert the semantics to the pre-2.8.0 versions.
#
#   Valid values = 0 or 1
#
omniORB_27_CompatibleAnyExtraction = 0

############################################################################
# abortOnInternalError
#
#   If the value of this variable is TRUE then the ORB will abort
#   instead of throwing an exception when a fatal internal error is
#   detected. This is useful for debuging the ORB -- as the stack will
#   not be unwound by the exception handler, so a stack trace can be
#   obtained.
#   It is hoped that this will not often be needed by users of omniORB!
#
#   Valid values = 0 or 1
#
abortOnInternalError = 0


############################################################################
############################################################################
############################################################################
#                                                                          #
#            Client Side Options                                           #
#                                                                          #
############################################################################

############################################################################
# InitRef
#
#   Specify the objects the ORB should return in response to calls to
#   resolve_initial_references.
#
#   There can be more than one configuration line defining InitRef.
#   Each line adds one initial reference to the ORB.
#
#   Here are some valid examples:
#
#   Specify the root context of the Naming Service. (Notice the end of line
#   continuation marker '\'
#
#   InitRef = NameService=IOR:010000002800000049444c3a6f6d672e6f72672f436f734\
#e616d696e672f4e616d696e67436f6e746578743a312e300001000000000000002c000000010\
#102000c0000003139322e3136382e312e3000f90a00000c000000349568c45cb1e6780000000\
#100000000
#
#   Alternatively, and more cleanly, specify the Naming service with a
#   corbaname URI:
#
InitRef = NameService=corbaname::fee.dsp.sun.ac.za
#
#
#   Specify the Trading service and the interface repository using corbaloc:
#
#   InitRef = TradingService=corbaloc:iiop:marrow:5009/MyObjectKey
#           = InterfaceRepository=corbaloc::1.2 at marrow:5009/Intf
#
#   The default for the set of initial references is empty.

############################################################################
# DefaultInitRef
#
#   DefaultInitRef provides a prefix string which is used to resolve 
#   otherwise unknown names. When resolve_initial_references() is unable to 
#   resolve a name which has been specifically configured (with InitRef),
#   it constructs a string consisting of the default prefix, a `/' character,
#   and the name requested. The string is then fed to string_to_object().
#   For example, if DefaultInitRef is set up like this:
#      DefaultInitRef = corbaloc::myhost.example.com
#   A call to resolve_initial_references("MyService") will return the object
#   reference denoted by `corbaloc::myhost.example.com/MyService'.
#
DefaultInitRef = corbaloc:iiop:fee.dsp.sun.ac.za/Echo


############################################################################
# clientTransportRule
#
#    When the client receives an IOR that defines 1 or more ways to contact
#    the server, the rules in clientTransportRule filter and prioritise
#    the order in which the transports are used. 
#
#    There can be more than one configuration line of this type.
#    Each line adds one rule to the selection process. The rules are applied
#    in the order they are defined. The relative positions of the rules define
#    the relative priority. The first rule has the highest priority.
#
#    The syntax of a rule is as follows:
#    clientTransportRule =  [^]<address mask>      [action]+
#
#        <address mask> can be:
#            1. localhost            the address is this machine
#            2. w.x.y.z/m1.m2.m3.m4  IPv4 address with the bits selected by
#                                    the mask. e.g. 172.16.0.0/255.240.0.0
#            3. *                    the wildcard that matches any address
#
#        <action>+ can be one or more of the following:
#            1. none              Do not use this address
#            2. tcp,ssl,unix      Use the 3 transports in the specified order 
#                                 if any or all of them are available
#            3. bidir             Any connection to this address should be
#                                 used bidirectionally.
#
#         The optional prefix ^ before <address mask>, if present, causes
#         the ORB to remove previously declared clientTransportRules from
#         its internal store because adding the current rule.
#
#    By default, no rule is defined. The ORB implicitly uses the following
#    rule:
#        clientTransportRule =     *   unix,tcp,ssl
#    If any rule is specified, no implicit rule will be applied.
#
#    Given an IOR, for each of the addresses within it, the ORB matches the
#    address to the rules. If one is found, the position of the matched rule
#    and the action is noted. If the action is none, the address is discarded.
#    If the action does not contain the transport the address is specified for,
#    e.g. the action is "ssl" but the address is "tcp", the address is 
#    discarded. Otherwise, the address and action is entered as one of the
#    candidates to use. Having gone through all the addresses, the candidiates
#    available are then ordered based on the priority of the matching rules and
#    used accordingly.
#
#    Here are some example usages:
#
#    A) Restrict to only contacting server on the same host:
#           clientTransportRule = localhost      unix,tcp
#                               =   *            none
#    B) Use tcp to contact servers in the intranet and must use bidirectional
#       ssl otherwise.
#           clientTransportRule = 172.16.0.0/255.240.0.0  unix,tcp
#                               =            *            bidir,ssl
#    C) When a fast network (192.168.1.0) exists in the cluster, use it in
#       preference to the external network.
#           clientTransportRule = 192.168.1.0/255.255.255.0  unix,tcp
#           clientTransportRule = 172.16.0.0/255.240.0.0     unix,tcp
#                               =       *                    none
#     
#             

           clientTransportRule = 146.232.147.0/255.255.255.0      unix,tcp
                               =   *            		  none


############################################################################
# clientCallTimeOutPeriod
#
#    Call timeout. On the client side, if a remote call takes longer
#    than the timeout value, the ORB will shutdown the connection and
#    raise a COMM_FAILURE.
#
#    Valid values = (n >= 0 in milliseconds) 
#                    0 --> no timeout. Block till a reply comes back
#
clientCallTimeOutPeriod = 0

############################################################################
# supportPerThreadTimeOut
#

#    If true, each client thread may have its own timeout. This adds
#    some overhead to each call, so it is off by default.
#
#    Valid values = 0 or 1
#
supportPerThreadTimeOut = 0

############################################################################
# outConScanPeriod
#
#   Idle connections shutdown. The ORB periodically scans all the
#   outgoing connections to detect if they are idle.
#   If no operation has passed through a connection for a scan period,
#   the ORB would treat this connection idle and shut it down.
#
#   Valid values = (n >= 0 in seconds) 
#                   0 --> do not close idle connections.
#
outConScanPeriod = 120

############################################################################
# maxGIOPConnectionPerServer
#
#   The ORB could open more than one connection to a server
#   depending on the number of concurrent invocations to the same
#   server. This variable decides the maximum number of connections 
#   to use per server. This variable is read only once at ORB_init.
#   If the number of concurrent invocations exceeds this number, the
#   extra invocations are blocked until the the outstanding ones
#   return.
#
#   Valid values = (n >= 1) 
#
maxGIOPConnectionPerServer = 5

############################################################################
# oneCallPerConnection
#
#   1 means only one call can be in progress at any time per connection.
#
#   Valid values = 0 or 1
#
oneCallPerConnection = 1


############################################################################
# offerBiDirectionalGIOP
#
#   Applies to the client side. Set to 1 to indicate that the
#   ORB may choose to use a connection to do bidirectional GIOP
#   calls. Set to 0 means the ORB should never do bidirectional.
#
#   Valid values = 0 or 1
#
offerBiDirectionalGIOP = 0

############################################################################
# diiThrowsSysExceptions
#
#   If the value of this variable is 1 then the Dynamic Invocation Interface
#   functions (Request::invoke, send_oneway, send_deferred, get_response,
#   poll_response) will throw system exceptions as appropriate. Otherwise 
#   the exception will be stored in the Environment pseudo object associated
#   with the Request. By default system exceptions are passed through the 
#   Environment object.
#
#   Valid values = 0 or 1
#
diiThrowsSysExceptions = 0

############################################################################
# verifyObjectExistsAndType
#
#   If the value of this variable is 0 then the ORB will not
#   send a GIOP LOCATE_REQUEST message to verify the existence of
#   the object prior to the first invocation. Set this variable
#   if the other end is a buggy ORB that cannot handle GIOP
#   LOCATE_REQUEST. 
#
#   Valid values = 0 or 1
#
verifyObjectExistsAndType = 1

############################################################################
# giopTargetAddressMode
#
#   On the client side, if it is to use GIOP 1.2 or above to talk to a 
#   server, use this Target Address Mode.
#
#   Valid values = 0 (GIOP::KeyAddr)
#                  1 (GIOP::ProfileAddr)
#                  2 (GIOP::ReferenceAddr)
#
giopTargetAddressMode = 0

############################################################################
# bootstrapAgentHostname
#
# Applies to the client side. Non-zero enables the use of Sun's bootstrap
# agent protocol to resolve initial references. The value is the host name
# where requests for initial references should be sent. Only use this
# option to interoperate with Sun's javaIDL.
#
#bootstrapAgentHostname = localhost

############################################################################
# bootstrapAgentPort
#
# Applies to the client side. Use this port no. to contact the bootstrap 
# agent.
#
bootstrapAgentPort = 900


############################################################################
# principal
#
# The value of the principal field in GIOP 1.0 and 1.1 requests
#
# principal = me



############################################################################
############################################################################
############################################################################
#                                                                          #
#            Server Side Options                                           #
#                                                                          #
############################################################################


############################################################################
# endPoint
# endPointNoPublish
# endPointNoListen
# endPointPublishAllIFs
#
#    There are 3 possible way to specify the endpoints a server should create.
#    The 3 forms differ in the following ways:
#         endPoint - create, listen on the connection and publish it in IORs
#         endPointNoPublish - same as endPoint but do not publish it in IORs
#         endPointNoListen - only publish it in IORs
#
#    There can be more than one configuration line defining endPoints.
#    Each line adds one endpoint to the server.
#
#    Each configuration line can start with the keyword 'endPoint', e.g.
#        endPoint = giop:tcp:neem:12345
#        endPoint = giop:ssl:neem:23456
#
#    Or a short hand form can be used, like this:
#
#        endPoint = giop:tcp:neem:12345
#                 = giop:ssl:neem:23456
#
#    The value of an endPoint configuration is a transport specific string.
#    The transport strings recongised by the ORB and its supported transports
#    are:
#         1. giop:tcp:[<host>]:[<port>]
#               The <host> and <port> parameter are optional. If either or
#               both are missing, the ORB fills in the blank. For example,
#               "giop:tcp::" will cause the ORB to pick an arbitrary tcp port
#               as the endpoint and it will pick one IP address of the host
#               as the host name.
#
#         2. giop:ssl:[<host>]:[<port>]
#               Similar to the tcp transport except that SSL is run on top
#               of the tcp connection.
#
#         3. giop:unix:[<filename>]
#               Create a unix domain socket and bind to the file with pathname
#               <filename>. If <filename> is not specified, e.g. "giop:unix:",
#               the ORB would pick a file name based on the process ID and 
#               the current timestamp.
#               Therefore, if one wants to write an application that always
#               restarts to use the same file to bind to its unix domain 
#               socket, a filename should be specified in the transport string.
#
#   It is possible to use the ORB's transport extension framework to add
#   a new transport to the ORB. In that case, the transport must define its
#   own transport string format and must obey the colon separation rule.
#   For example, if one is to create a transport which executes an arbitrary
#   shell script and let the ORB use its stdin and stdout for sending and
#   receiving giop messages,  a transport string could look like this:
#         giop:shell:magic_gw
#                ^     ^
#                |     +--------- transport specific part
#                +--------------- transport name
#
#   By default, no endPoint configuration is defined. In this case the ORB
#   will create just 1 tcp endpoint as if the line:
#         endPoint = giop:tcp::
#   is specified in the configuration file
#
#   Other than tcp, none of the transports are guaranteed to be available
#   on all platforms. If one specifies say:
#          endPoint = giop:ssl::
#   and the ORB cannot initialise an ssl endpoint, the INITIALIZE exception
#   will be raised. Even though ssl is supported on a platform, its transport
#   is implemented as a separate shared library and must be linked with the
#   application for the ORB to initialise the endpoint.
#
#   Here are some examples of valid endPoint configurations:
#
#   endPoint = giop:tcp::
#   endPoint = giop:unix:
#            = giop:ssl::
#
#   endPointNoPublish = giop:tcp::
#                     = giop:unix:
#                     = giop:ssl::
#
#   endPointNoListen = giop:tcp:192.168.1.1:12345
#
#
#   If the endPointPublishAllIFs boolean parameter is set to true, all
#   non-loopback IP network interfaces are published in IORs, rather
#   than just the first one.

#endPoint = giop:tcp:fee.dsp.sun.ac.za:56791

############################################################################
# serverTransportRule
#
#    When the server sees a connection request from a client, it looks at the
#    client's address and uses the rules in serverTransportRule to determine
#    if the connection should be accepted.
#
#    There can be more than one configuration line of this type.
#    Each line adds one rule to the selection process. The rules are applied
#    in the order they are defined until one matching rule is found. 
#
#    The syntax of a rule is as follows:
#    serverTransportRule =   [^]<address mask>      [action]+
#
#        <address mask> can be:
#            1. localhost            if the address is this machine
#            2. w.x.y.z/m1.m2.m3.m4  IPv4 address with the bits selected by
#                                    the mask. e.g. 172.16.0.0/255.240.0.0
#            3. *                    the wildcard that matches any address
#
#        <action>+ can be one or more of the following:
#            1. none              Do not accept this connection.
#            2. tcp,ssl,unix      Accept if the transport is any of the
#                                 3 specified.
#            3. bidir             Allow bidirectional requests if the
#                                 client requests it.
#
#         The optional prefix ^ before <address mask>, if present, causes
#         the ORB to remove previously declared clientTransportRules from
#         its internal store because adding the current rule.
#
#    By default, no rule is defined. The ORB implicitly uses the following
#    rule:
#         serverTransportRule =    *     unix,tcp,ssl
#    If any rule is specified, the implicit rule will not be applied.
#
#    Here are some example usages:
#
#    A) Only accept connections from our intranet
#        serverTransportRule = localhost                  unix,tcp,ssl
#                            = 172.16.0.0/255.240.0.0     tcp,ssl
#                            = *                          none
#
#    B) Only accept ssl connections if the client is not on our intranet
#        serverTransportRule = localhost                  unix,tcp,ssl
#                            = 172.16.0.0/255.240.0.0     tcp,ssl
#                            = *                          bidir,ssl

           serverTransportRule = 146.232.147.0/255.255.255.0      unix,tcp
                               =   *            		  none


############################################################################
# serverCallTimeOutPeriod
#
#    Call timeout. On the server side, if the ORB cannot completely 
#    unmarshal a call's arguments in the defined timeout, it shutdown the
#    connection.
#
#    Valid values = (n >= 0 in milliseconds) 
#                    0 --> no timeout.
#
serverCallTimeOutPeriod = 0

############################################################################
# inConScanPeriod
#
#   Idle connections shutdown. The ORB periodically scans all the
#   incoming connections to detect if they are idle.
#   If no operation has passed through a connection for a scan period,
#   the ORB would treat this connection idle and shut it down.
#
#    Valid values = (n >= 0 in seconds) 
#                    0 --> do not close idle connections.
#
inConScanPeriod = 180


############################################################################
# threadPerConnectionPolicy
#
#   1 means the ORB should dedicate one thread per connection on the 
#   server side. 0 means the ORB should dispatch a thread from a pool
#   to a connection only when a request has arrived.
#
#   Valid values = 0 or 1
#
threadPerConnectionPolicy = 1

############################################################################
# maxServerThreadPerConnection
#
#   The max. no. of threads the server will dispatch to serve the
#   requests coming from one connection.
#
#   Valid values = (n >= 1) 
#
maxServerThreadPerConnection = 100


############################################################################
# maxServerThreadPoolSize
#   The max. no. of threads the server will allocate to do various
#   ORB tasks. This number does not include the dedicated thread
#   per connection when the threadPerConnectionPolicy is in effect
#
#   Valid values = (n >= 1) 
#
maxServerThreadPoolSize = 100

############################################################################
# threadPerConnectionUpperLimit
#
#   If the one thread per connection is in effect, this number is
#   the max. no. of connections the server will allow before it
#   switch off the one thread per connection policy and move to
#   the thread pool policy.
#
#   Valid values = (n >= 1) 
#
threadPerConnectionUpperLimit = 10000

############################################################################
# threadPerConnectionLowerLimit
#
#   If the one thread per connection was in effect and was switched
#   off because threadPerConnectionUpperLimit has been exceeded
#   previously, this number tells when the policy should be restored
#   when the number of connections drop.
#
#   Valid values = (n >= 1 && n < threadPerConnectionUpperLimit) 
#
threadPerConnectionLowerLimit = 9000

############################################################################
# threadPoolWatchConnection
#
#   1 means that after dispatching an upcall in thread pool mode, the
#   thread should watch the connection for a short time before
#   returning to the pool. This leads to less thread switching for
#   series of calls from a single client, but is less fair if there
#   are concurrent clients.

threadPoolWatchConnection = 1

############################################################################
# acceptBiDirectionalGIOP
#
#   Applies to the server side. Set to 1 to indicate that the
#   ORB may choose to accept a client's offer to use bidirectional
#   GIOP calls on a connection. Set to 0 means the ORB should
#   never accept any bidirectional offer and should stick to normal
#   GIOP.
#
#   Valid values = 0 or 1
#
acceptBiDirectionalGIOP = 0

############################################################################
# unixTransportDirectory
#
#   Applies to the server side. Determine the directory in which
#   the unix domain socket is to be created.
#
#   Valid values = a valid pathname for a directory
#
unixTransportDirectory = /tmp/omni-%u
# %u is expanded into user name.

############################################################################
# unixTransportPermission
#
#   Applies to the server side. Determine the permission mode bits
#   the unix domain socket is set to.
#
#   Valid values = unix permission mode bits in octal radix (e.g. 0755)
#
unixTransportPermission = 0777

############################################################################
# supportCurrent
#
#   If the value of this variable is TRUE, per-thread information is
#   made available through the Current interfaces, e.g.
#   PortableServer::Current. If you do not need this information, you
#   can set the value to 0, resulting in a small performance
#   improvement.
#
supportCurrent = 1

############################################################################
# objectTableSize
#
#   Hash table size of the Active Object Map. If this is zero, the ORB
#   uses a dynamically resized open hash table. This is normally the  
#   best option, but it leads to less predictable performance since   
#   any operation which adds or removes a table entry may trigger a   
#   resize. If you set this to a non-zero value, the hash table has   
#   the specified number of entries, and is never resized. Note that  
#   the hash table is open, so this does not limit the number of      
#   active objects, just how efficiently they can be located.
#
#   Valid values = (n >= 0)
#                  0 --> use a dynamically resized table.
#
objectTableSize = 0

############################################################################
# poaHoldRequestTimeout
#
#   This variable can be used to set a time-out for calls being held
#   in a POA which is in the HOLDING state.  It gives the time in
#   milliseconds after which a TRANSIENT exception will be thrown if the
#   POA is not transitioned to a different state.
#
#   Valid values = (n >= 0 in milliseconds) 
#                   0 --> no time-out.
#
poaHoldRequestTimeout = 0

############################################################################
# poaUniquePersistentSystemIds
#
#   The POA specification requires that object ids in POAs with the
#   PERSISTENT and SYSTEM_ID policies are unique between
#   instantiations of the POA. Older versions of omniORB did not
#   comply with that, and reused object ids. With this value true, the
#   POA has the correct behaviour; with false, the POA uses the old
#   scheme for compatibility.
#
#   Valid values = 0 or 1
#
poaUniquePersistentSystemIds = 1

############################################################################
# supportBootstrapAgent
#
# Applies to the server side. 1 means enable the support for Sun's
# bootstrap agent protocol.  This enables interoperability between omniORB
# servers and Sun's javaIDL clients. When this option is enabled, an
# omniORB server will respond to a bootstrap agent request.
supportBootstrapAgent = 0


More information about the omniORB-list mailing list