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