Author: degenaro
Date: Fri Apr  8 20:27:29 2016
New Revision: 1738301

URL: http://svn.apache.org/viewvc?rev=1738301&view=rev
Log:
UIMA-4732 DUCC Web Server (WS) broker and database are shown as down on Daemons 
page

Modified:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/BrokerHelper.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/DatabaseHelper.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/JmxHelper.java

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/BrokerHelper.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/BrokerHelper.java?rev=1738301&r1=1738300&r2=1738301&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/BrokerHelper.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/BrokerHelper.java
 Fri Apr  8 20:27:29 2016
@@ -45,7 +45,7 @@ import org.apache.uima.ducc.common.utils
 import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
 import org.apache.uima.ducc.common.utils.id.DuccId;
 
-public class BrokerHelper {
+public class BrokerHelper extends JmxHelper {
 
        private static DuccLogger logger = 
DuccLoggerComponents.getWsLogger(BrokerHelper.class.getName());
        private static DuccId jobid = null;
@@ -54,9 +54,6 @@ public class BrokerHelper {
                return new BrokerHelper();
        }
 
-       private String host = "?";
-       private int port = 1100;
-
        private JMXServiceURL jmxServiceUrl = null;;
        private JMXConnector jmxc;
        private MBeanServerConnection mbsc;
@@ -72,7 +69,6 @@ public class BrokerHelper {
        private String brokerVersion = "?";
        private String brokerUptime = "?";
        
-       private long pid = 0;
        private long startTime = 0;
        
        private Map<String,Map<String,String>> entityAttributes = null;
@@ -197,10 +193,6 @@ public class BrokerHelper {
                String location = "populateRuntime";
                try {
                        Object o;
-                       o = mbsc.getAttribute(new 
ObjectName("java.lang:type=Runtime"), "Name");
-                       String data = (String) o;
-                       String[] address = data.split("@");
-                       pid = Long.parseLong(address[0]);
                        o = mbsc.getAttribute(new 
ObjectName("java.lang:type=Runtime"), "StartTime");
                        startTime = (Long) o;
                }
@@ -352,17 +344,17 @@ public class BrokerHelper {
        //
        
        private void setHost(String value) {
-               host = value;
+               setJmxHost(value);
        }
 
        public String getHost() {
-               return host;
+               return getJmxHost();
        }
 
        private void setPort(String value) {
                String location = "setPort";
                try {
-                       port = Integer.parseInt(value);
+                       setJmxPort(Integer.parseInt(value));
                } 
                catch (Exception e) {
                        logger.error(location, jobid, e);
@@ -370,11 +362,7 @@ public class BrokerHelper {
        }
 
        public int getPort() {
-               return port;
-       }
-
-       public String getJmxUrl() {
-               return "service:jmx:rmi:///jndi/rmi://" + host + ":" + port + 
"/jmxrmi";
+               return getJmxPort();
        }
 
        private void connect() throws IOException {
@@ -441,10 +429,6 @@ public class BrokerHelper {
                return startTime;
        }
        
-       public long getPID() {
-               return pid;
-       }
-       
        public boolean isAlive() {
                boolean retVal = false;
                if(getPID() != 0) {
@@ -452,6 +436,17 @@ public class BrokerHelper {
                }
                return retVal;
        }
+
+       @Override
+       protected void reconnect() {
+               String location = "reconnect";
+               try {
+                       jmxConnect();
+               }
+               catch(Exception e) {
+                       logger.error(location, jobid, e);
+               }
+       }
        
        // Command Line
        
@@ -510,4 +505,5 @@ public class BrokerHelper {
                        System.out.println("map=null");
                }
        }
+
 }
\ No newline at end of file

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/DatabaseHelper.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/DatabaseHelper.java?rev=1738301&r1=1738300&r2=1738301&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/DatabaseHelper.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/DatabaseHelper.java
 Fri Apr  8 20:27:29 2016
@@ -48,35 +48,32 @@ public class DatabaseHelper extends JmxH
                String location = "init";
                try {
                        DuccPropertiesResolver dpr = 
DuccPropertiesResolver.getInstance();
-                       String value;
-                       value = 
dpr.getProperty(DuccPropertiesResolver.ducc_database_host);
-                       if(value != null) {
-                               setHost(value);
-                               
if(!value.equalsIgnoreCase(DuccPropertiesResolver.ducc_database_disabled)) {
+                       host = 
dpr.getProperty(DuccPropertiesResolver.ducc_database_host);
+                       if(host != null) {
+                               setHost(host);
+                               
if(!host.equalsIgnoreCase(DuccPropertiesResolver.ducc_database_disabled)) {
                                        enabled = true;
                                }
                        }
-                       value = 
dpr.getProperty(DuccPropertiesResolver.ducc_database_jmx_host);
-                       if(value != null) {
+                       String jmxHost = 
dpr.getProperty(DuccPropertiesResolver.ducc_database_jmx_host);
+                       if(jmxHost != null) {
                                try {
-                                       setJmxHost(value);
+                                       setJmxHost(jmxHost);
                                }
                                catch(Exception e) {
                                        logger.error(location, jobid, e);
                                }
                        }
                        setJmxPort(7199);  // default
-                       value = 
dpr.getProperty(DuccPropertiesResolver.ducc_database_jmx_port);
-                       if(value != null) {
+                       String jmxPort = 
dpr.getProperty(DuccPropertiesResolver.ducc_database_jmx_port);
+                       if(jmxPort != null) {
                                try {
-                                       setJmxPort(Integer.parseInt(value));
+                                       setJmxPort(Integer.parseInt(jmxPort));
                                }
                                catch(Exception e) {
                                        logger.error(location, jobid, e);
                                }
                        }
-                       value = 
"service:jmx:rmi:///jndi/rmi://"+getJmxHost()+":"+getJmxPort()+"/jmxrmi";
-                       setJmxUrl(value);
                        jmxConnect();
                }
                catch(Exception e) {
@@ -84,12 +81,6 @@ public class DatabaseHelper extends JmxH
                }
        }
        
-       private void reconnect() {
-               String location = "reconnect";
-               init();
-               logger.debug(location, jobid, "reconnected");
-       }
-       
        public boolean isEnabled() {
                return enabled;
        }
@@ -140,35 +131,11 @@ public class DatabaseHelper extends JmxH
                return retVal;
        }
        
-       private String getJmxData() throws Exception {
-               Object o = null;
-               MBeanServerConnection mbsc = null;
-               try {
-                       mbsc = getMBSC();
-                       o = mbsc.getAttribute(new 
ObjectName("java.lang:type=Runtime"), "Name");
-               } 
-               catch(Exception e) {
-                       reconnect();
-                       mbsc = getMBSC();
-                       o = mbsc.getAttribute(new 
ObjectName("java.lang:type=Runtime"), "Name");
-               }
-               String data = (String) o;
-               return data;
+       @Override
+       protected void reconnect() {
+               String location = "reconnect";
+               init();
+               logger.debug(location, jobid, "reconnected");
        }
        
-       public Long getPID() {
-               String location = "getPID";
-               Long retVal = new Long(0);
-               try {
-                       String data = getJmxData();
-                       String[] address = data.split("@");
-                       Long pid = Long.parseLong(address[0]);
-                       retVal = pid;
-               }
-               catch(Exception e) {
-                       logger.error(location, jobid, e);
-               }
-               return retVal;
-       }
-
 }

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/JmxHelper.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/JmxHelper.java?rev=1738301&r1=1738300&r2=1738301&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/JmxHelper.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/JmxHelper.java
 Fri Apr  8 20:27:29 2016
@@ -21,15 +21,22 @@ package org.apache.uima.ducc.ws.helper;
 import java.io.IOException;
 
 import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
 import javax.management.remote.JMXConnector;
 import javax.management.remote.JMXConnectorFactory;
 import javax.management.remote.JMXServiceURL;
 
-public class JmxHelper {
+import org.apache.uima.ducc.common.utils.DuccLogger;
+import org.apache.uima.ducc.common.utils.DuccLoggerComponents;
+import org.apache.uima.ducc.common.utils.id.DuccId;
+
+public abstract class JmxHelper {
+       
+       private static DuccLogger logger = 
DuccLoggerComponents.getWsLogger(JmxHelper.class.getName());
+       private static DuccId jobid = null;
        
        private String jmxHost = "localhost";
        private int jmxPort = -1;
-       private String jmxUrl = null;
        
        private JMXServiceURL url;
        private JMXConnector jmxc;
@@ -51,12 +58,8 @@ public class JmxHelper {
                return jmxPort;
        }
        
-       protected void setJmxUrl(String value) {
-               jmxUrl = value;
-       }
-       
        public String getJmxUrl() {
-               return jmxUrl;
+               return 
"service:jmx:rmi:///jndi/rmi://"+getJmxHost()+":"+getJmxPort()+"/jmxrmi";
        }
        
        public MBeanServerConnection getMBSC() {
@@ -69,4 +72,36 @@ public class JmxHelper {
                mbsc = jmxc.getMBeanServerConnection();
        }
        
+       protected String getJmxData() throws Exception {
+               Object o = null;
+               MBeanServerConnection mbsc = null;
+               try {
+                       mbsc = getMBSC();
+                       o = mbsc.getAttribute(new 
ObjectName("java.lang:type=Runtime"), "Name");
+               } 
+               catch(Exception e) {
+                       reconnect();
+                       mbsc = getMBSC();
+                       o = mbsc.getAttribute(new 
ObjectName("java.lang:type=Runtime"), "Name");
+               }
+               String data = (String) o;
+               return data;
+       }
+       
+       public Long getPID() {
+               String location = "getPID";
+               Long retVal = new Long(0);
+               try {
+                       String data = getJmxData();
+                       String[] address = data.split("@");
+                       Long pid = Long.parseLong(address[0]);
+                       retVal = pid;
+               }
+               catch(Exception e) {
+                       logger.error(location, jobid, e);
+               }
+               return retVal;
+       }
+
+       protected abstract void reconnect();
 }


Reply via email to