IIB - ODBC DSN configuration errors (Windows) - windows-7

I previous installed IIB version 9 on Windows 7. The ODBC drivers appear in both "Microsoft ODBC Administrator" (32-bit) and "Data Sources x64 (ODBC)".
I have now installed IIB version 10 (10.0.0.21 Developer edition) alongside it, and the x64 data sources window doesn't show the version 10 drivers.
Additionally, I can create data sources (System DSN) under Version 10.0.0.21 using the 32-bit version of the administrator tool, but when I try to delete the Data Source I get the following messages:
The setup routines for the IBM Integration Bus 10.0.0.21 Developer Edition - DataDirect Technologies 64-BIT Oracle Wire Protoco [sic] ODBC driver could not be found. Please reinstall the driver.
Driver's ConfigDSN, ConfigDriver, or ConfigTranslator failed. Errors Found: Component not found in registry
I can create and delete IIB9 Data Sources just fine, using either tool.
The fact that the name of the driver is cut off in the quote implies to me that there is an issue with some max name length being surpassed, but I don't know if that's true or not. I have tried editing the registry to make the name match that seen in the textbox (in accordance with some instructions I saw online), but it just made the driver details change in the 32-bit UI and still not appear in the 64-bit.
In the registry I have the following:
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\IBM Integration (9.0.0.2) - DataDirect Technologies 7.0 64-BIT Oracle Wire Protocol
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\IBM Integration (9.0.0.2) - DataDirect Technologies 7.0 64-BIT Sybase Wire Protocol
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\IBM Integration Bus 10.0.0.21 Developer Edition - DataDirect Technologies 64-BIT Oracle Wire Protocol
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\IBM Integration Bus 10.0.0.21 Developer Edition - DataDirect Technologies 64-BIT Sybase Wire Protocol
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\IBM Integration (9.0.0.6) - DataDirect Technologies 7.1 64-BIT Oracle Wire Protocol
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\IBM Integration (9.0.0.6) - DataDirect Technologies 7.1 64-BIT Sybase Wire Protocol
I assume I need to reinstall the IIB ODBC drivers? - If so, can I do that; and if not, what do I need to do to resolve this?

The name of the driver "IBM Integration Bus 10.0.0.n Developer Edition - DataDirect Technologies 64-BIT Oracle Wire Protocol" is too long for Windows to cope with.
You have to go into the Registry and replace it with a shorter name, everywhere that name comes up.
It'll fix this issue and all DSNs will work again.
Registry paths for changing:
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources (modify)
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI (rename)
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers (modify)
screenshot Registry Editor

Related

How do I do an ODBC connection to ORACLE from SSIS/ Visual studio?

Despite that OLE DB and ADO.NET are newer than ODBC potentially, I've heard that ODBC connections to Oracle are potentially faster within SSIS.
I'm trying to set up a simple ODBC connection to an Oracle DB in SSIS
The OLE DB / ADO.Net connections were easy. I entered the credentials and boom, connected.
ODBC proves very difficult. I'm running Windows 10 64 bit. Visual Studio 2015 (I believe the designer for SSIS was only meant to initially play with 32-bit ODBC connections). Oracle is version 12c.
So ... I did the convoluted Oracle driver install. Downloaded Oracle basic light express + ODBC. Put them in the same directory. Ran odbc.install.exe WITH admin privileges. Finally got the Oracle driver to show up in Microsoft ODBC (32 or 64, ended up downloading both eventually). I test the connection in Microsoft ODBC setup? Success!! NOOOOW. .. enter Visual studio. Set up connection --- test --- FAIL! Some cryptic error .... 127 ... the "oracle" in quora32.dll can't be found.
Are Microsoft Drivers for Oracle still available for download?
32-bit vs 64-bit
I think that the main cause of the problem is that Visual studio is a 32-bit application and the ODBC driver installed is 64-bit. On the other hand the operating system is 64-bit then it will work normally. Check the following links for more information:
ODBC Connection not appearing SSIS
Set up the ODBC Driver for SSIS
Attunity connectors
I really didn't tried connecting to Oracle using ODBC, but if your goal is to achieve higher performance then the fastest way to connect to Oracle from SSIS is using Attunity high speed connectors for Oracle that have been selected by Microsoft to be included with SQL Server Integration Services (SSIS).
Check the following links for more information:
Microsoft Connectors for Oracle and Teradata by Attunity for Integration Services (SSIS)
Microsoft Connectors by Attunity
Oracle provider for Oledb missing in VS 2015 Shell
SSIS not running in parallel with OraOLEDB.Oracle.1 Provider
As noted in various ways on this question, the VS IDE (and its typical testing environment) is 32-bit, even when installed/running on 64-bit Windows, or when building for use/deployment on 64-bit Windows. My employer has a knowledgebase article discussing this.
Also, SQL Server, SSIS, and VS are always OLE DB or ADO.NET clients; they don't actually speak ODBC directly. When you tell either SQL Server, SSIS, or VS to connect to an ODBC driver or ODBC DSN, they invisibly use the Microsoft OLE DB [Bridge] Provider for ODBC Drivers for that connection.
The easiest way to work around all this, given that you explicitly want to use ODBC, is to install both 32-bit and 64-bit variants of all OLE DB (including the Bridge Provider) and ODBC components (and any libraries on which they depend, such as OCI or Oracle Instant Client), and to configure a pair of ODBC System DSNs (not User DSNs, for several reasons), one each 32-bit and 64-bit, which are named and configured identically excepting only the driver library.
This strategy works whether you're using ODBC drivers from my employer (which might be the "12-15x faster" ones referenced previously? if so, it's important to note that Enterprise Edition "concurrent users" is about actively connected clients, not installed seats), from another third-party, or from Oracle themselves.

-2147467259/Oracle client and networking components were not found

i have used vb6 application with oracle client 11. but at the run exe, i got the below error:
-2147467259/Oracle client and networking components were not found. These components are supplied by Oracle Corporation and are part of
the Oracle Version 7.3.3 or later client software installation.
Provider is unable to function until these components are installed.
Application platform: VB6
Application Type: exe
Window: window 10
Oracle Client version: 11
This is a duplicate question and the cause could be a number of different issues. This is likely due to the wrong client version being installed on your machine, and/or it is related to a known issue involving a security update for specific versions of windows. Please see the following Questions on Stack Overflow.
VB6 application oracle 12 64bit connection
Error ORA-03106 When using VB6 to access Oracle database in Windows 7 64bit
Oracle Client and networking components were not found - Excel VBA
Connection to Oracle through VBA no longer working
Here is the Mircosoft support article on the patch issue: https://support.microsoft.com/en-us/help/3126587/ms16-014-description-of-the-security-update-for-windows-vista-windows
Most likely you installed the 64-bit version of Oracle Client 11. VB6 binaries are always 32-but, thus you must install the 32-bit version of Oracle Client.
In case you need both, 32 and 64 bit versions one one machine follow this instruction: BadImageFormatException. This will occur when running in 64 bit mode with the 32 bit Oracle client components installed
According to your error messages you use the drivers from Microsoft. These drivers are deprecated for ages, you should prefer the drivers from Oracle.

ODAC for visual studio 2013

There are a lot of ODAC download at the Oracle website but I want to know what is the right ODAC to download for my VS 2013? I have a Windows 7 64-bit OS.
And also, do I need to install ODAC on BOTH my laptop (where I will create my project) and to the Oracle database server?
When I'm trying to connect to my Oracle database, it throws me this error:
System.Data.OracleClient requires Oracle client software version 8.1.7 or greater
so I read other blogs saying that I should install ODAC, but these blogs example are using either VS2005 or VS2008, but mine is VS2013
Start with easy answers:
No, you don't have to install any ODAC on Oracle database server (most likely they might be installed anyway by default)
It does not matter at all which Visual Studio you have, regarding Oracle installation they are all the same.
Now regarding your error:
"Microsoft .NET Framework Data Provider for Oracle", i.e. System.Data.OracleClient is deprecated for ages, you should not use it in new projects. You should use the Oracle provider "Oracle Data Provider for .NET" (ODP.NET), so by downloading ODAC from Oracle you have been on the right path.
When you like to use ODP.NET you also have to install an Oracle Client, otherwise it does not work (this requirement is also valid for System.Data.OracleClient, that's the actual error you get).
You can either install "Oracle Instant Client" and ODP.NET or download full Oracle Client where you can make a "Custom" installation. There you have to enable component "Oracle Data Provider for .NET" at least.
It is important to have everywhere the same architecture, i.e. Oracle Client, ODP.NET and your application must be all the same - either x86 or x64 ("AnyCPU" means x64 on nowadays 64-bit Windows). In case you have to support both x86 and x64 follow this instruction to install x86 and x64 on one machine.
Another possibility is to use the "ODP.NET Managed Driver", this one is just a single .dll and does not require any further Oracle client installation. Unlike "ODP.NET" the "ODP.NET Managed Driver" does not depend on the architecture, i.e. it works for both x86 and x64.
It does not matter whether your database is 32-bit or 64-bit. This applies for everything mentioned above.

Microsoft OLEDB provider for ODBC 64 bit version on Windows Server 2012 for x64 CPU

I have a VB6 legacy application that uses 32-bit ADO drivers to make a database connection using ODBC.
Now the customer has installed the 64-bit version of the database, and I am getting an error:
[Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application
Error Source: Microsoft OLE DB Provider for ODBC Drivers
I checked the net but could not find 64-bit OLEDB drivers for Windows Server 2012. There was a link for Windows Server 2003.
Can someone confirm whether the drivers exist and post the link to download them? Thanks.
EDIT 1:
This question is different from: Migrating VB6 code to use 64-bit ODBC DSN
This question is more about download the 64 bit ODBC driver, whereas that question is about code changes.
EDIT 2:
Even if I find 64-bit drivers, my VB6 application is 32-bit. Can a 32-bit application use 64-bit drivers at all? Note that installing the 32-bit version of database is ruled out.
Your legacy VB6 application is a 32-bit OLE DB consumer. It therefore requires a 32-bit OLE DB Provider for ODBC Data Sources, and a 32-bit ODBC Driver, such as those from my employer or various other sources.
The VB6 app loads some libraries into shared memory, and all of these much match bitness -- the VB6 app, the OLE DB Provider it loads, and in this case, the ODBC driver that loads, and in some cases, other libraries that loads.
Communications then happen over (typically) the TCP/IP stack or other networking layers -- which don't have to agree in bitness -- between the client-side libraries (i.e., ODBC driver) and the server-side (i.e., DBMS).
It does not matter that the target DBMS nor that the application's host OS is now 64-bit.

Microsoft ODBC for Oracle on Windows 2008 R2 x64

I have server under Windows Server 2003 with Oracle 10 32bit. There are several ODBC data sources configured in ODBC Data Source Administrator.
Now I need to move all that system to Windows Server 2008 R2 x64.
I've installed OS, Oracle server 12c x64, Oracle client 12 x64.
Now I need to configure my ODBC data sources, but there is no Microsoft ODBC for Oracle driver.
Where can I find this driver to configure ODBC data source?
(I've tried 32bit tool from SystemWOW64, it has this driver but shows me exception "The Oracle(tm) client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle version 7.3 (or greater) clien costware installation." As far as I could say it looks for 32bit client, but there is no such)
"Microsoft ODBC for Oracle" does not exist for 64 bit. Microsoft provides only a 32-bit version.
You have to download and install the driver from Oracle: ODBC
Developer Center or
64-bit Oracle Data Access Components (ODAC) Downloads
The 32-bit ODBC driver (no matter if from Microsoft or from Oracle) does not work together with an 64-bit Oracle Client, the architectures have to match.

Resources