March 5, 2010

Oracle.DataAccess version numbers in a .NET config file

Filed under: Oracle — Darrin Maidlow @ 1:37 pm

For my future reference!

RADE and FullCircle and builds usually have the ODP.NET version in the web.confg set by the installer, but development builds usually come from my machine and are configured for use with the Oracle 11 ODP.NET.   If this is set incorrectly, you will get an error that looks a little something like this:

The IDbCommand and IDbConnection implementation in the assembly Oracle.DataAccess could not be found. Ensure that the assembly Oracle.DataAccess is located in the application directory or in the Global Assembly Cache. If the assembly is in the GAC, use <qualifyAssembly/> element in the application configuration file to specify the full name of the assembly.

To use an different version of the Oracle client, the web.config must be edited and the QualifyAssembly section must have its version property set appropriately.  This will also apply for an app.config too.

   1: <runtime>
   2:     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
   3:         <qualifyAssembly partialName="Oracle.DataAccess" fullName="Oracle.DataAccess, Version=2.102.2.20, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
   4:     </assemblyBinding>
   5: </runtime>

Possible values for this are:

  • 11g: Version=2.102.2.20
  • 10g R2: Version=1.102.3.0
  • 10g: Version=10.2.0.100

Set your config appropriately and you’re good to go.

October 23, 2008

Oracle Client/ODAC on Vista x64 Mostly Working… Finally

Filed under: Oracle — Tags: — Darrin Maidlow @ 11:25 pm

So, finally I got fed up with working from a 32 bit XP virtual machine and spent a little more time on this issue.  I’ve managed to get my Vista Ultimate a la x64 mostly working.  Where I went wrong (aside from trying to figure this out in the middle of the night in a shitty mood because I had spent so much time head banging with a wall) was using the 64 bit client. 

The correct path to Oracle happiness in my case was the 11g client.  It works great with my 10.2 server.  The important bit in was to use the 32 bit install rather than the 64 bit install.  One of my primary tools for accessing Oracle is 9.x.  Quest Software states that Toad for Oracle 9.6 is the first version to really support the 11g client.  However, it does NOT support the x64 client.

So the last time I tried to solve this, after a long day, and a fun night of head banging with a wall – when I tried the 11g client, I used x64 cbuild – and saw that Toad wouldn’t work, I threw a little hissyfit and went to bed.  Long story short, installing both the 32bit and seems to have done the trick.  Now – there is one important little piece o’ information that you will need to know.  Though I have not confirmed this, I suspect that x64 applications will not be able to use the driver. 

That said, from a development point of view you will need to set IIS to run at 32 bit.  On IIS 5.x/6.x this is a server wide setting from a dos window:

   1: cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
   2: %SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

 

If you’re running Vista or Server 2008 with IIS7, you have things a little better.  You can configure each application pool to run as 32 or 64 bit.  For winform development, change the compile properties of the project to set the target platform to be x86.

I’m really glad that’s over…but I still want a proper x64 ODAC.  Come on Oracle .. =)

Update February 2009 – I have made a happy ending post on .  Got Oracle client working in both .  Check it out.

October 11, 2008

Announcing the RADE Spatial Indexer

Filed under: Oracle — Tags: — Darrin Maidlow @ 3:06 pm

ORA-13226: Interface not supported without a spatial index.

I hate this error.  Someone would give me a new Oracle dump file.  I’d try to view the spatial data and boom – ORA-13226.  If I was lucky, there was only a couple of tables in it.  Chances are, there were hundreds of tables in it.  Sometimes I’d need to add the reference to the USER_SDO_GEOM_METADATA view, sometimes I wouldn’t.   Sometimes the index would already exist and just need to be rebuilt.

Regardless of the scenario, it would often involve a lot of SQL – or messing around to try and remember the SQL.  Every time this would pop up I would think to myself, “I really should write an app…”.  Well I finally did.

So, here is my announcement.  The RADE Spatial Indexer is just about ready for beta.  Initially this app does three things.

  • It will list tables and views with geometry columns that are not part of the USER_SDO_GEOM_META data view and help you add them.
  • It will list spatial tables without indexes and help you create them.
  • It will list spatial tables with indexes and help you re-index them.

No more exporting queries to text files and using a macro to edit them to build your SQL for rebuilding those indexes.  I’ve tried to add some nice friendly helpers, such as a button that will suggest the spatial metadata settings for a table based on the existing meta data records.  The ability to mass create or rebuild indexes is also been a fantastic helper.

I’m recruiting brave individuals for a small closed beta program that will begin in about two weeks.  If you are interested in being a tester please e-mail indexer (at) landorIS.com and let me know.  Remember, this is a beta – so I really do not suggest you run this on a production, or important server.  That said, I have been using it in various states on my own ‘production’ development Oracle server.

As an incentive for helping me out.  If you submit feedback (be it a bug report or feature request) – I will set you up with a free license once we release 1.0.  I know you’re hooked and want to sign up.  I know it.  Just in case you need a little more, here is a few screen caps..

Look at how easy it could be to define metadata.  Click the suggest button and it will iterate through the metadata settings for other spatial tables in the schema.  Once you have one row defined, use the sync button to set all rows to the same values.  Click process and its done.

image

Within seconds, have hundreds of spatial indexes being re-created…Creating new indexes is almost as easy.

image

July 11, 2008

ODAC/ODP.NET on Vista x64

Filed under: Oracle — Tags: , , , — Darrin Maidlow @ 7:11 am

Since moving to Vista x64 I’ve had a heck of a time with Oracle clients.  The one thing I could not get working until tonight was ODP with Visual Studio / .NET.  Finally I found a solution.

First, download and install . (Link requires registration)   This should get the 32bit stuff installed.   I’m still using an Oracle 10g R2 server.  You will likely need to grab a copy of the TNSnames.ora for your existing client folder and place it in the appropriate tree of the 11g product home.

This however is not enough to get .NET working with ODP.  Go to the folder where you extracted the zip.  We need to find the Oracle.DataAccess.dll.  This can be found in the file named filegroup4.jar, in the stage\components\oracle.ntoledb.odp_net_2.  Winrar will open .jar files if needed.  Extract the Oracle.DataAscess.dll file.

For now, I’ve put a copy of this file in my projects lib folder.  I then added a reference directly to this file from all projects that need ODP access. 

Keep in mind – before you ship you may want to remove this reference and ensure that the .DLL file doesn’t get included in your build.  This should get your Vista x64 box developing with ODP.

To Oracle – come on guys.  Give us some Vista x64 love!

Technorati Tags: ,,,,

Powered by WordPress