Thursday, February 12, 2015

Oracle SOA : Get number of instances using SOA Facade api's


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.Composite;
import oracle.soa.management.facade.CompositeInstance;
import oracle.soa.management.facade.Locator;
import oracle.soa.management.facade.LocatorFactory;
import oracle.soa.management.util.CompositeFilter;
import oracle.soa.management.util.CompositeInstanceFilter;
public class GetNumberOfInstances {
public GetNumberOfInstances() {
super();
}
public static void main(String[] args) {
Locator loc = null;
try {
loc = LocatorFactory.createLocator(getConnectionDetails());
CompositeFilter compositeFilter = new CompositeFilter();
compositeFilter.setPartition("default");
//compositeFilter.setRevision("1.0");
List<Composite> composites = new ArrayList<Composite>();
composites = loc.getComposites(compositeFilter);
System.out.println("Number of Composites deployed :" +
composites.size());
Iterator compositesIterator = composites.iterator();
System.out.println("-----------------------------------------------------");
while (compositesIterator.hasNext()) {
Composite composite = (Composite)compositesIterator.next();
System.out.println("Composite Name :" +
composite.getCompositeDN().getCompositeName());
System.out.println("Composite Revsion :" +
composite.getCompositeDN().getRevision());
System.out.println("Total number of Instances :" +
composite.getInstanceCount());
CompositeInstanceFilter filter = new CompositeInstanceFilter();
//Running
filter.setState(CompositeInstance.STATE_RUNNING);
List<CompositeInstance> instancesRunning =
composite.getInstances(filter);
System.out.println("Total number of Running Instance :" +
instancesRunning.size());
filter.setState(CompositeInstance.STATE_COMPLETED_SUCCESSFULLY);
List<CompositeInstance> instancesCompleted =
composite.getInstances(filter);
System.out.println("Total number of Completed Instance :" +
instancesCompleted.size());
filter.setState(CompositeInstance.STATE_FAULTED);
List<CompositeInstance> instancesFaulted =
composite.getInstances(filter);
System.out.println("Total number of Faulted Instance :" +
instancesFaulted.size());
filter.setState(CompositeInstance.STATE_STALE);
List<CompositeInstance> instancesStale =
composite.getInstances(filter);
System.out.println("Total number of Stale Instance :" +
instancesStale.size());
filter.setState(CompositeInstance.STATE_SUSPENDED);
List<CompositeInstance> instancesSuspended =
composite.getInstances(filter);
System.out.println("Total number of Suspended Instance :" +
instancesSuspended.size());
filter.setState(CompositeInstance.STATE_UNKNOWN);
List<CompositeInstance> instancesUnknown =
composite.getInstances(filter);
System.out.println("Total number of Unknown state Instance :" +
instancesUnknown.size());
System.out.println("------------------------------------------");
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static Hashtable getConnectionDetails() {
Hashtable jndiProps = new Hashtable();
jndiProps.put(Context.PROVIDER_URL,
"t3://xxx:11234/soa-infra");
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
jndiProps.put(Context.SECURITY_PRINCIPAL, "xxx");
jndiProps.put(Context.SECURITY_CREDENTIALS, "xxxxxx");
jndiProps.put("dedicated.connection", "true");
return jndiProps;
}
}





Libraries


1 comment:

  1. If you only need the composite instances count use below code..
    CompositeInstanceFilter compositeInstanceFilter = new CompositeInstanceFilter(); compositeInstanceFilter.setCompositeDN("New_Projects/CompensationHandler!1.0");
    compositeInstanceFilter.setState(CompositeInstance.STATE_COMPLETED_SUCCESSFULLY);
    int count = soaCompositeLocator.getNumberOfCompositeInstances(compositeInstanceFilter);

    ReplyDelete