Technote (troubleshooting)
Problem(Abstract)
An error message is produced in the netcool.log by running an EventReader configured with a blank Filter, the associated Policy still runs as desired.
Symptom
The error message is found in the netcool.log file only and is of the format:
WARN [EventFilter] EventFilter.getMatchingPoliciesForEvent: Could not parse the Expression:
java.lang.RuntimeException:
com.micromuse.common.parser.internal.core.ParseException: Encountered ";" at line 1, column 10.
Was expecting one of:
<INTEGER_LITERAL> ...
<FLOAT_LITERAL> ...
<DATETIME_LITERAL> ...
<DATE_LITERAL> ...
"-" ...
"~" ...
"!" ...
"(" ...
"{" ...
"@" ...
"true" ...
"false" ...
<IDENTIFIER> ...
"\"" ...
"\'" ...
at com.micromuse.response.common.parser.IPLPolicy.getNode(IPLPolicy.java:106)
at com.micromuse.response.common.parser.IPLPolicy.execute(IPLPolicy.java:54)
at com.micromuse.response.common.parser.PolicyUtils.parse(PolicyUtils.java:96)
at com.micromuse.response.common.parser.PolicyUtils.parse(PolicyUtils.java:114)
at com.micromuse.response.common.parser.PolicyUtils.parseExpression(PolicyUtils.java:197)
at com.micromuse.response.common.parser.PolicyUtils.testExpression(PolicyUtils.java:350)
at com.micromuse.response.common.parser.PolicyUtils.testExpression(PolicyUtils.java:344)
at com.micromuse.response.event.EventFilter.getMatchingPoliciesForEvent(EventFilter.java:271)
at com.micromuse.response.service.AbstractEventReader.run(AbstractEventReader.java:524)
at java.lang.Thread.run(Thread.java:736)
Caused by: com.micromuse.common.parser.internal.core.ParseException:
Encountered ";" at line 1, column 10.
Was expecting one of:
<INTEGER_LITERAL> ...
<FLOAT_LITERAL> ...
<DATETIME_LITERAL> ...
<DATE_LITERAL> ...
"-" ...
"~" ...
"!" ...
"(" ...
"{" ...
"@" ...
"true" ...
"false" ...
<IDENTIFIER> ...
"\"" ...
"\'" ...
at java.lang.Throwable.<init>(Throwable.java:67)
at com.micromuse.common.parser.internal.core.ParseException.<init>(ParseException.java:32)
at com.micromuse.common.parser.internal.core.PolicyParser.generateParseException(PolicyParser.java:2831)
at com.micromuse.common.parser.internal.core.PolicyParser.jj_consume_token(PolicyParser.java:2746)
at com.micromuse.common.parser.internal.core.PolicyParser.UnaryExpression(PolicyParser.java:1391)
at com.micromuse.common.parser.internal.core.PolicyParser.InExpression(PolicyParser.java:1215)
at com.micromuse.common.parser.internal.core.PolicyParser.RegularExpression(PolicyParser.java:1139)
at com.micromuse.common.parser.internal.core.PolicyParser.MultiplicativeExpression(PolicyParser.java:1035)
at com.micromuse.common.parser.internal.core.PolicyParser.AdditiveExpression(PolicyParser.java:959)
at com.micromuse.common.parser.internal.core.PolicyParser.RelationalExpression(PolicyParser.java:827)
at com.micromuse.common.parser.internal.core.PolicyParser.EqualityExpression(PolicyParser.java:725)
at com.micromuse.common.parser.internal.core.PolicyParser.AndExpression(PolicyParser.java:685)
at com.micromuse.common.parser.internal.core.PolicyParser.ExclusiveOrExpression(PolicyParser.java:645)
at com.micromuse.common.parser.internal.core.PolicyParser.InclusiveOrExpression(PolicyParser.java:605)
at com.micromuse.common.parser.internal.core.PolicyParser.ConditionalAndExpression(PolicyParser.java:553)
at com.micromuse.common.parser.internal.core.PolicyParser.ConditionalOrExpression(PolicyParser.java:512)
at com.micromuse.common.parser.internal.core.PolicyParser.Expression(PolicyParser.java:476)
at com.micromuse.common.parser.internal.core.PolicyParser.Assignment(PolicyParser.java:488)
at com.micromuse.common.parser.internal.core.PolicyParser.StatementExpression(PolicyParser.java:2376)
at com.micromuse.common.parser.internal.core.PolicyParser.Statement(PolicyParser.java:2263)
at com.micromuse.common.parser.internal.core.PolicyParser.CompilationUnit(PolicyParser.java:113)
at com.micromuse.response.common.parser.IPLPolicy.getNode(IPLPolicy.java:99)
... 9 more
Cause
This has been identified as a product defect under APAR IV35827
Resolving the problem
The error is seen in the netcool.log file, but not in the EventReader or PolicyLogger log files. Also, since it is only of "WARN" level it does not appear in the netcool-errors.log file. Obviously it is a syntax checker being invoked prior to the process being launched and this can't cope with a blank value preceding the delimiter used in the list of Filter values.
There is currently no solution for this issue, but this is being worked upon under APAR IV35827.
I must take this opportunity to advise against the use of a blank Filter as this would lead to every event in the ObjectServer being processed repeatedly by the associated Policy upon insertion to the ObjectServer, DeDuplication and even Impact update. I would strongly urge to use of a flag field to mark an event as processed and/or its state or way-point within processing. Link to follow to TechNote on use of ImpactFlag.
Related information
Rate this page:
Copyright and trademark information
IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.