1. Mike Kolenda
  2. PowerBuilder
  3. Friday, 21 June 2024 20:55 PM UTC

Version 2019 R2 Build 2353

We have a PowerBuilder application (32-bit) that connects to a .NET DLL via OLE. Within this DLL we connect to Oracle using Provider Factories. We recent decided to stop using “System.Data.OracleClient” and have begun using "Oracle.ManagedDataAccess.Client". When I deploy the upgraded DLL with the supporting files along with my PB application and run it the connection within the DLL fails indicating “Unable to find the requested .Net Framework Data Provider”.

I used NuGet to install the package in Visual studio for "Oracle.ManagedDataAccess.Client" and tested the connectivity and queries using a .NET winforms application successfully. I don't appear to have any trouble with .NET applications.

I've also tried installing ODP.NET to the applications folder with no luck. Any insight on what else I may try to resolve this? I there anything specific I need to do within my PB application so it will recognize the provider factory within the DLL?

Mike Kolenda Accepted Answer Pending Moderation
  1. Monday, 24 June 2024 20:25 PM UTC
  2. PowerBuilder
  3. # 1

Thanks for your reply, Miguel.  

If find it interesting that when installed via XCOPY it only adds this 32-bit key, ODP.NET.Managed, and not the other.

XCOPY created an entry for me here: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Oracle\ODP.NET.Managed\4.122.19.1
But not this: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ORACLE\ODP.NET\4.122.19.1

It appears when the Oracle DMBS was installed on my system ODP drivers were installed as 64-bit (non Wow6432Node). This may be the reason why I'm receiving some of the conflicts between 32 & 64 bit I'm having.

Is your team using the Oracle.ManagedDataAccess.dll (using Oracle.ManagedDataAccess.Client;) for OracleBulkCopy as well?  I know the connection objects are different, but do both  run from the same DLL?  With the previous setup in this code the Provider Factories was "System.Data.OracleClient" (which I thought was provided by MicroSoft) and oracle.dataaccess.dll for bulkcopy. 

TIA

-Mike

 

 

 

Comment
  1. Miguel Leeuwe
  2. Tuesday, 25 June 2024 08:47 AM UTC
Hi Mike,

I'm not sure if we are using the Oracle.ManagedDataAccess.dll for "oraclebulcopy". I don't thinks so. That would be done more by using the "normal" oracle client. I'm not even sure if we do a "bulkcopy".
  1. Helpful
  1. Mike Kolenda
  2. Tuesday, 25 June 2024 19:53 PM UTC
Howdy, Miguel.



Thanks for the follow-up.



- Mike
  1. Helpful
There are no comments made yet.
Miguel Leeuwe Accepted Answer Pending Moderation
  1. Saturday, 22 June 2024 18:58 PM UTC
  2. PowerBuilder
  3. # 2

Hi,

Not sure if it's the same case, but we also use an managed Oracle DLL for some of our .Net.

Even though we don't have the Oracle client installed, we do need to have a certain ODP .NET entry in the registry for the exact version of that Oracle DLL.

In our case that's 4.122.19.1 for the registry, event though the DLL seems to be a different version. I have to get in touch with our .Net developer. (Maybe it's backwards compatible.)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ORACLE\ODP.NET\4.122.19.1]
"DllPath"="c:\\app\\client\\miguel\\product\\19.0.0\\client_1\\bin"
"SelfTuning"="1"
"MaxStatementCacheSize"="100"
"DemandOraclePermission"="0"
"PerformanceCounters"="0"
"PromotableTransaction"="promotable"
"StatementCacheWithUdts"="1"
"UdtCacheSize"="4096"

hope it helps you out.

Comment
  1. Miguel Leeuwe
  2. Saturday, 22 June 2024 19:57 PM UTC
Note: if you are running 64 bits, then leave out the "WOW6432Node" part in the registry settings.
  1. Helpful 1
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.