Some times when you open an instance in EM console, you might not be able to view the audit trail.
The error might be as below
Unable to display Flowtrace due to exception while initializing object, please review logs for detailed information.
>> Exception occured while retrieving the Flowtrace XML for the Composite Instance; ECID: 41343d22bdb09a74:-2967886c:144cf30c70b:-8000-000000000296dd8a
>> java.lang.NullPointerException
at oracle.sysman.emai.model.sca.share.composite.FlowTraceModel.setFloatraceModelInfo(FlowTraceModel.java:185)
at oracle.sysman.emai.model.sca.share.composite.FlowTraceModel.initialize(FlowTraceModel.java:90)
at oracle.sysman.emai.model.sca.EMEntityModel._initializeEntityData(EMEntityModel.java:28)
at oracle.sysman.emai.model.sca.common.SCAEntityObject.initializeSCAData(SCAEntityObject.java:124)
at oracle.sysman.emai.model.sca.SCAObject.initializeData(SCAObject.java:74)
at oracle.sysman.core.model.util.ModelUtil$EMObjectResetter.initOrResetEMObject(ModelUtil.java:319)
at oracle.sysman.core.model.util.ModelUtil$EMObjectResetter.access$000(ModelUtil.java:280)
at oracle.sysman.core.model.util.ModelUtil.initializeMBEMObjects(ModelUtil.java:231)
at oracle.sysman.core.model.util.ModelUtil.initializeAllEMObjects(ModelUtil.java:128)
at oracle.sysman.core.model.util.ModelUtil.initializeAllEMObjects(ModelUtil.java:101)
at oracle.sysman.emSDK.adfext.ctlr.EMPagePhaseListener.doPrePrepareModel(EMPagePhaseListener.java:867)
at oracle.sysman.emSDK.adfext.ctlr.EMPagePhaseListener.beforePhase(EMPagePhaseListener.java:795)
at oracle.adfinternal.controller.lifecycle.ADFLifecycleImpl$PagePhaseListenerWrapper.beforePhase(ADFLifecycleImpl.java:558)
at oracle.adfinternal.controller.lifecycle.LifecycleImpl.internalDispatchBeforeEvent(LifecycleImpl.java:100)
at oracle.adfinternal.controller.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:191)
at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.startPageLifecycle(ADFPhaseListener.java:203)
at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$1.after(ADFPhaseListener.java:377)
at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.afterPhase(ADFPhaseListener.java:88)
at oracle.adfinternal.controller.faces.lifecycle.ADFLifecyclePhaseListener.afterPhase(ADFLifecyclePhaseListener.java:53)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:520)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:207)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.sysman.emSDK.license.LicenseFilter.doFilter(LicenseFilter.java:164)
I had to debug the issue, so i tried a new way.
1. Get all the components with id associated with the instance.
2. Now i had list of components with component instance id and i will get list of error messages
The error might be as below
Unable to display Flowtrace due to exception while initializing object, please review logs for detailed information.
>> Exception occured while retrieving the Flowtrace XML for the Composite Instance; ECID: 41343d22bdb09a74:-2967886c:144cf30c70b:-8000-000000000296dd8a
>> java.lang.NullPointerException
at oracle.sysman.emai.model.sca.share.composite.FlowTraceModel.setFloatraceModelInfo(FlowTraceModel.java:185)
at oracle.sysman.emai.model.sca.share.composite.FlowTraceModel.initialize(FlowTraceModel.java:90)
at oracle.sysman.emai.model.sca.EMEntityModel._initializeEntityData(EMEntityModel.java:28)
at oracle.sysman.emai.model.sca.common.SCAEntityObject.initializeSCAData(SCAEntityObject.java:124)
at oracle.sysman.emai.model.sca.SCAObject.initializeData(SCAObject.java:74)
at oracle.sysman.core.model.util.ModelUtil$EMObjectResetter.initOrResetEMObject(ModelUtil.java:319)
at oracle.sysman.core.model.util.ModelUtil$EMObjectResetter.access$000(ModelUtil.java:280)
at oracle.sysman.core.model.util.ModelUtil.initializeMBEMObjects(ModelUtil.java:231)
at oracle.sysman.core.model.util.ModelUtil.initializeAllEMObjects(ModelUtil.java:128)
at oracle.sysman.core.model.util.ModelUtil.initializeAllEMObjects(ModelUtil.java:101)
at oracle.sysman.emSDK.adfext.ctlr.EMPagePhaseListener.doPrePrepareModel(EMPagePhaseListener.java:867)
at oracle.sysman.emSDK.adfext.ctlr.EMPagePhaseListener.beforePhase(EMPagePhaseListener.java:795)
at oracle.adfinternal.controller.lifecycle.ADFLifecycleImpl$PagePhaseListenerWrapper.beforePhase(ADFLifecycleImpl.java:558)
at oracle.adfinternal.controller.lifecycle.LifecycleImpl.internalDispatchBeforeEvent(LifecycleImpl.java:100)
at oracle.adfinternal.controller.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:191)
at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.startPageLifecycle(ADFPhaseListener.java:203)
at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$1.after(ADFPhaseListener.java:377)
at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.afterPhase(ADFPhaseListener.java:88)
at oracle.adfinternal.controller.faces.lifecycle.ADFLifecyclePhaseListener.afterPhase(ADFLifecyclePhaseListener.java:53)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:520)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:207)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.sysman.emSDK.license.LicenseFilter.doFilter(LicenseFilter.java:164)
I had to debug the issue, so i tried a new way.
1. Get all the components with id associated with the instance.
2. Now i had list of components with component instance id and i will get list of error messages
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.raylabs.soa.management; | |
import java.util.ArrayList; | |
import java.util.Hashtable; | |
import java.util.Iterator; | |
import java.util.List; | |
import javax.naming.Context; | |
import oracle.soa.management.facade.ComponentInstance; | |
import oracle.soa.management.facade.CompositeInstance; | |
import oracle.soa.management.facade.Locator; | |
import oracle.soa.management.facade.LocatorFactory; | |
import oracle.soa.management.util.ComponentInstanceFilter; | |
import oracle.soa.management.util.CompositeInstanceFilter; | |
public class GetComponentsBasedOnCompositeId { | |
private static String id ="1450155"; | |
public static void main(String[] args) { | |
Locator loc = null; | |
List exclusions = new ArrayList(); | |
try { | |
loc = LocatorFactory.createLocator(getConnectionDetails()); | |
CompositeInstanceFilter compositeInFilter = | |
new CompositeInstanceFilter(); | |
compositeInFilter.setId(id); | |
compositeInFilter.setOrderBy(CompositeInstanceFilter.ORDER_BY_CREATION_DATE_ASC); | |
List<CompositeInstance> compositeInstances = | |
loc.getCompositeInstances(compositeInFilter); | |
System.out.println(compositeInstances.size()); | |
Iterator compositeInstancesIterator = | |
compositeInstances.iterator(); | |
while (compositeInstancesIterator.hasNext()) { | |
CompositeInstance compositeInstance = | |
(CompositeInstance)compositeInstancesIterator.next(); | |
if (!exclusions.contains(compositeInstance.getCompositeDN().getCompositeName())) { | |
System.out.println("Parent composite name :" + | |
compositeInstance.getCompositeDN().getCompositeName()); | |
System.out.println("Parent composite instance id :" + | |
compositeInstance.getId()); | |
System.out.println("Title :" + | |
compositeInstance.getTitle()); | |
System.out.println("Created date :" + | |
compositeInstance.getCreationDate()); | |
if (compositeInstance.getState() == | |
CompositeInstance.STATE_COMPLETED_SUCCESSFULLY) { | |
System.out.println("State : COMPLETED_SUCCESSFULLY"); | |
} else if (compositeInstance.getState() == | |
CompositeInstance.STATE_FAULTED) { | |
System.out.println("State : STATE_FAULTED"); | |
} else if (compositeInstance.getState() == | |
CompositeInstance.STATE_RUNNING) { | |
System.out.println("State : STATE_RUNNING"); | |
} else if (compositeInstance.getState() == | |
CompositeInstance.STATE_STALE) { | |
System.out.println("State : STATE_STALE"); | |
} else if (compositeInstance.getState() == | |
CompositeInstance.STATE_RECOVERY_REQUIRED) { | |
System.out.println("State : STATE_RECOVERY_REQUIRED"); | |
} else if (compositeInstance.getState() == | |
CompositeInstance.STATE_SUSPENDED) { | |
System.out.println("State : STATE_SUSPENDED"); | |
} else if (compositeInstance.getState() == | |
CompositeInstance.STATE_TERMINATED_BY_USER) { | |
System.out.println("State : STATE_SUSPENDED"); | |
} else if (compositeInstance.getState() == | |
CompositeInstance.STATE_UNKNOWN) { | |
System.out.println("State : STATE_UNKNOWN"); | |
} else { | |
System.out.println("State : Undefined"); | |
} | |
ComponentInstanceFilter filter1 = | |
new ComponentInstanceFilter(); | |
filter1.setECID(compositeInstance.getECID()); | |
filter1.setOrderBy(ComponentInstanceFilter.ORDER_BY_CREATION_DATE_ASC); | |
List<ComponentInstance> childComponentInstances = | |
compositeInstance.getChildComponentInstances(filter1); | |
Iterator<ComponentInstance> iterator = | |
childComponentInstances.iterator(); | |
while (iterator.hasNext()) { | |
ComponentInstance componentInstance = iterator.next(); | |
System.out.println("Child Component name :" + | |
componentInstance.getComponentName()); | |
System.out.println("Child Component instance id :" + | |
componentInstance.getId()); | |
System.out.println("State :" + | |
componentInstance.getNormalizedStateAsString()); | |
System.out.println("Payload :" + | |
componentInstance.getAuditTrail()); | |
System.out.println("<-------------------------------------------->"); | |
} | |
System.out.println("--------------------------------------------"); | |
} | |
} | |
} catch (Exception e) { | |
e.printStackTrace(); | |
} finally { | |
loc.close(); | |
} | |
} | |
private static Hashtable getConnectionDetails() { | |
Hashtable jndiProps = new Hashtable(); | |
jndiProps.put(Context.PROVIDER_URL, | |
"t3://xyz.com:1234/soa-infra"); | |
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY, | |
"weblogic.jndi.WLInitialContextFactory"); | |
jndiProps.put(Context.SECURITY_PRINCIPAL, "xxxx"); | |
jndiProps.put(Context.SECURITY_CREDENTIALS, "yyyyyy"); | |
jndiProps.put("dedicated.connection", "true"); | |
return jndiProps; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.raylabs.soa; | |
import java.util.Hashtable; | |
import java.util.Iterator; | |
import java.util.List; | |
import javax.naming.Context; | |
import oracle.soa.management.facade.Fault; | |
import oracle.soa.management.facade.Locator; | |
import oracle.soa.management.facade.LocatorFactory; | |
import oracle.soa.management.util.FaultFilter; | |
public class GetFaultsForCompositeId { | |
public GetFaultsForCompositeId() { | |
super(); | |
} | |
public static void main(String[] args) { | |
String compositeId="1440095"; | |
Locator locator = null; | |
try{ | |
locator = LocatorFactory.createLocator(getConnectionForLocator()); | |
FaultFilter faultFilter = new FaultFilter(); | |
faultFilter.setCompositeInstanceId(compositeId); | |
System.out.println("---------------------------------------------------------------"); | |
faultFilter.setOrderBy(FaultFilter.ORDER_BY_CREATION_DATE_DESC); | |
// faultFilter.setECID("d96112c160649698:231b4e4c:14b863930d4:-8000-00000000001b14a5"); | |
//faultFilter.setRecoverable(true); | |
faultFilter.setPageSize(10); | |
List<Fault> list = locator.getFaults(faultFilter); | |
Iterator<Fault> faults = list.iterator(); | |
while (faults.hasNext()) { | |
Fault fault = faults.next(); | |
System.out.println(fault.getCompositeInstanceId()); | |
System.out.println(fault.getCreationDate()); | |
System.out.println(fault.getComponentName()); | |
System.out.println(fault.getMessage()); | |
System.out.println("---------------------------------------------------------------"); | |
} | |
System.out.println("---------------------------------------------------------------"); | |
} catch (Exception e) { | |
System.out.println("Unknown Exception "); | |
e.printStackTrace(); | |
} finally { | |
try { | |
locator.close(); | |
System.out.println("Locator closed successfully"); | |
} catch (Exception e) { | |
System.out.println("Exception while closing Locator handle"); | |
e.printStackTrace(); | |
} | |
} | |
} | |
public static Hashtable getConnectionForLocator() { | |
Hashtable jndiProps = new Hashtable(); | |
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY, | |
"weblogic.jndi.WLInitialContextFactory"); | |
jndiProps.put(Context.PROVIDER_URL, | |
"t3://xyz.com:12354/soa-infra"); | |
jndiProps.put(Context.SECURITY_PRINCIPAL, "xxx"); | |
jndiProps.put(Context.SECURITY_CREDENTIALS, "yyyy"); | |
jndiProps.put("dedicated.connection", "true"); | |
return jndiProps; | |
} | |
} |
Now i know which component has error.
Whether its BPEL, BPMN, MEDIATOR, HUMAN TASK etc I will goto the respective service engines in EM console, put the component instance id and will be able to view the faults with audit trail of that particular component.
No comments:
Post a Comment