This chapter provides common configuration examples, and descriptions of elements and attributes for the OPMN opmn.xml
file.
It contains the following topics:
Example 6-1 shows all possible elements and attributes that may appear in an opmn.xml
file that are not specific to any system components.
All paths, module data values, and environment values may reference the following global variables, which is expanded to their platform specific values:
Table 6-1 Global Variables and Definitions
Global Variable | Definition |
---|---|
|
Full path to |
|
Full path to |
: |
The library path (or class path) separator (":" on Linux or ";" on Microsoft Windows, for example). |
|
The executable file extension ("" on Linux or ".exe" on Microsoft Windows, for example) |
|
The shared library extension (".so" on Linux or ".dll" on Microsoft Windows, for example) |
|
The shell file extension (".sh" on Linux or ".bat" on Microsoft Windows, for example) |
Each of the variables defined above must be referenced using the same syntax as an environment variable in Linux or Windows. For example any of these references, ORACLE_HOME
, {ORACLE_HOME}
, or %ORACLE_HOME%
yields the full path to ORACLE_HOME
.
OPMN also automatically converts path separators in any path, module data value, or environment value based upon the platform on which OPMN is running. For example, /oracle/instances/ias1
would remain the same on Linux, but on Microsoft Windows OPMN would convert it to \oracle\instances\ias1
.
OPMN uses the ^ character as an escape character to disable path separator conversion for the following character, and so "^/" always yields "/" in the parsed string. Two ^ characters yields a single ^.
Example 6-1 Common Configuration Elements and Attributes
<opmn> <log path="path" comp="comp-codes" rotation=-size="kBytes" rotation-hour="HOD"/> <debug="path" comp="comp-codes" rotation-size="kBytes" rotation-hour="HOD"/> <notification-server interface="type"> <ipaddr remote="ip; ip" request="ip; ip"/> <port local="port" remote="port" reqest="port"/> <ssl enabled="boolean" wallet-file="path" wallet-password="password" openssl-certfile="path" openssl-keyfile="path open" openssl-password="password" openssl-lib="path"/> <tune io-timeout="timeout" io-idle="interval" timeout="timeout"/> </notification-server> <process-manager insecure-remote-requests="boolean"> <process-modules> <module path="path" tag="tag-id" status="state" cron="interval"> <module-data> <category id="id"> <data id="id" value="value" process-conversion="boolean"/> </category> </module-data> <module-id id="module-id"/> </module> </process-modules> <ias-instance="id="ias-instance-name"" name="ias-instance-name"ORACLE_HOME="path"> <environment> <variable id="id" value="value" append="boolean" process-conversion="boolean"/> </environment> <!-- module-data--> <ias-component id="component-id" id-matching="boolean" status="state"> <!-- environment--> <!-- module-data--> <dependencies> <database db-connect-info="connect" infrastructure-key="key"timeout="depend-timeout" cache-timeout="cache-timeout"/> <OID address="address" infrastructure="boolean" timeout="depend-timeout" cache-timeout="cache-timeout"> <ssl enabled="boolean" wallet-file="path" wallet-password="password"> </OID> <OSSO host="hostname" port="port" URI="uri" timeout="depend-timeout" cache-timeout="cache-timeout"> <ssl enabled="boolean" wallet-file="path" wallet-password="password"> </OSSO> <managed-process ias-instance="ias-instance-id" ias-component="ias-component-id" process-type="process-type-id" process-set="process-set-id" autostart="boolean" autostop="boolean" timeout="depend-timeout"cache-timeout="cache-timeout"/> </dependencies> <process-type="process-type-id" module-id="module-id" status="state" working-dir="path"> <!-- environment--> <!-- module-data--> <!-- dependencies--> <event-scripts> <pre-start path="path"> <pre-stop path="path"> <post-crash path="path"> </event-scripts> <start timeout="timeout" retry="num"/> <stop timeout="timeout"/> <restart timeout="timeout" retry="num"/> <ping timeout="timeout" retry="num" interval="interval"/> <port id="id" range="range"/> <process-set id="process-set-id" restart-on-death="boolean" numprocs="num" minprocs="min" maxprocs="max" status="state" working-dir="path" parallel-requests="boolean"> <!-- environment--> <!-- module-data--> <!-- dependencies--> <!-- event-scripts--> <!-- start:--> <!-- stop--> <!-- restart--> <!-- ping--> <!-- port--> </process-set> </process-type> </ias-component> </ias-instance> <launch-targets> <launch-target id="id"> <exec path="path"/> <argument value="argument"/> <timeout value="seconds"/> <max-concurrency value="number"/> </launch-target> </launch-targets> </process-manager> </opmn>
This section describes the elements and attributes in the opmn.xml
file that are not specific to any system components. This section also provides attribute descriptions of the elements.
<opmn>
is the top-level element in the opmn.xml
file.
path
, comp
, rotation-size
, rotation-hour
The configuration definitions for the OPMN log mechanism.
ORACLE_INSTANCE
/diagnostics/logs/OPMN/opmn/opmn.log
internal
, ons
, pm
comp-codes
. A semi-colon must be used to separate the items on the comp-codes
list.The comp
attribute specifies the component codes for logged events. These codes can be viewed and changed dynamically at OPMN run-time using the following commands:
> opmnctl query target=log > opmnctl set target=log comp=<comp-codes>
The default comp-codes for log already include all possible log messages, and it is recommended that you do not change the value.
The following comp-codes are displayed in the log and debug elements of the opmn.xml
file:
internal
: a log for the common internal information for OPMN
ons
: a log for the ONS component information for OPMN
pm
: a log for the PM component information for OPMN
Both the ons
and pm
components consist of subcomponents which may be specified using the component[subcomponents]
syntax. The component can be either ons
or pm
(separated by a semicolon if both are specified). The list of valid subcomponents for the given component are each separated by a comma. For example, comp="ons[local,listener];pm"
.
The following Table 6-2 lists the ONS component codes.
ONS Attribute | Definition |
---|---|
all |
all subcomponents |
local |
local information |
listener |
listener information |
discover |
discover (server or multicast) information |
servers |
remote servers currently up and connected to the farm |
topology |
current farm wide server connection topology |
server |
remote server connection information |
client |
client connection information |
connect |
generic connection information |
subscribe |
client subscription information |
message |
notification receiving and processing information |
deliver |
notification delivery information |
special |
special notification processing |
internal |
internal resource information |
secure |
SSL operation information |
workers |
worker threads |
The following Table 6-3 lists the PM component codes.
PM Attribute | Definition |
---|---|
all |
all subcomponents |
requests |
HTTP (user) requests |
remote |
remote HTTP requests |
scheduler |
scheduler thread and resource information |
monitor |
monitor thread information |
workers |
worker threads |
process |
managed processes |
depend |
dependency processing |
internal |
internal resources |
schedjobs |
periodic scheduled jobs |
procjobs |
for each process scheduled jobs |
dms |
DMS processing |
modules |
|
Each subcomponent (for ons
or pm
) may be prefaced with the negation character ! which deselects the subcomponent. By using the term "all" with negated sub-components, specific subcomponents are eliminated from the display.
Components and subcomponents are set or negated in the order in which they are encountered. The ons[all,!topology]
yields all ons
subcomponents excluding topology
, while ons[!topology,all]
yields all ons
subcomponents including topology
.
The rotation-size
is the maximum size in kilobytes of the log file. When the log file reaches the configured size, the OPMN logging mechanism closes the log, rename it with a time stamp suffix, and then create a new log file. This attribute may be used with rotation-hour
.
At the given hour of the day, the OPMN logging mechanism closes the log, renames it with a time stamp suffix, and then creates a new log file. This attribute may be used with rotation-size
.
path
, comp
, rotation-size
, rotation-hour
The debug
element contains the configuration definitions for the OPMN debug log mechanism.
Note:
Enable usage of theopmn.debug
file only after conferring with Oracle Support. The opmn.debug
file is used by Oracle Support to debug and diagnose OPMN issues. Messages that are contained in the opmn.debug
file are typically not readily comprehensible to the user.ORACLE_INSTANCE
/diagnostics/logs/OPMN/opmn/opmn.log
comp-codes
. A semi-colon must be used to separate the items on the comp-codes
list.The comp
attribute specifies the component codes for logged events. These codes can be viewed and changed dynamically at OPMN run-time using the following commands:
> opmnctl query target=log > opmnctl set target=log comp=<comp-codes>
The values revert back to the configured values in the opmn.xml
file when OPMN is reloaded.
The following comp-codes are displayed in the log and debug elements of the opmn.xml
file:
internal
: a log for the common internal information for OPMN
ons
: a log for the ONS component information for OPMN
pm
: a log for the PM component information for OPMN
Both the ons
and pm
components consist of subcomponents which may be specified using the component[subcomponents]
syntax. The component can be either ons
or pm
(separated by a semicolon if both are specified). The list of valid subcomponents for the given component are each separated by a comma. For example, comp="ons[local,listener];pm"
.
The following Table 6-4 lists the ONS component codes.
ONS Attribute | Definition |
---|---|
all |
all subcomponents |
local |
local information |
listener |
listener information |
discover |
discover (server or multicast) information |
servers |
remote servers currently up and connected to the farm |
topology |
current farm wide server connection topology |
server |
remote server connection information |
client |
client connection information |
connect |
generic connection information |
subscribe |
client subscription information |
message |
notification receiving and processing information |
deliver |
notification delivery information |
special |
special notification processing |
internal |
internal resource information |
secure |
SSL operation information |
workers |
worker threads |
The following Table 6-5 lists the PM component codes.
PM Attribute | Definition |
---|---|
all |
all subcomponents |
requests |
HTTP (user) requests |
remote |
remote HTTP requests |
scheduler |
scheduler thread and resource information |
monitor |
monitor thread information |
workers |
worker threads |
process |
managed processes |
depend |
dependency processing |
internal |
internal resources |
schedjobs |
periodic scheduled jobs |
procjobs |
for each process scheduled jobs |
dms |
DMS processing |
modules |
|
Each subcomponent (for ons
or pm
) may be prefaced with the negation character ! which deselects the subcomponent. By using the term "all" with negated sub-components, specific subcomponents are eliminated from the display.
Components and subcomponents are set or negated in the order in which they are encountered. The ons[all,!topology]
yields all ons
subcomponents excluding topology
, while ons[!topology,all]
yields all ons
subcomponents including topology
.
The rotation-size
is the maximum size in kilobytes of the log file. When the log file reaches the configured size, the OPMN logging mechanism closes the log, renames the log with a time stamp suffix, and then creates a new log file.
The rotation-size attribute may be used with the rotation-hour
attribute.
The rotation-hour
attribute for use with the log file at the specified time of day, the OPMN logging mechanism closes the log file, renames it with a time stamp suffix, and then creates a new log file. This attribute may be used with the rotation-size
attribute.
The notification-server
element configures or, contains the elements to configure the ONS portion of OPMN.
By default, OPMN supports both the IPv6 and IPv4 network interfaces (see Section 3.5 for information about IPv6 support). OPMN binds to both interfaces for its listener ports and attempts connections using either interface. OPMN always attempts to use the IPv6 interface first, if such an address is available. This behavior is the same as the default behavior for the Sun Java Virtual Machine (JVM).
Both IPv4 and IPv6, require that you use the same network for connection to other OPMN servers. For example, IPv6 forces OPMN to only use the IPv6 network interface even if the IPv4 interface is available. This means that OPMN is only be able to connect to (and be connected from) other OPMN servers that can use the same network interface. If you configure IPv6 or IPv4 on a system that does not provide the same network interface support, OPMN will not start.
remote, request
The iapddr
element specifies host information for ONS listener threads and host port bindings.
The remote
attribute is the IP address or host name to which ONS binds its remote port. The remote port is used for ONS to ONS communication. Notifications pass from ONS to ONS through the remote port, and OPMN uses ONS to route remote requests to other OPMN servers through the remote port.
The request
attribute is for the IP address or host name to which ONS binds its remote port. This port can only be used for obtaining status information.
local, remote, request
The port
element contains configuration information for ONS listener threads host and port bindings.
The local
attribute is for the ONS local port value.
The remote
attribute is for the ONS remote port value.
The request
attribute is for the ONS request port
value.
enabled, wallet-file, wallet-password
, openssl-certfile
, openssl-keyfile
, openssl-password
, and openssl-lib
The ssl
element is used for ONS to ONS security and authentication configuration. You may configure either the Oracle SSL layer (wallet-file
and wallet-password
) or the Open SSL layer (openssl-certfile
, openssl-keyfile
, openssl-password
, and openssl-lib
). You cannot use both. If you configure both Oracle and Open SSL layers within the same opmn.xml
file, the server will not start.
The Oracle SSL layer uses the libraries shipped with either the Oracle Fusion Middleware or Oracle Database products. The Oracle SSL layer uses the standard Oracle wallet.The Open SSL layer provides better performance, documentation, and support for encryption hardware. It also has uses less hardware space within OPMN. Open SSL is an open source tool kit to develop security protocols. You can find more information at:
true
or false
If the enabled
value is set to true, it enables SSL connections for ONS.
The wallet-password
attribute is the password string for the specified Oracle wallet.
openssl-keyfile
password.The openssl-password
attribute is the password string for the specified openssl-keyfile
.
io-timeout
, io-idle
, timeout
The tune
element contains the information for the Tuneable Notification Server ONS parameters.
The io-timeout
is the socket read timeout value in seconds used by each remote OPMN (or ONS) server directly connected to the local server. If the remote server does not receive any data across the connection with the local server in the configured io-timeout
period, the remote server times-out the connection and close the socket. The io-timeout
value is the timeout period remote OPMN (or ONS) servers uses for the local server.
The io-timeout
value is also used as a timeout for resource cleanup after an ONS connection has disconnected. If the connection is reestablished before the timeout period, the resources are transferred to the new connection. Otherwise the resources are released after the timeout period has expired.
The io-timeout
parameter should be increased for servers running on very busy or overloaded systems.
A value of 0 disables io-timeout
checking on remote servers for the local server. The io-timeout
disables cleaning up of failover participant state, duplicate notification detection state, and notifications queued for the down connection. Notifications continues to be queued until the connection is reestablished, which can consume an ever expanding amount of memory on the remote OPMN or ONS servers if the timeout check is disabled and the connection never comes back. The io-timeout
parameter should only be set to 0 for debug purposes.
A configured non- zero value that is less than the minimum value is set to the minimum, and a value greater than the maximum is set to the maximum.
io-timeout
- ( io-timeout
/ 3 )io-timeout
- 2 )The interval in seconds between sending a message to each remote server to which the local server is directly connected. If no normal network traffic is sent from the local server to any remote server in the configured interval, a message is sent to the remote server.
The io-idle
parameter ensures that an idle but responsive OPMN server does not have its connection timed out when with a remote server. On busy systems, this value should be far enough below the io-timeout
value such that there is enough time for the local server to queue and send the idle message to the remote server before the remote server detects the timeout.
If the io-timeout
is 0, the io-idle
attribute is ignored. A configured value that is less than the minimum value is set to the minimum, and a value greater than the maximum is set to the maximum.
The timeout
parameter is the socket timeout value in seconds used for the local OPMN server for connection attempts and client connection writes. If the connection handshake to the local OPMN server takes longer than the configured timeout value, then the socket is closed and the connection resources are available. If a write on a client connection socket takes longer than the configured timeout value, then the socket is closed and the connection resources are available.
insecure-remote-requests
The process-manager
contains the configuration definitions for the PM portion of OPMN.
insecure-remote-requests="boolean"
true
or false
The insecure-remote-request
attribute is a security check which disables requests until security features are configured. By default OPMN only allows start, stop, restart, shutdown and reload requests rerouted from remote OPMN servers if ONS SSL is enabled
and a wallet file is configured for authentication.
Note:
Setting theinsecure-remote-request
attribute to true
overrides that security check and enables these requests to be issued remotely with no security features configured.
Setting the insecure-remote-request attribute to true
is a major security risk and should only be done for testing purposes with all connected OPMN servers behind a well secured fire wall or completely disconnected from any external network.
Each process module
is designed to support a specific set of process-type
elements; it is only required if the process-type
elements are configured. The PM dynamically loads in a library for each specified process module
.
path, tag, status, cron
The module
element is used to provide process-type
specific support for the PM. Each module is implemented as a shared library. The module exports a set of standard functions and uses the PM process module
API. A module must provide a list of the process-types
it supports. Only one configured process module
may list a specific process-type
. No two modules can list the same process-type
.
The path
attribute must specify the path name of the shared library file. The library file has the system suffix of.so
for Linux and .dll
for Microsoft Windows. The suffix may be omitted and OPMN automatically appends it. ORACLE_HOME
may be used when specifying the path name.
The tag attribute identifies the module. A module may report its tag value when logging errors to the PM log file or as part of the response to a request. While optional, it is a good idea to set this attribute to a meaningful value to help track any issues with process management.
enabled
critical, enabled, or disabled
A module may be enabled
, in which case PM loads in its shared library when it starts and calls the module's initialization functions, or disabled
in which case the module entry is completely ignored. If the module process-types
are configured in the opmn.xml
file they must also be disabled
. The critical
state is the same as enabled
, except that OPMN terminates with a fatal error code if the module initialization fails.
Specify the interval in seconds between calls to the module's cron
callback function. Configuring a cron
interval for a module that does not support the cron
callback is not allowed. Unless you have designed the module, you should neither add nor alter this attribute.
The module-data
blocks are used to define module specific name-value pairs that are meaningful only to a specific module. Each module-data
block is organized into categories, which contain the name-value data pairs.
The module-data
blocks can be defined for multiple elements within the opmn.xml
file, and OPMN creates an aggregate module-data
block at the process-set
level that contains all values defined at or above it. If multiple definitions exist in this hierarchy with the same category id
and data id
, the value defined at the lowest level is used.
Table 6-5 illustrates the module-data
defined at each level in the hierarchy (with the highest level displayed at the top) and the resultant union at the process-set
level of all of the module-data
definitions:
Table 6-6 module-data Hierarchy
Module | Definition |
---|---|
|
<category id="CatA"> <data id= "DataAA" value="aaaa"/> </category> |
ias-component |
<category id="CatA"> <data id= "DataAB" value="abab"/> </category> <category id="CatB"> <data id= "DataBA" value="baba"/> </category> |
module |
<category id="CatA"> <data id= "DataAC" value="acac"/> </category> |
process-type |
<category id="CatA"> <data id= "DataAA" value="XXXX"/> </category> |
process-set |
<category id="CatB"> <data id= "DataBB" value="bbbb"/> </category> |
RESULT |
<category id="CatA"> <data id= "DataAA" value="XXXX"/> <data id= "DataAB" value="abab"/> <data id= "DataAC" value="acac"/> </category> <category id="CatB"> <data id= "DataBA" value="baba"/> <data id= "DataBB" value="bbbb"/> </category> |
id
The category
element is an organizational level within a module-data
block.
This id
string identifies a data category. Each category id
within a single module-data
block must be unique, but multiple module-data
blocks may contain the same data category ids
, in which case the categories are considered to be related.
id, value, process-conversion
A data name value definition within a module-data
category.
This string identifies a data attribute. Each data id
within a single category must be unique, but multiple categories may contain the same data identifications. Data elements with the same identification as other data elements, that are defined in different categories with the same identification, are related.
The value string associated with the data element id.
Any environment variable defined anywhere within the process-set
(any level at or above the process-set
) in which the data value is defined (again, any level at or above the process-set
) referenced within the value string as $variable
or %variable%
is expanded to the variable value.
true
true
or false
The process-conversion
attribute enables you to set the separator character. By default OPMN converts slashes in the data value string to be those of the directory path separator character for the system on which OPMN is running (on UNIX each \ character is converted to / and on Windows each / is converted to \). Set this attribute to false to disable this conversion.
Note that if process-conversion is true, OPMN uses the ^ character as an escape character to disable process conversion for the following character, and so ^/ on a Windows system yields a "/" in the string. Specify two ^ characters if you need to specify the ^ character in the resultant string: ^^ yields ^.
id
The module-id
name defines the type of process and associates the configuration with a process module
.
This identifier is used by each process-type
to specify which module supports it. A module may be configured with multiple module-ids
.
id
The configuration definitions for an Oracle instance. Only one ias-instance
is supported for each OPMN.
id
= ias-instance-id;
name
= ias-instance-name
The string specifies the ias-instance
id.
ias-instance
-id
The name
string specifies the ias-instance
name, and it is this value that is used to identify the Oracle instance.
Like module-data
blocks, environment
blocks can be defined for multiple elements within the opmn.xml
file, and OPMN creates an aggregate environment
block at the process-set
level that contains all values defined at, or above it. If multiple definitions exist in the hierarchy with the same id
, the value defined at the lowest level is used.
OPMN provides a default set of environment variables for each managed process, and a set of Java system properties for managed Java processes.
Environmental variables are described in Table 6-7:
Table 6-7 Environmental Variables
Environmental Variable | Definition |
---|---|
|
Full path to the oracle home |
|
Full path to the Oracle instance home |
|
The name of the Oracle instance |
|
The unique process id |
|
Synonym of |
|
The index of the process |
|
Synonym of |
|
The name of the component |
|
The type of the component |
|
Absolute path to the configuration files on disk for your component |
|
Absolute path to the log files on disk for your component |
|
Defaults to |
|
Defaults to |
|
Defaults to |
|
Defaults to |
|
By default this contains |
|
By default |
|
Linux default: ORACLE_HOME/bin:ORACLE_HOME/jdk/bin:/bin:/usr/bin:/usr/local/bin Microsoft Windows default: %ORACLE_HOME%\lib;%ORACLE_HOME%\bin;%ORACLE_HOME%\jdk\bin;%SystemRoot%;%SystemRoot%\system32 |
|
Defaults to |
|
Defaults to |
|
Defaults to |
|
"true" if the Oracle instance is registered with an admin server |
|
The associated admin host ("N/A" if not available) |
|
The associated admin port ("N/A" if not available) |
|
The associated admin protocol ("N/A" if not available) |
|
The associated admin username ("N/A" if not available) |
System Properties set for all managed Java processes (flagged as such to OPMN by the process module) are described in Table 6-8:
Environmental Variable | Definition |
---|---|
|
The unique process id |
|
Synonym of |
|
The index of the process |
|
Synonym of |
|
Full path to the oracle home |
|
Full path to the Oracle instance home |
|
The name of the Oracle instance |
|
The name of the component |
|
The type of the component |
|
Absolute path to the configuration files on disk for your component |
|
Absolute path to the log files on disk for your component |
|
"true" if the Oracle instance is registered with an admin server |
|
The associated admin host ("N/A" if not available) |
|
The associated admin port ("N/A" if not available) |
|
The associated admin protocol ("N/A" if not available) |
|
The associated admin username ("N/A" if not available) |
id, value, append, process-conversion
The variable element defines the environment variable name and value.
The id
is the environment variable name. An environment id
may be duplicated within an environment
block, with the last defined value taking priority over earlier definitions. The same environment id
may be defined within environment
blocks for different elements, and the value defined at the lowest level takes priority over values defined at higher levels.
The environment value. Environment variables referenced within the value string as $variable
or %variable%
is expanded to the variable value. The same environment variable may reference itself to use a definition defined at a higher level, or earlier within this same environment
block or from the environment of OPMN.
You may use the Linux shell syntax for referencing an environment variable, $variable
or ${variable}
, or the Microsoft Windows format %variable%
. Referenced variables that have not been defined remain in place as referenced, and so value="_notdefined_"
would remain unchanged.
For example, the following environment block yields a value for accumulate
of "foobar
".
<environment> <variable id="accumulate" value="foo"> <variable id="accumulate" value="${accumulate}bar"> </environment>
true
or false
You can force OPMN to append the new environment variable value to the previously defined value, with the system library delimeter placed in between the two values (':' for Linux and ';' for Microsoft Windows) by specifying a value of true
for this attribute. This is useful when assembling a value for a variable such as CLASSPATH
.
For example, the following environment
block yields a value for CLASSPATH
of "/foo:/bar
" on a Linux system.
<environment> <variable id="CLASSPATH" value="/foo"> <variable id="CLASSPATH" value="/bar" append="true"> </environment>
true
true
or false
id, id-matching, status
, type
An ias-component
is a logical grouping of process-type
for administrative purposes.
The id
attribute uniquely identifies the ias-component
within the ias-instance
.
true
or false
By default OPMN requests that do not specify ias-components
match all configured ias-components
, unless the id-matching
attribute for a component is set to true
, in which case the request must explicitly include the ias-component id
in order to affect the ias-component
or any process-type
or process-set
configured for that ias-component
.
enabled
enabled
or disabled
An ias-component
may be enabled
, in which case OPMN parses all of its configured attributes and elements and enables requests to operate upon it, or disabled
, in which case the ias-component
entry is completely ignored.
The type attribute allows you to specify a relationship among ias-components
within the same ias-instance
.
When configured the component-type
is used for the value of the per process COMPONENT_TYPE
environment variable (or the oracle.component.type
system property for Java processes), and for the type element of the paths specified by COMPONENT_CONFIG_PATH
and COMPONENT_LOG_PATH
(oracle.component.configpath
and oracle.component.logpath
). If component-type
is not configured, then the process-type id
attribute is used in the composition of these strings.
OPMN uses dependencies
to determine if a process should be started or not. Like module-data
and environment
block, dependencies blocks can be defined for multiple elements within the opmn.xml
file, and OPMN creates an aggregate dependency list at the process-set
level that contains all dependencies defined at or above it. If duplicate dependencies are defined at different levels, then duplicate checks on that dependency is made before starting a process. OPMN creates an aggregate dependency list at the process-set
level that contains all dependencies defined at or above it. If duplicate dependencies are defined at different levels, then duplicate checks on the dependency is made before starting a process.
There are two primary types of dependencies: external and internal. External dependencies are for those resources not managed by OPMN. For example: Fusion Middleware Control Console.
An external program is executed by OPMN to perform the check on the resource. Internal dependencies are for system component processes (unit), which may include processes managed on a remote OPMN.
OPMN maintains a cache of dependency states which contains the last known state of each dependency, and the time it was last checked. A cache-timeout
parameter for each dependency enables users to specify how long to use its state in the cache, or if it should be used at all. Similarly, a general timeout parameter for each dependency determines how long OPMN waits for a status update from that dependency before aborting the dependency check and the process start.
OPMN checks dependencies in the order in which they are declared. The traversal of the list of dependencies concludes either with the full sequence of successful checks, the dependency is available, or the first check failure, the dependency is not available, or the dependency check timed out.
db-connect-info, infrastructure-key, timeout, cache-timeout
The database
element specifies the database to check. Either db-connect-info
or infrastructure-key
is used to identify the database.
infrastructure-key
is not specified.The db-connect-info
attribute is the string required to connect to the database. The string can be in either of the following formats:
<host>:<port>/<service name>
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=<host>) (PORT=<port>)) (CONNECT_DATA=(SERVICE_NAME=<service name>)))
For example:
pdsundev7:1521/asdb.us.oracle.com
db-connect
is not specified.The infrastructure key
attribute is required to identify the database.
1200
The timeout
attribute specifies in seconds how long OPMN waits for a dependency check to complete. If the check takes longer than the configured timeout, then OPMN considers the check to have failed.
600
The cache-timeout
attribute specifies how long in seconds OPMN uses the current "up" status for the dependency entry in the cache. If the last successful dependency check was within the prescribed number of seconds from the current check, then the dependency check is instantly flagged as successful, otherwise another dependency check is performed. Note that the cache-timeout
is only for the last successful check of the dependency, and if the previous check failed, another access of the dependency is performed for this check. A value of 0 indicates OPMN always performs the check.
address, infrastructure, timeout, cache-timeout
The <OID>
element specifies the Oracle Internet Directory service to check an address string for a specific Oracle Internet Directory. This value is set to true
to use the default Oracle Internet Directory.
The address
element is the address string required to connect to Oracle Internet Directory.
address
is not set.true
or false
Use the default infrastructure Oracle Internet Directory for the Oracle instance.
enabled, wallet-file, wallet-password
The SSL information for the Oracle Internet Directory connection.
true
or false
To enable SSL on the Oracle Internet Directory connection, set the enabled
attribute to true
.
The path name to the wallet file for authentication of the Oracle Internet Directory connection.
The wallet-password
attribute is the password for the specified wallet-file.
1200
The timeout
attribute specifies in seconds how long OPMN waits for a dependency check to complete. If the check takes longer than the configured timeout, then OPMN considers the check to have failed.
600
The cache-timeout
attribute specifies how long in seconds OPMN uses the current "up" status for the dependency entry in the cache. If the last successful dependency check was within the prescribed number of seconds from the current check, then the dependency check is flagged as successful. Otherwise, OPMN performs another dependency check. The cache-timeout
is only for the last successful check of the dependency. If the previous check failed, OPMN performs another access of the dependency check. A value of 0 indicates OPMN always performs the check.
host, port, URI, timeout, cache-timeout
The OSSO
element specifies the Oracle Single Sign-On service to check.
The host
attribute is the host name for the Oracle Single Sign-On connection.
The port
attribute is the port for the Oracle Single Sign-On connection.
The URI
attribute is the URI for the Oracle Single Sign-On connection.
enabled, wallet-file, wallet-password
The ssl
element is the SSL information for the Oracle Single Sign-On connection.
true
or false
The enabled
attribute enables the SSL connection to Oracle Single Sign-On. To enable the connection set this attribute to true
.
The wallet-file
attribute is the path name to the wallet file for authentication of the Oracle Single Sign-On connection. The ORACLE_HOME
value may be used.
The wallet-password
is the password for the specified wallet-file.
1200
The timeout
attribute specifies in seconds how long OPMN waits for a dependency check to complete. If the check takes longer than the configured timeout, then OPMN considers the check to have failed.
600
The cache-timeout
attribute specifies how long in seconds OPMN uses the current "up" status for the dependency entry in the cache. If the last successful dependency check was within the prescribed number of seconds from the current check, then the dependency check is flagged as successful. Otherwise, OPMN performs another dependency check. The cache-timeout
is only for the last successful check of the dependency. If the previous check failed, OPMN performs another dependency check. A value of 0 indicates OPMN always performs the check.
ias-instance, ias-component, process-type, process-set, autostart, autostop, timeout, cache-timeout
The managed-process
attribute specifies the managed process to check. A process for process-type
or process-set
does not start unless the specified dependency managed process is active. Circular dependencies are detected and rejected for local managed processes, but not for remote managed processes; this may result in a dependency check deadlock, which times out.
ias-instance="ias-instance-id"
ias-instance
of the current process-type
or process-set
.The ias-instance
for the managed process dependency. If the specified ias-instance
is not managed by the current OPMN, it is assumed to be a remote managed process dependency.
ias-component="ias-component-id"
The ias-component
for the managed process dependency.
process-type="process-type-id"
The process-type-id
for the managed process dependency.
The process-set-id
for the managed process dependency.
true
or false
The autostart
attribute is used for the managed process dependency. If the process is not running when the check is performed, the autostart
element tries to get OPMN to attempt to start it.
true
or false
When the managed process dependency is stopped, then stop the managed process. The attribute is always false
for remote managed process dependencies.
1200
The timeout
attribute specifies, in seconds, how long OPMN waits for a dependency check to complete. If the check takes longer than the configured timeout, then OPMN considers the check to have failed.
600
The cache-timeout
attribute is only used for a process managed by a remote OPMN. The cache-timeout
attribute specifies how long in seconds OPMN uses the current "up" status for the dependency entry in the cache. If the last timeout dependency check was within the prescribed number of seconds from the current check, then the dependency check is instantly flagged as successful, otherwise OPMN performs another dependency check. Note that the cache-timeout
is only for the last successful check of the dependency, and if the previous check failed, OPMN access of the dependency is performed for this check. A value of 0 indicates OPMN always performs the check.
Note:
Thecache-timeout
is only for the last successful check of the dependency, and if the previous check failed, OPMN performs another dependency check.id, module-id, status, working-dir
A process-type
is a grouping of process-sets
that are supported by the same module.
The id
attribute uniquely identifies the process-type
within the ias-component
.
The module-id
attribute must map directly map to the module-id
attribute that supports the process-type
.
enabled
enabled
or disabled
A process-type
may be enabled
, in which case OPMN parses all of its configured attributes and elements and enables requests to operate upon it, or disabled
, in which case the process-type
entry is completely ignored and treated as if it were not listed in the opmn.xml
file.
The working-dir
path name specifies the working location that is set for managed processes created by the process-type
element. If a process-set
also defines a working-dir
attribute, then the process-set path name takes precedence over the process-type
path name.
event script
is executed when a specific process related event has occurred. OPMN waits until the script completes or times out before proceeding with the next action
for the process.Table 6-9 Event Script Arguments
Option Name | Option Argument | Description |
---|---|---|
|
|
An integer value for the current |
|
|
The |
|
|
The |
|
|
The |
|
|
The |
|
|
The |
- |
|
The path name for the |
- |
|
The path name for the |
|
|
A string indicating the reason script was executed. The |
- |
|
The operating system integer value given for the |
- |
|
An integer value for the system start time of the process (in seconds). |
Footnote 1 This argument is only given for a pre-start script if the start is part of a process restart request. The pre-start event is triggered only prior to performing a start. A restart operation may be composed of a stop operation followed by a start operation. A start operation can occur as an operation all by itself or as a sub-operation of a restart.
Footnote 2 This argument is only available with pre-stop or post-crash event scripts.
path
OPMN runs the pre-start
script after any configured dependency checks have been performed (and passed) and before the process is actually started. The timeout for the pre-start
script is the timeout value configured for starting the process itself, and any time consumed by the execution of this script counts toward the process start timeout. If the script times out, the process is not started and any associated HTTP request fails.
Be cautious when you execute any OPMN process requests such as start
, stop
or restart
within an event script. These requests are serialized at the process-set
level. If the script invokes a request on a process-set
on which the current request (or another already queued request) is operating, then the script hangs until it times out.
The path name must specify either an executable program for which OPMN has execute permission, or a script file for which OPMN has both read and executable permission.
path
OPMN runs the specified script before stopping the associated process. The timeout for the script is the value configured for stopping the process itself. Any time consumed by the execution of the script counts toward the process stop timeout. If the script times out, any associated HTTP request fails. However, OPMN proceeds with stopping the process.
Be cautious when you execute any OPMN process requests such as start, stop,
or restart
. These requests are serialized at the process-set
level. If the script invokes a request on a process-set
on which the current request (or another already queued request) is operating, then the script hangs until it times out.
The path
attribute must specify either an executable program for which OPMN has execute permission, or a script file for which OPMN has both read and executable permission.
path
OPMN runs the specified script after the associated process has terminated unexpectedly. The timeout for the script is the timeout value configured for stopping the process itself. After the script has terminated OPMN schedules a replacement of the terminated process.
Be cautious when you execute any OPMN process requests such as start
, stop or restart. These requests are serialized at the process-set
level. If the script invokes a request on a process-set
on which the current request (or another already queued request) is operating, then the script hangs until it times out.
The path
attribute must specify either an executable program for which OPMN has execute permission, or a script file for which OPMN has both read and executable permission.
timeout, retry
The start
attribute contains the start parameters for a managed processes.
60
The timeout
attribute specifies the timeout value in seconds for the start of a managed process.
0
The retry
attribute specifies the number of consecutive attempts that is made to start the process for a single request.
timeout
The stop
attribute specifies the stop parameters for managed processes.
30
The timeout
value in seconds for the stopping a managed process.
timeout, retry
The restart
parameters for managed processes.
90
The timeout
value in seconds for the restart of a managed process.
0
The retry
attribute is the number of consecutive attempts that is made to restart the process for a single request.
,
<process-set>timeout, retry
The ping
element is the ping parameters for managed processes.
20
The timeout
value in seconds for the ping of a managed process. Each module specifies a ping timeout.
0
The retry
attribute is the number of consecutive ping failures that is tolerated before the module declares the process unreachable and restarts it. Each module specifies ping retries.
20
The interval
attribute is the interval, in seconds, between each ping of a managed process.
id, range
The port
element provides a port management mechanism for modules to use. Each module uses the ports configured with id
.
The id
attribute identifies the range of ports for the process-type
. Each module has its own list of required or optional port
ids.
The port range
specifies which ports to use for the id
.
Upon request from a module for a port number from the id
, OPMN checks if a port in the range has been bound on the local system, and if it has not, it returns that port number back to the module. Syntax of the port range
is a comma separated list of individual port numbers or a low-high range specification.
Examples:
Specify ports 5555, 6666, 7777, 8888, and 9999:
range="5555,6666,7777,8888,9999"
Specify ports 4000 through 4250 (inclusive):
range="4000-4250"
Specify ports 7000 through 7049, 7775, 7785, and 8050 through 8099:
range="7000-7049,7775,7785,8050-8099"
id="component-id" numprocs="1"
id, restart-on-death, numprocs, minprocs, maxprocs, status, working-dir, parallel-requests
A process-set
is the abstraction of a process within OPMN. All module-data
, environment variables, and other configuration parameters are resolved into their final values at the process-set
level.
If a process-set
is not configured, then one is automatically created using the same id
as the ias-component
and numprocs
of 1.
The id
attribute uniquely identifies the process-set
within the process-type
.
true
or false
If a managed process terminates unexpectedly, that is, not stopped by a request, then OPMN will not automatically restart it. To disable automatic restarting of terminated managed processes set the attribute to false
.
minprocs
is configured; otherwise falseSpecifies the number of processes for OPMN to start for the process-set
.
numprocs
is configured; otherwise falseSpecifies the default number of processes for OPMN to start for this process set. If minprocs
is configured, then maxprocs
must be set with a value greater than or equal to the value for minprocs. If minprocs and maxprocs
are configured, a specific number of processes may be given in an OPMN request for this process set. This attribute may not be specified if numprocs
has been configured.
The maxprocs
attribute must be specified if minprocs has been configured, but cannot be specified if numprocs has been configured.
enabled
enabled
or disabled
A process-set
may be enabled
, in which case OPMN parses all of its configured attributes and elements and enables requests to operate upon it, or disabled
, in which case the process-set
entry is complete ignored and treated as if it were not even listed in the opmn.xml file
.
ORACLE_INSTANCE
The working-dir
path name specifies the working directory set for the managed processes created that belong to the process-set
.
true
or false
OPMN serializes requests at the process-set
level, such that only one request can execute on a given process-set
at a time: each subsequent request must wait until the previous request completes before it can execute. This default behavior is disabled for a process-set
when parallel-requests
is set to true
.
Note:
When theparallel-requests
attribute is enabled OPMN performs no serialization on requests for the process-set
at all, which means conflicting requests may be issued and execute at virtually the same time, thus leaving processes in the process-set
in unpredictable states; therefore when parallel-requests
is set to true
you must verify that conflicting requests are not issued at the same time for the process-set
(this includes requests with implicit wild-cards for matching process-set
s).The launch-targets block is composed of a list of launch-target definitions. There can be only one launch-targets block.
The definition of a process which OPMN starts via the launch request.
Valid values: A string.The identifier for this launch-target. Each launch-target must have a unique id. This identifier is specified by the target argument of the launch request.
The executable path for the launch-target. Only one exec element may be configured per launch-target.
Specify the full path to the executable file.
An argument always passed to the configured executable process. Multiple argument elements may be configured per launch-target, and the arguments are passed to the executable in the order in which they are configured.
Any additional arguments passed in via the launch request are passed in after the configured arguments.
Specify a single argument for the executable; spaces are not argument delimeters-use multiple argument elements to define multiple arguments.
The timeout used for each io made from the launch request thread. Only one timeout element may be configured per launch-target.
The io timeout value in seconds.
The maximum number of concurrent processes for this launch-target. Only one max-concurrency element may be configured per launch-target.
The maximum number of concurrent processes for this launch-target.