TOC PREV NEXT INDEX

Kabira Technologies, Inc.


8 Registry variables

The system registry contains configuration information for ObjectSwitch and its engines. ObjectSwitch maintains an ObjectSwitch registry whose root key is DSEGlobalKey. The registry hierarchy is illustrated in Figure 28.

 Figure 28:  Structure
of the ObjectSwitch
registry

Overview

The configuration variables in the ObjectSwitch registry can be divided broadly into two types: routine and system configuration.

Routine configuration

The more routine registry variables, used for application and adapter configuration, are found under the persistence and engine keys.

Engine configuration

Under the Engine key, there is a subkey for each engine installed on the ObjectSwitch node. The values under this subkey define the engine's executable name and startup arguments, auto-start, trace log settings, and other assorted tuning parameters. These variables can be configured using the engine control center.

Database adapter services

If an engine uses database adapters, then there will also be subkeys for that engine within the persistence registry key. The variables contained in these keys control how database access is handled. These variables can only be configured using the registry editor or shell commands.

System configuration

The system keys contain configuration variables that control the low-level aspects of ObjectSwitch's operation. These variables can only be configured using the registry editor or shell commands.

Incorrectly changing some of these variables can render a system unusable, requiring it to be re-installed. The most dangerous of these are marked with the symbol M and must not be changed in a working system.
System services

The variables under the system services key control how shared memory and system types are created, and how network communications are serviced.

Distribution

Distributed ObjectSwitch systems are supported by a distribution engine on each node. This engine has its own subkey under the Engine key. This subkey (and the global Distribution) contains variables that control local and remote location codes, ports used for distribution and node discovery, timeouts, and other distribution configuration.

Event bus

The event bus key contains variables to configure the event hashing and queue receive timeout.

Object services

The object services key contains variables to configure type, object, and transaction hashing, and object heap allocation size.

System coordinator configuration

The system coordinator key contains variables to control how the system coordinator manages engines, what port it listens on, its trace log settings, and how it allocates its private shared memory.

How to read the tables

The configuration variables are divided into functional groups and presented here one group at a time. The routine configuration groups are presented first, then the system configuration groups. Keep in mind that this routine/system division is somewhat arbitrary.

A table for each configuration group provides summary information about each variable, including:

The summary table is followed by a detailed description each configuration variable in the group, explaining more about how that variable is used in ObjectSwitch.

Routine configuration variables

Engine configuration

The Engine configuration variables are located under the DSEGlobalKey\Engine\engineID registry key. You normally edit these variables using the engine control center, which provides detailed help, including an explanation of each variable.

name
typical
description
stateManager
ossm
Name of shared memory file.
engineGroup
Applications
name of the engine group the engine belongs to
engineName
skel
Textual name of engine.
engineExecutable
none
Full path and filename to engine executable.
engineArguments
-i engineID
Arguments to engine executable.
killTimeout
5
Seconds to wait for all engine threads to exit during shutdown.
abortTimeout
20
Seconds to wait for graceful engine shutdown before aborting.
traceEnable
1
Enable and disable tracing.
traceFile
trace.id
The name and path of trace file (id is the engine ID).
traceTruncate
0
Truncate trace file on startup, 0 = no, 1 = yes.
traceSize
0
Set maximum log size. 0 is no maximum size.
traceDebugFilter
65535
Subsystems to trace for debug messages.
traceInfoFilter
65535
Subsystems to trace for info messages.
traceWarningFilter
65535
Subsystems to trace for warning messages.
traceFatalFilter
65535
Subsystems to trace for fatal messages.
autoStart
1
Whether the coordinator starts engine automatically. 0=no, 1=yes
maxFailCount
3
Number of retries before engine is not restarted.
numReadChannels
10
Initial number of read channels created by the dispatcher.
minReadChannels
10
Minimum number of read channels for this engine.
maxReadChannels
100
Maximum number of read channels for this engine.
readChannelInc
5
How many read channels to add if more are needed.
servicePeriod
5
How often to check for read channel starvation.
distribWorkerPool
10
The maximum number of outstanding distributed event requests.
flushRate
0
Flusher service interval, in seconds.
numTypesPerFlush
1
How many types are flushed in each interval.

The engine configuration variables are specified for each engine instance. For example, if a system has three engines with IDs 1, 33, and 321, then the following registry keys are used:

 DSEGlobalKey\Engine\1
 DSEGlobalKey\Engine\33
 DSEGlobalKey\Engine\321

Each engine will look up its configuration under its own key, allowing a different configuration for each.

stateManager

The name of the shared memory segment to which this engine should attach. The shared memory segment contains all of the user defined objects and events that are created by a running system and object services and event bus control structures.

engineGroup

The name of this engine's group. The Engine Control Center uses this information to determine which engine group should contain the engine's visual representation, and whether the engine should be included in an engine group's Start All Engines and Stop All Engines operations.

engineName

The name of this engine. This information is used by the system coordinator control interface to help identify this engine to a human operator.

engineExecutable

The absolute path name for the engine executable (the format of the path specifier is platform specific). The system coordinator uses this value to start and stop the engine. There is no default value for this configuration variable: it must be set to allow the engine to be managed by the system coordinator.

engineArguments

Arguments that should be passed to the engine executable. These arguments are passed on the command line by the system coordinator when an engine is started.

killTimeout

The time in seconds that an engine should wait for all threads to exit after setting the "is terminating" flag. When this timer expires, the engine attempts to kill all threads that are still running.

abortTimeout

The time in seconds that an engine will wait before it performs an abortive shutdown. An engine will gracefully exit after all running threads have exited. If threads do not exit even after the thread kill timer described above has expired before the abort timer expires, the engine will force an exit to the operating system.

traceEnable

Control tracing for this engine. This variable should be set to "1" to enable tracing, and "0" to disable tracing. The actual trace output is controlled by other configuration variables described below.

traceFile

The name and path name of the trace file that should be used by this engine. The trace file will be created if it does not exist. This configuration variable can be specified as stdout to route trace messages to standard output.

traceTruncate

Control truncation of the trace file during engine initialization. If this configuration variable has a value of "0" the trace file will not be truncated during start-up. If this configuration variable has a value of "1", the trace file will be truncated each time the engine is started.

traceSize

Controls the maximum size of the trace file. A value of "0" indicates that there is no maximum size for the trace file. It will continue to grow as more trace messages are added.

A value other than "0" indicates the maximum size of the trace file, in bytes, before it should be saved and a new file created. When a trace file exceeds its configured maximum size it is renamed to <traceFile>.old. If the trace file again exceeds the maximum size any existing .old files are replaced.

trace*Filter

These four trace filters-traceDebugFilter, traceInfoFilter, traceWarningFilter, and traceFatalFilter-control tracing for specific components of ObjectSwitch. Each of the filters controls tracing for a particular type of trace message, as described in "Trace files" on page 14.

autoStart

Controls whether the engine should be started by the coordinator immediately or it will be started by the user. A value of 1 indicates that the coordinator should start this engine immediately when the coordinator is started. A value of 0 indicates that coordinator should not start the engine immediately. A system operator will have to manually start this engine the first time.

maxFailCount

The number of times this engine should be restarted before the coordinator gives up. This prevents an engine from continuously being restarted by the system coordinator if it constantly fails. The coordinator resets its count whenever the engine exits without an error or when the engine is restarted manually.

numReadChannels

The number of read channels initially created in this engine to process events. A thread is created for each read channel that is configured at initialization time, so this configuration variable controls thread concurrency in an engine. It is also directly related to the number of simultaneous transactions that can run in an engine. See "M envHashtblSize" on page 92.

minReadChannels

The minimum number of read channel threads that should exist in an engine after thread reaping has occurred. This configuration variable is used to control the low water mark for read channels when idle read channels are detected because the queueReceiveTimeout value expired for one or more read channels.

maxReadChannels

The maximum number of read channel threads that can be created for an engine because read channel starvation was detected. The engine will continue running, but will not create new read channel threads until their number drops below this value.

When choosing values for minReadChannels and maxReadChannels, your goal should be to keep the CPU running at close to 100% with a minimum of context switching. In general, this means system performance will be better with fewer threads. However, if your trace file contains messages indicating that the engine constantly creates and releases threads, you should raise the minReadChannels value.
readChannelInc

Read channel increment. The number of read channel threads to dynamically create whenever all currently allocated threads are processing events.

servicePeriod

The number of seconds between checks to determine if additional read channels are required. This configuration variable directly affects latency in a system which needs new threads in order to proceed with work.

distribWorkerPool

The maximum number of outstanding event requests. This can affect how much work can be pending at remote nodes for this engine. Engines that send many events to remote nodes or that frequently reference instances on remote nodes may need this parameter increased.

flushRate

Flusher service interval, in seconds. How frequently the object flusher runs. Decreasing this value causes the flusher to run more frequently, consuming more processor time. A setting of 0 (the default value) disables the flusher for the engine containing the setting.

numTypesPerFlush

How many types are flushed in each interval. Each flushRate seconds, the object flusher flushes stale references from shared memory. A reference is stale if:

numTypesPerFlush > 0: Each time the flusher runs, it flushes numTypesPerFlush types before becoming idle again. Increasing this value causes the flusher to run longer each time, consuming more processor time.

numTypesPerFlush = 0: The flusher flushes all types each time it runs.

You can also explicity flush individual instances using the flushObject() builtin described in the Developer's Guide. Neither flushRate nor numTypesPerFlush have any effect on that builtin.

Database adapters

The database adapters configuration variables are located under the DSEGlobalKey\PersistenceServices\database\engineID registry key, where database can be informix, oracle, or sybase.

name
typical
description
dataStore
default_datastore
Name of database server.
userName
default_user
The database user name.
password
default_password
The database user password.
connections
16
How many connections to open.
retryDelay
5
How long to delay before retrying connections following a failure.
connHashSize

Size of hash for managing database connections.
connectionRetries
3
How many times to retry connecting to the database before raising a service unavailable exception.
retryMode
CountRetry
Count Retry
or Forever Retry
or No Retry

The database adapter configuration variables are specified for each engine instance. For example, if a system has three engines with IDs 1, 33, and 321, and each of these engines uses the Oracle adapter, then the following registry keys are used:

 DSEGlobalKey\PersistenceServices\Oracle\1
 DSEGlobalKey\PersistenceServices\Oracle\33
 DSEGlobalKey\PersistenceServices\Oracle\321

Each engine will look up its persistence configuration under its own key, allowing a different configuration for each.

dataStore

The name of database server used by this engine. The server must be correctly configured in the ODBCINI file. Refer to the database adapters section of <Italics>Using ObjectSwitch Adapters for information about the ODBCINI file and environment variables that must be supported for database adapters.

userName

The user name used when connecting to the database server. The same user name is used on all connections.

password

The password used together with username when connecting to the database server.

connection

The number of connections opened to the database server when the engine is started. All connections are established at initialization.

Each transaction processed by this engine is allocated to a connection for the duration of the transaction. See "M envHashtblSize" on page 92 for details on configuring the number of transactions for an engine.

retryDelay

The amount of time, in seconds, before a failed database connection is retried.

connectionRetry

The number of times a failed database connection will be retried before a service unavailable exception is raised.

The combination of retryDelay and connectionRetry is used to isolate models from failures in external database servers. Setting these values will cause the connections to failed or shutdown database servers to be automatically retried.

retryMode

How to handle failed connections before raising a service unavailable exception.

Setting this parameter to Forever Retry causes the connection to retry indefinitely. Setting it to No Retry causes the connection to raise a service unavailable exception the first time the connection fails. If this parameter is set to Count Retry, then the connectionRetry parameter controls how many times to retry the connection before raising an exception.

Directory services adapter

The configuration variables for the directory services adapter are located under the DSEGlobalKey\DirectoryServices\Servers\server-name registry key, where server-name is a name you configure to represent a particular directory services configuration.

name
description
providertype
Specifies the type of directory service represented by the server. This may be ldap, registry, or corbans.
serverHost
The network name of the host that presents the directory service.
serverPort
The port number on the host which presents the directory service.
credentialType
The type of credential information used by the directory service.

You may need to add the Servers and server-name registry keys, and the subkeys in the above table, before you begin using directory services.

System configuration variables

System services

The System Services configuration variables are located under the DSEGlobalKey\SystemServices registry key.

name
typical
description
minNetServiceThreads
5
The minimum number of threads that the system allocates to support ObjectSwitch's built-in network services.
maxNetServiceThreads
100
The maximum number of threads that the system can allocate to support ObjectSwitch's built-in network services.
incNetServiceThreads
5
The number of network service threads to allocate each time more are needed.
serviceTimeout
10
The maximum time (in seconds) that a network service thread will remain idle before it automatically dies.
monitorCycle
5
The service interval (in seconds) for allocation of new network service threads.
NLSPath
(see right)
Path of the message catalogs. The default path is $SW_HOME/distrib/platform/nls/%L/%N.cat, where platform is sol for Solaris, ntmsc for WIndows NT, or hpux for HP-UX.

Event distribution bus

The Event Distribution Bus configuration variables are located under the DSEGlobalKey\EventBus registry key.

name
typical
description
typeTblNumHashBuckets
521
Number of hash buckets allocated for the type table.
queueReceiveTimeout
30
Timeout value, in seconds, for a receive channel.
qcbNumHashBuckets
101
Size of hash for event bus queues.
M typeTblNumHashBuckets

The number of hash buckets allocated for the type table hash list. This list is used to find the type table entries during event distribution. See "Hash table sizing" on page 102 for guidelines on configuring this variable.

queueReceiveTimeout

The amount of time, in seconds, that a read channel will block waiting for work. When this timeout value expires, the blocked read channel may be terminated by the system. See "Engine configuration" on page 80 for details on using this configuration parameter.

M qcbNumHashBuckets

The size of the hash maintained in the event bus to keep track of event bus queues. Each event queue is inserted in this hash using the engine instance identifier.

Object services

The Object Services configuration variables are located under the DSEGlobalKey\ObjectServices registry key. The variable tdHashtblSize appears once per domain, contained under a subkey of the domain's ID (for domain 234567, these two values are found under the key DSEGlobalKey\ObjectServices\234567). For each entity (type) on the node, a subkey with that entity's name contains the variable objHashtblSize.

name
typical
description
sMPermissions
43210
06608
Permissions for the created shared memory segment. Default is read/write by owner and group.
mutexInfoHashSize

Size of the hash for system mutexes.
smAllocSize
200Mbytes
The amount of shared memory allocated.
tdHashtblSize
101
Size of hash table for type descriptors.
domHashTblSize
101
Size of hash table for domains.
envHashtblSize
101
Size of hash table for transaction environments.
objHashtblSize
1001
Size of hash table for object references.
M sMPermissions

Shared memory permissions. These are the permissions used when creating the shared memory segments used by the system. The default value creates all shared memory segments with a default permission of read/write by the owner.

Permissions are specified as a hexadecimal, octal, or decimal numbers. The number is a bitmask that follows POSIX conventions to specify permissions.

Octal is a convenient representation because one octal digit is three bits, so each level of access is specified as one digit between 0 (no permission) and 7 (read, write, and execute permission). For example, to grant read and write permissions to owner and group, the mask would be 0660 octal (or 432 decimal or 0x1B0 hexidecimal).

M mutexInfoHashSize

The size of the hash maintained in the shared memory manager to keep track of system level type descriptors. The default size should not have to be changed.

M smAllocSize

Shared memory allocation size. The size of the shared memory heap from which object data will be allocated. The system will not initialize if this much space cannot be reserved.

The total size of shared memory required in object services is a combination of system control structures and instance data associated with each user object created in the system. Each user object allocated takes up two times the size of the actual attribute data in the object, plus a fixed overhead.

M tdHashtblSize

(Contained under the domainID subkey.) Type descriptor hash table size. The number of hash buckets allocated for the type descriptor hash list. This list is used to find type descriptors when creating objects. See "Hash table sizing" on page 102 for guidelines on configuring this variable

M domHashtblSize

Hash size for managing multiple domains. See "Hash table sizing" on page 102 for guidelines on configuring this variable

M envHashtblSize

Transaction environment hash table size. The number of hash buckets allocated for the transaction environment hash list. This list is used to find transaction environments during transaction execution. See "Hash table sizing" on page 102 for guidelines on configuring this variable

M objHashtblSize

(Contained under the entityName subkey.) Object hash table size. The number of hash buckets allocated in the navigation hash table for instances of the named entity. This list is used to find objects using object references. See "Hash table sizing" on page 102 for guidelines on configuring this variable.

System coordinator

The system coordinator provides support for starting and stopping engines and managing recovery in the system. It stores its configuration information under DSEGlobalKey\SystemCoordinator.

The configuration variables for the system coordinator are described in the table below. These take effect when the system coordinator starts. The system coordinator also uses engine configuration variables (see "Engine configuration" on page 80) when starting and stopping engines.

name
typical
Description
shmemName
coordsm
Name of shared memory used to manage engines.
allocSize
1024000
Initial size of coordinator's shared memory segment.
allocHint
10240
Grow allocation hint for shared memory segment.
maxEngines
100
Maximum number of engines for this coordinator.
tcpPort
8387
Coordinator listen port.
restartInterval
60
Engine retry interval.
traceEnable
1
Enable coordinator tracing.
traceFile
swcoord.log
Name of coordinator's trace file.
traceTruncate
0
Control truncation of coordinator's trace file.
traceSize
0
Control maximum size of coordinator's trace file.
traceDebugFilter
65535
Subsystems to trace for debug messages.
traceInfoFilter
65535
Subsystems to trace for information messages.
traceWarningFilter
65535
Subsystems to trace for warning messages.
traceFatalFilter
65535
Subsystems to trace for fatal messages.
killProcessGroup
1
Whether to kill all processes spawned by a previous instance of the system coordinator on startup.
pid

Process group i.d. of the system coordinator.
engineKillTimeout
180
How long the coordinator waits for an engine signalled with SIGPWR to exit before forcing it with kill -9.
M shmemName

Engine shared memory name. The name of the shared memory segment that should be used by the system coordinator to maintain information about all engines that are controlled by the system coordinator. This shared memory is created in the installation path passed into the system coordinator, unless this registry variable contains other path information.

M allocSize

The size of the shared memory in bytes allocated by the system coordinator to manage engines. The default value for this configuration variable is adequate for most systems, and shared memory is grown as required by the system in increments specified by the engAllocHint configuration parameter.

M allocHint

The size in bytes that should be allocated if the original shared memory segment for engine management becomes full. The size of the original shared memory segment is specified using the engAllocSize configuration parameter.

M maxEngines

The maximum number of engines that can be managed by the system coordinator.

tcpPort

The TCP port number on which the system coordinator should listen for operator control messages.

restartInterval

How frequently (in seconds) the system coordinator resets the failure counter for all running engines. If a running engine fails more then maxFailCount times (this is defined under that engine's registry subkey) before timerPeriod expires, then the system coordinator shuts it down.

traceEnable

Enables or disables tracing for the system coordinator. Set this variable to 1 to enable tracing, and 0 to disable tracing. The actual trace output is controlled by other configuration variables described below.

traceFile

The name of the trace file that should be used by the system coordinator. The trace file will be created if it does not exist. This configuration variable can be specified as stdout to route trace messages to standard output.

The trace file is created in the directory specified by the path passed to the system coordinator when it was started, or in the local directory if no path was specified when the coordinator was started.

traceTruncate

Whether or not to truncate the trace file during system coordinator initialization. If this variable is 0, the trace file is not truncated during start-up. If this variable is 1, the trace file is truncated each time the system coordinator starts.

traceSize

The maximum size of the trace file, in bytes. When this size is reached, the trace file is saved as tracefilename.old, and a new one is created (any existing tracefilename.old is overwritten). A value of 0 means the trace file size is unlimited, and will continue to increase as more trace messages are added.

trace*Filter

See "trace*Filter" on page 83 for a description of this registry variable.

killProcessGroup

Whether the system coordinator, upon finding a value in "pid" while starting up, should kill all processes spawned by the previous instance of the system coordinator.

pid

The process group i.d. of the system coordinator. The value in this field is used to find processes spawned by an abnormally terminated instance of the system coordinator. When the system coordinator starts up, it is made a process group leader and enters its process group i.d. in "pid". When it terminates normally, this entry is cleared.

engineKillTimeout

Indicates the amount of time, in seconds, that the system coordinator will wait for engine processes to die when it has been restarted and detects that recovery is required in the system.

When the system coordinator is restarted it determines if recovery is required. If it is, it kills all running processes and waits for them to exit. If they haven't exited within this time interval the system coordinator will abort. This value must always be greater than all of the engine killTimeout configuration variables.

Distribution

This section describes the keys and variables that you use to configure distribution information in an ObjectSwitch system. There are two kinds of location configuration: directed, which requires you to preconfigure remote nodes that distribution will work with, and discovery, which automatically detects and configures remote nodes.

You can use discovery and directed distribution together. When your model executes create..on, if you have configured the specified node for directed distribution (see "Directed discovery" on page 98), then the object is created on that node. If no such node is explicitly configured, and there is a discovered node with that name, then the object is created on that node.

Because the discovery protocol uses UDP broadcast messages, you cannot use discovery outside of a subnet. ObjectSwitch nodes can communicate across subnet boundaries, but you must explicitly configure these connections using directed discovery.

Adding the distribution engine

To use distribution features, you need to configure the registry as described in this section, then add the distribution engine swdisteng. From the Engine Control Center, add the engine archive:

 $SW_HOME/distrib/platform/engine/swdisteng.tgz

to a node. When you start that engine, it reads the registry values described in this section and provides distribution services for all the other engines on the node.

Global configuration

You can configure the hash used in distribution-although you usually won't need to-under the registry key DSEGlobalKey\Distribution.

name
typical
description
requestHashSize
101
Hash table size of outstanding requests.
nodeHashSize
101
Hash table size of all open node connections.

Directed discovery

You can explicity configure the location code for remote nodes under the registry key DSEGlobalKey\Distribution\Directed\location-name. Each remote node that you specify will have its own location-name subkey.

name
typical
description
locationCode

The location code of the remote node.
tcpPort

The TCP listener port for the remote node.
hostName

The host name of the remote node.

You can configure additional node names under this registry key, so that applications can set the location code by name using the action language create ... on. For example, if a system has two nodes, one called NewYork and one called Tokyo, the registry for the Tokyo node might include:

 DSEGlobalKey\Distribution\Directed\NY\locationCode=666
 DSEGlobalKey\Distribution\Directed\NY\tcpPort=9876
 DSEGlobalKey\Distribution\Directed\NY\hostName=mothra.acompany.com

Note that a model may always create objects on the local node by omitting the on clause of the create statement.

Distribution transport

The DSEGlobalKey\Distribution\Transport subkey configures node-to-node communication for distribution transport.

name
default
description
tcpPort
5557
The listener port for inbound connections
recvBufferSize
30000
Size of the receive buffer.
retryCount
0
How many times to retry a connection before raising an exception. A value of zero means to retry forever.
retryDelay
5
Number of seconds between connection retries.
connectTableSize
101
Hash table size for connection management.
requestTableSize
101
Hash table size for requests per connection.
minPendingRequest
5
Initial number of request tokens per connection.
maxPendingRequest
100
Maximum number of request tokens per connection.
incPendingRequest
5
Number of request tokens to allocate at a time.
tcpPort

This variable configures the TCP/IP port number used to listen for inbound connections. This port must be available on the local system.

There are two port settings used for distribution support. Do not confuse this port with the location mapper port described in "Distribution location mapping" on page 100.
recvBufferSize

Size, in bytes, of the receive buffer.

retryCount

The number of times a connection should be retried to a remote node before a service unavailable exception is raised to the application. A value of 0 indicates retry forever.

retryDelay

The number of seconds between connection retries.

M connectTableSize

Hash table size for connection management. See "Hash table sizing" on page 102 for information about configuring this parameter.

M requestTableSize

Hash table size for request management per connection. See "Hash table sizing" on page 102 for information about configuring this parameter.

minPendingRequest

Initial number of available request tokens per connection.

maxPendingRequest

Maximum number of request tokens that will be allocated per connection. When the limit is reached, subsequent requests will wait for current requests to complete first.

incPendingRequest

Allocation size for request tokens when the system runs out of them. And it will stop allocating when the current number is equal or greater than maxPendingRequest.

Distribution location mapping

The DSEGlobalKey\Distribution\LocationMapper subkey configures location discovery..

name
default
description
locationName
local host name
The location name of the local node.
locationCode
current time in ticks
The location code of the local node. This must be unique among all ObjectSwitch nodes.
broadcastPort
6688
The UDP port used for discovery broadcasts.
resolveDelaySeconds
1
The number of seconds between location code mapping broadcast retries.
resolveRetryCount
0
The number of times a location mapping broadcast should be retried before a service unavailable exception is raised. A value of 0 indicates retry forever.
conflictDelaySeconds
1
Number of seconds the location mapper will wait to determine an existing node has this location code taken already.
locationHashSize
101
Hash table size for location code maintenance.
locationName

This is the name of the local ObjectSwitch node (the node that uses this registry). It is used in action language to specify this node in a create statement.

locationCode

This is the location code for the local ObjectSwitch node (the node that uses this registry). This code must be unique across your ObjectSwitch universe; by default it is set to the current time when the registry is populated.

broadcastPort

This specifies the UDP port number to broadcast discovery messages. This port number must be the same for all nodes in a distributed system. The port is used for datagram-based communication, not as a TCP listener, so it can be used by multiple nodes on the same computer.

There are two port settings used for distribution support. Do not confuse this port with the transport port described in "Distribution transport" on page 99.
resolveDelaySeconds

The number of seconds between location code mapping broadcast retries.

resolveRetryCount

The number of times a location mapping broadcast should be retried before a service unavailable exception is raised. A value of 0 indicates retry forever.

conflictDelaySeconds

Number of seconds the location mapper will wait to determine an existing node has this location code taken already.

locationHashSize

Hash table size for location information cache.

Hash table sizing

ObjectSwitch uses hash tables for many types of lookups, including object types, distribution connections, and many other functions. Variables that configure these tables are each described in the appropriate section of this chapter.

This section provides guidelines for hash table configuration. A registry variable that defines a hash table size is only used when that hash table is first created. Once an ObjectSwitch node is installed and running, changing these values will have no effect; they are "start of the world" parameters.

The hash table size is expressed as a number of hash buckets. The correct size for each hash table will depend on the number of items referenced through the table. If the number of hash buckets is much less than the number of items referenced through it, the system will create long hash chains, reducing performance. For best performance, the hash table size should be a prime number, large enough to avoid creating long hash chains.




Kabira Technologies, Inc.
http://www.kabira.com
Voice: (415) 446 5000
Fax: (415) 446 5199
TOC PREV NEXT INDEX