Thursday, May 12, 2016

requesterName not going to lastUpdateUser in MDM Tables

our requesterName from xmls was not going to lastUpdateUser in MDM tables. Instead the username from our xmlheader i.e. mdmadmin was going. 



Fixed by changing /IBM/DWLCommonServices/Security/TrustedClientMode/enabled to true  

Sources Refereed  http://www-01.ibm.com/support/docview.wss?uid=swg21639776 :



Snippet :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:port="http://composites.mdm.mycompany.com/XYZComposites/port" xmlns:sch="http://www.ibm.com/mdm/schema">
   <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
      <wsse:Security xmlns:wsse="someURL">
         <wsse:UsernameToken wsu:Id="UsernameToken-123123" xmlns:wsu="someURL">
            <wsse:Username>mdmadmin</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">xxyyzz</wsse:Password>
         </wsse:UsernameToken>
      </wsse:Security>
   </soapenv:Header>
   <soapenv:Body>
      <port:MaintainBusinessXYZCmposite>
         <sch:RequestControl>
            <sch:requestID>999999</sch:requestID>
            <sch:DWLControl>
               <sch:requesterName>myRequesterName</sch:requesterName>
                 .
                 .
                 .

Tuesday, May 10, 2016

Lambda expression.in Java 8

Lambda expression.in Java 8
 In below example we use the usual way of creating lambda expression using arrow syntax and also we used a brand new double colon (::) operator that Java 8 has to convert a normal method into lambda expression.

//Old way:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
for(Integer n: list) {
    System.out.println(n);
}

//New way:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
list.forEach(n -> System.out.println(n));


//or we can use :: double colon operator in Java 8
list.forEach(System.out::println);


by: Suvojeet Pal

Monday, April 25, 2016

PME merge was not created

[4/25/16 17:46:32:388 CDT] 0000010f NativeLog     E com.ibm.mdm.mds.log.LogAdapter error MPI_MemNextSect: integrity error (missing mpi_memhead?), getType='ASMEMBER', tabName='mpi_membktd', expected 14010480, found 14010423.



We deleted records from eme_rechead but we I belive somehow some records were missed in eme_recbktd
So, the tables were not in synch i.e. extra records were present in eme_recbktd which were not associated with eme_rechead and hence the error was coming when any Suspect party was getting loaded and PME merge was not created.

Exception Handling in Behavior Extension

Exception Handling in Behavior Extension


DWLStatus status = params.getExtensionSetStatus();


status = addError(theControl, TCRMErrorCode.UPDATE_RECORD_ERROR, ErrorReasonCode.Error_Reason_Code, e.getMessage());


params.setExtensionSetStatus(status);


by Ritwik Sen

Monday, April 18, 2016

Below code snippet can be used for throwing error/exception from External rule to Business Proxy..

TCRMExceptionUtils
.throwTCRMException(
new Exception(),
new TCRMInsertException(),
new DWLStatus(),
9L,
WCCICompositesComponentID.ORG_CALCULATION_UTIL_COMPONENT,
TCRMErrorCode.INSERT_RECORD_ERROR,
WCCICompositesErrorReasonCode.ORGCALCULATIONUTIL_NO_RECORD_IN_DUNS_TABLE,
control, this.errHandler);






toXML overloaded Method



XxxBObj.toXML("TCRM", "MDMDomains.xsd", 0,null, false);
//Use cautiously. It does not work well with metadata map. It modifies original object and assigns null to values to one's with empty value.





https://www.ibm.com/developerworks/community/forums/html/topic?id=f6f893b3-8a9a-444a-a5f2-fd7b52f0e452

MDMDomains.xsd | MDMCommon.xsd | Parser Error

Problem(Abstract)

When any extension XSD refers to types in the MDMDomains.xsd, all transactions that use the MDMCommon.xsd will fail with the error "Parser DWLTransaction failed. The format of the message is not correct or an application error occurred".

Symptom

All transactions that use the MDMCommon.xsd fail and return the error "Parser DWLTransaction failed. The format of the message is not correct or an application error occurred." The Throwable attribute in the response always says "Cannot resolve the name 'XXXXXX' to a(n) 'element declaration' component." regardless what request is about. An example of such response looks like below:
<DWLError>
<ComponentType>106</ComponentType>
<ErrorMessage>Parser DWLTransaction failed. The format of the message is not correct or an application error occurred.</ErrorMessage>
<ErrorType>READERR</ErrorType>
<LanguageCode>100</LanguageCode>
<ReasonCode>4928</ReasonCode>
<Severity>0</Severity>
<Throwable>com.dwl.base.requestHandler.exception.RequestParserException: src-resolve: Cannot resolve the name &apos;ProductBObj&apos; to a(n) &apos;element declaration&apos; component.</Throwable>
</DWLError>

Cause

If the request XML uses the MDMDomains.xsd then the problem won't occur. Batch processor will also fail in such case since it runs transactions internally to maintain its state and these transactions use MDMCommon.xsd.

The entity resolver of the request xml parser collects and combines all the extension XSDs (i.e. xsd-fragements) with no regard for which XSD the request XML uses. When the request XML uses MDMCommon.xsd, however, there is an extension XSD that refers to types in the MDMDomain.xsd, the combined XSD becomes invalid, which causes the problem.

Resolving the problem

If the client runs transactions directly, then changing the request xml to use MDMDomains.xsd instead of MDMCommon.xsd should work.

If the client runs transactions through batch processor, then both the request xmls in the batch input file or request xml templates and the batch processor internal transaction templates (all files in <batch_home>/templates/* folders) need to be changed to use MDMDomains.xsd instead of MDMCommon.xsd.
Good one for troubleshooting IBM Infosphere MDM

http://www-01.ibm.com/support/docview.wss?uid=swg27045725


Error initializing Configurations.[Exception_Deployment_NotFindInstance:] CDKCR2005E:The instance was not found. Instance: MDMQA01

The issue is with APPINSTANCE table. Due to DB copy from Prod the QA app instance values got changed to Prod. Due to this the configurations were not getting loaded properly.


System.out.log

[4/4/16 14:01:27:038 CDT] 0000007c SystemOut     O WSWS3185I: Info: Parsing XML file:  /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/qalchbap01Cell01/applications/MDM-old-web-services-E001.ear/deployments/MDM-old-web-services-E001/PartyWSEJB.jar/META-INF/wsdl/PartyBusinessService.wsdl
[4/4/16 14:01:27:541 CDT] 0000008c ConfigManager I   MDM Server Application found: com.ibm.mdm.hub.server-E001 Version: 11.0.0
[4/4/16 14:01:27:542 CDT] 0000008c ConfigManager I   Initializing MDM Server Configurations...
[4/4/16 14:01:27:614 CDT] 0000008c Deployment    I   [Error_Deployment_NotFindInstance:] CDKCR2004E:The instance was not found. Instance: MDMQA01
[4/4/16 14:01:27:615 CDT] 0000008c ConfigManager E   Error initializing Configurations.[Exception_Deployment_NotFindInstance:] CDKCR2005E:The instance was not found. Instance: MDMQA01
[4/4/16 14:01:27:616 CDT] 0000008c ConfigManager E   com.dwl.management.config.repository.ElementNotFoundException: [Exception_Deployment_NotFindInstance:] CDKCR2005E:The instance was not found. Instance: MDMQA01
        at com.dwl.management.config.repository.Deployment.getInstance(Deployment.java:125)
        at com.dwl.management.config.client.Configuration.<init>(Configuration.java:365)
        at com.dwl.management.config.client.Configuration.getConfiguration(Configuration.java:390)
        at com.ibm.mdm.server.config.ConfigManagerImpl.init(ConfigManagerImpl.java:74)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
        at java.lang.reflect.Method.invoke(Method.java:611)
        at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:238)
        at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:955)
        at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:708)
        at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:820)
        at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:783)
        at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:71)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314)
        at java.util.concurrent.FutureTask.run(FutureTask.java:149)
        at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:79)
        at org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:62)
        at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:98)
        at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:245)
        at org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:230)
        at org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:145)
        at org.apache.aries.blueprint.container.ServiceRecipe.createRecipe(ServiceRecipe.java:435)
        at org.apache.aries.blueprint.container.ServiceRecipe.createExplicitDependencies(ServiceRecipe.java:424)
        at org.apache.aries.blueprint.container.ServiceRecipe.register(ServiceRecipe.java:161)
        at org.apache.aries.blueprint.container.BlueprintContainerImpl.registerServices(BlueprintContainerImpl.java:675)
        at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:339)
        at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:242)
        at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:450)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314)
        at java.util.concurrent.FutureTask.run(FutureTask.java:149)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:109)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:217)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:908)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:931)
        at java.lang.Thread.run(Thread.java:773)









--------------------------------------------------------------------------------------------------------------------------------------------------------

Error while running txn :-

[4/4/16 14:29:58:255 CDT] 00000101 Configuration I   ConfigManager finished initalization...
[4/4/16 14:29:58:256 CDT] 00000101 DWLServiceCon E   java.lang.NullPointerException
        at com.dwl.base.DWLControl.retrieveConfigContext(DWLControl.java:1492)
        at com.dwl.base.requestHandler.DWLServiceControllerBase.handleTail(DWLServiceControllerBase.java:383)
        at com.dwl.base.requestHandler.DWLServiceControllerBase.processRequest(DWLServiceControllerBase.java:276)
        at com.dwl.base.requestHandler.beans.EJSRemote0SLDWLServiceController_2c54996d.processRequest(EJSRemote0SLDWLServiceController_2c54996d.java)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
        at java.lang.reflect.Method.invoke(Method.java:611)
        at com.ibm.CORBA.iiop.ClientDelegate$3.run(ClientDelegate.java:1262)
        at java.security.AccessController.doPrivileged(AccessController.java:280)
        at com.ibm.CORBA.iiop.ClientDelegate.invoke(ClientDelegate.java:1259)
        at com.sun.proxy.$Proxy103.processRequest(Unknown Source)
        at com.dwl.base.requestHandler.beans._MDMServiceControllerRemote_Stub.processRequest(_MDMServiceControllerRemote_Stub.java:1)
        at com.ibm.mdm.webservice.provider.MDMDefaultProvider.invoke(MDMDefaultProvider.java:116)
        at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
        at java.lang.reflect.Method.invoke(Method.java:611)
        at org.apache.axis2.jaxws.server.dispatcher.JavaDispatcher.invokeTargetOperation(JavaDispatcher.java:113)
        at org.apache.axis2.jaxws.server.dispatcher.ProviderDispatcher.invoke(ProviderDispatcher.java:138)
        at org.apache.axis2.jaxws.server.EndpointController.invoke(EndpointController.java:111)
        at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:161)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:208)
        at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
        at com.ibm.ws.websvcs.transport.http.WASAxis2Servlet.doPost(WASAxis2Servlet.java:1570)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1225)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:775)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:457)
        at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032)
        at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:908)
        at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
        at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283)
        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:1815)

[4/4/16 14:29:58:257 CDT] 00000101 DWLServiceCon I   ###########################
[4/4/16 14:29:58:257 CDT] 00000101 DWLServiceCon I   [Info_DWLServiceControllerBase_ProcessRequestTotalTime:] DWLServiceController : processRequest : total time in milliseconds 8
[4/4/16 14:29:58:257 CDT] 00000101 DWLServiceCon I   ###########################
[4/4/16 14:29:58:260 CDT] 00000101 AxisEngine    E org.apache.axis2.engine.AxisEngine receive An error was detected during JAXWS processing
                                 org.apache.axis2.AxisFault: An error was detected during JAXWS processing
        at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:208)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:208)
        at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
        at com.ibm.ws.websvcs.transport.http.WASAxis2Servlet.doPost(WASAxis2Servlet.java:1570)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1225)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:775)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:457)
        at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032)
        at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:908)
        at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
        at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283)
        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:1815)

[4/4/16 14:30:01:322 CDT] 000001d7 LTPAServerObj E   SECJ0369E: Authentication failed when using LTPA. The exception is com.ibm.websphere.security.auth.AuthenticationFailedException: [LDAP: error code 49 - NDS error: failed authentication (-669)].
[4/4/16 14:30:01:330 CDT] 000001d7 Configuration I   Waiting for ConfigManager to finish initalization...
[4/4/16 14:30:01:331 CDT] 000001d7 Configuration I   ConfigManager finished initalization...
[4/4/16 14:30:01:331 CDT] 000001d7 Configuration I   Waiting for ConfigManager to finish initalization...
[4/4/16 14:30:01:331 CDT] 000001d7 Configuration I   ConfigManager finished initalization...
[4/4/16 14:30:01:332 CDT] 000001d7 DWLExceptionU E   java.lang.NullPointerException
        at com.dwl.base.DWLControl.retrieveConfigContext(DWLControl.java:1492)
        at com.dwl.base.requestHandler.DWLServiceControllerBase.initTxnContext(DWLServiceControllerBase.java:109)
        at com.dwl.base.requestHandler.DWLServiceControllerBase.processRequest(DWLServiceControllerBase.java:173)
        at com.dwl.base.requestHandler.beans.EJSRemote0SLDWLServiceController_2c54996d.processRequest(EJSRemote0SLDWLServiceController_2c54996d.java)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
        at java.lang.reflect.Method.invoke(Method.java:611)
        at com.ibm.CORBA.iiop.ClientDelegate$3.run(ClientDelegate.java:1262)
        at java.security.AccessController.doPrivileged(AccessController.java:280)
        at com.ibm.CORBA.iiop.ClientDelegate.invoke(ClientDelegate.java:1259)
        at com.sun.proxy.$Proxy103.processRequest(Unknown Source)
        at com.dwl.base.requestHandler.beans._MDMServiceControllerRemote_Stub.processRequest(_MDMServiceControllerRemote_Stub.java:1)
        at com.ibm.mdm.webservice.provider.MDMDefaultProvider.invoke(MDMDefaultProvider.java:116)
        at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
        at java.lang.reflect.Method.invoke(Method.java:611)
        at org.apache.axis2.jaxws.server.dispatcher.JavaDispatcher.invokeTargetOperation(JavaDispatcher.java:113)
        at org.apache.axis2.jaxws.server.dispatcher.ProviderDispatcher.invoke(ProviderDispatcher.java:138)
        at org.apache.axis2.jaxws.server.EndpointController.invoke(EndpointController.java:111)
        at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:161)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:208)
        at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
        at com.ibm.ws.websvcs.transport.http.WASAxis2Servlet.doPost(WASAxis2Servlet.java:1570)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1225)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:775)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:457)
        at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032)
        at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:908)
        at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
        at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283)
        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:1815)

[4/4/16 14:30:01:332 CDT] 000001d7 DWLServiceCon E  
[4/4/16 14:30:01:333 CDT] 000001d7 DWLExceptionU E   java.lang.NullPointerException
        at com.dwl.base.DWLControl.retrieveConfigContext(DWLControl.java:1492)
        at com.dwl.base.requestHandler.DWLServiceControllerBase.initTxnContext(DWLServiceControllerBase.java:109)
        at com.dwl.base.requestHandler.DWLServiceControllerBase.processRequest(DWLServiceControllerBase.java:173)
        at com.dwl.base.requestHandler.beans.EJSRemote0SLDWLServiceController_2c54996d.processRequest(EJSRemote0SLDWLServiceController_2c54996d.java)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
        at java.lang.reflect.Method.invoke(Method.java:611)
        at com.ibm.CORBA.iiop.ClientDelegate$3.run(ClientDelegate.java:1262)
        at java.security.AccessController.doPrivileged(AccessController.java:280)
        at com.ibm.CORBA.iiop.ClientDelegate.invoke(ClientDelegate.java:1259)
        at com.sun.proxy.$Proxy103.processRequest(Unknown Source)
        at com.dwl.base.requestHandler.beans._MDMServiceControllerRemote_Stub.processRequest(_MDMServiceControllerRemote_Stub.java:1)
        at com.ibm.mdm.webservice.provider.MDMDefaultProvider.invoke(MDMDefaultProvider.java:116)
        at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
        at java.lang.reflect.Method.invoke(Method.java:611)
        at org.apache.axis2.jaxws.server.dispatcher.JavaDispatcher.invokeTargetOperation(JavaDispatcher.java:113)
        at org.apache.axis2.jaxws.server.dispatcher.ProviderDispatcher.invoke(ProviderDispatcher.java:138)
        at org.apache.axis2.jaxws.server.EndpointController.invoke(EndpointController.java:111)
        at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:161)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:208)
        at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
        at com.ibm.ws.websvcs.transport.http.WASAxis2Servlet.doPost(WASAxis2Servlet.java:1570)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1225)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:775)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:457)
        at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032)
        at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:908)
        at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
        at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283)
        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:1815)





By Ritwik Sen
00000113 BusinessExcep E   CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method "processRequest" on bean "BeanId(com.ibm.mdm.hub.server-E001..11.0.0..com.ibm.mdm.server.dwlcommonservices.ejb..11.0.0.FP03IF001_20150330-1406.war#com.ibm.mdm.server.dwlcommonservices.ejb..11.0.0.FP03IF001_20150330-1406.war#DWLServiceController, null)". Exception data: java.lang.NoClassDefFoundError: com/myCompany/mdm/extensions/component/XAddressBObjExt


Resolution: Most probably entry is missing in MANIFEST.MF of the project which is trying to import a particular package com/myCompany/mdm/extensions/component

Friday, March 4, 2016

java.lang.RuntimeException: com.dwl.base.exception.LastUpdateDateException: class com.dwl.tcrm.coreParty.entityObject.EObjOrgName





Above issue I was getting while I was testing using SOAP UI for a scenario where in a custom  survivorship rule was getting called.

Resolution - Only I did was turned off the server. Turned off the RAD. Started it back. Started Server Back and fixed.


Thursday, February 11, 2016

MDM v 11.4 some Issues and resolutions

1.       After successful addition of a CBA and its linking to EBA from Server view, sometimes an error is observed which is misleading.
<ErrorMessage>DWLParser Exception. An error has occurred while parsing the xml.</ErrorMessage>

Finding & Resolution:- Though it gives an impression of CBA successfully associated with EBA from server view. But when checked from admin console it is found CBA doesn’t get linked with EBA for some valid error of project. Try to associate the CBA to EBA from admin console. If any error message is encountered fix in project and then re-try associating CBA to EBA again. Once EBA gets associated successfully, the above error should go.


2.       While trying to run any transaction from a migrated Project from MDM 9.0.2 to 11.4 an error may be  encountered which misleads
<Error Message>Transaction not defined in the properties file.</ErrorMessage>

Finding & Resolution:- The services entries which are present in blueprint.xml which are to be exposed of a Hub Module project has to be present under Export-Package of CompositeBundle.MF of CBA.
It might happen sometimes while migrating a project that this entries are not present in CompositeBundle.MF and this error may be encountered. Add the appropriate service entries by clicking on the add button of Exported-Services in OverView tab of CompositeBunle.MF of CBA to fix this.

Further read on this:

3.       When Projects are migrated from MDM 9.0.2 to 11.4 code has to be regenerated from module.mdmxmi to generate osgi related artefacts required for OSGI Migration of MDM.
This may lead to overridden of some of components customised by us.

Finding & Resolution:- Make sure @generated-Not annotation is appropriately placed at all the places wherever customised code is present. After code generation manually check the Customised code remains good. Rest all code will be appropriately upgraded to new Standards(eg: Generics Collections- Type safe are added) which shall work fine.


4.       Crashing of Server is reported with immediate power shut down of Development machines owing to antivirus definitions upgrade.
Machines were kept ON with Build, Deployment tasked in line. Once the Machine is restarted and Server is restarted again, transaction fails to run. The EBA on admin console shows red cross symbol against it.
Alternative Fix1:- Remove all the CBA and there associations. Uninstalled the EBA. Re add the EBA again from admin console. Add all CBA and associate them with EBA. It should work now.

Alternative Fix2:- Stop the server. Go to Server installed directory from Windows directory. Delete the content of temp, wstemp, translog folders. Restart the Server. It should work now.

Sunday, February 7, 2016

CWSAJ0078E:org.apache.aries.application.management.ResolverException.( Error while deploying CBA)

I was getting an exception while doing manage extension for my cba in worbench.
Reason behind that was:

When deploying multiple applications to an application server
at the same time, CWSAL0015 errors may be reported:
CWSAL0015E:
Cannot resolve EBA file. Exception:
org.apache.aries.application.management.ResolverException: The
system cannot provision the EBA <application> because the
following problems in the dependency chain were detected
If the applications are redeployed individually, with no other
application deployment activity on the server, the problem does
not occur.

If deploying OSGi applications at exactly the same time, it
is possible for an internal data structure to be overwritten
by multiple threads. This causes OSGi dependency resolution to

fail, as OSGi bundles are not registered correctly.


If more than one cbas are trying to deploy on operational server this error will occur.
You will have to check the Manifest.MF and Compositebundle.MF for overwritten package entries, and redeploy cba again.

Tuesday, February 2, 2016

Customization of PME OUT-OF-BOX algoithm in IBM MDM 11.4


Guys I was doing customization of PME out-of-box algorithm for one of the business requirement.
Here are some interesting points I have noticed while development:

1. I have created configuration project (suppose MDMpmeconfig)

2. for every configuration project you can find .imm file in the workspace where you can see all the configuration details(algorithms n alll).

3. In .imm file under Algorithm tag you will have to add your new attribute(Here I have added OrgLegalAddress attribute which will refer out of box entity partyAddress).

4.You will have to include required dependencies for this new attribute with out of box entities.

5. Insert entry in the CRITICALDATAELEMENT table for this new attribute and of course in the code tables as well(here CDADDRESSUSAGETP etc.)

6. Most Important step you will have to make an entry in the converter classes(which I have missed and got some error.)
here is high level path where you can find this converter class(you can't find it in workspace):

E:\Program Files\IBM\MDM_1\Samples\Rules\com.ibm.mdm.server.extrules.default\src\com\ibm\mdm\eme\party\converter

7. Again you will have to make an entry in the TCRM_extension.properties/TCRM.properties
(can be downloded from admin console under Application->Assets)



I hope this will be useful to you for customization.

Thanks.