2 Installation and Configuration

This chapter describes the installation of Oracle Database Extensions for .NET, system requirements, and file locations.

This chapter contains these topics:

System Requirements

Oracle Database Extensions for .NET requires the following:

  • Microsoft .NET Framework 1.x or 2.0.

  • Windows Operating System:

    • 32-bit: Windows Vista (Business, Enterprise, and Ultimate Editions), Windows Server 2003, Windows Server 2003 R2, Windows 2000 or Windows XP Professional Edition.

    • 64 bit: Windows Vista x64 (Business, Enterprise, and Ultimate Editions), Windows Server 2003 x64, Windows Server 2003 R2 x64, or Windows XP x64.

    • 64-bit: Windows Server 2003 for Itanium-based systems.

  • Oracle Database 11g Release 1 (11.1) or later.

  • Oracle Client release 10gR2 (10.2) or later is required for .NET stored procedure development and deployment.

  • Oracle Developer Tools for Visual Studio .NET.

    Oracle Developer Tools for Visual Studio .NET is not released with Oracle Database 11g release 1 (11.1). It can be obtained from the Oracle .NET Developer Center at OTN.

Requirements for .NET Stored Procedures and Functions

A .NET stored procedure or function must meet the following requirements:

  • Be declared a public static method.

  • Not be a constructor or a destructor.

  • Use parameter types that are compatible with the Oracle native database types.

File Locations after Installation

OraClr11.dll is installed in the ORACLE_BASE\ORACLE_HOME\bin directory.The readme file, readme.html, is installed in the ORACLE_BASE\ORACLE_HOME\ODE.NET\DOC directory.

.NET assemblies deployed by developers are copied into the ORACLE_BASE\ORACLE_HOME\bin\CLR directory (or its subdirectory) by the Oracle Deployment Wizard for .NET.

Oracle.Database.Extensions.dll is installed in Global Assembly Cache from ORACLE_BASE\ORACLE_HOME\ODE.NET\bin\1.x directory or ORACLE_BASE\ORACLE_HOME\ODE.NET\bin\2.x directory (in case of Oracle Database Extensions for .NET 2.x).

Installation and First Use

Oracle Database Extensions for .NET is installed as part of a custom Oracle Database installation using the Oracle Universal Installer. From the Oracle Universal Installer Welcome screen, you must chose Advanced Installation, then from the Select Installation Type screen, choose Custom. When the Available Product Components list is displayed, go to Enterprise Edition Options, and select Oracle Database Extensions for .NET.

Oracle Database Extensions for .NET is configured using the Database Configuration Assistant.

Configuring Extproc Agent Using Windows Service

As part of Oracle Database Extensions for .NET installation, a Windows service is installed. The service is called OraClrAgnt and can be accessed through the Service Control Panel, as OracleORACLE_HOMEClrAgent, where ORACLE_HOME represents your Oracle home.

This service is used for the startup, configuration, and shutdown of the extproc agent.

The parameters which can be configured using this service are listed in Table 2-1, "OraClrAgnt Service Parameters".

These parameter values can be specified as part of the Start Parameters in the properties window of the Control Panel Service. In this case, the parameter values are not saved and the values must be supplied again if the service is restarted later.

To persist the parameter values, you can change the Windows registry entry for this service and provide the parameter values as command line parameters to OraClrAgnt.exe. To do this, set the Windows registry key, ImagePath, located at

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ OracleOracleHomeClrAgent

The value should be something similar to the following:

ORACLE_BASE\ORACLE_HOME\bin\OraClrAgnt.exe agent_sid=CLRExtProc max_dispatchers=2 tcp_dispatchers=0 max_task_threads=6 max_sessions=25 ENVS="EXTPROC_DLLS=ONLY:ORACLE_BASE\ORACLE_HOME\bin\oraclr11.dll"

If the service cannot be started or stopped, the error messages are logged in the Application Log of the Event Viewer, with the service name as the event source name.

OraClrAgnt Service Parameters

Table 2-1 lists the parameters which can be configured using this service.

Table 2-1 OraClrAgnt Service Parameters

Parameters Descriptions


This represents the SID of the extproc process. The default value is CLRExtProc. This is a mandatory parameter. If this parameter value is changed, appropriate changes need to be made in tnsnames.ora and listener.ora files.


Variable that specifies the EXTPROC_DLLS environment variable, which restricts the DLLs that extproc can load.

This is similar to setting environment variables to external procedures using listener.ora.

Refer to "Table 13–5 External Procedures Settings in listener.ora" in Oracle Net Services Administrator's Guide for more information.


Address on which the listener is listening. This is an optional parameter. If it is not specified, then this is set to the default value.


Number of maximum dispatchers in the extproc process. This is an optional parameter. If it is not specified, then this number is set to a default value.


Number of maximum sessions in the extproc process. This is an optional parameter. If it is not specified, then this number is set to a default value.


Number of maximum task threads in the extproc process. This is an optional parameter. If it is not specified, then this number is set to a default value.


Address on which the agent should listen for shutdown messages from agtctl. This is an optional parameter. If it is not specified, then this is set to the default value.


Number of TCP dispatchers in the extproc process. This is an optional parameter. If it is not specified, then this number is set to a default value.


By default, this service is created and run in the Local System Account; however, it can be changed to work with a logged-on user account through the service control panel.

See Also:

Oracle Database Heterogeneous Connectivity Administrator's Guide, Table 5-2, for further information about configuration parameters and default values

Oracle Database Extensions for .NET Registry Options

Oracle Database Extensions for .NET uses a number of registry entries located at


to load a particular version of .NET runtime and to trouble shoot product issues. Table 2-2 lists such registry keys and the sections where the keys are discussed.

Table 2-2 Registry Options

Registry Key Section


"Selecting a .NET Runtime Version"







Selecting a .NET Runtime Version

If multiple .NET runtime versions are installed on the database computer, then Oracle Database Extensions for .NET defaults to using the latest .NET runtime available. However, you can configure Oracle Database Extensions for .NET to load a particular .NET runtime by setting a registry value.

To specify .NET runtime version, set a registry value, .NETFramework under this registry key:


Set the registry value to the appropriate .NET runtime version, for example, v2.0.50727.

For example, if the server has .NET framework version 1.1 and 2.0 and the .NET stored procedures are built with .NET framework 1.1, then this registry value may be set to v1.1.4322 to instruct Oracle Database Extensions for .NET to load .NET framework version 1.1.4322 instead of .NET framework version 2.0.50727.

The following are typical values for .NET runtime versions:

1.0 : v1.0.3705

1.1 : v1.1.4322

2.0 : v2.0.50727

Debug Tracing

Oracle Database Extensions for .NET provides debug tracing support, which allows logging of all the Oracle Database Extensions for .NET activities into a trace file. Different levels of tracing are available.

The following registry settings should be configured under



TraceOption specifies whether to log trace information in single or multiple files for different threads. If a single trace file is specified, the filename specified in TraceFileName is used. If the multiple trace files option is requested, a Thread ID is appended to the file name provided to create a trace file for each thread.

The valid values for TraceOption are:

0 = Single trace file

1 = Multiple trace files

Note: You can use Oracle Data Provider for .NET tracing mechanism to troubleshoot ODP.NET specific issues.


TraceFileName specifies the file name that is to be used for logging trace information. If TraceOption is set to 0, the name is used as is. However, if TraceOption is 1, the Thread ID is appended to the file name provided.

The valid values for TraceFileName are: any valid path name and file name.


TraceLevel specifies the level of tracing in Oracle Database Extensions for .NET.

The valid values for TraceLevel are:

0 = None

1 = Entry and exit information

See Also:

Debug Tracing section in Oracle Data Provider for .NET Developer's Guide