PRO*C in long running server applications

From: Martin Bertolino <martinbertolino_at_yahoo.com>
Date: 18 Aug 2002 10:07:24 -0700
Message-ID: <95be4880.0208180907.3e20d0f5_at_posting.google.com>


We use Oracle 8i as our database server and our application servers are written in C++ and use an in house developed class library that partally wraps OCI in order to get to the server.

The problem with this approach is that we constantly have to add new features to the class library in order to take advantage of new features such as arrays, objects, collections, etc, that we would like to start using in the application server code. The design of the class library is very similar to the design of jdbc so programmers with jdbc experience feel fairly confortable with our class library.

Adding these new features usually take time and delay the development of the actual applications. Additionally sometimes we only need to add the feature to prototype, or test performance but at the end we end up not using it. The other problem I have is that I have found that the OCI documentation and samples are not that great so there is a lot of guess work in getting features to work (this might be my own personal experience with OCI).

The only real value this class adds is database connection pooling and reconnection to the server when we loose connectivity due to cluster failovers. We absolutely need these two features as we have 100+ application servers running 24x7 and we can't just go re-start them when the Oracle cluster fails over, and we can't afford to have too many open but idle connections from each server wasting memory on the database server.

I have been reading the documentation for PRO*C and even though it's approach to exposing database features is very different to our current one, it does give you access to every feature that Oracle supports in the server and I believe that as Oracle develops new features they will have a corresponding counterpart in the PRO*C world released at the same time (I hope).

The reason for my long posting is to try to get some feedback from the community on their experiences with PRO*C. I'm interested in the support recieve from Oracle in resolving problem, it's stability regarding crashes, threads, and memory leaks, and finally if anybody has any thoughts or experience on how to implement connection pooling and reconnection.

I have been reading about contexts so it seems it is possible to control the connection (context) used by the generated code so it should be possible to create, store and assign contexts on the fly to simulate a context pool.

Thanks

Martin Bertolino
TALX Corporation Received on Sun Aug 18 2002 - 19:07:24 CEST

Original text of this message