Running an Agent as a Windows Service

The Agent or Scheduler Agent can be installed on a windows NT, 2000,2003 or XP platform as a service.

When running the setup, you must choose the Tools option in the setup. This option installs the Java Wrapper tool that is used to run the agent as a service.

To install the Agent as a Service:
  1. Edit the /bin/odiparams.bat file to match your configuration. The service created uses the agent startup parameters specified in this file.

  2. Launch a Windows Command Prompt (Windows).

  3. Go to the /bin sub-directory of your Oracle Data Integrator installation folder.

  4. Run the agentservice.bat script with appropriate parameters to install the service.

  5. Once the service is installed, you must go to the Windows' service manager to start the service.

Syntax

agentservice.bat -i|-r -a|-s [<agent_name> [<agent_port> [<wrapper_configuration_file>]]]

 

Parameters

Description

-i|-r

-i option installs the service

-r option un-installs the service.

-a|-s

-a Installs the listener agent (it uses the snpsagent.conf parameter file)

-s Installs the Scheduler agent (it uses the snpsagentscheduler.conf parameter file)

<agent_name>

Name of the physical agent as declared in the topology. This parameter is mandatory for a Scheduler Agent, and optional for a listener agent.

Note: This parameter affects the definition of the created service. When un-installing a service, you must specify the same <agent_name> that was used to install it.

<agent_port>

Listening port for the agent.

<wrapper_configuration_file>

Name of the wrapper configuration file. This file must be located in the tools/wrapper/conf/ sub-directory of your Oracle Data Integrator installation folder. This parameter is optional.

Configuration File

The agent startup configuration (connected repository, java parameters) is defined in the odiparams.bat file.

The wrapper configuration file, located in the tools/wrapper/conf/ sub-directory of your Oracle Data Integrator installation folder, defines how the service will be launched. It contains part of the parameters of the agent, and may be changed according to your configuration.

For example, the following elements could be changed:

The reference for this configuration file is given at the following URL: http://wrapper.tanukisoftware.org/.

Warning: You should not change a configuration file used by an existing service. The service should be un-installed first.

Configuration file sample

This sample file highlights the key parameters to adapt to your configuration, in green.

#********************************************************************

# Java wrapper Properties properties file for an Agent Scheduler

# Note that most parameters are set in the odiparams.bat file, or on

# the agentservice.bat command line.

# They are displayed in this file for information.

#********************************************************************

# *** Set the path to reference the jvm used for your Agent

# This parameter is read in odiparams.bat

# wrapper.java.command=java.exe

wrapper.working.dir=../../../bin/

#  Java Main class.

wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp

# Java Classpath. Add class path elements as needed starting from 1

wrapper.java.classpath.1=../tools/wrapper/lib/wrapper.jar

wrapper.java.classpath.2=../lib/.

wrapper.java.classpath.3=../lib/sunopsis.zip

wrapper.java.classpath.4=../lib/snpshelp.zip

wrapper.java.classpath.5=../lib/jakarta-ant-1.4.1-optional.jar

wrapper.java.classpath.6=../lib/NetComponents.jar

wrapper.java.classpath.7=../lib/sunjce_provider.jar

wrapper.java.classpath.8=../lib/jce1_2_2.jar

wrapper.java.classpath.9=../lib/local_policy.jar

wrapper.java.classpath.10=../lib/US_export_policy.jar

wrapper.java.classpath.11=../lib/scripting/.

wrapper.java.classpath.12=../lib/scripting/bsf.jar

wrapper.java.classpath.13=../lib/scripting/bsh-1.2b7.jar

wrapper.java.classpath.14=../lib/scripting/js.jar

wrapper.java.classpath.15=../lib/scripting/jython.jar

wrapper.java.classpath.16=../drivers/.

wrapper.java.classpath.17=../drivers/classes12.zip

wrapper.java.classpath.18=../drivers/db2java.zip

wrapper.java.classpath.19=../drivers/jt400.zip

wrapper.java.classpath.20=../drivers/mysql.zip

wrapper.java.classpath.21=../drivers/snpsmq.zip

wrapper.java.classpath.22=../drivers/snpsxmlo.zip

wrapper.java.classpath.23=../drivers/sqlj.zip

wrapper.java.classpath.24=../drivers/common.jar

wrapper.java.classpath.25=../drivers/db2fs.jar

wrapper.java.classpath.26=../drivers/db2jcc.jar

wrapper.java.classpath.27=../drivers/jconn2.jar

wrapper.java.classpath.28=../drivers/xerces.jar

# *** add here the aditionnal driver classes that do not appear in the list above

# Java Library Path (location of Wrapper.DLL or libwrapper.so)

wrapper.java.library.path.1=../tools/wrapper/lib/

# Java Additional Parameters

wrapper.java.additional.1=-Djava.security.policy=server.policy

# Initial Java Heap Size (in MB)

# This parameter is read in odiparams.bat

# wrapper.java.initmemory=64

# Maximum Java Heap Size (in MB)

# This parameter is read in odiparams.bat

# wrapper.java.maxmemory=128

# Application parameters.  

wrapper.app.parameter.1=oracle.odi.Agent

# The parameters below, related to the repository connection, are read in odiparams.bat

# update them in odiparams.sh

# wrapper.app.parameter.1=oracle.odi.Agent

# wrapper.app.parameter.2="-SECU_DRIVER=org.hsqldb.jdbcDriver"

# wrapper.app.parameter.3="-SECU_URL=jdbc:hsqldb:hsql://localhost"

# wrapper.app.parameter.4="-SECU_USER=sa"

# wrapper.app.parameter.5="-SECU_PASS="

# wrapper.app.parameter.6="-WORK_REPOSITORY=WORKREP2"

#

# Add additionnal parameters below, starting from parameter number 10

#********************************************************************

# Wrapper Logging Properties

#********************************************************************

# Format of output for the console.  (See docs for formats)

wrapper.console.format=PM

# Log Level for console output.  (See docs for log levels)

wrapper.console.loglevel=INFO

# Log file to use for wrapper output logging.

wrapper.logfile=agentservice.log

# Format of output for the log file.  (See docs for formats)

wrapper.logfile.format=LPTM

# Log Level for log file output.  (See docs for log levels)

wrapper.logfile.loglevel=INFO

# Maximum size that the log file will be allowed to grow to before

#  the log is rolled. Size is specified in bytes.  The default value

#  of 0, disables log rolling.  May abbreviate with the 'k' (kb) or

#  'm' (mb) suffix.  For example: 10m = 10 megabytes.

wrapper.logfile.maxsize=1m

# Maximum number of rolled log files which will be allowed before old

#  files are deleted.  The default value of 0 implies no limit.

wrapper.logfile.maxfiles=10

# Log Level for sys/event log output.  (See docs for log levels)

wrapper.syslog.loglevel=FATAL

#********************************************************************

# Wrapper NT Service Properties

#********************************************************************

# WARNING - Do not modify any of these properties when an application

#  using this configuration file has been installed as a service.

#  Please uninstall the service before modifying this section.  The

#  service can then be reinstalled.

# Name of the service

# This parameter is set depending on the agent Name

wrapper.ntservice.name=SnpsAgent

# Display name of the service

wrapper.ntservice.displayname=Oracle Data Integrator Agent

# Description of the service

wrapper.ntservice.description=Executes Oracle Data Integrator Sessions

# Service dependencies.  Add dependencies as needed starting from 1

wrapper.ntservice.dependency.1=

# Mode in which the service is installed.  AUTO_START or DEMAND_START

wrapper.ntservice.starttype=AUTO_START

# Allow the service to interact with the desktop.

wrapper.ntservice.interactive=false

#********************************************************************

# Wrapper JVM Timeouts in seconds (0 = No timeout limit)

#********************************************************************

# wrapper.ping.timeout=10

# wrapper.cpu.timeout=30