Octopus Administrator's Guide
Appendix A: Sample Octopus Entries in the Nucleus.ini File

 

Note:
Most of these sample configurations specify UNIX paths. The Octopus configurations for Windows platforms are identical to those of UNIX, except of course that the Windows directory path style is used where required.


1. Single Class of Service (Read-only)

The following is an example of a minimal Octopus configuration, with one Octopus instance managing connections to an instance of the database TEST running on ALPHA1. Clients connect to the Octopus server using the Connection TEST_ALPHA1 (note that a [CONNECTION TEST_ALPHA1] section must be present in the client-side nucleus.ini file, specifying port 6050). A single Class of service is defined, comprising three OctoEng's running on the Octopus host computer. Since the OctoRunMode parameter is not included, this is a read-only implementation of Octopus.

[OCTOPUS TEST]
Connection=TEST_ALPHA1
DatabasePath=/usr/sand/databases/test
Port=6050
Classes=SIMPLECLASS

[SUBCLASS SIMPLECLASS]
NumberOfEngines=3
Cache=128

RescheduleTimeout=0
MaxDeltaFileSize=0

 

2. Multiple Classes of Service (Public Update Mode)

The following example also shows a single Octopus instance managing connections to the TEST database on ALPHA1. Here, however, four Classes of service are defined. Since the LoginClass=TRUE setting is included in the OCTOPUS section, the first class (LOGIN) is reserved for processing connection requests. The second, named LIGHT, consists of three OctoEng's; queries are rescheduled to the HEAVY Class after 15 seconds. The HEAVY Class consists of two OctoEng's running with a 150 second time limit on query processing. The last Class in the CLASSES list is the Updatable Class (here called UPDATE), which can comprise only one OctoEng; this is assigned a higher Cache value and has no time limit on command processing.

[OCTOPUS TEST]
Connection=TEST_ALPHA1
DatabasePath=/usr/sand/databases/test
Port=6050
Classes=LOGIN,LIGHT,HEAVY,UPDATE
OctoRunMode=PUBLICUPDATE
LoginClass=TRUE

[SUBCLASS LOGIN]
NumberOfEngines=1
Cache=64
RescheduleTimeout=5

[SUBCLASS LIGHT]
NumberOfEngines=3
Cache=64
RescheduleTimeout=15

[SUBCLASS HEAVY]
NumberOfEngines=2
Cache=128
RescheduleTimeout=150

[SUBCLASS UPDATE]
NumberOfEngines=1
Cache=256
RescheduleTimeout=0
MaxDeltaFileSize=0

 

3. Multi-Octopus Configuration

The third example shows the configuration for two instances of Octopus managing connections to the databases TEST and TEST1. Both databases reside on the same computer (ALPHA1). Both Octopus instances will start automatically at system startup, since the AutoStartup parameter has been set to TRUE. The definitions of the LIGHT, HEAVY, and UPDATE Classes for each database have been given different names to "isolate" them from one another: this allows one configuration to be changed without stopping the other database.

Note that the Connection parameters must have different values for each Octopus instance, and the Port values must differ by at least 50. By isolating the Class definitions, each database can also be given different settings for parameters like Cache, NumberOfEngines, and RescheduleTimeout.

[OCTOPUS TEST]
Connection=TEST_ALPHA1
DatabasePath=/usr/sand/databases/test
Port=6050
RunMode=PUBLICUPDATE
Classes=LOGIN_TEST,LIGHT_TEST,HEAVY_TEST,UPDATE_TEST
AutoStartup=TRUE
LoginClass=TRUE

[SUBCLASS LOGIN_TEST]
NumberOfEngines=1
Cache=64
RescheduleTimeout=5

[SUBCLASS LIGHT_TEST]
NumberOfEngines=3
Cache=64
RescheduleTimeout=15

[SUBCLASS HEAVY_TEST]
NumberOfEngines=2
Cache=128
RescheduleTimeout=0

[SUBCLASS UPDATE_TEST]
NumberOfEngines=1
Cache=256
RescheduleTimeout=0

[OCTOPUS TEST1]
Connection=TEST1_ALPHA1
DatabasePath=/usr/sand/databases/test1
Port=9000
RunMode=PUBLICUPDATE
Classes=LOGIN_TEST1,LIGHT_TEST1,HEAVY_TEST1, UPDATE_TEST1
AutoStartup=TRUE
LoginClass=TRUE

[SUBCLASS LOGIN_TEST1]
NumberOfEngines=1
Cache=64
RescheduleTimeout=5

[SUBCLASS LIGHT_TEST1]
NumberOfEngines=2
Cache=64
RescheduleTimeout=5

[SUBCLASS HEAVY_TEST1]
NumberOfEngines=3
Cache=128
RescheduleTimeout=0

[SUBCLASS UPDATE_TEST1]
NumberOfEngines=1
Cache=256
RescheduleTimeout=0

 

4. Single Octopus, Multiple Nodes

This example shows a single Octopus instance controlling OctoEng�s located on two different computers: the main Octopus server (ALPHA1) and a remote server called ALPHA2.

[OCTOPUS TEST]
Connection=TEST_ALPHA1
DatabasePath=/usr/sand/databases/test
Port=6050
OctoRunMode=PublicUpdate
Classes=LOGIN,LIGHT,HEAVY,UPDATE
Nodes=ALPHA2
LoginClass=TRUE

AutoStartup=TRUE
StartOctoEngTimeOut=10

[NODE ALPHA2]
Port=7000
DatabasePath=/usr/sand/databases/test

# Login Subclass on current host (ALPHA1)
[SUBCLASS LOGIN]
NumberofEngines=1
Cache=64
RescheduleTimeout=5

# Subclass on current host (ALPHA1)
[SUBCLASS LIGHT]
NumberofEngines=2
MaxDeltaFileSize=2048
Cache=64
RescheduleTimeout=15

# Subclass on current host (ALPHA1)
[SUBCLASS HEAVY]

NumberofEngines=3
MaxDeltaFileSize=0
Cache=128
RescheduleTimeout=0

# Updatable Subclass on current host (ALPHA1)
[SUBCLASS UPDATE]

NumberofEngines=1
MaxDeltaFileSize=0
Cache=256
RescheduleTimeout=0

# Subclass on ALPHA2
[SUBCLASS ALPHA2 LIGHT]

NumberofEngines=3
MaxDeltaFileSize=2048
Cache=64
RescheduleTimeout=15

# Subclass on ALPHA2
[SUBCLASS ALPHA2 HEAVY]

NumberofEngines=5
MaxDeltaFileSize=0
Cache=128
RescheduleTimeout=0

An Octopus Agent would also be installed on ALPHA2, along with a nucleus.ini file containing the following information:

[OCTOPUS AGENT]
Port=7000
StartOctoEngTimeOut=10
LogFile=/var/adm/nucleus/octoagent/logs/

 

5. Octopus On-Demand Database (ODDB)

The following nucleus.ini fragment is an example of an ODDB configuration with more than one Subclass. In this type of configuration, one Subclass must have the ODDBSubClass parameter set to TRUE with a NumberOfEngines value of 0 (Subclasses cloddb2 and yoddb), while another Subclass must have ODDBSubClass set to FALSE (or omitted) with the NumberOfEngines parameter set to 0 or greater (Subclasses cloddb1 and xoddb).

For the v4oddb Octopus instance, there is no explicit ODDBDatabases parameter list, so all databases in the nucleus.ini file can be started as ODDB instances with this Octopus. For the v5oddb Octopus instance, there is only one database in the ODDBDatabases parameter list, so attempting to start any database other than oddb5 as an ODDB instance on this Octopus will generate an error.

The definition of the Octopus Agent specifies the maximum amount of cache that can be used by all ODDB instances (ODDBMaxCache=4096 MB) and the maximum number of concurrent ODDB instances that can run (ODDBMaxServer=10). The ODDBWaitForCacheFit is set to FALSE, so Octopus will always serve the first queued ODDB instance request that fits into the currently available cache instead of waiting for cache space to free up to fit the next queued ODDB instance. The ODDBPriority parameter is also set, which causes ODDB instance requests to be prioritized according to Octopus priority group. The highest priority is "hipri", and Octopus v4oddb has "ODDBPriorityGroup=hipri" defined, so all ODDB instance requests on this Octopus will take precedence over other ODDB instance requests. Meanwhile, Octopus v5oddb has "ODDBPriorityGroup=adhoc", which is the lowest priority group, meaning that ODDB instance requests on v5oddb will always be served last.

The oddb2 database definition has ODDBKeepAlive set to TRUE and ODDBKeepAliveTimeOut set to 600 seconds, so the ODDB instance of that database will continue to run for 10 minutes after the last client disconnects.

[OCTOPUS v4oddb]
OctoRunMode=ODDB
Port=12000
Connection=alphav4
DatabasePath=c:\nuc4trace\db
Host=alpha
Classes=cloddb1,cloddb2
ODDBRunMode=UPDATE
ODDBShareDB=FALSE
ODDBKeepAlive=TRUE
ODDBPriorityGroup=hipri
ODDBLogLevel=1

[OCTOPUS v5oddb]
OctoRunMode=ODDB
Port=13000
Connection=alphav5
DatabasePath=c:\nucdb
Host=beta
Classes=xoddb,yoddb
ODDBDatabases=oddb5
ODDBRunMode=READONLY
ODDBPriorityGroup=adhoc

[DATABASE oddb1]
DatabasePath=c:\nuc4trace\db1
ODDBPublic=TRUE

[DATABASE oddb2]
DatabasePath=c:\nuc4trace\db2
ODDBKeepAlive=TRUE
ODDBKeepAliveTimeOut=600
ODDBRunMode=UPDATE
ODDBDeltaPath=c:\nuc4trace\db2\oddb
DeltaPath=c:\nuc4trace\dba
ODDBCache=300
Cache=1000
ODDBPublic=TRUE

[DATABASE oddb3]
DatabasePath=c:\nuc4trace\db
ODDBShareDB=FALSE
ODDBPublic=TRUE

[DATABASE oddb4]
DatabasePath=c:\nuc4trace\db

[DATABASE oddb5]
DatabasePath=c:\nuc4trace\db
RunMode=persistent
ODDBPublic=TRUE

[DATABASE v4oddb]
DatabasePath=c:\nuc4trace\db

[SUBCLASS cloddb1]
NumberOfEngines=2

[SUBCLASS cloddb2]
NumberOfEngines=0
ODDBSubClass=TRUE

[SUBCLASS xoddb]
NumberOfEngines=1
ODDBSubClass=FALSE

[SUBCLASS yoddb]
NumberOfEngines=0
ODDBSubClass=TRUE

[CONNECTION alphav4]
Host=alpha
Port=12000

[CONNECTION alphav5]
Host=beta
Port=13000

[OCTOPUS AGENT]
ODDBMaxCache=4096
ODDBMaxServer=10
ODDBWaitForCacheFit=FALSE
ODDBPriority=hipri,lopri,adhoc
...