ObjectStore Release 5.1 Component Highlights
This release of ObjectStore includes the C++, Java, and ActiveX
interfaces. The following paragraphs describe major features of
the release.
C++ Interface New Features:
- Component Server Framework
- The ObjectStore Component Server Framework makes it easy to build
component-based applications that make optimal use of ObjectStore's
cache-forward architecture. The Framework provides an API and a
component Server executable that allow you to build, deploy, and
administer highly scalable components and thin clients.
The Component Server Framework includes the ObjectStore Component
Server that handles interaction between thin clients and ObjectStore
components. The Component Server provides high throughput and
scalability by supporting flexible transaction management,
multiple-thread dispatching, and load balancing.
You can build thin clients with the Framework's thin client API, or
with OLE DB or ADO. You can build components with the Framework's
Server API together with the ObjectStore C++ API.
- Dump/Load Utility
- The ObjectStore dump/load facility allows you to generate an ASCII
file representing a database or group of databases. The facility also
allows you to generate a loader executable capable of creating
equivalent databases given the ASCII input.
- Component DLL Schema
- This feature allows for incremental loading and unloading of
schema at run time. This functionality enables building
components that consist of DLLs and their associated
schema that can be incrementally loaded and unloaded.
- X/Open XA Support
- ObjectStore clients and Servers can support X/Open's
transaction processing standard (known as XA). This allows
applications using ObjectStore and other databases simultaneously
to ensure coherent transactions across all databases. The implementation
of this interface is layered on top of the existing ObjectStore
client library. An ObjectStore client can now act as a Resource
Manager (RM).
Modifications
Key user-visible modifications in this release:
- Address space modifications in this release include a number
of changes and additions to allow applications to control the use
of address space. These are described in detail in the
ObjectStore C++ Release
Notes.
- The ObjectStore query facility includes two new memory modes
that automatically release address space and allow you to create
queries that will never run out of address space.
- Dynamic extents are a mechanism for treating all objects of a
particular type in a segment or database as a collection. The new
class os_dynamic_extent is used for this.
- New support converting Asian language string encodings is
available in this release. See os_str_conv for
details.
- Bit vector-assisted relocation is an optimization in this
release that enhances the movement of pages previously relocated
in cache.
- You can now run the persistent garbage
collection utility (osgc) on C++ databases, with some restrictions.
Java Interface Features:
Release 1.3 of the Java interface to ObjectStore Release 5.1
includes numerous performance enhancements,
a few new features, some changes, and some bug fixes.
There are also internal additions and changes in
ObjectStore Java interface (OSJI) 1.3
that allow it to work with ObjectStore Release 5.1.
User visible additions and changes include:
- Performance enhancements
- New constructors for the COM.odi.util.OSHashtable and
COM.odi.util.OSVector classes allow you to delay allocation
of internal structures until you actually add an element to the
collection.
- The COM.odi.stringPoolSize initialization property allows
you to specify the number of newly allocated strings that OSJI
maintains in the string pool for the current transaction. Before
OSJI stores a new string in a database, it checks the string pool
for an identical string. If it finds one, OSJI uses the string
that is already in the database and it does not store an additional string.
- A new method, COM.odi.coll.Collection.elements(), returns an object that
more efficiently implements Enumeration by caching results in Java.
- Several new methods. One method sets transaction priority and two
other methods copy the contents of a dictionary to another dictionary.
- Terminated threads automatically leave associated sessions.
- A null argument to ObjectStore.deepFetch() does
nothing instead of throwing an exception.
- ObjectStore.deepFetch() no longer throws an exception if a
transaction is not in progress and no data needs to be fetched.
Details about the user visible new features, changes, and bug fixes
in OSJI 1.3 are in the
CHANGES.htm file in the osji directory.
ActiveX Interface Features:
- Template library based on Microsoft's ActiveX Template
Library (ATL)
- OSAX has been reimplemented using a template library based on
Microsoft's ActiveX Template Library. The template
library is documented and can be used directly from an ATL
project.
- Multiple servers per process
- You can use multiple OSAX object servers in the same process.
When using the ATL interface to OSAX, different object servers
in the same process can share each other's objects.
- Better support for multiple clients
- The top-level server object establishes a context that is inherited
by all other objects created while running its methods. The
context allows clients to switch from thread to thread without
losing state associated with the client.
- Improved support for active server pages
- Clients do not need thread affinity.
OSAX objects can be set up so they can be stored at session
or application level.
- Application wizard for generating projects
- An application wizard simplifies the generation of OSAX object
servers based on a type description file (.ost file).
Additional information is available in the ActiveX Interface
for ObjectStore Documentation
Return to Component Documentation Hierarchy