CWTKE0062W: Virtual Member Manager (VMM) entity… i Human Task Manager (HTM)


Podczas wdrażania bardzo prostego procesu biznesowego z wyłącznie pojedynczym zadaniem (ang. human task) WPS 6.2.0.1 zgłosił komunikat:

[8/25/09 19:13:38:851 CEST] 000000c4 HTM           W   CWTKE0062W: Virtual Member Manager (VMM) entity ‘uid=jacek,o=defaultWIMFileBasedRealm’ has no attribute with the name ‘isAbsent’ and type ‘String’.

Owe pojedyncze zadanie zawierało przypisanie roli Potential Owners do użytkownika jacek, którego zdefiniowałem w domyślnym repozytorium użytkowników (ustawienie Federated repositories w Security > Secure administration, applications, and infrastructure).

Samo wyszukanie frazy “CWTKE0062W” w Google wskazało na CWTKE0062W: Virtual Member Manager (VMM) entity ”{0}” has no attribute with the name ”{1}” and type ”{2}”, ale już “no attribute with the name ‘isAbsent’ and type ‘String'” było bardziej owocne. Pojawiła się dokumentacja PDF do Business Process Choreographera (głównej funkcjonalności WPSa) oraz odnośnik do dokumentu Troubleshooting people assignment, a tam wyjaśnienie przy “StaffPlugin.VMMEntityAttributeNotFound”:

If no substitution attributes (isAbsent or substitutes) are found when reading, an attempt is made to initialize the attributes. If no substitution attributes are found when writing or updating, an exception is generated.

Wnioskuję, że po prostu brakuje atrybutu (zgodnie z komunikatem :)), który wskazuje HTM (=Human Task Manager’owi) na możliwość podstawienia/zastępstwa w razie nieobecności danego delikwenta. W My Substitutes w BPC Explorer’ze jest możliwość ustawienia tego parametru (pozycja w menu poziomym), ale bez wsparcia przez repozytorium użytkowników i to na niewiele się zdaje. Bardziej produkcyjne rozwiązanie to po prostu zdefiniowanie parametru w LDAP, np. Microsoft Active Directry i temat z głowy…teoretycznie, bo nie testowałem. Jak już się dorobię środowiska WPS/WBSF z LDAP pewnie poinformuję o wynikach dochodzenia.

p.s. Na koniec pisania tego wpisu pojawił mi się ciekawy błąd w WBSFie, kiedy wchodzę w Users and Groups > Manage Users lub Manage Groups w jego konsoli administracyjnej:
[8/25/09 21:22:53:889 CEST] 000018e9 SecurityServi W SecurityServiceImpl isWindowModeAllowed can't find userRoles information
[8/25/09 21:22:53:889 CEST] 000018e9 ElementRender W com.ibm.isclite.runtime.aggregation.tags.ElementRenderTag doStarttag() user does not have permissions for view mode
[8/25/09 21:23:04:836 CEST] 000018ea SecurityServi E SecurityServiceImpl getPortletsForMode security.xml does not exist
[8/25/09 21:23:04:836 CEST] 000018ea NavigationAct E NavigationAction getSecurityPtltModeInfo calls security service
com.ibm.isclite.datastore.DatastoreException: SecurityServiceImpl.getPortletsForMode>>ibm-topology-security.xml does not exists
at com.ibm.isclite.service.security.SecurityServiceImpl.getPortletsForMode(SecurityServiceImpl.java:152)
at com.ibm.isclite.runtime.action.NavigationAction.getSecurityPtltModeInfo(NavigationAction.java:385)
at com.ibm.isclite.runtime.action.NavigationAction.execute(NavigationAction.java:323)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1486)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:510)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1149)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1084)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145)
at com.ibm.ws.console.core.servlet.WSCUrlFilter.setUpCommandAssistence(WSCUrlFilter.java:792)
at com.ibm.ws.console.core.servlet.WSCUrlFilter.continueStoringTaskState(WSCUrlFilter.java:363)
at com.ibm.ws.console.core.servlet.WSCUrlFilter.doFilter(WSCUrlFilter.java:229)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:832)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:679)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:587)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:748)
at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1466)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:119)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1818)
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:136)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:196)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:792)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473)
Caused by: org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1$DiagnosticWrappedException: org.eclipse.emf.ecore.xmi.ClassNotFoundException: Class 'ibm-portal-security' not found. (file:/E:/WID62/WID62/pf/WBSFabric/config/cells/wbsfCell/applications/isclite.ear/deployments/isclite/WIMPortlet.war/WEB-INF/ibm-portal-security.xml, 5, 289)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.handleDemandLoadException(ResourceSetImpl.java:307)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:268)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:390)
at com.ibm.isclite.service.security.SecurityServiceImpl.getPortletsForMode(SecurityServiceImpl.java:147)
... 37 more
Caused by: org.eclipse.emf.ecore.xmi.ClassNotFoundException: Class 'ibm-portal-security' not found. (file:/E:/WID62/WID62/pf/WBSFabric/config/cells/wbsfCell/applications/isclite.ear/deployments/isclite/WIMPortlet.war/WEB-INF/ibm-portal-security.xml, 5, 289)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.validateCreateObjectFromFactory(XMLHandler.java:1999)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObjectByType(XMLHandler.java:1176)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createTopObject(XMLHandler.java:1245)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.processElement(XMLHandler.java:883)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:866)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:633)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:179)
at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:179)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1094)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:900)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:249)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:264)
... 39 more

[8/25/09 21:23:04:836 CEST] 000018ea SecurityServi W SecurityServiceImpl isWindowModeAllowed can't find userRoles information
[8/25/09 21:23:04:836 CEST] 000018ea ElementRender W com.ibm.isclite.runtime.aggregation.tags.ElementRenderTag doStarttag() user does not have permissions for view mode

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s