New and Updated Features
Thread Safety
OO4O is thread-safe and can be used effectively in multithreaded applications
and environments such as such as the Microsoft Internet Information Server
(IIS). OO4O supports both the free and apartment threading models in COM/DCOM.
Access to OO4O object attributes are serialized when used with multiple
threads of execution. To achieve maximum concurrency in query execution in a
multithreaded application with OO4O, avoid sharing objects in multiple threads.
You should also avoid using commit and rollback operations on a session object
that is shared among multiple threads since all connections associated with
that session will be committed or rolled-back. If you want to perform commit and
rollback operations on a session object, you should create a unique session
object for each database object used.
Using the Connection Management Facility
OO4O introduces a new interface for pooling of database connections. The pool
may be created with zero or more ODatabase objects and can grow to a maximum that is specified at the time the pool is
created. Connections in the pool are automatically closed if not used for a
specified time.
This facility is essentially a resource manager for ODatabase objects containing database connections. This facility maintains the open
state on frequently used objects, and thereby eliminates the need to continuously
create and destroy connections. It is particularly useful in heavily used
mid-tier application server components such as ISAPI/ASP scripts in IIS that connect
to Oracle databases to execute queries on every invocation. New ODatabase objects are created only if there are more objects required than are
available in the pool, thus, significantly improving performance and scalability.
For an example of this in IIS, please refer to the ASP sample directory.
Multiple Cursor Return from a PL/SQL Procedure
OO4O can now return multiple cursors to the client from a single query. This
is useful, for instance, if a user needs the result set of two disjointed
queries.
This feature improves performance by lowering network traffic. OO4O's PL/SQL
table return capability can send (or receive) an array of values with a single
network transaction. Only a single network round-trip is required for returning
data from multiple cursors.
Enhancing Performance
Field collection access in a dynaset is improved. If loops are not coded
properly, the system is now optimized so that, in creating default field collection
objects, the objects are not created and destroyed with each dynaset iteration.
The help file now contains a number of tips and techniques for improving
performance. Coding methods, such as early binding and dynaset cache tuning, can
significantly improve performance.
A number of bug fixes are included in this release. The eradication of some
bugs, such as very small memory leaks, represent significant gains when OO4O is
used in a 7-by-24 environment.
General
OO4O is available on Windows 95/98 and NT, and can run in an NT server
environment. There will not be any new 16-bit versions of OO4O, and the current 16-bit
OO4O release 2.1 has now entered maintenance mode.