Thursday, February 5, 2015

Oracle SOA : Get instance details for composites using SOA management api's

Below is the code to get instance details for composites and by applying filters you can retrieve at composite level and sensor level.


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.facade.SensorData;
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 compFilter = new CompositeInstanceFilter();
//compFilter.setCompositeDN(compositeDN);
Calendar cal = Calendar.getInstance();
//Getting instances triggered within 5 min
cal.add(Calendar.MINUTE,-5);
System.out.println(cal.getTime());
compFilter.setMinCreationDate(cal.getTime());
// compFilter.setMaxCreationDate(cal.getTime());
List<CompositeInstance> compositeInstances =
loc.getCompositeInstances(compFilter);
System.out.println("Number of instances :"+compositeInstances.size());
Iterator compositeInstanceIterator = compositeInstances.iterator();
while (compositeInstanceIterator.hasNext()) {
CompositeInstance instance =
(CompositeInstance)compositeInstanceIterator.next();
System.out.println(instance.getCompositeDN());
System.out.println(instance.getStatus());
System.out.println(instance.getTitle());
List<SensorData> data = instance.getSensorData();
int count=0;
while (count < data.size()) {
SensorData sensorData = data.get(count);
System.out.println("Sensor name : " +
sensorData.getSensor().getName());
System.out.println("Sensor data : " +
sensorData.getData().toString());
count++;
}
}
} 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 :


No comments:

Post a Comment