readme.txt 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. Oracle.ManagedDataAccess Nuget Package Version 12.1.022 README
  2. ==============================================================
  3. Release 12.1.0.2.2 for RDBMS 12.1.0.2 Bundle Patch 6 Production
  4. Release Notes: Oracle Data Provider for .NET, Managed Driver
  5. June 2015
  6. Copyright (c) Oracle Corporation 2015
  7. This document provides information that supplements the Oracle Data Provider for .NET (ODP.NET) documentation.
  8. You have downloaded Oracle Data Provider for .NET from Oracle, the license agreement to which is available at
  9. http://www.oracle.com/technetwork/licenses/distribution-license-152002.html
  10. TABLE OF CONTENTS
  11. *New Features
  12. *Installation and Configuration Steps
  13. *Installation Changes
  14. *Documentation Corrections and Additions
  15. *Fixed Bugs Since Last ODP.NET NuGet Release
  16. *ODP.NET, Managed Driver Tips, Limitations, and Known Issues
  17. Note: The 32-bit "Oracle Developer Tools for Visual Studio" download from http://otn.oracle.com/dotnet is
  18. required for Entity Framework design-time features and for other Visual Studio designers such as the
  19. TableAdapter Wizard. This NuGet download does not enable design-time tools; it only provides run-time support.
  20. This version of ODP.NET supports Oracle Database version 10.2 and higher.
  21. New Features since Oracle.ManagedDataAccess Nuget Package Version 12.1.021
  22. ===========================================================================
  23. 1. ODP.NET, Managed Driver - Microsoft Local Security Authority (MSLSA)
  24. ODP.NET, Managed Driver now supports the Kerberos credential cache type, MSLSA. MSLSA is used to access the
  25. Microsoft Kerberos Logon Session credentials cache.
  26. 2. ODP.NET, Managed Driver - SSL/TLS Connections Use a Single Port
  27. An ODP.NET, Managed Driver SSL/TLS connection will now continue on the original connection to the database
  28. listener instead of the previous SSL/TLS client redirection to a database server created new listening
  29. endpoint on a dynamic (ephemeral) port. Hence, firewalls will only need to allow access to the TNS listener's
  30. port. For example, 1521.
  31. Installation and Configuration Steps
  32. ====================================
  33. The downloads are NuGet packages that can be installed with the NuGet Package Manager. These instructions apply
  34. to install ODP.NET, Managed Driver.
  35. 1. Un-GAC any existing ODP.NET 12.1.0.2 versions you have installed. For example, if you plan to use only the
  36. ODP.NET, Managed Driver, only un-GAC existing managed ODP.NET 12.1.0.2 versions then.
  37. 2. In Visual Studio 2010, 2012, or 2013, open NuGet Package Manager from an existing Visual Studio project.
  38. 3. Install the NuGet package from an OTN-downloaded local package source or from nuget.org.
  39. From Local Package Source
  40. -------------------------
  41. A. Click on the Settings button in the lower left of the dialog box.
  42. B. Click the "+" button to add a package source. In the Source field, enter in the directory location where the
  43. NuGet package(s) were downloaded to. Click the Update button, then the Ok button.
  44. C. On the left side, under the Online root node, select the package source you just created. The ODP.NET NuGet
  45. packages will appear.
  46. From Nuget.org
  47. --------------
  48. A. In the Search box in the upper right, search for the package with id, "Oracle.ManagedDataAccess". Verify
  49. that the package uses this unique ID to ensure it is the offical Oracle Data Provider for .NET, Managed Driver
  50. download.
  51. B. Select the package you wish to install.
  52. 4. Click on the Install button to select the desired NuGet package(s) to include with the project. Accept the
  53. license agreement and Visual Studio will continue the setup.
  54. 5. Open the app/web.config file to configure the ODP.NET connection string and local naming parameters
  55. (i.e. tnsnames.ora). Below is an example of configuring the local naming parameters:
  56. <oracle.manageddataaccess.client>
  57. <version number="*">
  58. <dataSources>
  59. <!-- Customize these connection alias settings to connect to Oracle DB -->
  60. <dataSource alias="MyDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) " />
  61. </dataSources>
  62. </version>
  63. </oracle.manageddataaccess.client>
  64. After following these instructions, ODP.NET is now configured and ready to use.
  65. NOTE: ODP.NET, Managed Driver comes with two platform specific assemblies:
  66. i. Oracle.ManagedDataAccessDTC.dll (for Distributed Transaction Support)
  67. ii. Oracle.ManagedDataAccessIOP.dll (for Kerberos Support)
  68. The Oracle.ManagedDataAccessDTC.dll assembly is ONLY needed if you are using Distributed Trasactions and the
  69. .NET Framework being used is 4.5.1 or lower. If you are using .NET Framework 4.5.2 or higher, this assembly does
  70. not need to be referenced by your application.
  71. The Oracle.ManagedDataAccessIOP.dll assembly is ONLY needed if you are using Kerberos. Kerberos users will need
  72. to download MIT Kerberos for Windows 4.0.1 or higher from
  73. http://web.mit.edu/kerberos/dist/
  74. to utilize ODP.NET, Managed Driver's support of Kerberos.
  75. These asssemblies are located under
  76. packages\Oracle.ManagedDataAccess.12.1.022\bin\x64
  77. and
  78. packages\Oracle.ManagedDataAccess.12.1.022\bin\x86
  79. depending on the platform.
  80. If these assemblies are required by your application, your Visual Studio project requires additional changes.
  81. Use the following steps for your application to use the 64-bit version of Oracle.ManagedDataAccessDTC.dll:
  82. 1. Right click on the Visual Studio project.
  83. 2. Select Add -> New Folder
  84. 3. Name the folder x64.
  85. 4. Right click on the newly created x64 folder
  86. 5. Select Add -> Existing Item
  87. 6. Browse to packages\Oracle.ManagedDataAccess.12.1.022\bin\x64 under your project solution directory.
  88. 7. Choose Oracle.ManagedDataAccessDTC.dll
  89. 8. Click the 'Add' button
  90. 9. Left click the newly added Oracle.ManagedDataAccessDTC.dll in the x64 folder
  91. 10. In the properties window, set 'Copy To Output Directory' to 'Copy Always'.
  92. For x86 targeted applications, name the folder x86 and add assemblies from the
  93. packages\Oracle.ManagedDataAccess.12.1.022\bin\x86 folder.
  94. Use the same steps for adding Oracle.ManagedDataAccessIOP.dll.
  95. To make your application platform independent even if it depends on Oracle.ManagedDataAccessDTC.dll and/or
  96. Oracle.ManagedDataAccessIOP.dll, create both x64 and x86 folders with the necessary assemblies added to them.
  97. Installation Changes
  98. ====================
  99. The following app/web.config entries are added by including the "Official Oracle ODP.NET, Managed Driver" NuGet package
  100. to your application:
  101. 1) Configuration Section Handler
  102. The following entry is added to the app/web.config to enable applications to add an <oracle.manageddataaccess.client>
  103. section for ODP.NET, Managed Driver-specific configuration:
  104. <configuration>
  105. <configSections>
  106. <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
  107. </configSections>
  108. </configuration>
  109. Note: If your application is a web application and the above entry was added to a web.config and the same config
  110. section handler for "oracle.manageddataaccess.client" also exists in machine.config but the "Version" attribute values
  111. are different, an error message of "There is a duplicate 'oracle.manageddataaccess.client' section defined." may be
  112. observed at runtime. If so, the config section handler entry in the machine.config for
  113. "oracle.manageddataaccess.client" has to be removed from the machine.config for the web application to not encounter
  114. this error. But given that there may be other applications on the machine that depended on this entry in the
  115. machine.config, this config section handler entry may need to be moved to all of the application's .NET config file on
  116. that machine that depend on it.
  117. 2) DbProviderFactories
  118. The following entry is added for applications that use DbProviderFactories and DbProviderFactory classes. Also, any
  119. DbProviderFactories entry for "Oracle.ManagedDataAccess.Client" in the machine.config will be ignored with the following
  120. entry:
  121. <configuration>
  122. <system.data>
  123. <DbProviderFactories>
  124. <remove invariant="Oracle.ManagedDataAccess.Client" />
  125. <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
  126. </DbProviderFactories>
  127. </system.data>
  128. </configuration>
  129. 3) Dependent Assembly
  130. The following entry is created to ignore policy DLLs for Oracle.ManagedDataAccess.dll and always use the
  131. Oracle.ManagedDataAccess.dll version that is specified by the newVersion attribute in the <bindingRedirect> element.
  132. The newVersion attribute corresponds to the Oracle.ManagedDataAccess.dll version which came with the NuGet package
  133. associated with the application.
  134. <configuration>
  135. <runtime>
  136. <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  137. <dependentAssembly>
  138. <publisherPolicy apply="no" />
  139. <assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
  140. <bindingRedirect oldVersion="4.121.0.0 - 4.65535.65535.65535" newVersion="4.121.2.0" />
  141. </dependentAssembly>
  142. </assemblyBinding>
  143. </runtime>
  144. </configuration>
  145. 4) Data Sources
  146. The following entry is added to provide a template on how a data source can be configured in the app/web.config.
  147. Simply rename "MyDataSource" to an alias of your liking and modify the PROTOCOL, HOST, PORT, SERVICE_NAME as required
  148. and un-comment the <dataSource> element. Once that is done, the alias can be used as the "data source" attribute in
  149. your connection string when connecting to an Oracle Database through ODP.NET, Managed Driver.
  150. <configuration>
  151. <oracle.manageddataaccess.client>
  152. <version number="*">
  153. <dataSources>
  154. <dataSource alias="SampleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) " />
  155. </dataSources>
  156. </version>
  157. </oracle.manageddataaccess.client>
  158. </configuration>
  159. Documentation Corrections and Additions
  160. =======================================
  161. This section contains information that corrects or adds to existing ODP.NET documentation, which can be found here:
  162. http://docs.oracle.com/cd/E56485_01/index.htm
  163. ODP.NET, Managed Driver Support for Oracle Database 12c Implicit Ref Cursor
  164. ---
  165. ODP.NET, Managed Driver introduces support for the new Oracle Database 12c Implicit Ref Cursor. Configuration occurs
  166. using the <implicitrefcursor> .NET configuration section. When using database implicit ref cursors, the bindInfo element
  167. should be specified with a mode of "Implicit":
  168. <bindinfo mode="Implicit" />
  169. For additional information refer to the implicitRefCursor section in Chapter 2 of the Oracle Data Provider for .NET
  170. Developer's Guide.
  171. Session Time Zone Hour Offset in ODP.NET Managed and Unmanaged Drivers
  172. ---
  173. ODP.NET managed and unmanaged drivers set the default session time zone differently. While the session time zone for
  174. unmanaged ODP.NET uses an hour offset, managed ODP.NET uses the region identifier for setting its session time zone.
  175. As a result, managed ODP.NET is sensitive to daylight savings in scenarios where the timestamp LTZ values have to be
  176. converted from/to the session time zone.
  177. There are two methods to resolve this difference if needed. For ODP.NET, Unmanaged Driver, the application explicitly
  178. sets the region identifier with the environment variable 'ORA_SDTZ' (e.g. 'set ORA_SDTZ = <Region ID>'). If ORA_SDTZ
  179. variable is set, Oracle Client considers this value as the session time zone. The second method is to execute an alter
  180. session command to set the session time zone property to the region identifier.
  181. ODP.NET, Managed Driver with NTS Authentication
  182. ---
  183. ODP.NET, Managed Driver supports NTS authentication to the database, except when the Windows domain is constrained to
  184. only support Kerberos-based domain authentication.
  185. ODP.NET, Managed Driver SSL Connections with Firewalls
  186. ---
  187. ODP.NET, Managed Driver SSL connections require a redirect to a dynamic port on the database server side. If a firewall
  188. exists between the database client and server, then all firewall ports must be enabled or the dynamic firewall port
  189. Oracle chooses must be enabled at run-time.
  190. Fixed Bugs Since Last ODP.NET NuGet Release
  191. ===========================================
  192. This section list bugs that have been fixed since the last ODP.NET NuGet release.
  193. BUG 20361140 - ORA-01461: CAN BIND A LONG VALUE ONLY FOR INSERT INTO A LONG COLUMN
  194. BUG 20401862 - ODP MANAGED DRIVER APPLICATION FAILS TO CONNECT TO RAC DB USING OID
  195. BUG 20460558 - BINDBYNAME CAUSES QUERY TO HANG
  196. BUG 19261209 - FILE WALLET WITH MANAGED ODP.NET PROVIDER FAILS WITH ORA-01017
  197. BUG 20419677 - SLOW OPENING CONNECTION WHEN EZCONNECT AND "WORLD" SETTINGS USED TOGETHER
  198. BUG 20206306 - ORA-01483 WHEN BINDING NUMBER AND NCLOB > 4K CHARACTERS
  199. ODP.NET, Managed Driver Tips, Limitations, and Known Issues
  200. ===========================================================
  201. This section contains information that is specific to ODP.NET, Managed Driver.
  202. 1. OracleConnection object's OpenWithNewPassword() method invocation will result in an ORA-1017 error with 11.2.0.3.0
  203. and earlier versions of the database. [Bug 12876992]
  204. 2. Stored functions/procedures in a PDB cannot be added to a .NET Entity Framework model. [Bug 17344899]