IBM Rational Software Architect Fix Pack 6.0.1.1 - Release notes

For Rational Software Architect, Version 6.0, 6.0.0.1, or 6.0.1

© Copyright International Business Machines Corporation 2004, 2005. All rights reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

This file is available in the following national languages:

Brazilian Portuguese Chinese - Simplified Chinese - Traditional
French German Italian
Japanese Korean Spanish

Readme file

1.0 About this release
2.0 Product fix history
   2.1 Cumulative fixes
   2.2 Comparing and merging models
   2.3 Data tools
   2.4 Debugger
   2.5 Enterprise Generation Language (EGL)
   2.6 General
   2.7 J2EE tools
   2.8 JavaServer Faces
   2.9 Model publishing
   2.10 Page Designer
   2.11 Portal tools
   2.12 Struts
   2.13 UML diagrams
   2.14 XML tools
3.0 Installation information
   3.1 Installation instructions
   3.2 Hardware requirements
   3.3 Software requirements
   3.4 Software corequisites
4.0 Known problems and limitations
   4.1 Limitations of EGLSDK and EGLCMD
   4.2 Arrays of any type of record for EGL Java generation
   4.3 BLOB and CLOB functions incorrectly documented
   4.4 No more padding in EGL string concatenation
   4.5 Crystal Reports cannot be used to make JDBC connections to z/OS and iSeries based database products
   4.6 No support for generating Crystal Reports from XML datasources for display on WebSphere Application Server v5.x.
   4.7 Undocumented Informix 4GL behavior for GET_FLDBUF() function not supported in 6.0.1.1 release
   4.8 Behavior Changes in EGL KeyBoard Function Key Recognition
   4.9 Post conversion step for build descriptor no longer required
   4.10 EGL Curses runtime changes
   4.11 Migrating VA Generator Web Transactions to EGL using a Temp Directory
   4.12 Faces Client Components - onRowAdd event added to the DataGrid
   4.13 An error might occur when you compare and merge model file versions
5.0 Customer support
6.0 Notices and trademarks

1.0 About this release

To view the latest version of this file, see the release notes at www3.software.ibm.com/ibmdl/pub/software/rationalsdp/rsa/60/html/readme_6011.html.

IBM® Rational® Software Architect 6.0.1.1 provides new functionality in the following categories and components:

Performance improvements

EGL Builder performance improvements

The performance of the EGL Builder has been drastically improved.  You can expect to see significant improvements in the amount of time required to build an entire workspace and in the amount of time required to build individual parts as they are being developed.  In the past if you normally had the "Build automatically" preference turned off, try working with it turned on.

The first time each project is built using version 6.0.1.1 of EGL, the .project file, which is located in the root directory of the project, will automatically be modified so that it references the new EGL Builder.  After this update has been completed, all future builds of the project will use the new EGL Builder.  It is recommended that users manually invoke a build after starting V6.0.1.1 and loading the workspace, so that the projects will have been built with the new EGL Builder before future development takes place.  A manual build can be invoked by selecting Project >Build All from the toolbar.

Note: If the option to Build Automatically is enabled, a project will be changed to use the new EGL Builder the first time version 6.0.1.1 of the product is started for an existing workspace or after a project is imported in both new and existing workspaces.  If the option to Build Automatically is disabled, it is necessary to invoke a build manually to migrate to the new EGL Builder.  All new projects created with version 6.0.1.1 of the product will already be configured to use the new EGL Builder.

New EGL Problem Types

As part of the builder performance improvements, new problem types have been created for EGL. These problem types are used when displaying errors in the Problems view. After installing V6.0.1.1, it may be necessary to update the Problems View so that these new problem types are displayed correctly. To update the view, select the Filters option from the Problems View drop down menu. In the dialog that is displayed, make sure that the following types have been selected (you will need to scroll the table to find the EDT entries):

Message Differences

As part of the builder performance improvements, an effort was made to be more consistent with regards to the validation error messages that are issued. While all of the same error conditions are caught, it is possible you may see a different number of error messages than before.  Also, the text of the messages issued may not be the same as before. Previously, when validating referenced functions from a part (program, library, etc) which invoked the function, all error messages were placed on the function invocation statement. These error messages are now placed in the invoked function on the specific line where the error occurred. Each error message contains the name of the invoking part. This makes it much easier to find the reason for the error.

Use Form Syntax Change

As part of the builder performance improvements, we have made changes in how we process forms. However, this may cause ambiguity errors in the case where a form group has like-named fields on multiple forms and a program has unqualified references to those fields.We have added a new "Use forms" syntax so the customer can specify which forms to look at during name resolution.

use <formgroup-name>.<form-name>, <formgroup-name.form-name>, etc.

If you have new validation errors related to resolving form fields, to fix the problems you can either fully qualify your references to the form fields or you can use a new action called "Organize Used Forms".  This action analyzes the program to see what forms are actually used and then creates the appropriate Use statement. This action is available on the context menu for an EGL project, EGL package, and EGL file. It is also available from the context menu of the EGL Editor.  If there are serious errors with the program, such as a syntax error, unresolved use statements, or using multiple non-help form groups, this action puts up a message saying that it can not run due to errors in the program, and no changes will be applied. However, this action does work when there are other errors, such as the ambiguity error that this action is meant to fix.  If there are serious enough errors where EGL does not recognize an I/O statement, this action can not detect the form on that statement and the results may not include all the forms used.  Thus, other than the ambiguity error, it is recommended that this action is run with a cleanly compiled program.

Note: useformGroup is still supported and can be used.  It is a short cut for listing every form in the form group on the use statement.

EGL SQL Retrieve option for COBOL compatibility

At EGL declaration time, you can use the SQL retrieve feature to create an SQL record from the columns of an SQL table. If you want new SQL records to be compatible with COBOL programs (that is, to have fixed records with level numbers for structure items, and to use CHAR instead of STRING primitive types), select the Create COBOL compatible record definition check box on the SQL Retrieve Preferences window.

JSF Table's Row Edit button label can be customized

Three new Row Edit attributes added to allow button label customization, editLabel for the Edit button label, saveLabel for the Save button label and cancelLabel for the Cancel button label.

OCL improvements in UML modeling

Team environment

UML transformations

2.0 Product fix history

2.1 Cumulative fixes

This fix pack includes Rational Software Architect 6.0.1 and the following interim fixes:

2.2 Comparing and merging models

2.3 Data tools

 There is now support for using the DB2® Universal JDBC Driver |for building Java stored procedures which have source larger than 32K |and target a DB2 UDB for z/OS® V7 server. Before this support was added, the Universal Driver was supported only for DB2 UDB z/OS V8 Java stored procedures. In order for this support to work, you must install DB2 for z/OS V7 APAR (PK01445).

2.4 Debugger

(PK12617) When stopping at a breakpoint the debugger performs an inefficient search for the Java source.

2.5 Enterprise Generation Language (EGL)

2.6 General

2.7 J2EE tools

2.8 JavaServer Faces

2.9 Model publishing

(PK13332) When you publish a diagram that contains two class instances that are connected by a link instance, the model might not publish properly.

2.10 Page Designer

2.11 Portal tools

2.12 Struts

2.13 UML diagrams

2.14 XML tools

3.0 Installation information

3.1 Installation instructions

For information about installing IBM Rational Software Architect Fix Pack 6.0.1.1, installation prerequisites, installing from a command line, and setting up a local mirror of the update server, see the installation instructions at http://www3.software.ibm.com/ibmdl/pub/software/rationalsdp/rsa/60/install_instruction/6011/install.html.

3.2 Hardware requirements

No additional hardware requirements are necessary to install this fix pack.

3.3 Software requirements

You can install this fix pack for use with IBM Rational Software Architect 6.0, 6.0.0.1, or 6.0.1. Before you install the fix pack, you must install IBM Rational Product Updater 6.0.1.

Note that in addition to the operating systems listed in the Version 6.0 Installation Guide, the following operating systems are supported if you install this fix pack:

3.4 Software corequisites

If you use local updates and have more than one product installed, you must download the 6.0.1.1 fix packs for all installed products to your local update site. This is because there are dependencies among them. If you have multiple products installed and download only one fix pack and run the Rational Product Updater, the Updater will give you a warning when you search for updates that one of the required updates is missing. Again, this situation only applies to customers who use local update sites.

To simultaneously install the fix packs, download them to your local update site. Then install all fix packs at the same time from the update site by using the Rational Product Updater.

4.0 Known problems and limitations

4.1 Limitations of EGLSDK and EGLCMD

The version 6.0.1 documentation failed to include the following limitations and recommendations for the EGLSDK and EGLCMD commands.

For both:

  1. To work around an OutOfMemoryError when running either EGLSDK or EGLCMD, try increasing the JVM heap size. Use the following command:
    java [-msstart_sizem] -mxmax_sizem application     

    start_size
    An optional beginning size, in megabytes, for the JVM heap used in running application.

    max_size
    The maximum JVM heap size, in megabytes, to be used in running application. This should not be greater than half the RAM available to the system.

    application
    Either EGLSDK or EGLCMD, followed by its usual parameters.

    The following example assumes the system has 2GB RAM available:

         java -ms512m -mx1024m EGLCMD EGLListDetailForTUI/EGLCommandFile.xml -data D:\WorkSpace

For EGLSDK:

  1. Make sure that emfworkbenchedit.jar is in your Java classpath. The jar file is in the following directory:
    installationDir\rwd\eclipse\plugins\com.ibm.wtp.emf.workbench.edit_version\emfworkbenchedit.jar
    installationDir
    The product installation directory, such as C:\Program Files\IBM\RSPD\6.0. If you installed and kept a Rational Developer product before installing the product that you are using now, you may need to specify the directory that was used in the earlier install.
    version
    The installed version of the plugin; for example, 1.0.0
  2. If you wish to enable COBOL generation for either z/OS® or iSeries, make sure that the runtime jar file eglgencobol.jar is in your class path. The jar file is in the following directory:
    installationDir\egl\eclipse\plugins\com.ibm.etools.egl.batchgeneration_version
    installationDir
    The product installation directory, such as C:\Program Files\IBM\RSPD\6.0. If you installed and kept a Rational Developer product before installing the product that you are using now, you may need to specify the directory that was used in the earlier install.

    version
    The installed version of the plugin; for example, 6.0.0
  3. EGL does not support the generation of pageHandlers from the SDK. To create pageHandlers in batch mode, use EGLCMD.

For EGLCMD:

  1. Close all instances of the workbench UI before executing EGLCMD from a command prompt.
  2. If you use the wizard to create the command file, do not move that command file to another directory. The command file must be in the workspace containing the parts EGL is using to generate code.
  3. Use the -data option to specify the workspace for EGLCMD. Otherwise EGL will use the default workspace, which may not be the one you want.
  4. When you generate a pageHandler with EGLCMD, be sure to use the build descriptor option genProject. This allows EGL to handle all the J2EE deployment information automatically.
  5. If you use EGLCMD and the genDirectory build descriptor option for a project that contains no Web components, EGL will compile the programs outside the workbench. For this reason the Java compiler (javac.exe) must be in the system path and the EGL Java generation code (eglbatchgen.jar, in the bin directory of your installation directory) must be in the system classpath.
  6. If you are generating for iSeries, you may also need to put xml.jar on your classpath (you will find it in eclipse\jre\lib in you installation directory). Because having too many items in the classpath for EGLCMD can also cause problems, you should have only these four files in your classpath to generate for the iSeries: eglutil.jar, startup.jar, eglbatchgen.jar, and  xml.jar.

4.2 Arrays of any type of record for EGL Java generation

Starting with version 6.0.1.1, you can create arrays of any type of record, as long as you are generating Java.  If you generate COBOL, the old rule still applies: you can only make an array of Basic, SQL, or DLISegment records.

4.3 BLOB and CLOB functions incorrectly documented

 The following functions were documented incorrectly:

These "attach" functions associate a variable (either BLOB or CLOB) with a file resource (either specified or temporary system file), but do not write the contents of the variable to that resourse.  Any prior memory or file associations are released.  Subsequent operations, such as reading from a database into the variable, will update the file.

4.4 No more padding in EGL string concatenation

 Previously, when you included a limited-length string variable in an EGL string concatenation and itemsNullable was YES, the variable's value was padded with blanks to its maximum length.   When itemsNullable was NO, no padding was added.  Starting with version 6.0.1.1, no padding will ever be added.

4.5 Crystal Reports cannot be used to make JDBC connections to z/OS and iSeries based database products

There is no support for making JDBC connections from Crystal Reports to z/OS and iSeries-based database products.

4.6 No support for generating Crystal Reports from XML datasources for display on WebSphere Application Server v5.x.

The Crystal Reports XML driver requires an application server to be at least J2EE 1.4 compliant, and therefore does not support Websphere Application Server  v5.x runtime, which is J2EE 1.3 compliant.

4.7 Undocumented Informix® 4GL behavior for GET_FLDBUF() function not supported in 6.0.1.1 release

In Informix 4GL, the function GET_FLDBUF( ) returns the character values of the contents of one or more fields in the currently active screen form.  The function accepts values of fieldNames, screen record field names, screen array field names, and database table field names.

There is an undocumented feature in Informix 4GL whereby if you pass to the GET_FLDBUF() function a nonexistent screen-record, screen-array, or table-reference, the 4GL runtime it will ignore it and resolve it to first instance of fieldName in the current active form.

For example, a function call like this GET_FLDBUF(nonExistentReference.fieldName) where "nonExistentReference" cannot be resolved to any screen-record, screen-array, or table-reference, the 4GL runtime will resolve it as if the function was just passed "fieldName", like this GET_FLDBUF(fieldName).This behavior is not supported in the 6.0.1.1 RAD/RWD release of EGL nor in the Conversion Tool.

4.8 Behavior Changes in EGL KeyBoard Function Key Recognition

VisualAge® Generator applications understand 24 function keys (PF1 to PF24) as well as 3 action keys (PA1 to PA3). The way the user sends some of those keys in EGL has changed.


For Function Keys PF1 to PF12 -
    The functionality continues to work the same way as in previous releases.


For Function Keys PF13 to PF24 -
    In VisualAge, this was accomplished by pressing Alt and PF1 to PF12.

    In EGL's GUI runtime, this is accomplished by pressing Shift + PF1 to PF12.    NOTE:  This method does not work for the EGL Curses runtime.

    In EGL's GUI or Curses runtime, this can also be accomplished by pressing Ctrl-S, then PF1 to PF12.


For Function Keys PA1 to PA3 -
    In VisualAge, this was accomplished by pressing Ctrl and PF1 to PF3.

    In EGL's GUI runtime, this is accomplished the same way.  NOTE: This method does not work for the EGL Curses runtime.

    In EGL's GUI or Curses runtime, this can also be accomplished by pressing Ctrl-A, then PF1 to PF3.

Informix 4GL applications understand up to 64 function keys. Currently, EGL supports 24 function keys, which the user can send with the same keystrokes that are described above.


4.9 Post conversion step for build descriptor no longer required

The current Informix to EGL Conversion guide outlines a post migration step that involves setting up the build descriptor file for the converted project.  This step is no longer required.  Rather, a default build descriptor file for the workspace should be created and used.

Starting with the 6.0.1.1 release of the conversion tool, it will not generate the "genProject" and "genDirectory" properties in the build descriptor file.  With this change, any build descriptor file generated by conversion tool can be used as default build descriptor.

To set the default build descriptor for the workspace, please refer to the EGL documentation in Help > Help Contents.

4.10 EGL Curses runtime changes

To resolve Java threading issues  when communicating with non-thread safe Unix curses libraries,  the EGL Curses runtime code has been enhanced to provide a more solid synchronization model.  As a result, new JNI curses libraries are available to work with the EGL 6.0.1.1 Curses runtime.  Previous JNI curses libraries will not work properly with this 6.0.1.1 release.  New JNI curses libraries must be downloaded from the Rational download site.

4.11 Migrating VA Generator Web Transactions to EGL using a Temp Directory

When migrating VA Generator web transactions programs and UI Records to EGL, you cannot do the Stage 2 / Stage 3 migration to a temporary directory.  You must migrate to a workspace.

4.12 Faces Client Components - onRowAdd event added to the DataGrid

You can assign default values to fields when adding a new row to the Faces Client Components DataGrid at runtime and set the default value to null.

Using the onRowAdd event handler the new EObject for the new row can be intercepted before it is added to the DataGrid:

  1.  Add the onRowAdd attribute to the datagrid tag :
    <odc:dataGrid allowRowAddAndDelete="false" styleClass="dataGrid" showSelectionColumn="false" pageSize="10" id="dataGrid1" onRowAdd = "return myOnRowAddHandler( this, event);">
  2. You can then write any JavaScript in the handler or use the handler to set the default attributes in the EObject for the new row.  This handler will be called when the user tries to add a new row to the DataGrid.  This code example sets the value of the AGE field in a sample EObject to null:
    myOnRowAddHandler(thisObj, thisEvent) {
    //thisObj is DataGrid Control
    var objs = thisObj.Adapter.EObjects;
    objs[objs.length-1].eSet("AGE",null);
    }

4.13 An error might occur when you compare and merge model file versions

An error might occur when you compare and merge model file versions. The following error message is displayed if you encounter this problem: "EMF error occurred while merging resources."

To work around this problem, run validation on the model file versions to ensure that there are no unreferenceable elements; then compare and merge the model file versions again.

5.0 Customer support

The product home page for Rational Software Architect is www.ibm.com/software/awdtools/architect/swarchitect/. For FAQs, lists of known problems and fixes, and other support information, visit the product support page at www.ibm.com/software/awdtools/architect/swarchitect/support/index.html.

6.0 Notices and trademarks

© Copyright IBM Corporation 2004, 2005. All Rights Reserved.

The XDoclet Documentation included in this IBM product is used with permission and is covered under the following copyright attribution statement: Copyright (c) 2000-2005, XDoclet Team. All rights reserved.

Portions based on Design Patterns: Elements of Reusable Object-Oriented Software, by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Copyright (c) 1995 by Addison-Wesley Publishing Company, Inc. All rights reserved.

U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this documentation in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service.

IBM may have patents or pending patent applications covering subject matter described in this documentation. The furnishing of this documentation does not give you any license to these patents. You can send license inquiries, in writing, to:

IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
U.S.A.

For license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property Department in your country or send inquiries, in writing, to:

IBM World Trade Asia Corporation
Licensing
2-31 Roppongi 3-chome, Minato-ku
Tokyo 106, Japan

The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OR CONDITIONS OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you.

This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice.

Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk.

IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you.

Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of information between independently created programs and other programs (including this one) and (ii) the mutual use of the information which has been exchanged, should contact:

Intellectual Property Dept. for Rational Software
IBM Corporation
20 Maguire Road
Lexington, MA
02421-3112
USA

Such information may be available, subject to appropriate terms and conditions, including in some cases, payment of a fee.

The licensed program described in this documentation and all licensed material available for it are provided by IBM under terms of the IBM Customer Agreement, IBM International Program License Agreement or any equivalent agreement between us.

Any performance data contained herein was determined in a controlled environment. Therefore, the results obtained in other operating environments may vary significantly. Some measurements may have been made on development-level systems and there is no guarantee that these measurements will be the same on generally available systems. Furthermore, some measurements may have been estimated through extrapolation. Actual results may vary. Users of this document should verify the applicable data for their specific environment.

Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products.

All statements regarding IBM's future direction or intent are subject to change or withdrawal without notice, and represent goals and objectives only.

This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples may include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental.

COPYRIGHT LICENSE:

This information contains sample application programs in source language, which illustrates programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs.

Each copy or any portion of these sample programs or any derivative work, must include a copyright notice as follows:

© (your company name) (year). Portions of this code are derived from IBM Corp. Sample Programs. © Copyright IBM Corp. 2004, 2005. All rights reserved.

If you are viewing a soft copy of this information, the photographs and color illustrations may not appear.

Programming interface information

Programming interface information is intended to help you create application software using this program.

General-use programming interfaces allow you to write application software that obtain the services of this program's tools.

However, this information may also contain diagnosis, modification, and tuning information. Diagnosis, modification, and tuning information is provided to help you debug your application software.

Warning: Do not use this diagnosis, modification, and tuning information as a programming interface because it is subject to change.

Trademarks and service marks

The following terms are trademarks of International Business Machines Corporation in the United States, other countries, or both:

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.

Windows and Windows NT are trademarks of Microsoft Corporation in the United States, other countries, or both.

Intel and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States, other countries, or both.

UNIX is a registered trademark of The Open Group in the United States and other countries.

Linux is a trademark of Linus Torvalds in the United States, other countries, or both.

Other company, product or service names, may be trademarks or service marks of others.