Many applications require creation of multiple components when Nucleus starts. For example, an application might be running three different server components. It is unlikely that these server components refer to each other, so starting one of the servers does not necessarily start the other two.
You can start multiple components through a single component that references all components that must be started, then start that component. The Initial
component of class atg.nucleus.InitialService
that exists specifically for this purpose. Because it is specified in Nucleus.properties
, it is always guaranteed to start, and in turn starts other services that are specified in its initialServices
property:
$class=atg.nucleus.InitialService initialServices=\ /atg/Initial,\ VMSystem,\ /atg/dynamo/StartServers
The initialServices
property specifies three services that start when Nucleus starts. You can use this technique to initialize entire sections of an application.
For example, an application might include multiple servers and loggers, where servers and loggers are started by two Initial components:
/servers/Initial
starts the servers./loggers/Initial
starts the loggers.
The initialServices
property of the master /Initial
component references these two components. This lets you manage each set of services separately, while ensuring that they are always included in the overall startup process.
Note: A component that is started through the initialServices
property must be globally scoped.
The following diagram shows how an Oracle Commerce Platform configuration can ensure that startup of a Nucleus-based application precipitates startup of multiple initial services:
You can configure the Oracle Commerce Platform to send logging info messages for each component that is started by setting the following property in the Nucleus
component:
loggingInfo=true