Thursday, February 5, 2015

Oracle SOA : Get composite instance state using SOA Management api's

The below code is used to get composite instances state

package com.raylabs.soa.management;
import java.util.Calendar;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import javax.naming.Context;
import oracle.soa.management.facade.CompositeInstance;
import oracle.soa.management.facade.Locator;
import oracle.soa.management.facade.LocatorFactory;
import oracle.soa.management.util.CompositeInstanceFilter;
public class Class1 {
public Class1() {
super();
}
public static void main(String[] args) {
Locator loc = null;
try {
loc = LocatorFactory.createLocator(getConnectionDetails());
CompositeInstanceFilter compositeInFilter =
new CompositeInstanceFilter();
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MINUTE, -5);
compositeInFilter.setMinCreationDate(cal.getTime());
//compositeInFilter.setState(2);
List<CompositeInstance> compositeInstances =
loc.getCompositeInstances(compositeInFilter);
System.out.println(compositeInstances.size());
Iterator compositeInstancesIterator =
compositeInstances.iterator();
while (compositeInstancesIterator.hasNext()) {
CompositeInstance compositeInstance =
(CompositeInstance)compositeInstancesIterator.next();
System.out.println(compositeInstance.getECID());
System.out.println(compositeInstance.getCompositeDN().getCompositeName());
System.out.println(compositeInstance.getId());
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");
}
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://xxx:1234/soa-infra");
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
jndiProps.put(Context.SECURITY_PRINCIPAL, "xxx");
jndiProps.put(Context.SECURITY_CREDENTIALS, "xxxxx");
jndiProps.put("dedicated.connection", "true");
return jndiProps;
}
}


Libraries




Note : If the state comes as STATE_UNKNOWN then enable the instance capture option in EM console 



No comments:

Post a Comment