IBM Component Broker Products

Release 1.3 PTF

Readme

Modified 11/12/98

 

CONTENTS

WHO SHOULD APPLY THE PTF?

The Component Broker Release 1.3 PTF should be applied to all Component Broker Release 1.3 installations (Typical Install, Server Install, and so on).

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

CORRECTED PROBLEMS LISTED BY COMPONENT

Problem Abstract

PTF Fix Information Defect/Platform

CBOB

Cannot republish values

In the Current Republished Value pane, when selecting a value for an attribute setter (that is, when the Setter radio button is selected) the drop-down list did not include any values reachable through the component instances. Often only "??" appeared in the list making it impossible to set the value.

51818

All Platforms

Object Builder

OBMODELPATH
environment variable
causes
DSEDuplicateUUID
exception
When using the OBMODELPATH directory to load a base project and its dependent projects, Object Builder terminates with a DSEDuplicateUUID exception. This only occurs when a copy of the model file (obm.uni) is stored under the project directory. This can occur when Object Builder creates a backup of the model. Object Builder opens the backup model first, but refers to objects stored in the real model. At this point the DSEDuplicateUUID exception is thrown since there is already a copy of this model in memory.

This has been fixed so that Object Builder only searches the 'model' directory and not any other modelx directories.

 

52586

All Platforms

Attribute initializer
not correctly emitted

In the R1.3 GA, attribute initializers were not emitted for attributes in Keys and copy helpers, and also in Java BOs. These initializers are now emitted.

If any code must be run when a class is loaded (which in java could otherwise be implemented as a static class initializer method), the following technique can now be used from within Object Builder: On the BO implementation, define a static attribute of type int, and a static method that returns a type int. In the initializer entryfield for the attribute, enter a call to the static method. The static method can now complete whatever initalization is required, and simply return any int to complete the (dummy) static attribute initialization. This technique can be used for both Java and C++ BOs.

51212

All Platforms

Incorrect Specific DDL
for Inheritance with
Key Attributes

In a DO inheritance scenario, the generated specific DDL file may have contained an incorrect where clause if the table attribute name was different from the DO attribute name for an inherited attribute.

With the application of the PTF, the PO attributes should appear with the correct names.

50289

All Platforms

ArrayIndexOutOfBounds
exception generating DDL
with inheritance

There is a generic java exception that can pop up in Object Builder displaying the message n >=n(where n is some number). If you look in the window where Object Builder was started, you will see an ArrayIndexOutOfBounds exception. The ArrayIndexOutOfBounds exception is a generic java exception that points to an error in Object Builder. There are two known reasons why you might get this exception:

1. an error in Object Builder migration
2. an error with BO inheritance

If you see this exception, here's how to tell if it is one of these known problems. If not, it should be submitted as a new defect to the Component Broker support team.

1. Check to see that your DO attributes are all mapped back to the BO attributes. If not, this is the Object Builder migration problem. The workaround is to go into the Data Object Interface page of the smartguide and move the unmapped attribute(s) into DO state data, click finish, save the model, reopen the model and regenerate the DDL.

2. If all DO attributes are mapped back to the BO attributes and you have BO inheritance with the child BO inheriting an attribute that was of a complex type (i.e. a business object), then this is the BO inheritance problem. This problem has been fixed by this ptf.

 

51767

All Platforms

Iterate doesn't work
with view

In a scenario which involved query over a view, the select clause in the generated DDL should have used the POs which are mapped to the retrieve method for the DO. With the PTF, the correct PO will be used during the query.

50312

All Platforms

Foreign Key datamembers
incorrectly defined

Foreign key datamembers may be incorrectly defined in the DOImpl.ih file. Indicators include the presence of too many datamembers, duplicate datamembers or datamembers of the wrong types (::ByteString_var being quite common).

This problem occured for keys with "unsigned short" or "unsigned long" attributes. The Object Builder code generator has been fixed to support the presence of these types in keys. The DOImpl .ih file emitted by Object Builder now declares the set of protected datamembers for foreign key attributes in the DO of the correct types.

51370, 51452

All Platforms

Horizontal Inheritance
Java Exception
when saving Child DOImpl

Object Builder produces the exception "Invalid macro name:_2POAttribName_" when the user finishes the smartguide on a DOImpl without mapping the retrieve() method to at least one PO. The only side effect is that the internalizeData() method on the DOImpl has a "#error" pragma in its method body. The DOImpl is otherwise well-formed. This is a common occurrence when creating the child DOImpl in a horizontal partitioning (attribute overriding) inheritance scenario.

Object Builder has been fixed to tolerate an unmapped retrieve() method. Given an unmapped retrieve() method, Object Builder (1) no longer produces an exception in the console window and (2) emits an empty method body instead of a "#error" for internalizeData().

50284

All Platforms

Object Builder
generating incorrect
code in DOImpl

Foreign key datamembers of type "enum" are emitted in the DOImpl.ih file with a type of "::ByteString_var".

This problem occured for keys with enum attributes. The Object Builder code generator has been fixed to support the presence of enums in keys. The DOImpl .ih file emitted by Object Builder now declares the protected datamembers for enum-typed foreign key attributes as enums instead of bytestrings. Also, the DOImpl .cpp file emitted by Object Builder now correctly casts PO attributes (mapped under the enums) to enums.

51287

All Platforms

File adornments
not exported

File Adornments (that is, Prologue and Epilogue) were not exported correctly. Adornments in the model would not be reflected in the exported/imported version of that model. File adornments can now be successfully exported and imported via XML.

49451

All Platforms

Database error
migrating XML
to CB 1.3

SQL error when running applications built from 1.2 xml files, into 1.3 ObjectBuilder. The importer for 1.3 was missing the case where no database type was defined, as in 1.2 where it should default to DB2. The database type is now defaulted to DB2 in the case of 1.2 xml files, hence eliminating the SQL error.

50608

All Platforms

Rose Bridge
loses inheritance
relationship

OBImport was sensitive to the order of packages when setting up inheritance relationship, specifically the case where the child was added before the parent. This is no longer the case. Inheritance relationships can be established in any order.

51042

All Platforms

Object Builder
duplicate name
detection is case
sensitive

When the user created a schema from an interface that had two attributes that differed only in case (for example id and ID), because the DB names are not case sensitive, one of the two schema columns was not created.

When the Add PO\Schema Smart Guide comes up, OB defaults the column names so that they are mutually unique within the Schema. With the application of the PTF, the schema columns are correctly created. Both columns are created on the schema object and the .sqx file is correct.

When two PO attributes differ only in case, just tacking on a number to the duplicate column name should suffice.

There's no workaround for existing schemas, the solution is delete the PO under the corresponding DOImpl and recreate the PO and Schema.

51453

All Platforms

Code added to
pushed down method
is lost

When the user opens and finishes the DOImpl Smart Guide, the code changes for the push down methods are no longer lost.

51980

All Platforms

Methods not deleted

The DOImpl user defined methods can now be deleted.

For an existing DOImpl, open the corresponding DOInterface properties Smart Guide and Finish it. The DOImpl user defined method will disappear from the OB Method Panel list.

51982

All Platforms

Object Builder freezes
when saving model

In very rare cases, when saving a model an exception was thrown. This error occurs on a few models which run through a special part of the saving algorithm that was very rarely used. This code now works.

51938

All Platforms

OBModelPath is
now used during
project creation

Added the support to search for new dependent project directories based on the OBModelPath property. Instead of having to specify the full qualified path name of a project directory in the "Project Dependencies" SmartGuide, the user now has the option of only having to specify the project directory name. For the user to exercise the option, the OBModelPath property must be set and the project directory name must be a valid directory within the set path.

50575

All Platforms

localReference
code should not
be provided for
specialized home

In the R1.3 GA, the code for Home implementations was incorrectly using _self(), instead of this. The usage primarily occurs in the code generated for the Add method in a relationship. The generated code for homes will now use "this" instead of "_self". The usage of _self in BOs is unchanged.

50960

All Platforms

Workarounds for
InstallShield 5.1 Bug

Application install images using InstallShield 5.1 scripts would not allow selective installs. Also, it was not possible to run the 'setup.exe' from the command line or MS Explorer due to base path length restrictions. Consequently, a 'setup.bat' is emitted into the directory containing the application install image which can be used to run the 'setup.exe'.

49606

All Platforms

InstallShield 5.1 error
in generated Setup.rul

InstallShield 5.1 install scripts would not compile for multiple application families.

50839

All Platforms

Client: Unable to
createIterator()

Without the fix, customers will not able to select attributes across multiple tables inside the DDL. Also, iteration will fail because of sequence numbers not being in the correct order.

49399

All Platforms

internalizeData
function creates
datasequence in wrong
order

This is identical to defect 49399 (see above) but the problem is isolated to caching services only. It works with embedded SQL.

51254

All Platforms

Application Adaptors

segment fault on
reactivateObject in
BOIM Home

When a customer application attempted to either run a method, or invoke string_to_object on the ORB for a BO which was removed by a previous transaction, a segment fault was recorded in the activity log.

When the PTF is installed, segment faults will no longer appear in the activity log for this scenario.

50878

All Platforms

Data corruption
using atomic mixin
and caching service

The R1.3 Late Breaking News suggested workarounds which won't be required once the PTF is applied.

When the customer had configured the Container "behaviour for methods called outside a transaction" to "start new transaction and complete the call", AND configured the BO as "caching", AND configured the DO implementation as "DB/2 Caching Services", then updates made on the BO were not always correctly reflected in the corresponding DB/2 database record. When the PTF is installed, updates to the BO will be correctly reflected in the corresponding DB/2 database record(s).

50566

All Platforms

transient
transactional problems

Transient objects used in atomic transactions (start transaction containers) will now be committed properly.

51125

All Platforms

System Management

Client timeout errors
and configuration
activation hang

The fix for this defect insures that the system manager properly aquires DCE credentials after a re-start. Without the fix, the customer sees various "client timeout" pop-ups when using the system management interface, and the activation will hang right after "Verification completed" stage.

50438

All Platforms

Configuring Client
Run Time failed

The fix for this defect allows an AIX Client-only install to be configured via SMIT without error. Without the fix, the customer saw the following error during configuration:

BHG1406E Cardinality error - there is already a forward

relationship.

50297

AIX

Can't restart the
CBConnector service

The fix is to set an attribute when spawning the child process so that the child processes does not inherit all the file descriptors open by bgmain.exe. bgmain can be restarted again if it dies without having to kill all the Application servers and the ORB daemon.

50950

All Platforms

Transactions

Turning trace
on causes repeated
GPF in activity log

If trace is turn on in a server that has PAA APPC support configured, then GPF (handleSignal) exceptions occur in the activity.log file if this fix is not applied to 1.3. These handleSignal exceptions are in the trace code so trace is not produced either.

50132

All Platforms

Security

authn_and_refresh
thread GPF in DCE LIB
on App Server

The fix enhances the periodic refreshing of a server's DCE credentials. Without this fix, there were occasional server failures when the configuration was left active for a period of time with no application activity.

51776

All Platforms

Query

Invalid opcode
fault in Query

The destruction of the query result iterator caused the system to fail. This problem appeared only on AIX. After the application of the PTF, deleting the query result iterator returned by the query-evaluator interafaces will procede normally; the memory consumed by the iterator will be freed.

49130

AIX

ORB

somorbd: Major memory
leak with Java Client

Closes memory leak in the Orb daemon when running with a Java client.

50920

All Platforms

Orb mem leak in
typecode while
running Query

 

Closes memory leak in an application server when running Query.

51253

All Platforms

Leak running query test

Closes a leak when strings are contained in Anys. This occurred when running Query.

 

51657

All Platforms

Still leaking mem
when running query
performance test

 

Closes memory leak that could occur in client and server.

51769

All Platforms

fault using
DII -add_in_arg

Avoid corrupted object typecodes and resultant unpredictable behavior when inserting an object into an Any. An application using DII and add_in_arg could encounter this.

52502

All Platforms

 

Addtional Problem Information

 

Exception thrown
loading model
on Rel 1.3 PTF
Certain models may display an "Invalid macro name:_DOFWDOAttribName_" exception when:

1. Loading a pre-1.3 PTF model that contains transient DO Impls into the 1.3 PTF
2. Finishing the smartguide on transient DO Impls on the 1.3 PTF migrating to this ptf level.

The exception is due to an error in the CB/390 getKey() method. This exception will not prevent migration on Windows NT or AIX and can be ignored in those environments. However, if you wish to eliminate this message, or you are running in a CB/390 environment, you may obtain a new template file from IBM. Please contact your IBM Sponsor to obtain this template and reference defect number 53473.

 

53473

All Platforms

Multiple Java
client hangs accessing
cached Java BOs

In cases where you are running multiple simultaneous java clients against a server running Cached JavaBOs, you may experience server hangs which cause your clients to wait indefinitely. If you run into this situation, you need to modify the setting that advises DB2 on the average number of applications expected to be running. To do this, go the the DB2 Control Center, and select: system -> -> Instances -> DB2 -> Databases right-click the database in question, and select Configure...

On the Applications tab in the window that comes up, go to the item titled Average number active applications whose setting is probably at the default, which is 1. Increase that number to a value significantly larger than the number of java clients that you expect to use.

If you are running these java clients locally on the server, it also helps to start each applet or application from a separate MS DOS Window.

 

53066

All Platforms

INSTALLATION INSTRUCTIONS FOR WINDOWS NT

How to prepare and apply the CB 1.3 PTF on NT.

Stop all the running application servers, name servers, and daemons .

  1. Start System Management User Interface.
  2. Become an Expert User. (Select View->User Level->Expert)
  3. Expand Host Images.
    For each hostname listed under Host Images:
    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.
  4. Exit System Management User Interface.
  5. Stop the Component Broker Services
Then run setup under Windows directory on the CD to install the PTF.
  1. Change to \windows directory on the CD drive.
  2. Run setup.exe
  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.

After the CB 1.3 PTF is applied (NT):

After the PTF is applied, to start the application servers, name servers, and daemons, follow the steps below:

  1. Start System Management User Interface.
  2. Become an Expert User. (Select View->User Level->Expert)
  3. Expand Host Images.
    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.
  4. Exit System Management User Interface

INSTALLATION INSTRUCTIONS FOR AIX

How to prepare for applying the CB 1.3 PTF on AIX.

Before applying the CB 1.3 PTF on AIX, stop all the running application servers, name servers, daemons, and System Management Service.

Logon as Component Broker user.

First, stop the servers and daemons.

  1. Start System Management User Interface.
  2. Become an Expert User. (Select View->User Level->Expert)
  3. Expand Host Images.
    For each hostname listed under Host Images:
    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.
  4. Exit System Management User Interface

Then, stop System Management Service (bgmain)

  1. From a shell prompt, enter:
    smitty apps
  2. Move 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 the PF10 to exit smitty.

How to apply the CB 1.3 PTF (AIX):

  1. Insert CBConnector Service Pack CD into the CD-ROM drive.
  2. Mount the file system. To mount, enter:
    su to login in as root
    mount /cdrom
    Please see Quick Beginnings for instructions on how to create a cdrom file system.
  3. From a shell prompt, enter:
    smitty update_all
  4. The Update Install Software to Latest Level (Update All) screen is displayed. On this screen:
    1. Type /cdrom/aix in the INPUT device / directory for software field.
    2. Press the Enter key to continue.
  5. Press the Enter key on the next screen. This displays the ARE YOU SURE? screen.
  6. Press the Enter key to commit the install.
  7. Press the F10 key to exit SMIT.
  8. Unmount the CD-ROM. To unmount, enter:
    unmount /cdrom

After the CB 1.3 PTF is applied (AIX):

Logon as Component Broker User.

Restart System Management service and the servers. First, start System Management service.

  1. From a shell prompt, enter:
    smitty apps
  2. Select Start the System Management Application and press Enter.
  3. 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.

Then, start application servers, name servers, and daemons.

  1. Start System Management User Interface
  2. Become an Expert User. (Select View->User->Level->Expert)
  3. Expand Host Images
    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.
  4. Exit System Management User Interface.