IBM Component Broker Release 2.0

PTF 2 Readme

Updated 6/30/99

Table of Contents

WHO SHOULD APPLY THE PTF?

The Component Broker Release 2.0 PTF 2 should be applied to all Component Broker Release 2.0 installations. It can be applied to either the base Component Broker Release 2.0 package, or Component Broker Release 2.0 PTF 1 level, as the PTF 2 updates are cumulative. PTF 2 includes all fixes from PTF 1 and PTF 2.

Note: Uninstall of PTF 2 is not provided. Once PTF 2 is installed, the entire Component Broker installation must be uninstalled and the Release 2.0 package installed again to revert to the original Release 2.0 package. However, PTF 2 may be reapplied if necessary. To revert back to the PTF 1 level, the entire Component Broker installation must be uninstalled, the Release 2.0 package installed again, and then PTF 1 would need to be applied again.

ADDITIONAL INFORMATION AVAILABLE AT THE  SUPPORT WEBSITE

The Component Broker Technical Support Website has been updated to include additional tools, documentation, quickfixes, workarounds and known limitations that were not available when the Release 2.0 product shipped. You can link to Component Broker's support area from IBM customer technical support. <http://service.software.ibm.com/> Since there are frequent updates to the Component Broker Technical Support site, customers are urged to check there often. Known limitations and workarounds are documented in the Knowledge Base, quickfixes are listed in Fixes and Updates.

PREREQUISITE UPDATES
Listed below are updates to some of the Component Broker prerequisite products:
Changes in prereq levels for PTF 2
Windows NT AIX
  • JDK 1.1.7b
  • DCE 2 with EC06
  • DB2 UDB 5.2 + FP8
  • Comm Srvr 6.0.2 to support NT 4.0 SP4
  • JDK 1.1.6 + FP4 (IX86441)
  • DB2 UDB 5.2 + FP8

Of these newly supported prerequisite levels, only the JDK 1.1.6 with Fix Pack 4 for AIX is a hard requirement. The other changes are supported levels that customers may move to if desired.

If you plan to install the JDK 1.1.7b, please refer to the Knowledge Base entry "Component Broker 2.0 Install Limitation with JDK 1.1.7b"

 

Global Security Kit (GSK)
  • IMPORTANT NOTE: These steps should be taken after step 6 of  the PTF installation process described in Install the Component Broker PTF2 on Windows NT  in the Installation section near the end of the PTF 2 Readme.
  • Uninstall the existing Global Security Kit (GSK)
    1. Quiesce all servers 
    2. Stop the Component Broker service.
    3. Uninstall the existing version of GSK by running the following command:
      c:\winnt\gskRUnin.exe CBroker

      Your installation of Windows NT may be in a different directory.
    4. To make sure the GSK has been completely removed from the Windows NT registry, you can invoke regedit to look for GSK. Look for:

      hkey_local_machine\software\ibm

      If you find a subdirectory gsk, look in the subdirectory gsk\current version\regapps to see if there are any applications registered to GSK. If there are NO applications registered, or just your application registered, then you can simply erase the subdirectory gsk (including all subdirectories). If there are any other applications registered then you need to write these down (exactly, it's case sensitive) so you can add them after reinstall and then delete gsk as described.

    5. Verify the completeness of uninstallation. Change directories to where you installed GSK previously and make sure all GSK files and subdirectories are removed. If they are not, remove them manually.
  • Install the new GSK from the PTF  2
    1. Create a directory into which you want to expand (unzip) the files in the GSK package. Copy GSKRF301.zip from the cbroker\lib directory to the directory you just created.
    2. Change to the directory you created in step 1. Unzip GSKRF301.zip. This will result in several files being extracted into this directory.
    3. Run the set up program that was extracted in step 2 as follows:
      setup CBroker -f1gskRinstIS (that reads, f  "one" g with no spaces).
    4. Follow the instructions and answer questions appropriately. Be sure to install GSK into the same directory it was installed in before you uninstalled the previous version. Component Broker is configured to expect GSK in the same location.
    5. Verify the installation by running the following command from the GSK\bin directory:
      ikmgui.exe
    6. Restart the CBConnector service via the Start->Control Panel->Services panel.
    7. Use the SM EUI to resume the hosts that this fix was applied to. The resume action will re-start all application services, the name server, and the orb daemon.
  • Notes and Considerations

    The new version of GSK must be installed on the same drive:directory where the original version of GSK was installed. The setup program for GSK will ask you where you want to install GSK.

61441
61543
Windows NT
How to apply DCE 2.0 Fixpack 6 (ECO6) for Windows NT
First determine what version of DCE 2.0 you are running. At a command prompt:

regedit
select->HKEY_LOCAL_MACHINE->SOFTWARE->IBM->DCE for Windows NT ->2.0
On the right panel, look for privacyOption
If privacyOption is 0x0000001(1). This is DES version of DCE.
If privacyOption is 0x0000002(2). This is CDMF version of DCE.

Then obtain the DCE 2.0 Fixpack 6 (eco6)  from the Component Broker support team. Please send email to cbsupp@us.ibm.com requesting either the DES (encrypted) or CDMF version of the fixpack.

Then:

  1. Run the self extracting file eco6??.exe to extract the install image.  Use eco06c.exe for CDMF and eco06d.exe for DES.
  2. Once extraction is complete, run setup.exe in the current directory.
  3. Select "Continue the installation."
  4. After setup complete, enter "Finish" to restart the computer.

See also: If ECO 6 is in use

F60042
Windows NT

Corrected Problems Listed by Component

TOOLKIT
Platform deployment bits missing from the XML
The fix involves artifacts, including BOImpls, DOImpls, MOs and Containers, which have a bit vector that identifies the deployment platforms for the artifact. The deployment bits were not being exported into the XML emitted by Object Builder. The result was that artifacts imported via XML arrived in the model as deployed to all platforms.
60465
All Platforms
Queryable MOs are missing callMethodByName()
Queryable MOs emitted by Object Builder for OS/390 Component Broker did not include
an implementation of callMethodByName(). Without this method, queries would not operate correctly. Queryable MOs for OS/390 Component Broker are now emitted by Object Builder with an implementation of callMethodByName(), similar to that found in MOs for Component Broker Workstation.

60570
S/390
Cannot import IDL files generated by object builder
When reimporting certain IDL files that were generated by Object Builder, the operation failed because of a NullPointerException.

57325
All Platforms
"Same as parent's" environment setting is incorrectly interpreted
When the user created a DO implementation which  inherits from another user-defined DO implementation and they selected "Same as parent's" for the environment, Object Builder's DDL generator did not honor the request. This could have lead to erroneous DDL.

61416
All Platforms
Bytestring attributes may not be interpreted correctly in the BO and DO mapped types
For attributes of type bytestring, the DDL should add a "for bit data" specifier in its signature for all mapped types. This did not always work in the BO and DO mapped types.

61546
All Platforms
Wrong Java parent class generated in *BOBase.java and *Impl.java files
When keys, copy helpers or BO implementations had an implementation inheritance to a parent in a module whose name had an underscore, the resulting generated Impl or Base .java file woulds not show the correct parent. This would lead to a compilation error.

61622
All Platforms
DOs not marked dirty after creating refcolls
When a Business Object contains a 1-to-Many Relationship implemented with a Reference Collection, the Data Object is responsible for creating the Reference Collection the first time the BO needs it. The problem was that the Data Object was not marking itself dirty after creating the Reference Collection. As a result, the reference to the Reference Collection might not be updated into the datastore. The "createMyRelationship" method now marks the Data Object dirty after creating the Reference Collection to ensure an update will occur.
61709
All Platforms
Java BO Queryable Home MOs fail to override and call all the correct framework methods.
Java BO Queryable Home MOs fixes solve the following problems emitted by Object Builder:

1. They do not override the buildFromData() framework method.
2. They do not override the buildFromDataObject() framework method.
3. The MO framework method overrides call up to the SOMProxy instead of the framework.
4. The BO framework method overrides call up to the SOMProxy only instead to both the SOMProxy and the framework.

61078
S/390

quickfix
COMM_FAILURE when creating a BO with an object reference attribute which is nil.
This pertains to BOs with object reference attributes that are home-key mapped from the DO to the PO. If the object reference attribute is nil at the time the BO is being created, and the corresponding key includes one or more strings, then a COMM_FAILURE may result. The nil initialization value for a string foreign key is "". The COMM_FAILURE occurs as a result of the DO trying to free that string later on in its life.

The initialization value for nil object reference foreign keys of type "string" has been changed from "" to (const char*)"". In the CORBA C++ bindings, this insures the DO will get its own copy of the "" string to free.

59780
All Platforms
BOImpl panel will not close when clicking Finish
When attributes in BO Impl use non-IDL types that contained an embedded "::" Object Builder did not correctly display the type information the second time the BOImpl wizard opened, and the wizard would not close when clicking "Finish".  Now attribute types of non-IDL types with embedded "::" work as just any other types and the generated code is also correct.
61431
All Platforms
Default DDL filenames need to conform to PDS naming convention
For OS/390 Component Broker, DDL files may sometimes need to be copied to a PDS. To help support this, Object Builder now allows the user to enter user-defined filenames for the specific and non-specific DDL files.

Entry fields for specific and non-specific DDL were added to the  Application family wizard. If those fields are not blank, the DDL files generated will be defined as whatever was entered in the fields. Otherwise, DDL filenames will be generated from the Application Family name, that is, a specific DDL name will be the application family name with "Specific" added in the front as prefix, whereas non-specific DDL names will be the same as the application family name. If user defined specific and non-specific DDL filenames are the same, Object Builder will give an error message to prevent user from entering the same names. If the filenames violate the PDS naming convention (that is,  length exceeds 8 characters, first character not alphabetic, the rest of the characters are not alphanumeric), a warning message will come up. The model consistency checker will also check for this.

59498
All Platforms

 

Business Objects backed by CICS or IMS can now contain wstring key attributes
The dependency on the += operator has been removed in order to fix an error which had been encountered when compiling code generated by Object Builder:

error EDC3070: Call does not match any argument list for "IString::operator+=".

The error occured when a Business Object contained an attribute of type wstring in its key. The error occured in the C++ implementation of  the Persistent Object for that Business Object when that Persistent Object used the Procedural Application Adaptor to access data in a CICS or IMS database. 

60499
All Platforms
Consistency Checker messages have been added
Consistency Checker messages have been added for the following user errors:
  1. If a managed object is deployable in OS/390 and its IR file name is not compliant with the OS/390 rules for file naming.
  2. If a DLL is deployable in OS/390 and its library name is not compliant with OS/390 rules.
  3. If a PO is deployable in OS/390 and has a file name or a package name that is not compliant with OS/390 rules.
  4. If DDL files will be generated for OS/390 and the specific or non specific file names are not compliant with OS/390 rules.
  5. In specifying a DDL file, if the specific file name is the same as the non-specific file name, the non-specific file name will be overwritten.

The OS/390 rules for file naming are:

  1. File should be 8 characters or less
  2. First character should be an alpha character
  3. Subsequent characters should be alphnumeric characters.
59497
S/390
Container wizard will not prompt information that is not relevant to OS/390
In defining a Container using the Container wizard, if the user selects OS/390 as the only deployment platform, the user will be prompted only for the name and the description of the Container. The rest of the pages in this wizard will not be displayed because the information asked by these pages such as workload management and service details are not applicable to
OS/390.

In assigning a Home to a container (while configuring an application),  if the user selects OS/390 as the only deployment platform, all user defined containers are now selectable in the Container page of the Configure Managed Object wizard.

59496
S/390
Unpredictable results with Unit Test in IBM VA for Java for CICS and IMS
Unpredictable results may occur when running a Unit Test program to exercise and test the Procedural Adapter Object in the IBM VisualAge for Java Integrated Development Environment (IDE).

After creating a Procedural Adapter Object (PAO) which uses the ECI or HOD connectors to access CICS or IMS data, it is common to run a program to test whether that PAO accesses the data properly. This is a common step before the PAO is imported into Object Builder, and the procedure is outlined in the CICS and IMS Application Adapter Quick Beginnings Guide.

Unpredictable results may occur with the first access to the CICS or IMS data. On an insert request, this may result in only the Key of the record being set.

These unpredictable results do not occur when running the PAO in a Component Broker Server in the Component Broker environment. They only occur in the IBM VisualAge for Java unit test environment.

A new version of the IBM Procedural Application Adapter Library project has been provided in the Component Broker R2.0 PTF 2. This new version is installed in the IBM VisualAge for Java IDE when the PTF is installed, but is not automatically selected as the current version to be used in the Unit Test environment.

Users experiencing problems in the Unit Test environment must make the new version the current version by following these steps:

  1. Start the Visual Age for Java IDE by selecting the following from the Start Menu: Start->Programs->IBM VisualAge for Java for Windows->IBM VisualAge For Java.
  2. Go to the Workbench. If you are not shown the Workbench, select: Window->Workbench.
  3. Select the Projects tab on the Workbench notebook or tab book.
  4. In the popup menu for the IBM Procedural Application Adapter Library project, select:
    Replace With->Another Edition...
  5. In the dialog box titled "Select replacement for IBM Procedural Application Adapter Library", ensure that version 1.0.2.1 is selected. There is a small asterisk (*) preceding the version currently selected. If version 1.0.2.1 is selected, then press Cancel to return to the Workbench. If another version is selected, then select version 1.0.2.1 with the mouse and press OK.
56733
Windows NT, AIX
OS/390 CB MOFW Data Object interface inheritance is represented incorrectly by Object Builder
The Object Builder Inheritance pane showed incorrect inheritance information for selected interfaces from the OS/390 Component Broker MOFW. In particular, Object Builder showed

IRDBIMExtLocalToServer::IDataObject inheriting from IBOIM390LocalToServer::IDataObject instead of from IBOIM390ExtLocalToServer::IDataObject, and

IBOIM390ExtLocalToServer::IUUIDDataObject inheriting from IBOIM390ExtLocalToServer::IDataObject instead of from IBOIM390LocalToServer::IDataObject.

This was a visual misrepresentation of the true OS/390 Component Broker MOFW and had no effect on code generated by Object Builder.The Object Builder Inheritance pane now shows the correct OS/390 Component Broker  inheritance.

62037
S/390
Object relationship representation of the model that is bridged from rose into Object Builder or imported into OB caused compile error
When a rose model (*.mdl file) contained an object relationship, and this rose model was exported from rose into object builder, the object relation of the bridged model in object  builder was not set up correctly. This sometimes caused compile errors in the bridged model. Additionally,  when an xml file containing an object relationship was imported  into Object builder, the object relationship in the imported model was not set up correctly. This sometimes caused compile errors in the imported model.  With the PTF 2, the object relationship can be set up correctly in the bridged or imported model.
60818
All Platforms
Missing code body in .cpp for newly added DOImpl attribute pushed down from BOImpl
For an existing stack of BO - BOImpl - DO - DOImpl, adding a new attribute in BOImpl and pushing it down to the DO will create new attributes in DO and DOImpl, but no code is  generated for the newly added attribute in DOImpl in the .cpp file (unless that method is being viewed in the editor by clicking on the method in the method pane). This is incorrect behavior. The attribute code is now generated correctly regardless of whether the user clicks on the method in the method pane.
62998
All Platforms
com.ibm.connector.CB390.CICSEXCIInteractionSpec fix update
A failure to initialize the TransID and PgmName properties to NULL during the OS/390 Component Broker CICSEXCIInteractionSpec constructor in a CICS PAA Adapter has been corrected so that
the properties are now properly initialized to NULL in the updated constructor
62316
Windows NT,
AIX
Oracle smallint mapping is incorrect
This fixes a problem that happened when a short attribute was mapped to an Oracle database. The generated query metadata in the specific DDL file may not have been correct.
61775
All Platforms
Importing string initial values across Bridge not working
String attributes with initial values specified in Rational Rose previously had an incorrect initializer generated for Object Builder by Rose Bridge. The string was not wrapped with a "CORBA::string_dup()", which resulted in the attribute being treated as a char* by the compiler instead of a const char*. The Rose Bridge now wraps all string initial values specified in Rational Rose with "CORBA::string_dup()" to prevent the incorrect handling of the attribute.
61302
Windows NT
Ordered Locations factory finders are not available on OS/390 Component Broker
Object Builder emits code that uses factory finders such as "host-scope-widened" and "<servername>-server-scope-widened" which are not yet supported on OS/390 Component Broker. The Object Builder emitted code for OS/390 Component Broker now uses the "host-scope" factory finder, which is supported on OS/390 Component Broker.
63385
S/390
Optimistic PAA APPC generated code failed to throw an exception.
An exception needed to be thrown in the code generated for optimistic PAA APPC   (LU 6.2) connections. The method "public void update()" in the emitted _XXXXXPOIFImpl.java file checks to see if the values of the data that it is about to update equals the expected values (i.e., data in the backend has not changed since it was read by the client.)  When this check fails, the customer must be altered to retry the operation. Before this fix, the customer was not warned.

Now, update() throws a java.lang.Exception when the check fails. This exception  is caught in the catch block immediately below the throw statement. It is then rethrown as an IDataObjectFailedException.

Customers will need to regenerate the persistent object's code if they are using   optimistic PAA APPC (LU 6.2) connections. They will also have to rebuild their model and replace the .jar files used by System Manager with the new .jar files.

61403
All Platforms
Using Configured MOs on S/390
If the platform of the configured MO is S/390 and the MO is a Specialized Home, matching containers were erroneously being filtered out of the selectable container list in the Container page of the Configure Managed Object Smart Guide. This fix enabled compatible containers to be displayed and selectable in this page.

63427
S/390
PO names exceeding 8 characters on S/390
On OS/390 Component Broker, the PO names cannot exceed 8 characters, though the Add Persistent Object Smart Guide defaults the name without checking if the name length is valid. The fix uses the OS/390 Component Broker platform is used as a constrain, so that the Smart Guide provides a PO name that does not exceed 8 bytes.

63341
S/390
Multi-level inheritance and Java BOs
Multi-level inheritance and Java BOs were not constructed properly during server startup. This would prevent the application server  from starting. The mixin attribute is no longer generated for derived MOs. This fix requires that the MOs be re-generated by Object Builder in order to take effect.
58334
All Platforms
RUNTIME
CB/390, CB/WS internal interoperability problem, Java based externalization
Java externalization implementation was not handling ENDIAN format conversions for code page field in externalization buffer header.  Corrected code handles ENDIAN format differences when reading code page field from header.

59002
Windows NT, AIX, S/390
Resolve a compound name which contains a federated junction failed
This fixes a case  wherein a client would get a ::CosNaming::NamingContext::NotFound exception when using Naming Service method resolve() or resolve_with_string() on a compound name which contained a federated junction.
58719
Windows NT,
AIX
AIX CB Servers Core Dumping and Hanging during long runs
The core dump fixed is distinguished by the fact that it always occurs during Java garbage collection and there is no 'handleSignal'  message logged for the segmentation violation in the activity log.

This was a quickfix  for a segmentation violation in somsrsm on AIX when running with AIX JDK 1.1.6 FixPack 4 or newer. The quickfix provided a replacement for ibmcbjs.zip and somshor.zip which synchronized BO/DO finalizers to prevent a thread race condition. The quickfix did not affect NT since finalizers on NT run single threaded.

60527
AIX
quickfix
Security error when server is terminated
When a server is terminated, a new server will be created to replace it. The fix created the client process to re-establish a security association with the new server after the original server is terminated.
56557
Windows NT, AIX, Solaris
Potential wild pointer when Security Enabled
An access violation exception was raised in the Security code after an application ran for several hours.. The memory management code was fixed.
59757
Windows NT, AIX, Solaris
Security request interceptor memory leaks
The code was changed to prevent a  memory leakage problem in the Security Interceptor code.
61020
Windows NT, AIX, Solaris
Runtime dll initialized twice
A customer application caused libsomibs1.so to load twice, reinitializing the static data area of libsomibs1.so and causing the framework code to segment fault during a transaction commit operation. We have some evidence that this problem occured when the customer did a JNI call from their Java BO directly.

This problem appears using JAVA BOs on AIX, it does not appear using C++ on AIX. It does not appear at all on NT. If your application has a handle signal at this spot in a Java BO based application, this PTF fix may solve the problem.

61380
Windows NT, AIX

quickfix
(AIX only)
Platform neutral UUID support
A new set of UUID interfaces are provided in MOFW for all Component Broker platforms. These interfaces are to be used in SpecializedHomes that can now be provided on all Component Broker platforms. Note that the support will be provided only in the runtime for the PTF. The associated Object Builder changes will not be provided in this PTF. In order to use this platform neutral support the customer would build a SpecializedHome using the current IBOIM UUID support and then modify the resulting output to use the UUID interfaces provided in IManagedAdvancedServer.

The following steps need to be followed to use the MOFW UUID support once the output of MOFW has been generated:

  1. Modify the DOImpl idl, ih and .cpp files to use IManagedAdvancedServer include files and IManagedAdvancedServer::IUUIDDataObject  instead of the existing BOIM ones
  2. Modify the Copy helper idl, ih and .cpp files to use IManagedAdvancedServer include files and IManagedAdvancedServer::IUUIDCopyHelperBase instead of the existing BOIM ones
  3. Modify the client and server makefiles to move the copy helper files from the client makefile to the server makefile
  4. Use generateUuid() method instead of generate() on the UUIDPrimaryKey class
58725
All Platforms
Additional try/catch logic in Remote Name Context processing
Errors during the processing of a Remote Name Context by  the name server were not appropriately logged.  Errors will now have more appropriate log messages in the activity log.


62161
Windows NT, AIX
Remote Name Context configuration/activation error
Logic errors in configuration activation which prevented correct initialization of remote name context images have been fixed.
61960
All Platforms
FLT-OVERFLOW exception in javai.dll
This fixes a rarely-occurring problem where an activity log entry of the form:

PrimaryMessage: The function handleSignal(int,int,CONTEXT*):608 reported an error.
ExtendedMessage: A system error was detected - 24 FLT-OVERFLOW (OS signal nbr:3).
Error occurred at (Eip):075ac844, in source file:javai.dll

occurs, followed by server failure.

The IOM runtime (somsh.dll) was modified to  restore the state that the Java VM expects.

59369
Windows NT

quickfix
BAD_PARM exception when querying a Oracle backed object
A problem has been solved in which a query or iterate request over a collection backed by  Oracle could fail if the ManagedObject contained string  attributes. The Query service was adding one extra  byte to the string value and in some cases this caused the string to exceed its maximum declared size. The activity log would shows the exception

CORBA exception CORBA::BAD_PARAM, error code is 0x49420103
(ICACHE_BAD_PARAM_LARGEANYSTR).

62168
Windows NT

quickfix
String attributes backed by Oracle gets padded with zero bytes
A problem has been solved in which the Cache Service padded string values with extra zero bytes before inserting or updating Oracle tables.
62392
Windows NT

quickfix
Use of object reference backed by Oracle received CORBA::INV_OBJREF exception
Object references retrieved via a query and used in another transaction may have received CORBA::INV_OBJREF exception due to a problem in the cache service. The activity log usually contains the following message:

IBOIMSystemObject_IContainerImpl::resolveToObject
(IIMFLocalToServer::IKeyComonent_ptr):1672 raised CORBA exception CORBA::INV_OBJREF, error code is0x464 SOMBOIM_ICONTAINERMINOR_REACTIVATION_FAILED.

62394
Windows NT

quickfix
dlopen failure on AIX when using bos.rte.bind_cmds at levels of 4.2.1.5 or greater
On an AIX system that has any loader level higher or equal to 4.2.1.5 there is a problem where the dlopen and dlsym fail. IOM loads the Java shared library and tries to dynamically resolve a symbol called 'pinHandle'. The resolve of this symbol fails in dlopen due to the new AIX loader. Following is an example of what would be contained in the activity log:

PrimaryMessage: The function WeakRef::pin:98 reported an activity
RawData: 0000 64 6C 6F 70 65 6E 20 66 - 61 69 6C 65 64 20 20 dlopen failed

Due to the repercussions of this failure, this is typically followed by a handlesignal and a core dump. The problem was eliminated with a change to libsomsh.so which will now  invoke dlopen with different arguments.

62448
AIX

quickfix
Use of null pointer to call method causes RAS problem
We have seen that sometimes when any code takes a SIGILL fault RAS cannot walk the stack. This situation has been corrected.
62340
AIX
Interface Repository and AIX 4.2.1.5 are incompatible
After upgrading to AIX 4.2.1.5, the Interface Repository cannot be accessed. This has been fixed in the PTF 2 by providing new versions of the INTERSOLV ODBC drivers.

59706
AIX

quickfix
RemoteNameContext information missing in SOM_CDS
The RemoteNameContext information was out of sync between SOM_CDS and DCE/CDS after adding a RemoteNameContext. The problem didn't happen in a single adding process. It took several activations of adding RemoteNameContext while running and stopping Name server to make it fail.
62248
Windows NT,
AIX
Work Load Management gets comm failure error when security is on and no servers are available
When using work load management (WLM) with security enabled, when the client application throws CORBA::SystemException, comm failure message will be logged at the server. If security is off, the correct behavior is for the WLM server to return a "No Servers Available" to the client program. This has been corrected in the security information specific to each application server.
60386
All Platforms
An error occurred when messages larger than 8K were sent over SSL connections from Java clients
The new level of Java SSL code being used does not have the 8K buffer problem.
58784
All Platforms
Bound string in an Any cannot be extracted
A problem was solved which occurred when the Java ORB received an Any created by the C++ ORB.
59650
All Platforms
Query statement with count(*) does not work when the target database is DB2/MVS
There is an internal problem in query when issuing an SQL query that DB2/390 does not accept. The same query will work if the target database is DB2/UDB on NT or AIX.
This has been fixed in the PTF.
63330

Windows NT, AIX

SAMPLES
Users do not know how to write Application Object on NT or AIX to communicate with servers on S/390.
A new sample walks the user through setting up an Application Object on Windows NT or AIX to communicate with a server on S/390
.
54007
Windows NT, AIX
OS/390 does not use default containers
Samples that did not have user defined containers would not work on OS/390 Component Broker.  The fix changes all the Tutorial Fundamental samples to have user defined containers.
58617
S/390
Modifying the C++ specialized home for an EJB results in compilation error
After using Object Builder to modify the implementation of a C++ specialized home for an Enterprise JavaBean (EJB), the generated C++ code for the specialized home failed to compile due to a missing #include statement in the .ih header file for the home. This situation would arise when deploying a container-managed entity bean having a specialized finder method.
A change to the cbejb tool eliminated the problem.

60724
Windows NT,
AIX
Quicktest: Order dependency in inheritance
Without this fix you had to inherit from IManagedClient::IManageable after all the other inheritance. With this fix you no longer have to inherit in any particular order.
58336
All Platforms

INSTALLATION

Installation Instructions for Windows NT

Important Note: The following instructions supersede the sections in Chapter 8 and Chapter 9 of the Component Broker Planning, Performance, and Installation Guide titled "Apply the Component Broker PTF."

How to prepare and apply the CB 2.0 PTF 2 on Windows NT.

Quiesce all servers:

  1. Start the System Management User Interface.
  2. Become an Expert User. (Select View->User Level->Expert)
  3. Expand Host Images.

  4. For each server hostname listed under Host Images (You don't need to Quiesce the Client Host):
    1. Select each hostname and right mouse click to pop up the menu.
    2. Click on Quiesce to stop application servers, name servers, and daemons.
  5. Exit the System Management User Interface.

Download the Component Broker PTF 2 for Windows NT:

  1. Create a directory in which to download the PTF 2.
  2. From the ftp directory ftp.software.ibm.com/ps/products/cb/fixes/r20PTF2 download the PTF 2 by clicking on the CBptfNT.exe file and saving it in the directory created in step 1.

Install the Component Broker PTF 2 on Windows NT:

  1. Run the self extracting file CBptfNT to extract the PTF 2 install image.
  2. Once extraction is complete, run setup.exe in the current directory.
  3. Click Next when the Welcome panel comes up.
  4. A Question window is displayed asking if you would like to apply the fix pack; click Yes.
  5. In the event that a file to be replaced as part of the fix pack is still being used during the file transfer, a message box will pop up asking if the file should be overwritten. Click Yes.
  6. Click Yes to reboot the system. If you want to install the GSK, wait to reboot until you complete that installation.
  7. After the system is rebooted, remove the directory containing the Component Broker PTF 2 install image.

After the Component Broker 2.0 PTF 2 is applied.

After the PTF 2 is applied, to restart servers follow the steps below:

  1. Start the System Management User Interface.
  2. Become an Expert User. (Select View->User Level->Expert)
  3. Expand Host Images.
  4. For each hostname listed under Host Images:
    1. Select each hostname and right mouse click to pop up the menu.
    2. Click on Resume to start application servers, name servers, and daemons.
  5. Exit System Management User Interface

How to update the IBM VisualAge for Java for CICS and IMS Application Development

If you develop Procedural Adapter Object Beans for use with the Component Broker CICS and IMS Application Adaptor, upgrade  the version of the IBM Procedural Application Adapter Library feature. This feature can be found in the IBM VisualAge for Java Integrated Development
Environment (IDE). Follow the steps below:

  1. Start the IBM VisualAge for Java IDE.
  2. Go to the Workbench. If you are not shown the Workbench, select:
    Window->Workbench.
  3. Select the Projects tab on the Workbench notebook or tab book.
  4. In the popup menu for the IBM Procedural Application Adapter Library project, select:
    Replace With->Another Edition...
  5. In the dialog box titled "Select replacement for IBM Procedural Application Adapter Library", ensure that version 1.0.2.1 is selected. There is a small asterisk (*) preceding the version currently selected. If version 1.0.2.1 is selected, then press Cancel to return to the Workbench. If another version is selected, then select version 1.0.2.1 with the mouse and press OK.

Only users who have installed the Component Broker Toolkit, and the CICS and IMS Application Adaptor need to follow these steps.

If ECO 6 is in use

This is a temporary workaround for ECO6.

If ECO6 has been applied to DCE 2.0 for Windows NT then "dcesetup" and "dcecp show.cfg" may fail to display the correct DCE running status once a valid dce login credential becomes invalid (expired). The failure of knowing DCE's true status could mislead the user into unnecessarily reconfiguring the DCE or cause the user to restart the system to correct the problem.

The following workarounds are provided:

  1. Ensure there is a valid dce_login (credential):
    On command prompt, type in "kinit" to refresh the expired login or do "dce_login" to login again, then "dcesetup" or "dcecp show.cfg" will display correct DCE current status.
    -OR -
  2. Ensure there is no dce_login (credential):
    On command prompt, type in "kdestroy" to remove credential then followed by "dcesetup" or "dcecp show.cfg" to obtain DCE running status.

Installation Instructions for AIX

Important Note: The following instructions supersede the sections in Chapter 8 and Chapter 9 of the Component Broker Planning, Performance, and Installation Guide titled "Apply the Component Broker PTF."

How to prepare for applying the Component Broker 2.0 PTF 2 on AIX.

Quiesce all servers:

  1. Logon as Component Broker user.
  2. Start the System Management User Interface.
  3. Become an Expert User. (Select View->User Level->Expert)
  4. Expand Host Images.
  5. For each server hostname listed under Host Images(You don't need to Quiesce the Client Host):
    1. Select each hostname and right mouse click to pop up the menu.
    2. Click on Quiesce to stop the application servers, name servers, and daemons.
  6. Exit the System Management User Interface

Stop the System Management Service (bgmain):

  1. From a shell prompt, enter:
    smitty apps
  2. Move the cursor to Stop the System Management Application and press Enter.
  3. On the Stop the System Management Application now? screen, press Tab to change the Stop the System Management Application now? entry field to y and then press Enter.
  4. Press PF10 to exit smitty.

How to apply the Component Broker 2.0 PTF 2 on AIX.

Download the Component Broker PTF 2 for AIX:

  1. Logon as root.
  2. Create a directory in which to download the PTF.
  3. From the ftp directory ftp.software.ibm.com/ps/products/cb/fixes/r20PTF2 download the PTF 2 by clicking on the CBptfAIX.tar.Z file and saving it in the directory created in step 1.

Apply the Component Broker PTF 2 on AIX:

  1. Retrieve the PTF 2 install image by running zcat CBptfAIX.tar.Z | tar -xvf -
  2. From a shell prompt, enter:
    smitty update_all
  3. The Update Install Software to Latest Level (Update All) screen is displayed. On this screen:
  4. Press the Enter key on the next screen. This displays the ARE YOU SURE? screen.
  5. Press the Enter key to commit the install.
  6. Press the F10 key to exit SMIT.
  7. Remove the directory containing the Component Broker PTF 2 install image.

After the Component Broker 2.0 PTF 2 is applied.

Restart the System Management service:

  1. Logon as Component Broker user.
  2. From a shell prompt, enter:
    smitty apps
  3. Select Start the System Management Application and press Enter.
  4. On the Start the System Management Application now? screen, press Tab to change the Start the System Management Application now? entry field to y and then press Enter.

Re-start the servers:

  1. Start the System Management User Interface
  2. Become an Expert User. (Select View->User->Level->Expert)
  3. Expand Host Images
  4. For each hostname listed under Host Images:
    1. Select each hostname and right mouse click to pop up the menu.
    2. Click on Resume to start application servers, name servers, and daemons.
  5. Exit the System Management User Interface.

How to update the IBM VisualAge for Java for CICS and IMS Application Development

If you develop Procedural Adapter Object Beans for use with the Component Broker CICS and IMS Application Adaptor, upgrade  the version of the IBM Procedural Application Adapter Library feature. This feature can be found in the IBM VisualAge for Java Integrated Development
Environment (IDE). Follow the steps below:

  1. Start the IBM VisualAge for Java IDE.
  2. Go to the Workbench. If you are not shown the Workbench, select:
    Window->Workbench.
  3. Select the Projects tab on the Workbench notebook or tab book.
  4. In the popup menu for the IBM Procedural Application Adapter Library project, select:
    Replace With->Another Edition...
  5. In the dialog box titled "Select replacement for IBM Procedural Application Adapter Library", ensure that version 1.0.2.1 is selected. There is a small asterisk (*) preceding the version currently selected. If version 1.0.2.1 is selected, then press Cancel to return to the Workbench. If another version is selected, then select version 1.0.2.1 with the mouse and press OK.

Only users who have installed the Component Broker Toolkit, and the CICS and IMS Application Adaptor need to follow these steps.


IMPORTANT NOTE: The entire contents of the PTF 1 Readme are included with this document. All PTF 1 fixes described below are included in PTF 2. If the PTF 2 were to be applied to Component Broker 2.0 without the prior application of the PTF 1, the PTF 1 fixes would be included in the installation.


IBM Component Broker Products
Release 2.0 PTF
1  

Readme

Updated 3/23/99

CONTENTS


Who Should Apply the PTF?

The Component Broker Release 2.0 PTF should be applied to all Component Broker Release 2.0 installations.

Note: Uninstall of the PTF is not provided. Once the PTF is installed, the entire Component Broker installation must be uninstalled and the Release 2.0 package installed again to revert to the original Release 2.0 package. However, the PTF may be reapplied if necessary.

Additions to the Component Broker Technical Support Website

The Component Broker Technical Support Website has been updated to include additional tools, documentation, and known limitations that were not available when the Release 2.0 product shipped. You can link to Component Broker's support area from IBM customer technical support. Since there are frequent updates to the Component Broker Technical Support site, customers are urged to check there often.

Some of the updates include new tools, updated versions of the documentation, and additional known problems and limitations that are not in the Late Breaking News but have been added to the Knowledge Base of the Component Broker Technical Support Website. Quickfixes provided after the shipment of the Release 2.0 PTF are available in the fixes and updates section.
 

CORRECTED PROBLEMS LISTED BY COMPONENT

Problem Abstract

PTF Fix Information

Problem/Platform
PREREQUISITE INFORMATION
JDK 1.1.6 Fixpack 4 resolves multiple problems Applying the AIX Developers' Toolkit for Java (JDK) 1.1.6 Fixpack 4 fixpack level IX86441 will resolve the following Component Broker problems:

1. Object Builder errors when JIT turned on (This also requires the Component Broker R2.0 PTF1; see Object Builder problem when JIT on)

2. Garbage collection problems (see PAA/CICS sample failure)

59756, 58767
AIX
Conflicts with multiple copies of setloc1.dll The problem

a) Multiple copies of setloc1.dll (DCE, GSK) in Component Broker 2.0 conflict with each other resulting  in the wrong setloc1.dll being loaded. 
b) SSL fails with large amounts of returned data.

Description of the fix 

A new version of the Global Security Kit (GSK) package contains the fix. As part of the PTF installation, this package will be placed in your cbroker\bin directory. 

The following steps for uninstalling and installing the GSK package should be taken during the process listed in Install the Component Broker PTF on Windows NT. The proper time to proceed with the GSK steps is noted in item six in the section "Install the Component Broker PTF on Windows NT."

Uninstall the existing Global Security Kit (GSK)

1. Stop the Component Broker service. 

2. Search your system to find out where GSK was originally installed. It may be in \Program Files\IBM\GSK, or some other location. You can find this information by invoking regedit to look for GSK. 
Look for: 

hkey_local_machine\software\ibm.

If you find a subdirectory gsk you want to look in the subdirectory gsk\current version\regapps to see if there are any applications registered to GSK. If there are NO applications registered or just your application register then you can simply erase the subdirectory gsk (including all subdirectories) and this will clean up this portion. If there are any other applications registered then you need to write these down (exactly, it's case sensitive) so you can add them after reinstall and then delete gsk as described.

3. Uninstall the existing version of GSK by running the following command:
       c:\winnt\gskRUnin.exe CBroker
Your installation of Windows NT may be in a different directory.

4. Verify the completeness of uninstallation. Change directories to where you installed GSK previously and make sure all GSK files and subdirectories are removed. If they are not, remove them manually.

Install the new GSK from the PTF

1. Create a directory into which the self-extracting GSK package will be expanded. Copy GSKRF301.exe from the cbroker\bin directory to the directory you just created.

2. Change to the directory you created in step 1.Run the self_extracting GSK package.  This will result in several files being extracted into this directory. GSKRF301 ./ /D

3. Run the set up program that was extracted in step 2 as follows:
       setup CBroker -f1gskRinstISU

4. Follow the instructions and answer questions appropriately. Be sure to install GSK into the same directory it was installed in before you uninstalled the previous version. Component Broker is configured to expect GSK in the same location.

5. Verify the installation by running the following command from the GSK\bin directory:
       ikmgui.exe

6. Restart the CBConnector service via the Start->Control Panel->Services panel.

7. Use the SM EUI to resume the hosts that this fix was applied to. The resume action will re-start all application services, the name server, and the orb daemon.

Notes and Considerations

The new version of GSK must be installed on the same drive:directory where the original version of GSK was installed.  The setup program for GSK will ask you where you want to install GSK.

56983, qf56273
Windows NT
Configuration tool hangs with JDK 1.1.7B If JDK 1.1.7B was used, the Component Broker 2.0 Configuration Tool would  hang whenever a reconfiguration was performed. This is because the Java method used to copy contents of files in ascii mode has a different behavior in JDK 1.1.7B. The ascii copy call was changed to a binary copy of files to fix this problem. 58042
Windows NT
 

TOOLKIT

DDL 
IBOIMExtLocal statements wrong for S/390
In the OS/390 Systems Management DDL generated by Object Builder, the keyCreateFunctionName and primaryKeyClass parameters were incorrect in the UUID case. They are now:
  keyCreateFunctionName = 
  "IBOIM390ExtLocal_IUUIDPrimaryKeyImpl_Create";
  primaryKeyClass = "IBOIM390ExtLocal::IUUIDPrimaryKey";
57553
S/390
OB hangs when generating DOImpl A problem has been fixed in which Object Builder hangs when generating the DOImpl (Generate All). 57270
All Platforms
Object Builder generates incorrect java code for non-IDL type If a user attempted to define an attribute on a JavaBO that was a Java 'Non-IDL Type,'  the generated declaration of the attribute in the xxxBOBase.java file contained the C++ scoping operator '::'
For example:
  import java.util.HashTable;
   .
   .
   .
  protected ::HashTable attribute;
57636
All Platforms
Rose Bridge exports to Object Builder Rose Bridge using "Export to Object Builder with Separate Projects and Separate Classes" did all classes in a package instead of just the ones selected. 

The User Interface has been modified to clarify the selective bridging process.

57120
Windows NT
Child BO needs Lazy Evaluation when using "same as parent" For an inheritance model, if the child BO has an access pattern Same as Parent's, the code generated for the child BO should be based on the parent's Lazy Evaluation setting. The original Problem Reference asked to enable the Lazy Evaluation checkbox in the SmartGuide.  However, the fix implemented forces the child to use the Lazy Evaluation setting of the parent. 57565
Windows NT
AIX
Getters/setters for object references do not "lazy evaluate" in inherited BOImpls Previously, in a BOImpl inheritance hierarchy where the subclass overrode the getter and setter for an object reference attribute, the getter and setter method bodies on the subclass were emitted as though "Lazy Evaluation" was disabled. This occurred even if "Lazy Evaluation" was enabled on the superclass. This sometimes resulted  in loss of data in the MO assembly.

The getters, setters and framework methods of a subclass BOImpl will now be generated according to the "Lazy Evaluation" configuration of its superclass BOImpl.

57879
All Platforms
Integrating User Makefiles In the Object Builder generated all.mak file, the build process only exposes the end targets to the user (for example, C++ or Java). Some users want to integrate their own makefiles into the build process. Without the fix, the user would have to add many nmake/make statements to the all.mak file. With the fix, the build passes are completely exposed and the user can integrate their makefiles with minimal changes. 56795
Windows NT
performance improvement for home/key pattern Previously, when an object reference was mapped from the DO to the PO using the home/key pattern, the getter on the DOImpl got a Factory Finder, located a Home, then drove a findByPrimaryKeyString() against the Home to convert the foreign key attributes into an object reference. The Home reference retrieved by the getter method was discarded when the method ended. Every time the getter was called it reconsulted the Name Service to get the Home resulting in poor performance.

The solution included in the PTF is that the Home reference retrieved by the getter is now saved in a DOImpl class static variable the first time the getter is called. On all subsequent calls, the getter simply reuses the Home reference. This avoids unnecessary calls to the Name Service and improves performance.

56966
All Platforms
Wrong code for stringified object when object is nil() The Object Builder emitters have been fixed. Now, when the getter detects an empty stringified handle it bypasses the call to ICBCLocalFactory::createFromString() and directly returns a nil object reference to the caller.

Previously, when an object reference was mapped to a stringified handle in the PO, the getter method for the reference on the DOImpl was emitted incorrectly by Object Builder if the stringified handle was empty (which represents a nil object reference).

57727
All Platforms
Deadlock in QueryableHomes GetMetaData
Method
A problem existed where a deadlock could occur in the queryable home in a multi-client environment.

In certain time windows, the home could deadlock when the evaluate method ran on the home while another transaction using the query service on another thread requested data from the home.

Multi-client queries should no longer deadlock in this fashion.

58653
Windows NT
AIX
Using Workload Management with C++ Clients There is no longer a requirement to have DCE installed on clients using WLM. 

57195
Windows NT

getKey() incorrect for stripped or padded string attributes If one or more String Key attributes of a Business Object was configured as Strip trailing spaces or Pad string with spaces, then the getKey() method on a OS/390 Component Broker DOImpl under the BO was emitted incorrectly by Object Builder. Specifically, the name of the variable assigned to char* temp, which should be the key attribute, was incorrect.

In the Object Builder emitters the correct variable is now assigned to char* temp in getKey().

57616
S/390
A new Application Family property has been added Starting with the Component Broker 2.0 PTF, a new
Application Family property, operatingSystem, has been added to the DDL generated by the Object Builder. Older DDL without this property will continue to work on the 2.0 PTF. 

However, in a future release DDL without the operatingSystem property will be rejected.  This means that DDL generated prior to the PTF will have to be regenerated or the operatingSystem property will have to be added manually.

The operatingSystem property can have the values aix, nt or solaris (no quotes). For example.,

   operatingSystem = aix;

57944
All Platforms
XML compare and merge tool  The help system for the XML compare and merge tool was not enabled in Component Broker 2.0. 55918
All Platforms
Duplicate XML files in obimport command If the user specified two XML files in one invocation of obimport, and both of these files were of type UserDefinedBusinessObject, then the importer would only import the first one, and report that the second one was of a duplicate type (for example, udbo).  It has been modified such that any number of BOs, DOs, or POs can be provided to the obimport command. 57790
All Platforms
bind and pre-compile errors with DECIMAL When IDL type "string" was mapped to DB2 as "DECIMAL," object builder generated SQX files failed at DB2 precompile and bind. 56734
S/390
DOImpl Inheritance Superclass attributes may not be written to the datastore The problem was that the update() method only checks the iDirty flag of the subclass, not the superclass.

The DOImpl update() method emitted by Object Builder now tests the iDirty flags of all classes in a DOImpl class hierarchy to determine if a true update is required.

58388
S/390
Java BO home MOs emitted incorrectly 
for OS/390
There were a number of errors in the Managed Objects for Java Business Objects as emitted by Object Builder. The code generation problems listed below have been fixed in the PTF.

1. Method declarations necessary for Queryable Home MOs were missing from the MO.ih file.

2. Several methods were declared and defined in the MO.ih and MO_I.cpp files that should not be:
    - getAttributes()
    - setAttributes()
    - processState()
    - reactivateObject()
    - homeIdentification()
    - getMOContainer()
    - finishInitOrUninit()
    - getContainerName()
    - createProxy()
    - buildDataObject()
    - buildFromData()
    - buildFromDataObject()

3. The getMetadata() method returned ::IBOIMLocalToServerMetadata::IMetadataPackage_ptr.
   It should instead return ::IBOIM390LocalToServerMetadata::IMetadataPackage_ptr.

4. The Java Home MO framework methods delegated to the IManagedAdvancedServer framework class. They should instead delegate to the BOImpl SOMProxy class.

5. There was a call to getMixin() which was removed. In its place should be a reference to the mixin pointer held by the MO.

57864
S/390
Incorrect use of private variables in list method query In Component Broker 2.0, when a one to many relationship was created, the list method was implemented using an SQL query. For a model that used a Foreign Key, the list method attempted to access data members of another Business Object as local data members instead of using the getter methods provided. The Query in the relationship list method attempted to use the (private) key attribute directly, and not the getter method. This resulted in a compile failure, because the attribute is private.

With the PTF, the key is always going to be public (it must be defined on the interface, and so must be public). New code generation will use the key getter. 

58440
All Platforms

Fixes to EJB deployment tools and runtime

1. Additional error checking has been added to the EJB deployment tools (cbejb, jetace, and ejbbind).
2. Previously, if an EJBObject method was defined to throw a user-defined exception derived from java.rmi.Remote, the code generated by the cbejb tool would fail to compile.
3. The javax.ejb.ObjectNotFoundEx was not correctly mapped to IDL.
4. Previously, if an ejb-jar was created using VisualAge for Java, including a DeploymentDescriptor, and the jetace tool used to modify the ejb-jar's DeploymentDescriptor, then the cbjeb tool would encounter an error when deploying the new ejb-jar generated by jetace.
58401
All Platforms
Restrictions on 
length of object names
The System Manager EUI restricted the length of object names to 32 characters in the dialog for creating new objects. This fix expands  this limit so that model objects may be created which match the names of corresponding objects created via Load Application. qf56882
All Platforms
S/390 MO Inheritance - uninitialized mixin In Component Broker 2.0, when an MO inherits from another MO, the setMixin() framework method on the subclass initializes the mixin reference on the subclass but not the superclass.

After the PTF has been applied, the MO setMixin() method emitted by Object Builder calls the superclass' setMixin() and then initializes its own reference to the mixin. This insures that all classes in an MO class hierarchy have a properly initialized mixin reference.

58249, 58202
S/390
Incorrect code generated in PAA POs A problem existed in the getter, setter and internalizeKeyAttributes methods of PAA POs emitted to OS/390 Component Broker. Calls were made to internal->setWorkspaceId() which is correct for NT and AIX but not for S/390.

The OS/390 Component Broker PAA PO implementation code emitted by Object Builder now calls the correct method, setWorkSpaceID(workSpaceId).

58188
S/390
NIL home-key mapped object references with foreign key strings mapped as 
VARCHARs do not persist correctly
This was a problem in Embedded SQL DOs. When an object reference is home-key mapped to a PO, and one or more attributes of the key are strings mapped to VARCHAR or LONG VARCHAR columns, then any attempt to retrieve a NIL object reference from the referencing object's getter may result in an error from DB2. This occurred during or after a createFrom...() operation against the home of the referencing object in which the object reference is initialized to NIL.

With the PTF, Object Builder has altered the rules for string-to-VARCHAR mappings in the PO. When, and only when, the attribute is part of the primary key, the PO converts "" into a zero-length, non-NULL column value instead of a NULL column value.

58499
All Platforms
Includes not added to BOImpl or included in BO_I.obj recipes in makefiles. In Release 2.0 the only way to #include a file from within a BO Implementation .cpp file was to hand-type the #include into the file adornments of the BOImpl. Such included files did not appear as dependencies in the BOImpl recipes in the emitted makefiles.

With the PTF, a "Files to Include" page has been added to the Business Object Implementation Smart Guide. This page is based upon the like-named page in the Business Object Interface Smart Guide. When adding an include, you may either select from a list of known CORBA IDL files or you may free-type a file name.

Selecting a CORBA IDL file for inclusion in a BOImpl has two effects on the emitted code:

1. The BO.ih file will contain a "#include" statement for the .hh file of the selected IDL file.
2. The BO_I.obj recipe in the makefile will contain, as a dependency, the .hh file of the selected IDL file provided it is not a Component Broker framework file.

Free-typing an include filename for the BOImpl has two effects on the emitted code:

1. The BO_I.cpp file will contain an "#include" statement for the file exactly as entered.
2. The BO_I.obj recipe in the makefile will contain, as a dependency, the filename either...
 a) exactly as entered for platforms other than Windows NT,
 b) exactly as entered for Windows NT if the filename is absolute, or
 c) exactly as entered and prefixed by {$(INCLUDE)}\ for Windows NT if the filename is relative.

57404, 57405
Windows NT
Installshield images may not work on later releases of Component Broker InstallShield images generated on the current release of Component Broker will not install properly on later versions of Component Broker, because there is a mismatch between the Component Broker version where the application was generated and the Component Broker version where the application is being installed. 

The fix allows applications to install on systems with Component Broker versions later than the Component Broker version on which the application was generated.

58180
Windows NT
Memory leak when querying or finding BOs with Cache Service DOs When querying or finding business objects whose data objects use the Cache Service, the server may leak large amounts of memory. The problem is that the internalizeData() method of a Cache Service PO as emitted by Object Builder fails to release object references in some cases.

The Cache Service PO internalizeData() method no longer leaks memory.

57947
Windows NT
AIX
Exception generating DDL for a foreign 
key with SOR mapped attributes
When generating the DDL for a foreign key pattern which contains SOR mapped attributes, Object Builder threw an exception and hung. These patterns will now be ignored. 57632
All Platforms
Searching application families for configured MO homes When a managed object is configured with a specialized home, Object Builder goes through all application families in the model and uses the first instance of this specialized home. The problem is that the located home may be in another application family which could lead to undesirable cross dependencies. The solution in the PTF is to have Object Builder search the current application family before searching the others. 58084
All Platforms
Specific DDL fails to generate when mapping incomplete The specific DDL file fails to generate if any incompletely mapped foreign key patterns are detected. The solution in the PTF is to ignore these patterns. 58297
All Platforms
Exception opening read-only dependent models If the file permission on the dependent model files are set to read-only a DSEFileReadOnly exception occurs. The problem was that these model files (for example, obp.UNI and obm.UNI) were opened with write permission. The solution was to have these files open as read-only. 58563
All Platforms
Obgen emits wrong files for Java BOs For a Java Business Object that contained a forward declared interface with implementation language defined as C++, Object Builder would treat the Business Object as C++ (that is, emit xxx.ih and xxx_I.cpp files). With this fix, Object Builder checks the forward declared flag on an interface before emitting the associated implementation files. qf58559
All Platforms
Codegen of 
makefiles fails when dependent models are read
In Component Broker Release 2.0, the generation of makefiles would fail when the primary model had dependent models that were either read-only, or located on read-only drives. The failure would take the form of exceptions during the makefile generation, and it occurred on all platforms. 58298
All Platforms
Partitioning buttons may not be visible in AddPO SmartGuide A problem was fixed wherein when adding a PO to a DOImpl (by selecting Add Persistent Object and Schema from the popup menu of the DOImpl node), the partitioning buttons in the Attributes mapping page of the SmartGuide were sometimes not displayed. 59480
All Platforms
Disable S/390 button in DOImpl SG if parent is cached Previously, if a DOImpl derived from a parent that was either DB2 cached or Oracle cached, the S/390 platform checkbox in the DOImpl SmartGuide was still enabled, allowing the user to select this platform. Since DB2 or Oracle cached is not supported in S/390, this checkbox will be disabled now. 59200
All Platforms
The workspace ID is not initialized during internalization of PAA DOImpls On OS/390 Component Broker, the internalize...() framework methods of a PAA DOImpl did not call the setWorkSpaceID() method on the aggregated PAA PO.

The workspace ID is now correctly initialized on the PO by the DOImpl.

59314
S/390
PAA CB/390 beans in VisualAge for Java Customers of OS/390 Component Broker want to develop their PAA beans in a VisualAge for Java environment, however there is no VisualAge for Java/390 product. For OS/390 Component Broker PAA bean development within VisualAge for Java two OS/390 Component Broker interactionSpecs are provided with the PTF, they are:
  CICSEXCIInteractionSpec.class
  IMSOTMAInteractionSpec.class
They are shipped in the x:\CBroker\lib directory. To load them into VisualAge for Java do the following:

1. From within VisualAge for Java select the project IBM Component Broker Connectors. If this is not currently in your workspace, then select Quick Start ->Add Feature to add it.
2. Right-mouse click and choose import.
3. Select import from a directory.
4. Choose the x:\CBroker\lib directory and select the two .class files:
     CICSEXCIInteractionSpec.class
     IMSOTMAInteractionSpec.class
5. Select OK.
6. It will issue the following warning: The project IBM Component Broker Connectors is a version. A new edition will be created for you.Would you like to continue? Choose Yes. The OS/390 Component Broker InteractionSpecs are now available for developing your CB/390 PAA Beans.

58562
Windows NT
AIX
OS/390 compile problems with PAA PO.cpp Three problems have been fixed in the Persistent Object's C++ file if that Persistent Object is generated from a model using the Procedural Application Adapter. They were:

1) Odd characters appeared in the C++ source code where lines would normally be split. The odd character is a control-M.

2) Problems with include malloc.h.

3) An error indicating that identifier workSpaceId was not defined in the constructor of the Persistent Object's key.

59431, 59455
S/390
getKey() may be incorrect for delegating, meet-in-the-middle DOImpls The getKey() framework method on OS/390 Component Broker DOImpls configured as Delegating was incorrect if the key attributes of the DO interface and the aggregating BO implementation were differently named. Specifically, the name of the temporary variable used to set the Key object was incorrect. This can only occur in a meet-in-the-middle scenario, not a top-down scenario.

The correct temporary variable name is now used to set the Key object inside the getKey() method.

59448
S/390
The "Table/View is Updatable" property of a PO is not exported into the XML by Object Builder Problem:
The "Table/View is Updatable" property of a PO is not exported into the XML by Object Builder. As a result, when the XML is imported into a new model, all POs will be imported as updatable.

Solution:
The "SchemaIsUpdatable" property is now correctly exported and imported in XML form by Object Builder. However, any XML that was exported prior to this fix will still not have this property. To fix this, after importing the XML, open the properties smartguide on each PO that should be read-only (non-updatable) and uncheck the "Table/View is Updatable" property.

Note: typically, tables should be updatable and views should not be updatable.

59500
All Platforms
Object Builder generated makefiles contain incorrect location of POs The Object Builder generated makefiles were making the assumption that a DOImpl's associated POs were in the same model as that of the DOImpl. 

Code changes were made to ensure that the generated makefiles account for the situation where a DOImpl's POs are in a linked model. Customers who have exercised a bottom up scenario with their DOImpls in one model while their POs are in another will need to regenerate their makefiles with the PTF. Otherwise, their makefiles will continue to assume that a DOImpl's associated POs are in the same model, which could result in build breaks.

59540
All Platforms
Nested client request problem for OS/390 OLT had problems handling OS/390 Component Broker nested client requests, when the request and response were out of order, or were not paired. 55892
S/390
Model error found in obimport for linked model Problems occurred when importing a uddo.xml file which contained attribute or method elements. In addition,when using the obimport command to import XML files, the user needed to adjust the order of XML files to be imported. 59302
All Platforms
Premature exit from server while 
debugging
Despite enhancements to the debugger, the way the AIX operating system handles SIGTRAP may still cause the somsrsm server to exit prematurely when it is in debug mode.

Here is the workaround: Select SIGTRAP notification in the Options->Debugger Settings->Exception Filtering menu. If/when a SIGTRAP is generated, click examine on the exception notification to clear the exception, then press run to continue execution.

57125
AIX
Object Builder
problem when
JIT on
Object builder ran into problems when running JDK 1.1.6 with JIT on. There are two parts to this fix:
  1. A fix was made to JDK 1.1.6. Apply the AIX Developers' Toolkit for Java (JDK) 1.1.6 Fixpack 4 (fixpack level IX86441) to obtain this fix.
  2. A fix was made to the Object Builder code.
58767
AIX
Fully qualified data types not used in module
struct members
Object Builder was incorrectly calculating the type for struct members inside a module. Newly created models will use the fully qualified name for struct members, however, several steps are necessary to correct this problem in existing models. The following steps will clean up existing models:

 1. Open the SmartGuide for the module that contains the struct definition.
 2. Change to the "Constructs" page, and select the struct.
 3. Select the member(s) for which the error occurs, and change the type(s) to anything else (such as long)
 4. Hit Finish on the SmartGuide
 5. Re-open the SmartGuide, and locate the member(s) in question.
 6. Change the type(s) of the member(s) back to their original definition.
 7. Save the model.
 8. If required, generate the code.

qf57769
All Platforms
Failure starting OLT with certain locales An error may occur when starting Object Level Trace on machines where the default locale is not en_US, ja_JP or Ja_JP. The exception displays this message on the screen:

Exception in thread "main" java.util.MissingResourceException: can't find resource for com.ibm.ivb.olt.constants.OLT_sv_SE (where sv_SE = default input locale)
...

59348
Windows NT
AIX
Exceptions occurred when importing a MO XML Exceptions that occurred when importing a MO XML have been fixed. 59508
All Platforms
DO inheritance support not imported correctly from XML In the Release 2.0 code, there was a problem when XML representing DO implementation inheritance was imported into Object Builder. Specifically, the newly imported DO implementation incorrectly did not inherit from the DO interface. The XML is now imported correctly. 59501
All Platforms
Exceptions when importing XML Exceptions had been thrown when importing XML files under curtain circumstances such as an obimport exception reimporting with -X option. 58314, 58372 All Platforms
Object Builder incorrectly names attribute Object Builder created a private data member for every attribute, using the naming convention of upper casing the first letter of the attribute name, and then prefixing it with a lower case i. For Java BOs, attributes of a non-IDL type that were protected or private were generated with an incorrect type string, and without the "i" prefix.

The type of the attribute is now genererated correctly, and will compile. The name of the attribute now follows the standard Object Builder naming conventions (iAttributeName).

59529
All Platforms

RUNTIME
SSL performance SSL performance can be degraded significantly with certain Java BO applications. The new somorori.dll contains a fix which increases performance significantly. qf56831
Windows NT
Deadlock with JavaBOs This fixes a dead-lock situation in the Component Broker server that could occur when:
  • Java Business Objects were used
  • There were multiple clients accessing the server simultaneously
  • Java garbage collection ran in the server.

Symptoms were that the server process permanently stopped responding to client requests. 

To verify that this is your problem, you can set the enable verbose garbage collection option on the Java Virtual Machine page of the System Management settings for your server image to yes and monitor the console output of the server process. You should see a message from the Java Virtual Machine shortly (within 0-3 minutes) before the server stop responding. The message will start with "managing allocation failure" andinclude the text "synchronously running <nn> finalizers" where <nn> is some number.

You may also see what appears to be a server hang due to long Java garbage collection runs. In this case, the server stops responding for up to several minutes, and then runs normally.

With the default settings for Java minimum heap size,
the server may run Java garbage collection so infrequently that delays more than a minute occur when garbage collection finally runs.

In this case clients with the default timeout setting (30 seconds) may report NO_RESPONSE. There are two ways to address this problem.

1) Set the client timeout to a larger value (System Management-> Client Style Images -> your client style -> ORB page -> "request timeout" field).

2) Set the minimum heap size on the Java Virtual Machine page in your server image's System Management settings to "100000". This will set the minimum heap size to the smallest possibly value (100,000 bytes), thus maximizing garbage collection efforts.

Setting this field will cause garbage collection to occur approximately 12 times more frequently than the default settings (in minutes instead of hours) and reduce the length of the garbage collection pause proportionately.

For more information about making this change to your System Management settings, see the topic Java Virtual Machine Tuning in the Late Breaking News for Component Broker 2.0.

57101
All Platforms
Reconfigure System Manager as System Management Agent choice eliminated In Component Broker 2.0, there appeared to be an option to reconfigure a System Manager as a System Management Agent, although doing so would cause the Common Data Store of the System Manager machine to be wiped out. The fix prevents a user from trying to do that by eliminating the choice to reconfigure as a System Management Agent. The Component Broker Configuration Tool will not allow the user to enter a remote host name as the System Manager if System Manager is installed on the system. 58140
Windows NT
Large memory leaks in collisions test This fixes a storage leak from the concurrency component, that occurred when concurrency lock requests were waiting for locks in a multi-client scenario. 57187
Windows NT
AIX
Multi-client collisions accessing a single server This fixes an error in the obtaining of a concurrency lock. There existed a small window of opportunity where the requesting thread blocked forever, even though it was given the lock, causing the client programs to hang. 57237
Windows NT
AIX
Segmentation violation in somdc02i.dll If a Component Broker server was configured to connect to the DB2/390 backend database there were failures in query. There were also failures in other object operations if the DataObject was implemented to use the cache service. The activity.log showed a segmentation violation in somdc02i.dll. qf57892
All Platforms
Server crash when attribute of type ByteString A problem has been solved in which the server would crash when an object had attribute of type ByteString and the DataObject was implemented using the cache service. 57005
All Platforms
string_to_object needs to dup local only object This fixes a problem where local only objects, that is, CORBA Objects that are not proxies, (found in servers) can have their reference count be wrong. The consequence could be that the object was deleted even though it was still in use, resulting in a trap or coredump.

The fix makes the implementation of string_to_object() properly transfer ownership of the object returned to the caller. It does this by incrementing the object's reference count.

This could happen if a local only object is put in an Any, or if string_to_object was called directly, in addition to other ways.

Since the fix properly increases the reference count, where previously it wasn't being incremented, applications may have been written that didn't expect to take ownership and weren't releasing the object properly. Therefore the fix may expose memory leaks in the application. Any applications currently doing a string_to_object and getting a local object must not have been releasing it properly, otherwise they'd be seeing traps or coredumps.

59216
All Platforms
Marshalling 
exceptions and 
GPFs inside a getter
A problem existed whereby the home returned a Managed Object rather than a local Proxy in the case of a query on an object which already existed in the container. Under certain conditions when using Java BOs, this would result in a segmentation violation when garbage collection occurred. This fix removes the segmentation violation problem and allows the application to continue to a successful conclusion. 58353
Windows NT
AIX
Query result returned from global cache instead of database values When caching data optimistically with refreshInterval > 0, query does a reactivateFromData(). The cache entry is not in transaction cache but does exist in global cache. The query tuple (which has newer data) should take precedence over an entry in the global cache. However the logic in the code has the global cache entry taking precedence over the query tuple. With the PTF, the design of reactivateFromData is changed so that it does not do a global cache lookaside, only a transaction cache lookaside. qf56116
All Platforms
Using 
"sessionReset" for PAA sessions over 
ECI
A problem with sessionReset for PAA sessions using ECI connections has been fixed in the PTF. Results with sessionReset should now be as expected. (This limitation was documented in the Late Breaking News.) 55611
F54188
All Platforms
Running
CICS/APPC
applications
The level of C++ Runtime for AIX used as a prerequisite in the PTF is level 3.1.4.7. This eliminates a problem requiring that level of xlC_rte fileset to be separately downloaded.  55870
AIX
PAA to IMS via 
APPC rollsback the transaction 
with abend on IMS side
This fixes IMS APPC transaction rollbacks that can occur due to network delays on APPC status flows when committing a transaction. The network delay caused the APPC state to remain in receive state, which the lastAgentCommit routine treated as incorrect, and rolledback the transaction. qf57369
Windows NT
AIX
Seg-violation on Load Application This fixes a problem caused by DDL files that contained strings in excess of 1K characters in length. When trying to load such a DDL file bgmain would crash. This would happen on all platforms. 58199
All Platforms
 

SAMPLES

Quicktest method
returns null pointer
QuickTest method parameters of type string returned null pointers. 57438
All Platforms
QuickTest scripting fails on playback QuickTest scripting with selection from Table of rows did not consistently select the row. The function would work when manually recording the script but failed during playback. 57347
All Platforms
Quicktest generates bad code for Sequences of Structures QuickTest failed to compile code for Sequences of Structures.
A bad method invocation was generated which resulted in a a NullPointerException.
qf57521
All Platforms
QuickTest scripts aren't saved in 
correct location
When QuickTest is run, you can specify where to save the script file that is generated. This fix saves the script into the directory that was entered, rather than saving the script into the directory from which QuickTest was generated and run. If no directory is entered, QuickTest saves the script into the directory from which it was run. 57329
Windows NT
AIX
QuickTest does not copy IDL files correctly when the
DL name ends with "BO"
When generating QuickTest files, the customer indicates where to copy IDL files. With this fix, Quick Test now copies IDL files with BO in the name to the correct location. 57858
Windows NT
AIX
QuickTest script file that has multiple objects using the same key or copy object This fix allows a script file that uses one key or copy object by multiple objects to run correctly. 57949
Windows NT
AIX
QuickTest script compilation error on a query for short 
integer
This fix allows script files generated by QuickTest samples to run query on short integer values successfully.  57984
Windows NT
AIX
QuickTest 
transactions with OS/390 require defer begin value
A new option allows QuickTest clients connecting to a OS/390 server to set deferred begin option to never.  58143
Windows NT
AIX
QuickTest corrupts JCB jar file(s) when used with JDK 1.1.7B When using QuickTest to generate the build script, the JCB jar file(s) got corrupted during the copy operation. The jar files copy correctly now. 57768
Windows NT
AIX
Quicktest missing class file Errors occurred when installing and compiling Quicktest due to missing class files. These are now included in the Component Broker 2.0 PTF. 58237
Windows NT
AIX
PAA/CICS Sample failure The PAA/CICS sample may fail when running with a server that has just been activated. This is due to a garbage collection problem in the JDK. This has been fixed in the AIX Developers' Toolkit for Java (JDK) 1.1.6 Fixpack 4 (fixpack level IX86441).

To work around this problem when running with any JDK 1.1.6 level earlier than Fixpack 4, restart the server after the sample fails and it will then run successfully.

59756
AIX


INSTALLATION

Component Broker 2.0 Install Limitation with JDK 1.1.7b

This is a correction to the Late Breaking News item "Supported Levels of the JDK." The Late Breaking News states:

Component Broker is supported on and has been tested with the Java Development Kit (JDK) 1.1.6. While Component Broker will install with JDK 1.1.7 and above, these levels of the JDK are not currently supported....

The new limitation is that if JDK 1.1.7b (the IBM version) is installed on your system, Component Broker 2.0 will not install, due to changes in the registry structure for JDK 1.1.7b.

The workaround is to install JDK 1.1.6 before installing Component Broker 2.0. After Component Broker 2.0 has been installed, JDK 1.1.7b can be reinstalled.

Instructions and Restrictions on Using Windows NT 4.0 Service Pack 4 with this PTF

The only known restriction to date is that Communication Server version 5.0 is not compatible with Windows NT 4.0 Service Pack 4. Do not apply Windows NT 4.0 Service Pack 4 on systems where you plan to run PAA using Communication Server version 5.0.

Installing the Windows NT 4.0 Service Pack 4 is an optional procedure. If you chose to do it, follow the procedures that are provided by Microsoft to apply Windows NT 4.0 Service Pack 4 on machines that do not have Component Broker installed. It is highly recommended to select the option for creating a back up directory during the install process.

For machines that have Component Broker already installed and running, stop the Component Broker servers first before applying Windows NT 4.0 Service Pack 4. Here are the steps:

  1. Start the System Manager User Interface.
  2. Become an Expert User. Select View->User Level -> Expert.
  3. Expand Host Images.
  4. For each server hostname listed under Host Images, right mouse click to popup the menu and select Quiesce to stop the name servers, application servers, and daemons. You don't need to Quiesce the Client Host.
  5. Exit the System Manager User Interface.
  6. Apply Windows NT 4.0 Service Pack 4 following Microsoft's instructions.
  7. Reboot the system.

Installation Instructions for Windows NT

Important Note: The following instructions supersede the sections in Chapter 8 and Chapter 9 of the Component Broker Planning, Performance, and Installation Guide titled "Apply the Component Broker PTF."

How to prepare and apply the CB 2.0 PTF on Windows NT.

Quiesce all servers:

  1. Start the System Management User Interface.
  2. Become an Expert User. (Select View->User Level->Expert)
  3. Expand Host Images.

  4. For each server hostname listed under Host Images(You don't need to Quiesce the Client Host):
    1. Select each hostname and right mouse click to pop up the menu.
    2. Click on Quiesce to stop application servers, name servers, and daemons.
  5. Exit the System Management User Interface.

Download the Component Broker PTF for Windows NT:

  1. Create a directory in which to download the PTF.
  2. From the ftp directory ftp.software.ibm.com/ps/products/cb/fixes/r20ptf1 download the PTF by clicking on the CBptfNT.exe file and saving it in the directory created in step 1.

Install the Component Broker PTF on Windows NT:

  1. Run the self extracting file CBptfNT to extract the PTF install image.
  2. Once extraction is complete, run setup.exe in the current directory.
  3. Click Next when the Welcome panel comes up.
  4. A Question window is displayed asking if you would like to apply the fix pack; click Yes.
  5. In the event that a file to be replaced as part of the fix pack is still being used during the file transfer, a message box will pop up asking if the file should be overwritten. Click Yes.
  6. Click Yes to reboot the system.

    Important Note: If you plan to install the new Global Security Kit package, do it now. The directions are given above in the Prerequisite Information section Conflicts with multiple copies of setloc1.dll .

After the Component Broker 2.0 PTF is applied.

After the PTF is applied, to restart servers follow the steps below:

  1. Start the System Management User Interface.
  2. Become an Expert User. (Select View->User Level->Expert)
  3. Expand Host Images.

  4. For each hostname listed under Host Images:
    1. Select each hostname and right mouse click to pop up the menu.
    2. Click on Resume to start application servers, name servers, and daemons.
  5. Exit System Management User Interface

Installation Instructions for AIX

Important Note: The following instructions supersede the sections in Chapter 8 and Chapter 9 of the Component Broker Planning, Performance, and Installation Guide titled "Apply the Component Broker PTF."

How to prepare for applying the Component Broker 2.0 PTF on AIX.

Quiesce all servers:

  1. Logon as Component Broker user.
  2. Start the System Management User Interface.
  3. Become an Expert User. (Select View->User Level->Expert)
  4. Expand Host Images.

  5. For each server hostname listed under Host Images(You don't need to Quiesce the Client Host):
    1. Select each hostname and right mouse click to pop up the menu.
    2. Click on Quiesce to stop the application servers, name servers, and daemons.
  6. Exit the System Management User Interface

Stop the System Management Service (bgmain):

  1. From a shell prompt, enter:

  2. smitty apps
  3. Move the cursor to Stop the System Management Application and press Enter.
  4. On the Stop the System Management Application now? screen, press Tab to change the Stop the System Management Application now? entry field to y and then press Enter.
  5. Press PF10 to exit smitty.

How to apply the Component Broker 2.0 PTF on AIX.

Download the Component Broker PTF for AIX:

  1. Logon as root.
  2. Create a directory in which to download the PTF.
  3. From the ftp directory ftp.software.ibm.com/ps/products/cb/fixes/r20ptf1 download the PTF by clicking on the CBptfAIX.tar.Z file and saving it in the directory created in step 1.

Apply the Component Broker PTF on AIX:

  1. Retrieve the PTF install image by running zcat CBptfAIX.tar.Z | tar -xvf -
  2. From a shell prompt, enter:
    smitty update_all
  3. The Update Install Software to Latest Level (Update All) screen is displayed. On this screen:
  4. Press the Enter key on the next screen. This displays the ARE YOU SURE? screen.
  5. Press the Enter key to commit the install.
  6. Press the F10 key to exit SMIT.
  7. Remove the directory containing the Component Broker ptf install image.

 

After the Component Broker 2.0 PTF is applied.

Restart the System Management service:

  1. Logon as Component Broker user.
  2. From a shell prompt, enter:

  3. smitty apps
  4. Select Start the System Management Application and press Enter.
  5. On the Start the System Management Application now? screen, press Tab to change the Start the System Management Application now? entry field to y and then press Enter.

Re-start the servers:

  1. Start the System Management User Interface
  2. Become an Expert User. (Select View->User->Level->Expert)
  3. Expand Host Images

  4. For each hostname listed under Host Images:
    1. Select each hostname and right mouse click to pop up the menu.
    2. Click on Resume to start application servers, name servers, and daemons.
  5. Exit the System Management User Interface.