APAR status
Closed as program error.
Error description
PROBLEM DESCRIPTION: Running DBC scripts is making the COLUMNNAME of a field be updated to match the ATTRIBUTENAME, and this causes application to not refresh. You run a dbc script to make some descriptions on 3 attributes longer. One of the attributes has an attributename a little different than the actual column name. As a consequence, when you run the dbc and subsequently restarted the system you notice your custom application would not refresh the list tab anymore, and it is related to the column name being different than the attribute name which is permitted in standard Maximo. AS PER DEVELOPMENT REQUEST : The following can be added to the jira work item: In MaximoMboModel.setupModAttrDef(AttributeInformation modifiedAttrDef, String attributeName, StatementElement mod, AttributeStorage oldDef), need to add modifiedAttrDef.set("columnname", mod.isSet("columnname") ? mod.getStringObject("columnname") : oldDef.getString("columnname")); Problem is that COLUMNNAME is not set with all the other MAXATTRIBUTE attributes in modifiedAttrDef. As a result, if (newDef.getBoolean("persistent") && (! newDef.isSet("columnname"))) evaluates to true and newDef.set("columnname", newDef.getString("attributename")) is erroneously executed. Error in the logs: [ERROR] [MXServer] [] BMXAA6713E - The MBO fetch operation failed in the mboset with the SQL error code 0. The record could not be retrieved from the database. See the log file for more details about the error. com.microsoft.sqlserver.jdbc.SQLServerException: The column name <<ATTRIBUTE_NAME>> is not valid. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriv erError(SQLServerException.java:234) at com.microsoft.sqlserver.jdbc.SQLServerResultSet.findColumn(S QLServerResultSet.java:686) at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getObject(SQ LServerResultSet.java:2451) at psdi.mbo.MboSet.getNextRecordData(MboSet.java:3469) at psdi.mbo.MboSet.fetchMbosActual(MboSet.java:2950) at psdi.mbo.MboSet.fetchMbos(MboSet.java:2907) at psdi.mbo.MboSet.getMbo(MboSet.java:2123) at psdi.mbo.MboSet.getMboData(MboSet.java:994) at psdi.mbo.MboSet.getMboSetData(MboSet.java:885) at psdi.webclient.system.beans.DataBean.getMboSetData(DataBean. java:4715) at psdi.webclient.system.beans.DataBean.fetchTableData(DataBean .java:4628) at psdi.webclient.system.beans.DataBean.fetchTableData(DataBean .java:4618) at psdi.webclient.system.beans.ResultsBean.fetchTableData(Resul tsBean.java:755) at psdi.webclient.controls.Table.reset(Table.java:1667) STEPS TO REPLICATE : 0. Stop Maximo service. 1. Then in a SQL tool, find attributes the Maximo 7.6.1.2 environment where the attributename is different than columnname, by running this: SELECT OBJECTNAME,ATTRIBUTENAME,COLUMNNAME FROM MAXATTRIBUTE WHERE ATTRIBUTENAME <> COLUMNNAME 2. Create a DBC script to update any non-relevant information, such as REMARKS for any of the attributes returned from the SQL above Here is my sample script (to update the remarks for LABTRANS.FINISHTIMEENTERED attribute: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE script SYSTEM "script.dtd"> <script author="Jeff " scriptname="IAFMS-33438UpdateRemarks"> <description>BOB TEST DESCRIPTION</description> <statements> <modify_attribute attribute="FINISHTIMEENTERED" object="LABTRANS" remarks="BOB TEST BOB TEST BOB TEST BOB TEST" /> </statements> </script> 3. Run the DBC script by using the runscriptfile.bat utility in ...maximo\tools\maximo\internal folder. C:\IBM\SMP\maximo\tools\maximo\internal>runscriptfile.bat -cbob -ftest RunScript complete: Successful 4. Again, in a SQL tool, find attributes the Maximo 7.6.1.2 environment where the attributename is different than columnname, by running this: SELECT OBJECTNAME,ATTRIBUTENAME,COLUMNNAME FROM MAXATTRIBUTE WHERE ATTRIBUTENAME <> COLUMNNAME You will notice that the attribute you used is NOT listed anymore. 5. Go to Database Configuration app and search for the object.attribute you used and check the ATTRIBUTENAME and COLUMNNAME fields. They wil be the same and this is NOT correct, because we just wanted to update the REMARKS information for a field, and not other attributes like COLUMNNAME. CURRENT ERRONEOUS RESULT: Running DBC scripts is making the COLUMNNAME of a field be updated to match the ATTRIBUTENAME EXPECTED RESULT: Running DBC scripts does NOT make the COLUMNNAME of a field be updated to match the ATTRIBUTENAME ENVIRONMENT VERSION: App Server IBM WebSphere Application Server 9.0.5.11 Tivoli's process automation engine 7.6.1.2-IFIX20220216-1819 Build 20200715-0100 DB Build V7612-284 HFDB Build HF7612-76 IBM Maximo Asset Management Work Centers 7.6.0.4 Build 20200715-0100 DB Build V7604-119 HFDB Build HF7680-10 TRM RulesManager SE 5.8.0.3.2 Build 3496 DB Build V5832-01 IBM Tpae Integration Framework 7.6.1.2-MIF_7612_IFIX.20211006-1305 Build 20200715-1444 DB Build V7612-11 HFDB Build HF7612-02 IBM Maximo Asset Management 7.6.1.2 Build 20200715-0100 DB Build V7611-01 IoT Connection Utility 7.6.0.3 Build 20200701-1409 DB Build V7603-32 Server OS Windows Server 2016 10.0 Server DB Microsoft SQL Server 15.0 (15.00.4223) (c) Copyright IBM Corp. 2020
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: * * Maximo users * **************************************************************** * PROBLEM DESCRIPTION: * * Running DBC scripts updates MAXATTRIBUTE.COLUMNNAME to match * * MAXATTRIBUTE.ATTRIBUTENAME, and this causes application to * * not refresh. * **************************************************************** STEPS TO REPLICATE : 0. Stop Maximo service. 1. In a SQL tool, find an attribute Maximo 7.6.1.2 environment where the attributename is different than columnname, by running this: SELECT OBJECTNAME,ATTRIBUTENAME,COLUMNNAME FROM MAXATTRIBUTE WHERE ATTRIBUTENAME != COLUMNNAME 2. Create a DBC script to update any non-relevant information, such as REMARKS for any of the attributes returned from the SQL above. 3. Run the DBC script. 4. Again, in a SQL tool, find attributes the Maximo 7.6.1.2 environment where the attributename is different than columnname, by running this: SELECT OBJECTNAME,ATTRIBUTENAME,COLUMNNAME FROM MAXATTRIBUTE WHERE ATTRIBUTENAME != COLUMNNAME. The attribute in your dbc script will not be in the results. ATTRIBUTENAME and COLUMNNAME are now the same. This is NOT correct, because we just wanted to update MAXATTRIBUTE.REMARKS for the field. MAXATTRIBUTE.COLUMNNAME should not have been modified. After restarting the system, the List tab of our custom application containing the attribute that was updated in the dbc script would not refresh. The console showed the following: [ERROR] [MXServer] [] BMXAA6713E - The MBO fetch operation failed in the mboset with the SQL error code 0. The record could not be retrieved from the database. See the log file for more details about the error. com.microsoft.sqlserver.jdbc.SQLServerException: The column name FBMS_DEFERRED_MAINT is not valid. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverEr ror(SQLServerException.java:234) at com.microsoft.sqlserver.jdbc.SQLServerResultSet.findColumn(SQLSe rverResultSet.java:686) at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getObject(SQLSer verResultSet.java:2451) at psdi.mbo.MboSet.getNextRecordData(MboSet.java:3469) at psdi.mbo.MboSet.fetchMbosActual(MboSet.java:2950) at psdi.mbo.MboSet.fetchMbos(MboSet.java:2907) at psdi.mbo.MboSet.getMbo(MboSet.java:2123) at psdi.mbo.MboSet.getMboData(MboSet.java:994) at psdi.mbo.MboSet.getMboSetData(MboSet.java:885) at psdi.webclient.system.beans.DataBean.getMboSetData(DataBean.java :4715) at psdi.webclient.system.beans.DataBean.fetchTableData(DataBean.jav a:4628) at psdi.webclient.system.beans.DataBean.fetchTableData(DataBean.jav a:4618) at psdi.webclient.system.beans.ResultsBean.fetchTableData(ResultsBe an.java:755) at psdi.webclient.controls.Table.reset(Table.java:1667) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Problem conclusion
The fix for this APAR will be contained in a future release.
Temporary fix
Comments
APAR Information
APAR number
IJ40483
Reported component name
SYSTEM CONFIG
Reported component ID
5724R46S1
Reported release
761
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2022-06-07
Closed date
2022-09-19
Last modified date
2022-09-19
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
SYSTEM CONFIG
Fixed component ID
5724R46S1
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:
19 September 2022