IBM J2EE Connector Tools Feature Version 6.0.1.3 - Readme

For IBM Rational Application Developer 6.0.1  or 6.0.1.1 and IBM Rational Software Architect 6.0.1 or 6.0.1.1

© Copyright IBM Corporation 2000, 2006. All Rights Reserved.

To view the latest version of this file, see the readme at www3.software.ibm.com/ibmdl/pub/software/rationalsdp/rad/601/html/J2C6013/Readme_6013.html

This file is available in the following national languages:

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

Contents

1.0 About this release
   1.1 Product fix history
2.0 Installation information
   2.1 Hardware requirements
   2.2 Software requirements
   2.2.1 WebSphere® Application Server
   2.2.2 Resource adapters
   2.2.3 CICS Transaction Gateway
3.0 Known limitations, problems, and workarounds
4.0 Customer support
5.0 Notices and trademarks

1.0 About this release

The J2EE Connector (J2C) Architecture tools allow you to create J2EE applications that integrate and extend operations and data on existing Enterprise Information Systems (EIS).

This release contains fixes and applies maintenance to both IMS resource adapters included in Rational® Application Developer and Rational Software Architect. After applying the update:

1.1 Product fix history

The following fixes are included in this release of the J2EE Connector Tools Feature:

1.1.1 Modifications to both IMS resource adapters:

IMS Connector for Java Versions 9.1.0.1.3a and 9.1.0.2.2a are included, for development purposes, in the J2EE Connector Tools Feature Version 6.0.1.3 for IBM Rational Application Developer Version 6.0.1.2. 6.0.1.1 or 6.0.1. These are maintenance only (no new function) releases and include the following updates:

The current retry function in IMS Connector for Java allows IMS Connector for Java to attempt to re-establish a connection whenever it encounters a communications failure in the process of sending a request to or receiving a response from IMS Connect. This function was implemented at the interaction level and it has been determined that this implementation could lead to duplicate interactions in cases where a request was submitted to IMS and executed, but the output was prevented from being delivered to IMS Connector for Java. If in this situation, IMS Connector for Java received a connection error while waiting for the response, IMS Connector for Java would retry the interaction. This could lead to duplicate interactions being processed in IMS. To eliminate this possibility, the current interaction-based retry function has been disabled in this maintenance release.

If IMS Connector for Java receives a response and is notified that there is additional (secondary) output available to be received, since IMS Connector for Java is only able to return one output message per interaction, IMS Connector for Java will NAK all secondary output causing it to be placed on the OTMA hold queue before returning the first response that it received. If an error occurs while IMS Connector for Java is NAKing the secondary output, IMS Connector for Java will currently discard the original output and return an exception to the client containing that error. As a result, the original output will be lost and is not recoverable. This problem has been fixed in this maintenance release by changing IMS Connector for Java's behavior in this situation such that IMS Connector for Java will now return the original output message and ignore the error that occurred while NAKing the secondary output. The undelivered secondary output will continue to be routed to the OTMA hold queue.

If an application tries to retrieve an output message using the SYNC_RECEIVE_ASYNCOUTPUT interaction and that message originated from a non-OTMA client (e.g., a 3270 terminal rather than an IMS Connector for Java-based client application,) it will instead receive an "ICO0026E: com.ibm.ims.ico.IMSOutputOTMAMsg@2637e2ea.setMsg(byte[]) error." instead of the message. This could happen if a non-OTMA client starts an IMS application that in turn does an ISRT to an ALTPCB. When the IMS Connector for Java-based client application tries to retrieve the message, OTMA adds the "Control", "State", and "Security" segments to the message header. Then, the DFSYDRU0 exit is supposed to add the "User Data" segment to the message header. If it does not, IMS Connector for Java will throw the above exception since IMS Connector for Java depends on the User Data segment being present. With this fix, IMS Connector for Java will now throw a more meaningful exception: "ICO0027E: com.ibm.ims.ico.IMSOutputOTMAMsg@xxxxxxxx.setMsg(byte[]) error. The OTMA header of the IMS output message did not contain a USER DATA segment."

If you are executing a two-phase commit transaction using a shareable IMS connection, the proper security credentials may not be used. If you pass "UserA" in the IMSConnectionSpec when first getting a connection, that ID is used as expected. If in your CCI application, you do not close ConnectionA, but then get a new connection with "UserB" specified in the IMSConnectionSpec, ConnectionB will correctly use the security credentials of "UserB". However, if your CCI application then goes back and uses ConnnectionA again (since it was not closed,) ConnectionA will now be using the credentials of "UserB". To fix this problem, the IMSConnectionRequestInfo.equals() method has changed so that it looks at the username and password of a candidate IMSConnectionRequestInfo to check if they match the values needed for the current interaction. This ensures that, when an application requests a connection with "UserB" in the IMSConnectionSpec as described in the example in the previous paragraph, a connection handle to a new IMSManagedConnection object will be returned, and there will be no sharing since the existing connection in the pool has "UserA" in the IMSConnectionSpec. The new IMSManagedConnection object will correctly carry the credentials of "UserB". If the app?ication then goes back and tries to re-use the connection which has "UserA" in the IMSConnectionSpec, it will get the original connection with the correct security credentials for "UserA."

The execute method (of the IMSInteraction class) which takes two parameters, an IMSInteractionSpec and an input Record, has been deprecated in this maintenance release. The execute method which takes an IMSInteractionSpec and both an input Record and an output record as parameters has not been deprecated. This was done to prevent CCI applications from inadvertently using the execute method which does not have an output record for interactions that return output.

1.1.2 Case in-sensitive to file extension.

Allow the cobol source file extensions to be any case.

Ie. Case insensitive, can accept .CBL, .cbl.. as well

1.1.3 PK23138:Copybook - TD Formula incorrect for ODO occurring after a redefine

Initial Comment:
If a OCCURS DEPENDING ON occurs after a redefine, the formula for the redefine is incorrect. For the following COBOL structure:

01 LK-TH-COLT-ITEM.
05 LK-TH-COLT-DDA-IND

05 LK-TH-COLT-POSTED-DATE PIC S9(9) COMP-3.
05 LK-TH-COLT-VALUE-DATE PIC S9(9) COMP-3.
05 LK-TH-COLT-DB-CR-IND PIC X.
05 LK-TH-COLT-TX-AMOUNT PIC S9(11)V99 COMP-3.
05 LK-TH-COLT-BALANCE-X PIC X(7).
05 LK-TH-COLT-BALANCE REDEFINES LK-TH-COLT-BALANCE-X
PIC S9(11)V99 COMP-3.
05 LK-TH-COLT-DDA-TRAN-CODE PIC S9(5) COMP-3.
05 LK-TH-COLT-CBA-TRAN-CODE PIC S9(5) COMP-3.
05 LK-TH-COLT-DELIVERY-CHANNEL PIC X(6).
05 LK-TH-COLT-BACKDATE-IND PIC X(1).
05 LK-TH-COLT-SERIAL-NUMBER PIC S9(13) COMP-3.
05 LK-TH-COLT-TRACE-NUMBER PIC S9(11) COMP-3.
05 LK-TH-COLT-NO-OF-LINES PIC S9(3) COMP-3.
05 LK-TH-COLT-LINES OCCURS 1 TO 4 TIMES
DEPENDING ON LK-TH-COLT-NO-OF-LINES.
10 LK-TH-COLT-DESC-LINE PIC X(21).

The formula for the contentSize of the structure is generated to be:
add(61,mpy(21,val(1,14)))
The formula should be:
add(54,mpy(21,val(1,14)))

It appears that both elements of the redefine are added together to give an extra 7 bytes! Only one item from the redefine should used in the base offset calculation. This problem exists in both the V6 and Constellation code bases.

A complex redefine should also be looked at with redefines intermixed to ensure that the formulas are calculated correctly.

1.1.4 PK22886:NPE (Null Pointer Exception) for J2C app with multiple ODOs in copybook

If you generate some J2C Java classes from a Cobol copybook using  Rational Application Developer.

The generate process appeared to work  fine, but at runtime you will get a NullPointerException. What is unique about this situation is that there are multiple ODOs, no ODOs inside of ODOs,
but multiple ODOs.                                

1.1.5 PK25739:No .trim()' added to the end of the equals comparison. for code generated  

Adding trim() to the result of the getter method.

Add a

@type-descriptor.recognition-desc pattern="xxxx"

doclet to a method in a databinding which returns a String.

When you save, the generated match() method should be doing an 'equals()' with a .trim() being added to the result of the getter method.

Something like:

if ("xxxx".equals (getFoo().trim()))

1.1.6 COBOL TO JAVA IMS MAPPING CHANGES DEFAULT "START IN" FOLDER.

Problem Descriptions

RAD is started from a shorcut with the shortcut "Start in" value
of c:\www\server1\config. When creating an IMS Cobol to Jav?   
mapping, this "Start in" value will be changed to whichever    
folder the user browses to for the Cobol file.                 

Reproduce instructions:   

Create a shortcut to launch the workspace.  Set the shortcut   
"Start in:" to "C:\www\server1\config".  Ensure                
"C:\www\server1\config" exists.                                
Start the WTE WAS 5.1.1 server.                                
http://localhost/DefaultDir/servlet/test.DefaultDirServlet     
Servlet will return:                                           
        getCanonicalPath() = C:\www\server1\config             
Stop the server                                                
Generate the IMS Data Mapping.  (cobol copy supplied in        
WebContent/cobol)                                              
Start the WTE WAS 5.1.1 server                                 
http://localhost/DefaultDir/servlet/test.DefaultDirServlet     
Servlet will return:                                           
        getCanonicalPath() = C:\Rad Save                       
Workspaces\CobolMappingDefaultDir\DefaultDirWEB\WebContent\cobol

1.1.7 PMR 22509,004,000

TCPIPGroup_@Cust@__@Cust and LocalOptionGroup_@Cust@__@Cust@_ property Not set causing runtime errors

Problem description:

created a J2C bean with IMS Connectors and a JNDI connection targetting WAS 5.x (use JNDI wizard) in a managed connection enviornment..

If it is a managed connection, the JNDI connection authentication information is empty.

When run, there are errors about some properties not being set: - TCPIPGroup_@Cust@_@Cust@ and  LocalOptionGroup_@Cust@__@Cust@_

When you examine the WAS 5.x server config information. you will see these two extra PropertyGroups in the connection factories.

Fix:

No longer populate the extra property g?oups into server configuration.

1.1.8 PMR 14814,379,000

J2C Connector Tools feature overwrites Default apache Ant task- "INPUT" .

Problem description:

How to reproduce problem:                                      
-make sure that J2EE Connector Tool is installed               
-open RAD                                                      
-verify that there is an custom <input> Type in                
 -Window > Preferences > Ant > Runtimes > Types tab            
-create a simple Ant build.xml file                            
-insert the <input> tag with default Apache attributes         
-try to Run the Ant build                                      
-the build will fail with error message 'The <input> type      
doesn't support the "message" attribute.'

Fix:

The J2C ant type input has been changed to j2cinput to avoid the conflict.

If you have any J2C ant script written with J2C ant type input, you should change it to j2cinput

2.0 Installation information

For information about installing the J2EE Connector Tools feature, refer to www3.software.ibm.com/ibmdl/pub/software/rationalsdp/rad/60/install_instruction/J2C6013/install.html

2.1 Hardware requirements

Refer to the installation instructions for the hardware requirements for installing the J2EE Connector Tools feature.

2.2 Software requirements

You must have one of the following products installed before you can install this feature:

If you develop an application using the J2C tools and run it on WebSphere Application Server Version 5, ensure that you have the required maintenance applied to WebSphere Application Server Version 5. Refer to Section 2.2.1 WebSphere Application Server for details.

Refer to the installation instructions for more details on software and specifications that are supported by the J2EE Connector Tools feature.

For details on software and specifications that are supported by a specific tool in Rational Application Developer or Rational Software Architect, refer to the online help.

2.2.1 WebSphere Application Server

WebSphere V5.0 and WebSphere V5.1 support J2C 1.0. The WebSphere Application Server service levels required to use the J2EE Connector Tools are listed in the table below. The back-level test environments available with Rational Application Developer or Rational Software Architect V6.0 require the service listed under WAS Distributed Service Level Required column in the table. WebSphere Application Server cumulative fixes, for example WAS 5.0.2.8, are available from the WebSphere Application Server support site (www.ibm.com/software/webservers/appserv/was/support). The Integration Edition RunTime Fixes for 5.0 and 5.1 are available from www.ibm.com/support/docview.wss?rs=180&context=SSEQTP&dc=D410&dc=D420&uid=swg24004796&loc=en_US&cs=utf-8&lang=en. WebSphere Application Server for z/OS® PTFs are available from the WebSphere Application Server for z/OS support site www.ibm.com/software/webservers/appserv/zos_os390/support/

WebSphere Application Server WAS Distributed Service Level Required WAS for z/OS Service Level Required
5.0.x
  • Cumulative Fix 5.0.2.8
  • Integration Edition RunTime Fixes for 5.0
W502023 (PTF UK00329)
5.1.x
Integration Edition RunTime Fixes for 5.1
W510205 (PTF UK0028)

WebSphere V6 supports J2C 1.5 applications.

2.2.2 Resource adapters

The following resource adapters are supported in the J2C tools:

2.2.3 CICS Transaction Gateway

The supported software for CICS Transaction Gateway (CICS TG) is located in www-1.ibm.com/support/docview.wss?uid=swg21239203

3.0 Known limitations, problems, and workarounds

3.1.1

The limitations found in the IBM ® J2EE Connector Tools Feature Version 6.0.1 also apply to this release.

3.1.2

In many cases updates to the IMS resource adapter may require corequisite APARs for IMS Connect and IMS. For information about corequisite APARs see the following Web site www.ibm.com/ims.

3.1.3

You cannot have multiple versions of a resource adapter in any version of WebSphere® Application Server. The problem is that there is only a single classpath/loader in WebSphere® Application Server, so it will actually mix classes up from the 2 levels and you will get undefined behaviour.

3.1.4

PMR 03591:Annotation  Builder Performance Issue

Problem description

The annotation builder will automatically rebuild all your data binding classes if you make changes to the annotation tag.

There are cases when the data binding classes contains many get/set methods, any rebuild will take a very long time. The CPU will go up 100% and

The user may think that the tool/ system is hanging. Actually, it is not hanging and it will come back after the rebuild is completed . Sometimes it may take 20 minutes depnending on how many methods are in your data binding classes.

Work Around

3.1.5

Incomplete method body in migrated artifacts when you use the command line WSADSIE to RAD J2C migration tool.

Problem description

If you use the command line J2CMigration.bat/J2CMigration.sh to migrate your WSDLs to J2C Java Beans or Data Binding. You will find that some of the method body is empty eventhough the doclets tags are generated in the methods.

The writer has returned to the command line tool before the annotation builder has completed the code generation of the method body based on the doclets tags.

Work Around

You will need to bring up the migrated workspace using the workbench, Then the annotation builder will rebuild and all the method bodies will be generated and compiled.

4.0 Customer support

The product home page for Rational Application Developer is www.ibm.com/software/awdtools/developer/application/. For FAQs, lists of known problems and fixes, and other support information, visit the support page at www.ibm.com/software/awdtools/developer/application/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 support page at www.ibm.com/software/awdtools/architect/swarchitect/support/.

5.0 Notices and trademarks

© Copyright IBM Corporation 2000, 2006. 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 © 2000-2006, 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 © 1995 by Addison-Wesley Publishing Company, Inc. All rights reserved.

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
3600 Steeles Avenue East
Markham, Ontario
Canada L3R 9Z7

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. 2000, 2006. 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.