IBM Component Broker Products
Release 2.0 PTF

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 .

  7. After the system is rebooted, remove the directory containing the Component Broker PTF install image.

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:
    • Type . in the INPUT device / directory for software field.
    • Press the Enter key to continue.
  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.