Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package hu.abris.gamma.client.observers.webserviceparser;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.LinkedList;
- import java.util.List;
- import java.util.Map;
- import java.util.Properties;
- import java.util.Set;
- import javax.management.MBeanAttributeInfo;
- import javax.management.MBeanServerConnection;
- import javax.management.ObjectInstance;
- import javax.management.ObjectName;
- import javax.management.remote.JMXConnector;
- import javax.management.remote.JMXConnectorFactory;
- import javax.management.remote.JMXServiceURL;
- import org.apache.log4j.Logger;
- import org.w3c.dom.Element;
- import hu.abris.gamma.client.IObserver;
- import hu.abris.gamma.client.util.GammaUtils;
- public class WSParserWebLogic implements IWebserviceParser {
- private final Logger logger = Logger.getLogger(WSParserWebLogic.class);
- private Map<String, Object> env = null;
- private String username;
- private String password;
- private String[] credentials;
- private String host;
- private int port;
- private Properties prop;
- public static List<WebserviceInstance> listOfWebservices;
- boolean match = false;
- Integer a = 0;
- public WSParserWebLogic() {
- if (listOfWebservices == null) {
- logger.debug("parser peldanyositas");
- listOfWebservices = new ArrayList<WebserviceInstance>();
- }
- }
- public void configure(Element description) {
- Element webService_info = (Element) description.getElementsByTagName("WEBSERVICE").item(0);
- host = webService_info.getAttribute("host");
- port = Integer.parseInt(webService_info.getAttribute("port"));
- username = webService_info.getAttribute("username");
- String tempPassword = webService_info.getAttribute("password");
- if (!tempPassword.equals("") && tempPassword != null) {
- password = GammaUtils.decodePassword(tempPassword);
- }
- }
- public void observe(Element doc, LinkedList<Properties> elements,
- List<String> webServiceNames) {
- configure(doc);
- a++;
- logger.debug("szam : "+a);
- MBeanServerConnection conn = null;
- JMXConnector jmxc = null;
- credentials = new String[] { username, password };
- MBeanAttributeInfo[] attributes = null;
- try {
- // t3", host,
- // port,"/jndi/weblogic.management.mbeanservers.domainruntime
- JMXServiceURL url = new JMXServiceURL("t3", host, port,
- "/jndi/weblogic.management.mbeanservers.domainruntime");
- Map<String, Object> environment = new HashMap<String, Object>();
- environment.put(javax.naming.Context.SECURITY_PRINCIPAL, credentials[0]);
- environment.put(javax.naming.Context.SECURITY_CREDENTIALS, credentials[1]);
- environment.put(javax.management.remote.JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES,
- "weblogic.management.remote");
- jmxc = JMXConnectorFactory.connect(url, environment);
- conn = jmxc.getMBeanServerConnection();
- } catch (Exception e) {
- logger.debug("Error connect to the application server (weblogic) : " + e.getMessage());
- prop = new Properties();
- prop.setProperty("status", "Weblogic connection error!");
- prop.setProperty("severity", GammaUtils.convertSeverity(IObserver.SEVERITY_CRITICAL));
- elements.add(prop);
- return;
- }
- Set<ObjectInstance> instances;
- try {
- instances = conn.queryMBeans(null, null);
- for (String name : webServiceNames) {
- logger.debug("vizsgalando nev: " + name);
- for (ObjectInstance instance : instances) {
- if (instance.toString().contains("WseeAggregatableBaseOperationRuntime")
- && instance.toString().contains(name) && instance.toString().contains("#")
- && !instance.toString().contains("_/")) {
- WebserviceInstance tempWebService = new WebserviceInstance();
- logger.debug("webservice lista merete eleje: "+listOfWebservices.size());
- for (WebserviceInstance webServiceInstance : listOfWebservices) {
- match = false;
- if (webServiceInstance.getName().equals(name)) {
- match = true;
- logger.debug("megtaláltam a listában");
- tempWebService = webServiceInstance;
- tempWebService.setPreviousProcessTime(tempWebService.getCurrentProcessTime());
- tempWebService.setPreviousRequest(tempWebService.getCurrentRequest());
- break;
- }
- }
- tempWebService.setName(name);
- tempWebService.setPreviousMaxProcssingTime(tempWebService.getMaxProcessingTime());
- tempWebService.setPreviousErrorCount(tempWebService.getFaultCount());
- tempWebService.setCurrentProcessTime(
- (Long) conn.getAttribute(instance.getObjectName(), "ExecutionTimeTotal"));
- tempWebService.setCurrentRequest(Long.valueOf(Integer
- .toString((Integer) conn.getAttribute(instance.getObjectName(), "InvocationCount"))));
- tempWebService.setFaultCount(Long.valueOf(
- Integer.toString((Integer) conn.getAttribute(instance.getObjectName(), "ErrorCount"))));
- tempWebService.setName(name);
- tempWebService.setAverageProcessingTime(
- (Long) conn.getAttribute(instance.getObjectName(), "ResponseTimeAverage"));
- tempWebService.setFaultCount(Long.valueOf(
- Integer.toString((Integer) conn.getAttribute(instance.getObjectName(), "ErrorCount"))));
- tempWebService.setMaxProcessingTime(
- (Long) conn.getAttribute(instance.getObjectName(), "ResponseTimeHigh"));
- tempWebService.setMinProcessingTime(
- (Long) conn.getAttribute(instance.getObjectName(), "ResponseTimeLow"));
- tempWebService.setRequestCount(Long.valueOf(Integer
- .toString((Integer) conn.getAttribute(instance.getObjectName(), "InvocationCount"))));
- tempWebService.setResponseCount(Long.valueOf(Integer
- .toString((Integer) conn.getAttribute(instance.getObjectName(), "ResponseCount"))));
- tempWebService.setTotalProcessingTime(
- (Long) conn.getAttribute(instance.getObjectName(), "ResponseTimeTotal"));
- if (conn.getAttribute(instance.getObjectName(), "LastError") != null) {
- tempWebService.setErrorMessage(
- conn.getAttribute(instance.getObjectName(), "LastError").toString());
- }
- tempWebService
- .setLastErrorTime((Long) conn.getAttribute(instance.getObjectName(), "LastErrorTime"));
- tempWebService.setStatus("OK");
- tempWebService.setSeverity(GammaUtils.convertSeverity(IObserver.SEVERITY_NORMAL));
- tempWebService.setLastMeasurementAvarage(getLastMeasurementAvarage(
- tempWebService.getPreviousRequest(), tempWebService.getCurrentRequest(),
- tempWebService.getPreviousProcessTime(), tempWebService.getCurrentProcessTime()));
- if (match == false) {
- listOfWebservices.add(tempWebService);
- }
- logger.debug("webservice lista merete vege: "+listOfWebservices.size());
- logger.debug("lista neve: "+listOfWebservices);
- }
- }
- }
- } catch (Exception e) {
- logger.debug("Exception during parser observing : " + e.getMessage());
- prop = new Properties();
- prop.setProperty("status", "error");
- prop.setProperty("severity", GammaUtils.convertSeverity(IObserver.SEVERITY_CRITICAL));
- elements.add(prop);
- }
- }
- public long getLastMeasurementAvarage(long previousRequests, long currentRequests, long previousProcessing,
- long currentProcessing) {
- logger.debug("elozo meres szám : "+previousRequests);
- logger.debug("mostani meres szám : "+currentRequests);
- logger.debug("elozo meres ido : "+previousProcessing);
- logger.debug("mostani meres ido : "+currentProcessing);
- if (currentRequests == 0) {
- return 0;
- }
- if (previousProcessing == -1 || previousRequests == -1) {
- return currentProcessing / currentRequests;
- } else if (currentRequests == previousRequests)
- {
- return 0;
- }
- else {
- long tempProc = currentProcessing - previousProcessing;
- long tempAvarage = tempProc / (previousRequests - currentRequests);
- return tempAvarage;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement