IBM Support

IV92801: TBSM LOGS DO NOT CLEARLY SHOW WHEN A TEMPLATE'S OUTPUT EXPRESSION IS REFERENCING MISSING RULES.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Product: IBM Tivoli Business Service Manager
    Release: 61.1 FP4
    Severity: 2
    
    Problem Description: IBM Tivoli Business Service Manager 6.1.1
    
    TBSM logs do not clearly show when a template's output
    expression is referencing missing rules.
    
    Template has Boolean Expression
    
    
    WWCRule.Value = 3) OR (CBS2CBS.Value = Marginal) OR
    (CBS2CBS.Value =
    Bad) OR (SCR2CBS.Value = Marginal) OR (SCR2CBS.Value = Bad) OR
    (BBS2CBS.Value = Marginal) OR (BBS2CBS.Value = Bad)
    
    but some of the rules are missing.
    
    The issue was with a Boolean Expression set in template 95. See
    in blue
    below. As you can see the expression references 3 rules:
    WWCRule,
    CBS2CBS, SCR2CBS and BBS2CBS. The latter 3 of these are missing
    from the
     template. They were probably there before when the expression
    was
    created but removed later.
    
    The logging shows the code successfully reading details for
    rule WWCRule
    . But when it comes to CBS2CBS,we get nulls. See below.
    
    
    [1/25/17 17:38:04:977 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.BooleanExpressionVarGettableAdapter
    getVar
    EXIT ^tag1^o^{5,}
    [1/25/17 17:38:04:977 CET] 00000d8a beans         2
    com.micromuse.sla.beans.InternalGetMetricFunctionBean
    getBooleanExpression ENTER^^o^{{Marginal,}}
    [1/25/17 17:38:04:977 CET] 00000d8a beans         2
    com.micromuse.sla.beans.InternalGetMetricFunctionBean
    getBooleanExpression EXIT ^tag2^S^(WWCRule.Value = 3) OR
    (CBS2CBS.Value
    = Marginal) OR (CBS2CBS.Value = Bad) OR (SCR2CBS.Value =
    Marginal) OR
    (SCR2CBS.Value = Bad) OR (BBS2CBS.Value = Marginal) OR
    (BBS2CBS.Value =
    Bad)
    [1/25/17 17:38:04:977 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.BooleanExpressionVarGettableAdapter
    getVar
    ENTER^WWCRule^n^
    [1/25/17 17:38:04:977 CET] 00000d8a beans         2
    com.micromuse.sla.beans.ServiceTypeBean getStateNamesIterator
    ENTER^^n^
    [1/25/17 17:38:04:978 CET] 00000d8a beans         2
    com.micromuse.sla.beans.ServiceTypeBean getStateNamesIterator
    EXIT
    ^^o^{java.util.TreeMap$UnboundedValueIterator@56315631,}
    [1/25/17 17:38:04:978 CET] 00000d8a beans         2
    com.micromuse.sla.beans.ServiceTypeBean
    getSingleIfFunctionForStateName
    ENTER^^o^{{WWCRule,}}
    [1/25/17 17:38:04:978 CET] 00000d8a beans         2
    com.micromuse.sla.beans.ServiceTypeBean getIsRawAttribute
    ENTER^WWCRule^n^
    [1/25/17 17:38:04:978 CET] 00000d8a beans         2
    com.micromuse.sla.beans.ServiceTypeBean getIsRawAttribute EXIT
    ^tag1^B^true
    [1/25/17 17:38:04:978 CET] 00000d8a beans         2
    com.micromuse.sla.beans.ServiceTypeBean getIDForStateName
    ENTER^^o^{{WWCRule,}}
    [1/25/17 17:38:04:978 CET] 00000d8a beans         2
    com.micromuse.sla.beans.ServiceTypeBean getIDForStateName EXIT
    ^tag3^i^21
    [1/25/17 17:38:04:978 CET] 00000d8a beans         2
    com.micromuse.sla.beans.ServiceTypeBean getRawAttributeStore
    ENTER^^n^
    [1/25/17 17:38:04:978 CET] 00000d8a beans         2
    com.micromuse.sla.beans.ServiceTypeBean getRawAttributeStore
    EXIT
    ^^o^{com.micromuse.sla.beans.RawAttributeStore@34b434b4,}
    [1/25/17 17:38:04:978 CET] 00000d8a beans         2
    com.micromuse.sla.beans.ServiceTypeBean
    getSingleIfFunctionForStateName
    EXIT
    ^tag3^o^{RawAttributeBean::[|super=FunctionBean::[|super=com.mic
    romuse.s
    la.beans.RawAttributeBean@7c8a7c8a,disabled=false,functionID=0,f
    unctionN
    ame=95:_:21:_:Raw,functionType=null,inputEventName=null,isBottom
    LevelFun
    ction=false,outputEventName=null,outputType=1,outputsToParentTyp
    e=false,
    parameter=null,parents=[],instancePropagationParents=[],ruleID=-
    1,sameSt
    ateThreshold=null,serviceTypeFunctionSetID=0,serviceTypeID=0,sta
    teName=n
    ull,stateNameID=0,stateTransitionActions=null,thresholds=null,ti
    meBounda
    ryString=null,timeIncarnationPeriod=null,__VERBOSE__,|],attribut
    eName=nu
    ll,beanContext=com.micromuse.sla.beans.GlobalBeanContext@5b865b8
    6,dataFe
    ed=sla_service_state,discriminatorNames=[Default
    Class(0)],discriminatorValues=[0],filterID=75,instanceFieldExpre
    ssions=[
    LONGSERVICE],neverEventMappingFields=[],nonEventMappingFields=[]
    ,stateNa
    meID=21,tagID=95,thresholdFieldToComparator={},thresholdSets=[co
    m.microm
    use.sla.beans.RawAttributeThresholdSet@7ed57ed5],__VERBOSE__,|],
    }
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.AbstractStateModelNodeImpl
    getNodeAttributeStateVGFromName ENTER^^o^{{95:_:21:_:Raw,}}
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.AbstractStateModelNodeImpl
    getAttributeStateForAttribute ENTER^^o^{{95:_:21:_:Raw,true,3,}}
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.AbstractStateModelNodeImpl
    getAttributeStateForAttribute EXIT
    ^tag1^o^{com.micromuse.sla.statemodel.StateModelNodeAttributeSta
    te@144a1
    44a,}
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.AbstractStateModelNodeImpl
    getNodeAttributeStateVGFromName EXIT
    ^^o^{com.micromuse.sla.statemodel.StateModelNodeAttributeState@1
    44a144a,
    }
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.BooleanExpressionVarGettableAdapter
    getVar
    EXIT
    ^tag6^o^{com.micromuse.sla.statemodel.StateModelNodeAttributeSta
    te@144a1
    44a,}
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.StateModelNodeAttributeState getVar
    ENTER^Value^n^
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.StateModelNodeAttributeState
    getMaxValue
    ENTER^^n^
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.StateModelNodeAttributeState
    getMaxValue
    NOTE ^println-verbose^S^StateModelNodeAttributeState: key is
    95:_:21:_:Raw
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.StateModelNodeAttributeState
    getMaxValue
    NOTE ^println-verbose^S^StateModelNodeAttributeState:
    finalMaxValue is
    1.0
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.StateModelNodeAttributeState
    getMaxValue
    EXIT ^^o^{1.0 ({95:_:21:_:Raw}),}
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.StateModelNodeAttributeState
    getVar EXIT
    ^^o^{1.0,}
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.BooleanExpressionVarGettableAdapter
    getVar
    ENTER^CBS2CBS^n^
    [1/25/17 17:38:04:978 CET] 00000d8a beans         2
    com.micromuse.sla.beans.ServiceTypeBean getStateNamesIterator
    ENTER^^n^
    [1/25/17 17:38:04:978 CET] 00000d8a beans         2
    com.micromuse.sla.beans.ServiceTypeBean getStateNamesIterator
    EXIT
    ^^o^{java.util.TreeMap$UnboundedValueIterator@731d731d,}
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.AbstractStateModelNodeImpl
    getNodeAttributeStateVGFromName ENTER^^o^{{null,}}
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.AbstractStateModelNodeImpl
    getAttributeStateForAttribute ENTER^^o^{{null,true,3,}}
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    2
    com.micromuse.sla.statemodel.AbstractStateModelNodeImpl
    isTextRule
    ENTER^^o^{{null,}}
    [1/25/17 17:38:04:978 CET] 00000d8a statemodel    1
    com.micromuse.sla.statemodel.AbstractStateModelNodeImpl
    isTextRule
    ENTER^^T^null
    [1/25/17 17:38:04:979 CET] 00000d8a statemodel    1
    com.micromuse.sla.statemodel.AbstractStateModelNodeImpl
    isTextRule NOTE
    ^println-catch^S^null
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * Ministerstwo Finansow                                        *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * TBSM LOGS DO NOT CLEARLY SHOW WHEN A TEMPLATE'S OUTPUT       *
    *          EXPRESSION IS REFERENCING MISSING RULES.            *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Add warning log message:                                     *
    *                                                              *
    * in                                                           *
    * com.micromuse.sla.statemodel.BooleanExpressionVarGettableAda *
    * pter.getVar(String)                                          *
    *       String realAttribName =                                *
    * convertNickNameToRealName(varName, serviceType);             *
    *       if (realAttribName == null) {                          *
    *         if (LOG.isEnabled(Level.FINE))                       *
    *             LOG.trace(TraceType.NOTE, Level.FINE, CLASS,     *
    * "getVar", "println", "Warning: The attribute name " +        *
    * varName + " cannot be found in db and statemodel             *
    * representation. It may have deleted.");                      *
    *       }                                                      *
    ****************************************************************
    None
    

Problem conclusion

  • TBSM updates.
    
    The Fix for this APAR is contained in the TIV-BSM 6.2.0 Release.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV92801

  • Reported component name

    TIV BUS SERV MG

  • Reported component ID

    5724C5100

  • Reported release

    611

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-01-26

  • Closed date

    2017-12-07

  • Last modified date

    2018-09-06

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

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

Modules/Macros

  • UNKNOWN
    

Fix information

  • Fixed component name

    TIV BUS SERV MG

  • Fixed component ID

    5724C5100

Applicable component levels

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSSPFK","label":"Tivoli Business Service Manager"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
27 April 2020