############################################################################ # 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 = 10 ############################################################################ # 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 . 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::my.host.name # # # Specify the Trading service and the interface repository using corbaloc: # # InitRef = TradingService=corbaloc:iiop:marrow:5009/MyObjectKey # = InterfaceRepository=corbaloc::1.2@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'. # # 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 = [^]
[action]+ # #
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 # # + 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
, 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 # # ############################################################################ # 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:[]:[] # The and 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:[]:[] # Similar to the tcp transport except that SSL is run on top # of the tcp connection. # # 3. giop:unix:[] # Create a unix domain socket and bind to the file with pathname # . If 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:192.168.231.61: ############################################################################ # 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 = [^]
[action]+ # #
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 # # + 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
, 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 ############################################################################ # 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