IBM Support

IJ33268: 7612 - UPDATEDB - DROP_APP STATEMENT LEAVES RESIDUAL REFERENCES

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • PROBLEM DESCRIPTION:
    7612 - UpdateDB - Drop_App Statement Leaves Residual References
    
    The installation of Maximo 7.6.1.2 with Scheduler 7.6.8 deletes
    the old Applet-based Graphical Scheduler (SCHEDULER)
    and Graphical Assignments (GRPASSIGN) applications. This occurs
    in the V7680_86.dbc script which contains the following:
    
    <script author="QPM" scriptname="V7680_86">
    <description>aremove oldGS,GA applet apps</description>
    <statements>
    <drop_app app="SCHEDULER"/>
    <drop_app app="GRPASSIGN"/>
    </statements>
    </script>
    
    The UpdateDB log shows the following:
    
    Calling the dbchange file : V7680_86 Tue May 11 12:47:13 MST
    2021
    ---------------------------------------------------------------
    ----
    /*
    * drop_app SCHEDULER
    */
    delete from longdescription where ldkey = 715 and ldownertable =
    'MAXAPPS' and ldownercol = 'DESCRIPTION' ;
    // Deleted 0 records.
    delete from maxapps where app = 'SCHEDULER' ;
    // Deleted 1 record.
    delete from sigoption where app = 'SCHEDULER' ;
    // Deleted 65 records.
    delete from appfielddefaults where app = 'SCHEDULER' ;
    // Deleted 0 records.
    delete from applicationauth where app = 'SCHEDULER' ;
    // Deleted 40 records.
    delete from appdoctype where app = 'SCHEDULER' ;
    // Deleted 3 records.
    delete from maxlabels where app = 'SCHEDULER' ;
    // Deleted 806 records.
    delete from maxmenu where (menutype = 'MODULE' and elementtype =
    'APP' and keyvalue = 'SCHEDULER') or (menutype != 'MODULE' and
    moduleapp = 'SCHEDULER') ;
    // Deleted 63 records.
    delete from bookmark where app = 'SCHEDULER' ;
    // Deleted 0 records.
    delete from defaultquery where app = 'SCHEDULER' ;
    // Deleted 0 records.
    delete from excludedactions where app = 'SCHEDULER' ;
    // Deleted 0 records.
    delete from maxpresentation where app = 'SCHEDULER' ;
    // Deleted 1 record.
    delete from query where app = 'SCHEDULER' ;
    // Deleted 0 records.
    delete from wfapptoolbar where appname = 'SCHEDULER' ;
    // Deleted 0 records.
    commit ;
    
    /*
    * drop_app GRPASSIGN
    */
    delete from longdescription where ldkey = 719 and ldownertable =
    'MAXAPPS' and ldownercol = 'DESCRIPTION' ;
    // Deleted 0 records.
    delete from maxapps where app = 'GRPASSIGN' ;
    // Deleted 1 record.
    delete from sigoption where app = 'GRPASSIGN' ;
    // Deleted 53 records.
    delete from appfielddefaults where app = 'GRPASSIGN' ;
    // Deleted 0 records.
    delete from applicationauth where app = 'GRPASSIGN' ;
    // Deleted 17 records.
    delete from appdoctype where app = 'GRPASSIGN' ;
    // Deleted 0 records.
    delete from maxlabels where app = 'GRPASSIGN' ;
    // Deleted 654 records.
    delete from maxmenu where (menutype = 'MODULE' and elementtype =
    'APP' and keyvalue = 'GRPASSIGN') or (menutype != 'MODULE' and
    moduleapp = 'GRPASSIGN') ;
    // Deleted 60 records.
    delete from bookmark where app = 'GRPASSIGN' ;
    // Deleted 0 records.
    delete from defaultquery where app = 'GRPASSIGN' ;
    // Deleted 0 records.
    delete from excludedactions where app = 'GRPASSIGN' ;
    // Deleted 0 records.
    delete from maxpresentation where app = 'GRPASSIGN' ;
    // Deleted 1 record.
    delete from query where app = 'GRPASSIGN' ;
    // Deleted 0 records.
    delete from wfapptoolbar where appname = 'GRPASSIGN' ;
    // Deleted 0 records.
    commit ;
    
    -- updating MaxVar
    update maxvars set varvalue = 'V7680-86' where varname =
    'SKDUPG' ;
    // Updated 1 record.
    commit ;
    -- Script: Successful
    
    
    But there are many more table that do, or could contain records
    referencing an Application. Try running the following script:
    
    SELECT * FROM MaxAttribute WHERE COALESCE(SameAsAttribute,
    AttributeName) IN ('APP', 'APPNAME') ORDER BY ObjectName,
    AttributeName ;
    
    That will show you all the attributes that could contain an
    Application Name assuming there are no attribute for an
    Application Name called something else without a Same As
    reference.
    
    As you will see, the list of objects and attributes is quite
    long.
    
    You can also run the following script to find generate SQL
    statement to check all these Objects for records that actually
    do reference the applications that were deleted:
    
    SELECT 'SELECT * FROM ' || ObjectName || ' WHERE ' ||
    AttributeName || ' IN (''SCHEDULER'', ''GRPASSIGN'') ;'
    FROM MaxAttribute
    WHERE COALESCE(SameAsAttribute, AttributeName) IN ('APP',
    'APPNAME') and ColumnName IS NOT NULL
    ORDER BY ObjectName, AttributeName ;
    
    In my MaxDemo environment, the following objects still contain
    references to the deleted applications:
    
    CtrlGroup - This table contains 8 records that should have been
    deleted along with related records in the CtrlCondition and
    CtrlCondProp tables. Other objects may have related records that
    may need to be deleted as well.
    
    LoginTracking - I found no references to the deleted
    applications in MaxDemo but this is an example of a table where
    the data should be left alone because it is an audit-related
    table.
    
    MaxApps (OriginalApp) - I found no references to the deleted
    applications in MaxDemo but this is an example of a table with a
    reference to the deleted applications which may require special
    handling. If the Scheduler or GrpAssign applications were
    cloned, the cloned applications should probably be deleted as
    well. Rather than automatically deleting them, it might make
    more sense for the Integrity Checker to raise an Error for
    MaxApps records where the Original App does not exist in the
    MaxApps table. Of course, then the client would need an easy way
    to delete those applications.
    
    MaxGroup (DfltApp) - I found no references to the deleted
    applications in MaxDemo but this is an example of a table with a
    reference to the deleted applications where the column value
    should just be cleared rather than deleting the record.
    
    MaxLicAppAccess and MaxLicProdApps - Both of these have records
    referring to the deleted applications as well as related records
    that could contain references if the License Usage Monitor
    application (LicTrack) is being used. Failure to delete these
    records could result in error when the UserAnalyzer Cron Task
    runs.
    
    SigOptFlag - There are 36 records in MaxDemo for the deleted
    applications.
    
    
    All the records referencing the deleted applications in MaxDemo
    should have been deleted (or updated) but many of the other
    tables identified by the above SQL could also include references
    to the delete applications in a client's environment and should
    have been deleted (or updated) as well.
    
    And there should also be a simple process for users to clean up
    custom applications that are no longer needed without having to
    figure out all the affected tables every time. Ideally, there
    should be an Action in Application Designer to delete an
    application and all relevant references.
    
    Action Taken:
    Issue not replicated in house.
    
    Found simmilar behavior when, instead of Downloading and
    installing the 7.6.1.2-TIV-MAMMT-FP0002 as per instructions at:
    https://www.ibm.com/support/pages/ibm-maximo-asset-management-f
    eature-pack-7612,
    Users simply launched IBM Installation Manager and clicked on
    "Update" to upgrade Maximo 710 and Scheduler and Service
    provider all from there to MAM 7612 and Scheduler 768.
    
    Client confirmed that He downloaded the FixPack and installed it
    as indicated in the instructions above. He had the V7680_86.dbc
    script file have ended up in his directory
    structure to be executed by UpdateDB.
    
    The problem here is that the "<drop_app" command in .dbc files
    is not checking all objects that could have references to the
    application being dropped.
    
    Either the UpdateDB class files that handle that command should
    be modified or freeform SQL needs to be included whenever an app
    is being dropped to check all the other objects.
    
    STEPS TO REPRODUCE:
    N/A
    
    
    
    REPORTED IN ENVIRONMENT:
    IBM Maximo Asset Management Scheduler 7.6.8.0
    IBM Maximo Asset Management 7.6.1.2
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * MAXIMO                                                       *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * drop_app dbc script is not deleting records from CTRLGROUP   *
    * and SIGOPTFLAG.                                              *
    ****************************************************************
    

Problem conclusion

  • The fix for this APAR is contained in the following maintenance
    package: Manage 9.0
    

Temporary fix

Comments

APAR Information

  • APAR number

    IJ33268

  • Reported component name

    MAXIMO ASST MGM

  • Reported component ID

    5724R46AM

  • Reported release

    761

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-06-16

  • Closed date

    2023-12-03

  • Last modified date

    2023-12-03

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    MAXIMO ASST MGM

  • Fixed component ID

    5724R46AM

Applicable component levels

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSLKT6","label":"Maximo Asset Management"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"761","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Document Information

Modified date:
04 December 2023