=============================================================
Oracle Data Provider for .NET (ODP.NET) 11.1.0.6.0 Production
=============================================================
Copyright (C) Oracle Corporation 2007
This document provides information that supplements the Oracle Data Provider
for .NET (ODP.NET) documentation.
========================
NEW FEATURES AND CHANGES
========================
1. Password Case-Sensitivity
The 11.1 Oracle database will support case-sensitive passwords by default.
Thus, ODP.NET applications that connect to 11.1 Oracle databases with the
default configuration will be required to provide the password connection
string attribute in the appropriate case. ODP.NET has been modified to
preserve the case of the password as it is given in the connection string.
The double-quotes to preserve the case are still supported, but are not
required for the password case as that will be preserved by ODP.NET regardless.
This means that some applications may require changes in their applications or
in the configuration files, so that the password is specified in the proper
case to enable users to be authenticated by the database appropriately.
2. Configuration File Support
For customers that have numerous applications on a machine that depend on a
single version of ODP.NET, the registry settings for a given version of
ODP.NET may not necessarily be applicable for all applications that use that
version of ODP.NET. To provide a more granular control, ODP.NET's
Configuration File Support allows applications to specify ODP.NET
configuration settings in an application config, web.config, or a
machine.config file.
The Windows Registry can still be used to specify configuration settings for a
particular version of ODP.NET. The ODP.NET configuration settings in
machine.config will override the registry settings and be applied at a machine
wide level. The ODP.NET configuration settings in the application config or
the web.config override the machine.config settings (if any) and are applied
specifically to the application.
If a machine does not require granular control beyond configuration settings
at the ODP.NET version level, there's no need to use configuration files to
specify ODP.NET configuration settings.
The following is an example of a web.config file for .NET Framework 2.0:
Note that through the use of the DllPath configuration parameter, each
application can specify the \bin location the dependent unmanaged
Oracle Client binaries are loaded from. However, note that the
must have the same version of ODP.NET installed as the version used by the
application. Otherwise, a version mismatch exception will be thrown.
Note also that when new versions of ODP.NET get installed, the registry
entries for the newly installed version of ODP.NET are set with default values.
And since the policy DLLs will re-direct all ODP.NET references to this new
version of ODP.NET, applications will end up using the default values after
the install of a new ODP.NET version. Having an application config or web.confg
file specific for an application will eliminate this maintenance issue as
the configuration settings in the configuration file will always be applied
to an application regardless of whether patches get installed or not.
ODP.NET Configuration File Support is only available for 11.1.0.6.0 and later.
=====================================
NOTES FOR ODAC 11.1 Beta ON OTN USERS
=====================================
ODAC 11.1 Beta on OTN includes ODP.NET 11.1.0.5.10 Beta. However, it's
not the beta of ODP.NET 11.1.0.6.0 Production, for which this readme.txt is for.
Thus, new features (i.e. UDT Support, Bulk Copy Operations, etc.) that are
available in ODP.NET 11.1.0.5.10 beta are not available in ODP.NET 11.1.0.6.0
Production. There will be an ODAC 11.1 Production on OTN with a version of
ODP.NET that include features available in the ODP.NET 11.1.0.5.10 Beta.
After the install of ODP.NET 11.1.0.6.0, policy DLLs will be placed into the
GAC, which will redirect all applications to use ODP.NET 11.1.0.6.0. If there
are applications that use the new features in ODP.NET 11.1.0.5.10 Beta on OTN,
they will not function properly as those new features are not part of ODP.NET
11.1.0.6.0 Production.
=======================================
NOTES FOR ODP.NET 10.2.0.2.20 AND LATER
=======================================
1. Policy DLL Version Numbers
Staring with 10.2.0.2.20, the policy DLL versioning scheme has changed.
Before 10.2.0.2.20, the policy DLL version was based solely on the
corresponding Oracle version number. Thus, the major digit of the policy DLL
version started with 9 or 10, depending on the Oracle version number with which
ODP.NET shipped with. However, starting with 10.2.0.2.20, the policy DLL
version numbers first digit starts with 1 (if the policy DLL is built with .NET
Framework 1.x) and starts with 2 (if the policy DLL is built with .NET
Framework 2.0).
The .NET Framework allows multiple version of the same policy DLL to be
registered in the GAC. For example, multiple versions of
Policy.10.2.Oracle.DataAccess.dll can be placed in the GAC. In such a case,
the .NET Framework will apply the redirections of the policy DLL with the
HIGHEST version number. Hence if you have Policy.10.2.Oracle.DataAccess.dll
policy DLLs of versions of 10.2.0.1.0, 10.2.0.2.0, and 2.102.2.20 in the GAC,
the redirections set in the 10.2.0.2.0 policy DLL will be used by the .NET
Framework, not the redirections set in the 2.102.2.20 version of the policy
DLL, even if the 2.102.2.20 policy DLL is more recent than the 10.2.0.2.0
policy DLL.
To assure that the redirections of the latest policy DLL are used, remove the
older policy DLLS from the GAC and keep only the latest policy DLL in the GAC.
2. Windows Registry Changes (ODP.NET for .NET Framework 1.x and 2.0)
Default registry values for ODP.NET now reside under
HKEY_LOCAL_MACHINE\Software\Oracle\ODP.NET\
where is the assembly version of Oracle.DataAccess.dll.
3. DllPath Registry Value (ODP.NET for .NET Framework 1.x and 2.0)
The Oracle.DataAccess.dll searches for dependent unmanaged DLLs
(i.e. Oracle Client) based on the following order:
i) directory of the application/executable
ii) DllPath setting specified by application config or web.config,
machine.config, or HKEY_LOCAL_MACHINE\Software\Oracle\ODP.NET\\DllPath
registry setting. Note that setting in application config or web.config
overrides machine.config and machine.config overrides the setting in the
registry.
iii) directories specified by the PATH environment variable
Upon an install of ODP.NET, the DllPath registry value of type REG_SZ
will be set to the %ORACLE_HOME%\bin directory where the corresponding
dependent DLLs are installed.
Note that the DllPath registry value takes effect only on Windows XP,
Windows Server 2003, and Windows Server 2003 R2. If ODP.NET is installed on
Windows 2000, ODP.NET will simply rely on the application directory and
PATH for loading dependent unmanaged DLLs.
4. ODP.NET and Dependent Unmanaged DLL Mismatch (ODP.NET for .NET Framework
1.x and 2.0)
To enforce the proper usage of Oracle.DataAccess.dll assembly with proper
unmanaged DLLs, an exception will be raised if Oracle.DataAccess.dll
notices it has loaded a mismatching version of a dependent unmanaged DLL.
==================================
TIPS, LIMITATIONS AND KNOWN ISSUES
==================================
1. OracleDbType.Single parameter type supports six precisions.
2. Use /*+ ... */ as the optimizer hint syntax. Hint syntax, --+ ... is not
supported.
3. Data truncation errors can be encountered when fetching LONG data from a
UTF8 database.
4. To minimize the number of open server cursors, explicitly dispose
OracleCommand, OracleRefCursor, and OracleDataReader objects.
5. When using SQL with "FOR UPDATE" or a "RETURNING" clause, explicitly
begin local transactions. This is not required if global transactions
are used.
6. For distributed transactions, ODP.NET does not support proxy
authentication without a client password because of an OraMTS limitation.
7. Thread.Abort() should not be used, as unmanaged resources may remain
unreleased, which can potentially cause memory leaks and hangs.
8. Having a command execution terminated through either the invocation of
OracleCommand's Cancel method or expiration of OracleCommand's
CommandTimeout property value may return ORA-00936 or ORA-00604, rather
than the expected ORA-01013. [bug 3715959]
9. An exception is not thrown when change notification is registered on an
invalid port number [bug 4129077]
10. The DllPath registry or configuration file setting will be used by ODP.NET
to load the dependent unmanaged binaries on Windows XP SP1, Windows Vista,
Windows Server 2003, and higher.
11. ODP.NET supports binding parameters of PL/SQL associative arrays which
contain the following data types:
BINARY_DOUBLE
BINARY_FLOAT
CHAR
DATE
NCHAR
NUMBER
NVARCHAR2
RAW
ROWID
UROWID
VARCHAR2
Using unsupported types within associative arrays will cause an ORA-600
error.
Refer to Enhancement Request 2865701 on Oracle Metalink for more
information about non-scalar data type support for PL/SQL associatitve
arrays.
========================================================
JAPANESE ODP.NET DOCUMENTATION CORRECTIONS AND ADDENDUMS
========================================================
1. The default value of the QueryBasedNotification property of the
OracleCacheDepenedency object is true.
2. Beginning with Oracle Database 11g and ODP.NET 11g (11.1), Database Change
Notification queries can be query-based (default) or object-based. The
query-based registrations allow ODP.NET to notify applications when the
selected rows have changed in the database. The object-based registrations
allow ODP.NET to notify applications for any changes that occur in the
table(s) containing the selected rows.
For more details on the requirements for using query-based change
notification, please read the chapter "Using Continuous Query Notification"
in Oracle Database Advanced Application Developer’s Guide.
|