diff options
Diffstat (limited to 'java/broker-core/src/main/java/org')
3 files changed, 91 insertions, 1 deletions
diff --git a/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java b/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java index 4156fc8157..064c9788b2 100644 --- a/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java +++ b/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java @@ -50,6 +50,8 @@ public class BrokerMessages public static final String STOPPED_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.stopped"; public static final String STATS_MSGS_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.stats_msgs"; public static final String LISTENING_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.listening"; + public static final String FLOW_TO_DISK_INACTIVE_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.flow_to_disk_inactive"; + 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 SHUTTING_DOWN_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.shutting_down"; @@ -66,6 +68,8 @@ public class BrokerMessages Logger.getLogger(STOPPED_LOG_HIERARCHY); Logger.getLogger(STATS_MSGS_LOG_HIERARCHY); Logger.getLogger(LISTENING_LOG_HIERARCHY); + Logger.getLogger(FLOW_TO_DISK_INACTIVE_LOG_HIERARCHY); + Logger.getLogger(FLOW_TO_DISK_ACTIVE_LOG_HIERARCHY); Logger.getLogger(MAX_MEMORY_LOG_HIERARCHY); Logger.getLogger(PLATFORM_LOG_HIERARCHY); Logger.getLogger(SHUTTING_DOWN_LOG_HIERARCHY); @@ -265,6 +269,70 @@ public class BrokerMessages /** * Log a Broker message of the Format: + * <pre>BRK-1015 : Message flow to disk inactive : Message memory use {0,number,#}KB within threshold {1,number,#.##}KB</pre> + * Optional values are contained in [square brackets] and are numbered + * sequentially in the method call. + * + */ + public static LogMessage FLOW_TO_DISK_INACTIVE(Number param1, Number param2) + { + String rawMessage = _messages.getString("FLOW_TO_DISK_INACTIVE"); + + final Object[] messageArguments = {param1, param2}; + // 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 FLOW_TO_DISK_INACTIVE_LOG_HIERARCHY; + } + }; + } + + /** + * Log a Broker message of the Format: + * <pre>BRK-1014 : Message flow to disk active : Message memory use {0,number,#}KB exceeds threshold {1,number,#.##}KB</pre> + * Optional values are contained in [square brackets] and are numbered + * sequentially in the method call. + * + */ + public static LogMessage FLOW_TO_DISK_ACTIVE(Number param1, Number param2) + { + String rawMessage = _messages.getString("FLOW_TO_DISK_ACTIVE"); + + final Object[] messageArguments = {param1, param2}; + // 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 FLOW_TO_DISK_ACTIVE_LOG_HIERARCHY; + } + }; + } + + /** + * Log a Broker message of the Format: * <pre>BRK-1011 : Maximum Memory : {0,number} bytes</pre> * Optional values are contained in [square brackets] and are numbered * sequentially in the method call. diff --git a/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties b/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties index 76c1fa1b5b..d764145ec8 100644 --- a/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties +++ b/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties @@ -47,4 +47,9 @@ PLATFORM = BRK-1010 : Platform : JVM : {0} version: {1} OS : {2} version: {3} ar # 0 Maximum Memory MAX_MEMORY = BRK-1011 : Maximum Memory : {0,number} bytes -MANAGEMENT_MODE = BRK-1012 : Management Mode : User Details : {0} / {1}
\ No newline at end of file +MANAGEMENT_MODE = BRK-1012 : Management Mode : User Details : {0} / {1} + +# 0 - Total message size +# 1 - Target memory size +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
\ No newline at end of file diff --git a/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java b/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java index 109aaff5bd..ee008b1642 100644 --- a/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java +++ b/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java @@ -82,6 +82,9 @@ public class BrokerAdapter extends AbstractConfiguredObject<BrokerAdapter> imple private Timer _reportingTimer; private final StatisticsCounter _messagesDelivered, _dataDelivered, _messagesReceived, _dataReceived; + /** Flags used to control the reporting of flow to disk. Protected by this */ + private boolean _totalMessageSizeExceedThresholdReported = false, _totalMessageSizeWithinThresholdReported = true; + @ManagedAttributeField private String _defaultVirtualHost; @ManagedAttributeField @@ -99,6 +102,7 @@ public class BrokerAdapter extends AbstractConfiguredObject<BrokerAdapter> imple @ManagedAttributeField private String _confidentialConfigurationEncryptionProvider; + @ManagedObjectFactoryConstructor public BrokerAdapter(Map<String, Object> attributes, SystemConfig parent) @@ -437,6 +441,19 @@ public class BrokerAdapter extends AbstractConfiguredObject<BrokerAdapter> imple } } + if (totalSize > totalTarget && !_totalMessageSizeExceedThresholdReported) + { + _eventLogger.message(BrokerMessages.FLOW_TO_DISK_ACTIVE(totalSize / 1024, totalTarget / 1024)); + _totalMessageSizeExceedThresholdReported = true; + _totalMessageSizeWithinThresholdReported = false; + } + else if (totalSize <= totalTarget && !_totalMessageSizeWithinThresholdReported) + { + _eventLogger.message(BrokerMessages.FLOW_TO_DISK_INACTIVE(totalSize / 1024, totalTarget / 1024)); + _totalMessageSizeWithinThresholdReported = true; + _totalMessageSizeExceedThresholdReported = false; + } + for(Map.Entry<VirtualHost<?, ?, ?>,Long> entry : vhs.entrySet()) { |