Topic
  • 4 replies
  • Latest Post - ‏2013-08-22T06:47:14Z by TY8
TY8
TY8
7 Posts

Pinned topic Life cycle rule error CTGIMU556E

‏2013-08-19T10:09:49Z |

Hi all,

I am using ISIM 6.0.

I understand that the Life cycle rule search filter is based on attributes, only the attributes associated with the schema of the entity or entity type are accepted.

For my Lifecycle rule for suspension of AD account, I am using
Entity Type: Account
Entity: Window AD Account
Search attributes: eraccountstatus and startdate

where startdate is an inetorgperson attribute added as an optional attribute of objectClass: erADaccount for the search filter.
This assignment is done via TDS.

The right search filter is : (& (eraccountstatus=0)(startdate>${system.date})). But it gives me a CTGIMV828E error: Lifecycle rule search filter is invalid. Please make sure the filter is valid or a CTGIMU556E error

trace.log:

<Trace Level="MIN">
 <Time Millis="1376893010596"> 2013.08.19 14:16:50.596+08:00</Time>
 <Server Format="IP">server1</Server>
 <ProductId>CTGIM</ProductId>
 <Component>com.ibm.itim.ui</Component>
 <ProductInstance>server1</ProductInstance>
 <LogText><![CDATA[CTGIMU556E An error has occurred. If the problem persists, contact your system administrator.]]></LogText>
 <Source FileName="com.ibm.itim.ui.controller.ITIMControlServlet" Method="doGet"/>
 <Thread>WebContainer : 5</Thread>
 <Exception><![CDATA[java.lang.NullPointerException
    at com.ibm.itim.dataservices.ldap.filter.parser.LdapFilterASTParser.createSystemExpression(LdapFilterASTParser.java:135)
    at com.ibm.itim.dataservices.ldap.filter.parser.LdapFilterASTParser.greaterorequal(LdapFilterASTParser.java:472)
    at com.ibm.itim.dataservices.ldap.filter.parser.LdapFilterASTParser.traverseTree(LdapFilterASTParser.java:193)
    at com.ibm.itim.dataservices.ldap.filter.parser.LdapFilterASTParser.equals(LdapFilterASTParser.java:415)
    at com.ibm.itim.dataservices.ldap.filter.parser.LdapFilterASTParser.traverseTree(LdapFilterASTParser.java:187)
    at com.ibm.itim.dataservices.ldap.filter.parser.LdapFilterASTParser.comma(LdapFilterASTParser.java:262)
    at com.ibm.itim.dataservices.ldap.filter.parser.LdapFilterASTParser.traverseTree(LdapFilterASTParser.java:163)
    at com.ibm.itim.dataservices.ldap.filter.parser.LdapFilterASTParser.equals(LdapFilterASTParser.java:415)
    at com.ibm.itim.dataservices.ldap.filter.parser.LdapFilterASTParser.traverseTree(LdapFilterASTParser.java:187)
    at com.ibm.itim.dataservices.ldap.filter.parser.LdapFilterASTParser.comma(LdapFilterASTParser.java:262)
    at com.ibm.itim.dataservices.ldap.filter.parser.LdapFilterASTParser.traverseTree(LdapFilterASTParser.java:163)
    at com.ibm.itim.dataservices.ldap.filter.parser.LdapFilterASTParser.and(LdapFilterASTParser.java:290)
    at com.ibm.itim.dataservices.ldap.filter.parser.LdapFilterASTParser.traverseTree(LdapFilterASTParser.java:169)
    at com.ibm.itim.dataservices.ldap.filter.LdapFilterInterpreter.<init>(LdapFilterInterpreter.java:101)
    at com.ibm.itim.dataservices.ldap.filter.LdapFilterInterpreter.isValid(LdapFilterInterpreter.java:160)
    at com.ibm.itim.ui.impl.LifecycleRuleImpl.validateFilter(LifecycleRuleImpl.java:368)
    at com.ibm.itim.ui.validator.LifecycleRuleFilterValidator.isValid(LifecycleRuleFilterValidator.java:80)
    at com.ibm.itim.ui.validator.ITIMValidator.validate(ITIMValidator.java:83)
    at com.ibm.psw.wcl.core.form.WTextArea$ETextAreaUpdateCallback.validate(Unknown Source)
    at com.ibm.psw.wcl.core.form.WForm.performInputValidation(Unknown Source)
    at com.ibm.psw.wcl.core.form.WForm.handleValidate(Unknown Source)
    at com.ibm.psw.wcl.components.notebook.WNotebookPage.validate(Unknown Source)
    at com.ibm.psw.wcl.components.notebook.WNotebook$ENotebookLayout.commandPerformed(Unknown Source)
    at com.ibm.psw.wcl.core.CommandHandler.handleCommand(Unknown Source)
    at com.ibm.psw.wcl.core.form.AWInputComponent$EInputComponentCommandListener.commandPerformed(Unknown Source)
    at com.ibm.psw.wcl.core.form.WForm.callInputCommandListeners(Unknown Source)
    at com.ibm.psw.wcl.core.form.WForm.handleCommand(Unknown Source)
    at com.ibm.psw.wcl.core.form.WForm$EFormCallback.handleTrigger(Unknown Source)
    at com.ibm.psw.wcl.core.trigger.Trigger.process(Unknown Source)
    at com.ibm.psw.wcl.core.trigger.TriggerManager.processTrigger(Unknown Source)
    at com.ibm.psw.wcl.core.trigger.TriggerManager.handleRequest(Unknown Source)
    at com.ibm.psw.wcl.core.WclFacade.handleRequest(Unknown Source)
    at com.ibm.itim.ui.controller.ITIMControlServlet.handleWithWCL(ITIMControlServlet.java:760)
    at com.ibm.itim.ui.controller.ITIMControlServlet.doGet(ITIMControlServlet.java:243)
    at com.ibm.itim.ui.controller.ITIMControlServlet.doPost(ITIMControlServlet.java:721)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1657)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1597)
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:131)
    at com.ibm.itim.ui.impl.customform.SubFormLegacyFilter.doFilter(SubFormLegacyFilter.java:125)
    at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
    at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:934)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
    at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:181)
    at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3944)
    at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276)
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:931)
    at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592)
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:276)
    at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
    at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
    at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
    at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
    at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
    at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
    at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
    at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
    at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1646)
]]></Exception>
</Trace>

 

However, with search filter: (eraccountstatus=0)(startdate>${system.date}). The search filter was accepted with no error displayed.

 

I tried the default search filter in IBM document : (&(erAccountStatus=0)(erPswdLastChanged<=${system.date - 90})) and it it gives me a CTGIMV828E erroror a CTGIMU556E error too.

Has anyone encounter this issue?

 

Updated on 2013-08-19T10:36:17Z at 2013-08-19T10:36:17Z by TY8
  • franzw
    franzw
    347 Posts
    ACCEPTED ANSWER

    Re: Life cycle rule error CTGIMU556E

    ‏2013-08-19T10:59:46Z  
    • TY8
    • ‏2013-08-19T10:45:53Z

    Hi Franz,

     

    Thanks for the advice on the attribute naming. Will be implementing it.

    I tried using the above filter and the sample filter from http://pic.dhe.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=%2Fcom.ibm.isim.doc_6.0%2Freference%2Fref%2Fref_ic_javext.htm

    (&(erAccountStatus=0)(erPswdLastChanged<=${system.date - 90}))

    But the error persist. I suspecting that it is because of the "&".

    My oversight - you cannot use ">" in a system expression - from the doc :

    System expressions consist of:

    • an attribute name
    • a relational operator (<= or >=)
    • a dollar sign ($) followed by a curly brace ({)
    • immediately followed by the system.date keywords
    • a plus or minus arithmetic operator (+/-) followed by a number in days
    • a right curly brace (}) to close the expression

    So it has to be :

    (& (eraccountstatus=0)(startdate>=${system.date + 0}))

    The documentation is here . http://pic.dhe.ibm.com/infocenter/tivihelp/v2r1/topic/com.ibm.isim.doc_6.0/configuring/ref/ref_ic_lifecycle_system_expressions.htm

    Sorry for the oversight.

    HTH

    Regards

    Franz Wolfhagen

  • franzw
    franzw
    347 Posts

    Re: Life cycle rule error CTGIMU556E

    ‏2013-08-19T10:34:45Z  

    Try this instead :

    (& (eraccountstatus=0)(startdate>${system.date + 0}))

    I know this is counter-intuitive but that is how it works...

    You should BTW not use a name like startdate when you extend the ldap - you should follow a naming scheme like that for accounts and persons.

    So if your account is name myCustAccount you should prefix all all your custom account attributes with something like rmycust1 e.g startdate would be mycuststartdate - and do not share this across to other accounts. The reasons lies in the way account definitions are replaced and you may end up in severe problems when trying to manage you profiles/entities....

    HTH

    Regards

    Franz Wolfhagen

  • TY8
    TY8
    7 Posts

    Re: Life cycle rule error CTGIMU556E

    ‏2013-08-19T10:45:53Z  
    • franzw
    • ‏2013-08-19T10:34:45Z

    Try this instead :

    (& (eraccountstatus=0)(startdate>${system.date + 0}))

    I know this is counter-intuitive but that is how it works...

    You should BTW not use a name like startdate when you extend the ldap - you should follow a naming scheme like that for accounts and persons.

    So if your account is name myCustAccount you should prefix all all your custom account attributes with something like rmycust1 e.g startdate would be mycuststartdate - and do not share this across to other accounts. The reasons lies in the way account definitions are replaced and you may end up in severe problems when trying to manage you profiles/entities....

    HTH

    Regards

    Franz Wolfhagen

    Hi Franz,

     

    Thanks for the advice on the attribute naming. Will be implementing it.

    I tried using the above filter and the sample filter from http://pic.dhe.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=%2Fcom.ibm.isim.doc_6.0%2Freference%2Fref%2Fref_ic_javext.htm

    (&(erAccountStatus=0)(erPswdLastChanged<=${system.date - 90}))

    But the error persist. I suspecting that it is because of the "&".

  • franzw
    franzw
    347 Posts

    Re: Life cycle rule error CTGIMU556E

    ‏2013-08-19T10:59:46Z  
    • TY8
    • ‏2013-08-19T10:45:53Z

    Hi Franz,

     

    Thanks for the advice on the attribute naming. Will be implementing it.

    I tried using the above filter and the sample filter from http://pic.dhe.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=%2Fcom.ibm.isim.doc_6.0%2Freference%2Fref%2Fref_ic_javext.htm

    (&(erAccountStatus=0)(erPswdLastChanged<=${system.date - 90}))

    But the error persist. I suspecting that it is because of the "&".

    My oversight - you cannot use ">" in a system expression - from the doc :

    System expressions consist of:

    • an attribute name
    • a relational operator (<= or >=)
    • a dollar sign ($) followed by a curly brace ({)
    • immediately followed by the system.date keywords
    • a plus or minus arithmetic operator (+/-) followed by a number in days
    • a right curly brace (}) to close the expression

    So it has to be :

    (& (eraccountstatus=0)(startdate>=${system.date + 0}))

    The documentation is here . http://pic.dhe.ibm.com/infocenter/tivihelp/v2r1/topic/com.ibm.isim.doc_6.0/configuring/ref/ref_ic_lifecycle_system_expressions.htm

    Sorry for the oversight.

    HTH

    Regards

    Franz Wolfhagen

  • TY8
    TY8
    7 Posts

    Re: Life cycle rule error CTGIMU556E

    ‏2013-08-22T06:47:14Z  
    • franzw
    • ‏2013-08-19T10:59:46Z

    My oversight - you cannot use ">" in a system expression - from the doc :

    System expressions consist of:

    • an attribute name
    • a relational operator (<= or >=)
    • a dollar sign ($) followed by a curly brace ({)
    • immediately followed by the system.date keywords
    • a plus or minus arithmetic operator (+/-) followed by a number in days
    • a right curly brace (}) to close the expression

    So it has to be :

    (& (eraccountstatus=0)(startdate>=${system.date + 0}))

    The documentation is here . http://pic.dhe.ibm.com/infocenter/tivihelp/v2r1/topic/com.ibm.isim.doc_6.0/configuring/ref/ref_ic_lifecycle_system_expressions.htm

    Sorry for the oversight.

    HTH

    Regards

    Franz Wolfhagen

    Thanks! Franz.

     

    For reference, Just take note that the date format should be in generalized format.