This release, 9.0.1, has the following new and updated features:
· Support for XML Data InterchangeNew Features in 8.1.7
· Support for Temp LOBs. See OBlob, OClobNew Features in 8.1.7
· Support for non-blocking execution in OSqlStmt. See NonBlockingState and Cancel.
New Features in 8.1.6
· Full Support for Oracle Object-Relational and LOB Datatypes· Full Support for Advanced Queuing.See OAQ, OAQAgent, and OAQMsg.
Prior New Features
· Thread Safety
OO4O is thread-safe and can be used effectively in multi-threaded 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.
Note: When several threads in a multi-threaded application create, navigate, and
then destroy dynasets (NO UPDATES/INSERTS/DELETES), create the dynaset with the READ_ONLY option for optimum performance. Also, if the application does not need to
scroll backward (forward-only), then the dynaset should be created with the DYNASET_NOCACHE option.
·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
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 feature in IIS, please refer to the sample in the ORACLE_BASE\ORACLE_HOME\oo4o\iis\samples\asp 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
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.
This help file 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.
OO4O is available on Windows 95/98/2000 or Windows 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.