You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2014/12/30 17:48:58 UTC

svn commit: r1648545 - in /qpid/trunk/qpid: doc/book/src/java-broker/ java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ java/broker-core/src/main/java/org/apache/qpid/server/model/ java/broker-core/src/main/java/org/apache/qpid/se...

Author: kwall
Date: Tue Dec 30 16:48:57 2014
New Revision: 1648545

URL: http://svn.apache.org/r1648545
Log:
QPID-6293: [Java Broker] Log Java Broker's pid on startup

* Log the process identifer on startup as an operational log message
* Wired up the Broker attribute Broker#processPid

Modified:
    qpid/trunk/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Operational-Logging-Messages.xml
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
    qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/properties/ConnectionStartProperties.java
    qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/util/SystemUtils.java

Modified: qpid/trunk/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Operational-Logging-Messages.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Operational-Logging-Messages.xml?rev=1648545&r1=1648544&r2=1648545&view=diff
==============================================================================
--- qpid/trunk/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Operational-Logging-Messages.xml (original)
+++ qpid/trunk/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Operational-Logging-Messages.xml Tue Dec 30 16:48:57 2014
@@ -378,6 +378,15 @@
             <para>Indicates that broker was shut down due to fatal error.</para>
           </entry>
         </row>
+        <row id="Java-Broker-Appendix-Operation-Logging-Message-BRK-1017">
+          <entry morerows="1">BRK-1017</entry>
+          <entry>Process : PID <replaceable>process identifier</replaceable></entry>
+        </row>
+        <row>
+          <entry>
+            <para>Process identifier (PID) of the Broker process.</para>
+          </entry>
+        </row>
       </tbody>
     </tgroup>
   </table>

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java?rev=1648545&r1=1648544&r2=1648545&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java Tue Dec 30 16:48:57 2014
@@ -54,6 +54,7 @@ public class BrokerMessages
     public static final String FLOW_TO_DISK_ACTIVE_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.flow_to_disk_active";
     public static final String MAX_MEMORY_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.max_memory";
     public static final String PLATFORM_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.platform";
+    public static final String PROCESS_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.process";
     public static final String SHUTTING_DOWN_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.shutting_down";
     public static final String MANAGEMENT_MODE_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.management_mode";
     public static final String STARTUP_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.startup";
@@ -73,6 +74,7 @@ public class BrokerMessages
         Logger.getLogger(FLOW_TO_DISK_ACTIVE_LOG_HIERARCHY);
         Logger.getLogger(MAX_MEMORY_LOG_HIERARCHY);
         Logger.getLogger(PLATFORM_LOG_HIERARCHY);
+        Logger.getLogger(PROCESS_LOG_HIERARCHY);
         Logger.getLogger(SHUTTING_DOWN_LOG_HIERARCHY);
         Logger.getLogger(MANAGEMENT_MODE_LOG_HIERARCHY);
         Logger.getLogger(STARTUP_LOG_HIERARCHY);
@@ -396,6 +398,38 @@ public class BrokerMessages
             }
         };
     }
+
+    /**
+     * Log a Broker message of the Format:
+     * <pre>BRK-1017 : Process : PID : {0}</pre>
+     * Optional values are contained in [square brackets] and are numbered
+     * sequentially in the method call.
+     *
+     */
+    public static LogMessage PROCESS(String param1)
+    {
+        String rawMessage = _messages.getString("PROCESS");
+
+        final Object[] messageArguments = {param1};
+        // Create a new MessageFormat to ensure thread safety.
+        // Sharing a MessageFormat and using applyPattern is not thread safe
+        MessageFormat formatter = new MessageFormat(rawMessage, _currentLocale);
+
+        final String message = formatter.format(messageArguments);
+
+        return new LogMessage()
+        {
+            public String toString()
+            {
+                return message;
+            }
+
+            public String getLogHierarchy()
+            {
+                return PROCESS_LOG_HIERARCHY;
+            }
+        };
+    }
 
     /**
      * Log a Broker message of the Format:

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties?rev=1648545&r1=1648544&r2=1648545&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties Tue Dec 30 16:48:57 2014
@@ -54,4 +54,7 @@ MANAGEMENT_MODE = BRK-1012 : Management
 FLOW_TO_DISK_ACTIVE = BRK-1014 : Message flow to disk active :  Message memory use {0,number,#}KB exceeds threshold {1,number,#.##}KB
 FLOW_TO_DISK_INACTIVE = BRK-1015 : Message flow to disk inactive : Message memory use {0,number,#}KB within threshold {1,number,#.##}KB
 
-FATAL_ERROR = BRK-1016 : Fatal error : {0} : See log file for more information
\ No newline at end of file
+FATAL_ERROR = BRK-1016 : Fatal error : {0} : See log file for more information
+
+# 0 - pid
+PROCESS = BRK-1017 : Process : PID : {0}
\ No newline at end of file

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java?rev=1648545&r1=1648544&r2=1648545&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java Tue Dec 30 16:48:57 2014
@@ -224,6 +224,11 @@ public abstract class AbstractSystemConf
 
         startupLogger.message(BrokerMessages.MAX_MEMORY(Runtime.getRuntime().maxMemory()));
 
+        if (SystemUtils.getProcessPid() != null)
+        {
+            startupLogger.message(BrokerMessages.PROCESS(SystemUtils.getProcessPid()));
+        }
+
         BrokerStoreUpgraderAndRecoverer upgrader = new BrokerStoreUpgraderAndRecoverer(this);
         upgrader.perform();
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java?rev=1648545&r1=1648544&r2=1648545&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java Tue Dec 30 16:48:57 2014
@@ -316,8 +316,7 @@ public class BrokerAdapter extends Abstr
     @Override
     public String getProcessPid()
     {
-        // TODO
-        return null;
+        return SystemUtils.getProcessPid();
     }
 
     @Override

Modified: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/properties/ConnectionStartProperties.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/properties/ConnectionStartProperties.java?rev=1648545&r1=1648544&r2=1648545&view=diff
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/properties/ConnectionStartProperties.java (original)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/properties/ConnectionStartProperties.java Tue Dec 30 16:48:57 2014
@@ -20,9 +20,6 @@
  */
 package org.apache.qpid.properties;
 
-import java.lang.management.ManagementFactory;
-import java.lang.management.RuntimeMXBean;
-
 import org.apache.qpid.transport.util.Logger;
 import org.apache.qpid.util.SystemUtils;
 
@@ -62,30 +59,18 @@ public class ConnectionStartProperties
 
     public static final String QPID_CONFIRMED_PUBLISH_SUPPORTED = "qpid.confirmed_publish_supported";
 
-    public static int _pid;
+    public static final int _pid;
 
     public static final String _platformInfo;
 
     static
     {
-        RuntimeMXBean rtb = ManagementFactory.getRuntimeMXBean();
-        String processName = rtb.getName();
-        if (processName != null && processName.indexOf('@') > 0)
-        {
-            try
-            {
-                _pid = Integer.parseInt(processName.substring(0,processName.indexOf('@')));
-            }
-            catch(Exception e)
-            {
-                LOGGER.warn("Unable to get the PID due to error",e);
-                _pid = -1;
-            }
-        }
-        else
+
+        _pid = SystemUtils.getProcessPidAsInt();
+
+        if (_pid == -1)
         {
-            LOGGER.warn("Unable to get the PID due to unsupported format : " + processName);
-            _pid = -1;
+            LOGGER.warn("Unable to get the process's PID");
         }
 
         StringBuilder fullSystemInfo = new StringBuilder(System.getProperty("java.runtime.name"));

Modified: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/util/SystemUtils.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/util/SystemUtils.java?rev=1648545&r1=1648544&r2=1648545&view=diff
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/util/SystemUtils.java (original)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/util/SystemUtils.java Tue Dec 30 16:48:57 2014
@@ -20,6 +20,9 @@
  */
 package org.apache.qpid.util;
 
+import java.lang.management.ManagementFactory;
+import java.lang.management.RuntimeMXBean;
+
 /**
  * SystemUtils provides some simple helper methods for working with the current
  * Operating System.
@@ -38,9 +41,29 @@ public class SystemUtils
     private static final String _osName = System.getProperty("os.name", UNKNOWN_OS);
     private static final String _osVersion = System.getProperty("os.version", UNKNOWN_VERSION);
     private static final String _osArch = System.getProperty("os.arch", UNKNOWN_ARCH);
-
     private static final boolean _isWindows = _osName.toLowerCase().contains("windows");
 
+    /** Process identifier of underlying process or null if it cannot be determined */
+    private static final String _osPid;
+    private static int _osPidInt;
+
+    static
+    {
+        RuntimeMXBean rtb = ManagementFactory.getRuntimeMXBean();
+        String processName = rtb.getName();
+        int atIndex;
+        if(processName != null && (atIndex = processName.indexOf('@')) > 0)
+        {
+            _osPid = processName.substring(0, atIndex);
+            _osPidInt = parseInt(_osPid, -1);
+        }
+        else
+        {
+            _osPid = null;
+        }
+    }
+
+
     private SystemUtils()
     {
     }
@@ -60,6 +83,16 @@ public class SystemUtils
         return _osArch;
     }
 
+    public final static String getProcessPid()
+    {
+        return _osPid;
+    }
+
+    public final static int getProcessPidAsInt()
+    {
+        return _osPidInt;
+    }
+
     public final static boolean isWindows()
     {
         return _isWindows;
@@ -78,4 +111,17 @@ public class SystemUtils
     {
         return _osName + " " + _osVersion + " " + _osArch;
     }
+
+    private static int parseInt(String str, int defaultVal)
+    {
+        try
+        {
+            return Integer.parseInt(str);
+        }
+        catch(NumberFormatException e)
+        {
+            return defaultVal;
+        }
+    }
+
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org