The Oracle Client

Our team maintains an old suite of application. Some of the code that accesses the database is 10 or more years old. This code uses Pro*C which gets compiled with the Pro*C compiled shipped with the Oracle client. The current production code makes used of the Oracle 8 client. Support for this version of the client has long since been dropped by Oracle Corporation. So our team has just completed a migration to use of the Oracle 10g client. There was some pain initially in development as we did not standardize on a location for the 10g client installation. Whenever developers passed code to each other, a number of project configuration paths for the Oracle stuff needed to be changed. We have since standardized on a location for the client on development workstations. This has relieved some stress. But the true pain was only just beginning.

The next set of issues with the Oracle client surrounded the testing of the changes. The internal test team wanted to maintain the ability to test changes to the production code which uses the Oracle 8i client. They also needed to start testing the version that was ported to use the Oracle 10g client. There were all kinds of ideas on how to accomplish this. Here are some of the top ideas that were considered:

  • Borrow separate machines to do the 10g client testing
  • Install the 10g client in a virtual machine on their boxes
  • Install a version of the 10g client which is hacked to also support the Oracle 8 client


In the end, a decision was made to leave the Oracle 8 client on just one test machine. All the other test boxes would have the Oracle 8 client replaced with the 10g client. You would think that this was the end of the matter. We were not that lucky.

The test team needed detailed instructions on how to install the 10g client on their machines. This was a reasonable request. Development just ended up sending a competent Oracle DBA to do the install for the test team. This DBA decided to install just the run-time type of 10g client on the testers' machines. This also seemed the reasonable and appropriate course of action. However the testers were unable to connect to the database using the applications with this setup. Currently the DBA went back and installed the administrator type of 10g client on the test machines. This worked for now. But this did not seem like the optimal approach. Right now a developer is trying to understand exactly which components from the administrator version of the client are required for the application.

Our port to using the latest version of tools has been plagued with issues like the Oracle client version issues. We have had a number of problems with the version of the Microsoft Data Access Controls (MDAC) install as well. But that is a story for another post.