Informix
Informix Online Documentation

RELEASE NOTES FOR

Informix Object Translator

Date: 6/30/2000

Version: 1.10


Table of Contents

I. Overview of Release Notes
II. New Features
A. XML Support
B. Enhancements to the Java Runtime
C. C. Informix Object Translator Tutorial
III. Server Compatibility and System Requirements
A. Requirements for All Environments
B. Requirements for the Microsoft Visual Basic Development Environment
C. Requirements for the Visual Cafe Development Environment
D. Requirements for any Java Development Environment
IV. Limitations
A. Global Language Support (GLS)
B. XML Mapping Limitations
V. Known Problems
VI. Fixed Problems
VII. Acknowledgments


I. Overview of Release Notes

The purpose of these release notes is to make you aware of any special actions required to configure and use Informix Object Translator, Version 1.10, on your client computer. This file also contains information about product features not yet included in the product documentation, and about known bugs and their workarounds.

This release notes document is not intended to be all-inclusive; it should be used as an addendum to the Installation Notes for Informix Object Translator and the online help provided with Object Translator. These documents provide thorough information about system requirements, installation procedures, product features and concepts, and product usage.

These release notes are written for the following audience:

IMPORTANT: Previous versions of this product were called OR Mapper and Object Mapper.

II. New Features

This section describes the XML support and Java support features that have been added to Informix Object Translator since the 1.0 and 1.10 Beta Refresh versions of the product. It also describes the tutorial that is now available for Object Translator.

IMPORTANT: To take advantage of the features added since the 1.0 and 1.10 Beta Refresh versions of Object Translator, you must use the Code Generator component to regenerate your Object Translator projects.

A. XML Support

For the Informix Object Translator, Version 1.10 release, XML functionality was added to the Java version of the product. This functionality allows you to map XML document elements and attributes to the map-object attributes of your Object Translator project, including multilevel XML elements to map-object attributes that are embedded or collection objects. The following additions were made to Object Translator to support this new functionality:

B. Enhancements to the Java Runtime

Version 1.10 of Informix Object Translator includes the following enhancements to the Java runtime:

These features are described in more detail in the following sections.

1. Java Global Language Support (GLS)

Version 1.10 of the Object Translator Java runtime is certified for operation in internationalized (I18N) environments. This section describes the approach followed by Informix to provide this support. For an example of using the Java GLS support, see How to Use the Informix Object Translator Java Runtime.

Java I18N APIs

Informix does not provide a Java GLS library; thus, Object Translator uses the standard Java I18N APIs, such as the ResourceBundle and the Locale classes in the java.util and java.text packages.

Data Types

The Object Translator Java runtime does not have a GUI component and deals only with database data types. Thus, the I18N package handles only Messages, Dates/Times, and Numbers.

Informix GLS Variables

Object Translator supports Informix GLS variables indirectly through Informix JDBC Driver. For example, CLIENT_LOCALE and DB_LOCALE can be set in the connection URL or in JDBC connection properties. These settings affect the data and messages returned from the database server and the JDBC driver. However, the language of messages originating from Object Translator is determined by the Locale property of the OConnection class, which is set with the setLocale method. (For an example of how to use setLocale, see How to Use the Informix Object Translator Java Runtime.)

Informix GLS environment variables such as DBCENTURY, DBDATE, and GL_DATE affect the format of date and time data types. This format conversion is handled by the database server and the JDBC driver.

2. Enhanced Exception Handling

This section describes the changes to the Object Translator Java runtime to provide enhanced exception handling. For examples showing how to use the enhanced exception handling, see the Installation Notes for Informix Object Translator.

About the Exception Handling Enhancements

Version 1.0 of the Object Translator Java runtime provided a DatabaseException class to encapsulate all error conditions, including those returned from JDBC drivers. While this made it easy to catch all error conditions, it was hard to determine the exact causes of errors when several different error conditions could arise from a single method.

The Object Translator 1.10 Java runtime contains a new exception classes in the com.informix.ormapper package. They are in a hierarchy under the existing DatabaseException class:

For a list of some of the situations in which these exceptions will be raised, as well as some examples of testing for the exceptions, see the Installation Notes for Informix Object Translator.

In addition, exception chaining (also known as nesting exceptions) has been implemented in all exceptions to allow you to trace the error stack back to the JDBC and JDK code.

Using the New Exception Classes

Because the new exception classes inherit directly from DatabaseException, you can continue to check error conditions by catching just DatabaseException. In other words, you do not need to rewrite your client code.

To take advantage of the new exception classes, however, you must modify your code to check for those exceptions and you must use the Code Generator component to regenerate your Object Translator project.

In addition, a small change has been made in the behavior of the Java runtime package since Version 1.0. In Version 1.0, when an object was restored and an empty result set was returned, no exceptions were raised. Now the NoResultSetException exception is raised.

Using Exception Chaining

Many of the exceptions raised from the Java runtime package methods are the SQLException exceptions originally raised by JDBC drivers. Thus, if you called printStackTrace in Version 1.0, you could trace the error only from your code to the Object Translator runtime package, not to the JDBC or JDK code.

In Object Translator, Version 1.10, all new exception classes implement exception chaining. This means that if you call printStackTrace, the Object Translator Java runtime stack trace is printed, followed by the stack trace of the original exception.

3. Generation of a Sample Makefile

The Code Generator component of the Object Translator GUI now generates a sample makefile, project_name.mak, for Java projects. This file compiles the Object Translator-generated classes, and then packages these classes with the .settings file and XML document if appropriate (see the XML Support section earlier in this document) into a jar file with the name project_name.jar.

You can build this file on a UNIX computer using the following command:

You can also build this file on a Windows NT computer if it has either Microsoft Visual Studio or the MKS toolkit installed on it. For the MKS toolkit, the command is the same as it is for UNIX. For Visual Studio, the command is as follows:

The generated makefile is a sample only. Depending on the platforms on which you are deploying the applications you create with Object Translator, you may need to create your own makefile.

4. JNDI Support and Connection Pooling

Java Naming and Directory Interface (JNDI) support, part of the Java Enterprise API set, is a standard extension to the Java platform. It provides Java applications with a unified interface to multiple naming and directory services in the enterprise by abstracting the database-specific connectivity information. As a result, connecting and accessing an enterprise data source becomes generic.

Connection pooling is a method for conserving scarce database resources by managing a pool of connections among concurrently active clients.

JNDI support and connection pooling are provided by your JDBC driver, your application server, or both via the DataSource object. For information on JNDI support and connection pooling, refer to the documentation for your JDBC driver and application servers. For examples of how to make use of these features in your Object Translator project, see How to Use the Informix Object Translator Java Runtime.

5. JDK 1.1.7

In addition to JDK 1.2.x, Informix Object Translator supports JDK 1.1.7 (or higher) as an interim solution to customers who do not yet have access to JDK 1.2.x.

To use Object Translator with JDK 1.1.7, you must use Informix JDBC Driver, Version 1.5.x, and ormapper_jdk11.jar instead of ormapper.jar.

IMPORTANT: If you use the JDK 1.1.7 version of the Object Translator Java runtime, support for Java GLS (I18N) is not provided, and you cannot use the following methods in collection objects: previousObject, firstObject, lastObject.

C. C. Informix Object Translator Tutorial

The Informix Object Translator Tutorial demonstrates how to use Object Translator to connect a Web site to a relational database management system. The tutorial currently contains these lessons:

You can access the tutorial from the Windows Start menu. Click the Start button, and then choose Programs->Informix Object Translator 1.10->Object Translator Tutorial.

When more lessons are developed, a new version of the tutorial will be placed on the Object Translator Web site, which is available at the following URL:


III. Server Compatibility and System Requirements

This section lists the software and hardware you need to use Informix Object Translator in any development environment and the software you need for the three development environments supported by Version 1.10: Microsoft Visual Basic, Visual Cafe, and any Java development environment.

A. Requirements for All Environments

To use Informix Object Translator, one of the following database servers must be installed on your server computer:

Your client computer requires the following hardware and software:

Version 1.10 was tested on these deployment environments, including environments on client computers: Java-supported platforms, Solaris, Linux, and HP.

B. Requirements for the Microsoft Visual Basic Development Environment

To use Informix Object Translator with the Microsoft Visual Basic development environment, your client computer requires the following software:

C. Requirements for the Visual Cafe Development Environment

To use Informix Object Translator with the Visual Cafe development environment, your client computer requires the following software:

D. Requirements for any Java Development Environment

To use Informix Object Translator with any Java development environment, your client computer requires the following software:


IV. Limitations

This section describes the limitations of Informix Object Translator, Version 1.10.

A. Global Language Support (GLS)

Informix Object Translator, Version 1.10, for Visual Basic, does not support GLS. For information on the Java GLS support, see the Java Global Language Support (GLS) section earlier in this document.

B. XML Mapping Limitations

This version of Informix Object Translator contains the following limitations to its XML mapping features:


V. Known Problems

This section describes the known problems with Informix Object Translator, Version 1.10, and provides workarounds if they exist.

Bug 118103

The Visual Basic runtime component of Object Translator does not retrieve, insert, update, or delete BLOB data correctly when using the OLEDB driver.

Bug 119248

The Visual Basic runtime component of Object Translator does not insert or update DATE data correctly when using the OLEDB driver.

Bug 120443

The Visual Basic runtime component of Object Translator does not insert or update DATETIME data correctly when using the OLEDB driver.

Bug 120452

The Visual Basic runtime component of Object Translator does not retrieve, insert, or update INTERVAL data correctly when using the OLEDB driver.

Bug 127620

If you use the Model Viewer's Import Wizard and choose a JDBC database driver and then click Cancel, the next time you choose a JDBC driver, an error message is displayed. To work around this problem, exit from Object Translator and then re-launch it.

Bug 128828

If you create a map object with multiple levels of collection objects and want to map an XML document to that object, you must set the RestoreType property of each parent object in the collection to Deep.

Bug 131262

If you attempt to use the setXML method of the Java runtime component of Object Translator to update a child collection object in which the foreign key is also part of the child object's primary key and the structure of the XML document does not match the structure of the tables in the database, an error message appears saying data cannot be inserted due to a unique key constraint. The workaround is to re-structure the XML document mapped to the parent object so that the foreign key is explicitly repeated in the XML element corresponding to the child collection object. The following example illustrates this problem and its workaround.

Suppose you have an Order object with the following attributes:

And an Items object with these attributes:

And you map the Order object to an XML document with the following structure:

You can use this XML document to update the Order object with the setXML method; however, If you use it to update the Items object, the update will fail. (Note that it would work if Order_num were not part of the Items object's primary key.)

As stated in the bug description, the workaround is to re-structure the XML document so that the foreign key is explicitly repeated in the Items element, as follows:

IMPORTANT: Although this problem affects only updates, you cannot have one XML document for inserts and another for updates. Thus, to avoid this problem in situations when the foreign key of a child collection object is also part of the child object's primary key, you must re-structure your XML document as shown in the workaround.

VI. Fixed Problems

This section describes the problems fixed since Informix Object Translator, Version 1.0.

Bug 127538

If you were using Windows 98 and were using ODBC to import a data model (using Client SDK 2.40), you might have received an error message regarding CTL3D32.DLL. This no longer occurs.

Bug 128419

If you attempted to join tables in a map object but there was not a valid data path between the tables, you received multiple error messages (one for each column in the table you attempted to drag from the Schema Viewer pane to the Object Viewer pane). This no longer occurs.

Bug 128759

If a table in the database did not have a primary key and you did not assign one in the data model, you were allowed to map the table to a primary object even though the generated code was invalid. You are no longer allowed to do so.

Bug 128938

If you created a map object with no attributes and then set its Embedded property to True, and then you later added attributes to the object, the newly added fields did not inherit the properties of attributes in the embedded object. This no longer occurs.


VII. Acknowledgments

This product includes software developed by the Apache Software Foundation (http://apache.org/) and the World Wide Web Consortium (http://www.w3.org/People/Raggett/tidy).

The Apache software includes xerces-c_1_1.dll and domutils.jar. The Apache copyright notice follows in its entirety.

The Apache Software License, Version 1.1

Copyright (c) 1999-2000 The Apache Software Foundation. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistribution of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistribution in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. The end-user documentation included with the redistribution, if any, must include the following acknowledgment: "This product includes software developed by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear.

4. The names "Xerces" and "Apache Software Foundation" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact apache@apache.org.

5. Products derived from this software may not be called "Apache", nor may "Apache" appear in their name, without prior written permission of the Apache Software Foundation.

THIS SOFTWARE IS PROVIDED \Q\QAS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

This software consists of voluntary contributions made by many individuals on behalf of the Apache Software Foundation and was originally based on software copyright (c) 1999, International Business Machines, Inc., http://www.ibm.com. For more information on the Apache Software Foundation, please see <http://www.apache.org/>.



Copyright © 2000, Informix Software, Inc. All rights reserved