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 2017/11/03 15:29:12 UTC
[1/2] qpid-broker-j git commit: QPID-8001: [Broker-J] [Documentation]
Update memory estimation formula to account for the larger AMQP 1.0
connections.
Repository: qpid-broker-j
Updated Branches:
refs/heads/master 1444257d4 -> 56c5cfd73
QPID-8001: [Broker-J] [Documentation] Update memory estimation formula to account for the larger AMQP 1.0 connections.
Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/56c5cfd7
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/56c5cfd7
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/56c5cfd7
Branch: refs/heads/master
Commit: 56c5cfd730ad0be167c2cc078e33ad7040b37cef
Parents: 8721d32
Author: Keith Wall <kw...@apache.org>
Authored: Fri Nov 3 15:28:52 2017 +0000
Committer: Keith Wall <kw...@apache.org>
Committed: Fri Nov 3 15:29:05 2017 +0000
----------------------------------------------------------------------
.../src/docbkx/runtime/Java-Broker-Runtime-Memory.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/56c5cfd7/doc/java-broker/src/docbkx/runtime/Java-Broker-Runtime-Memory.xml
----------------------------------------------------------------------
diff --git a/doc/java-broker/src/docbkx/runtime/Java-Broker-Runtime-Memory.xml b/doc/java-broker/src/docbkx/runtime/Java-Broker-Runtime-Memory.xml
index 50d69b5..4b9c93c 100644
--- a/doc/java-broker/src/docbkx/runtime/Java-Broker-Runtime-Memory.xml
+++ b/doc/java-broker/src/docbkx/runtime/Java-Broker-Runtime-Memory.xml
@@ -217,7 +217,7 @@
</itemizedlist>
</section>
<section>
- <title>Formulas</title>
+ <title>Formulae</title>
<para>
We developed a simple formula which estimates the <emphasis>minimum</emphasis> memory usage of the broker under certain usage.
These are rough estimate so we strongly recommend testing your configuration extensively.
@@ -227,7 +227,7 @@
<para>
<informalequation>
<mathphrase>
- memory<subscript>heap</subscript> = 15 MB + 15 kB * N<subscript>sessions</subscript> + 1.5 kB * N<subscript>messages</subscript> + 17 kB * N<subscript>connections</subscript>
+ memory<subscript>heap</subscript> = 15 MB + 20 KB * N<subscript>sessions</subscript> + 1.5 KB * N<subscript>messages</subscript> + 100 KB * N<subscript>connections</subscript>
</mathphrase>
</informalequation>
</para>
@@ -242,7 +242,7 @@
Where <mathphrase>N</mathphrase> denotes the total number of connections/sessions/messages on the broker. Furthermore, for direct memory only the messages that have not been flowed to disk are relevant.
</para>
<note>
- <para>The formulae assume the worst case in terms of memory usage: persistent messages and TLS connections. Transient messages consume less heap memory than peristent and plain connections consume less direct memory than TLS
+ <para>The formulae assume the worst case in terms of memory usage: persistent messages and TLS connections. Transient messages consume less heap memory than persistent and plain connections consume less direct memory than TLS
connections.
</para>
</note>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[2/2] qpid-broker-j git commit: NO-JIRA: [Broker-J Tools] Update
memory consumption test scripts to no longer assume availability of JMX and
work with Qpid JMS Client.
Posted by kw...@apache.org.
NO-JIRA: [Broker-J Tools] Update memory consumption test scripts to no longer assume availability of JMX and work with Qpid JMS Client.
Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/8721d329
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/8721d329
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/8721d329
Branch: refs/heads/master
Commit: 8721d3292d1c5c8be29b8165b017a383a432f4e7
Parents: 1444257
Author: Keith Wall <kw...@apache.org>
Authored: Fri Nov 3 15:24:32 2017 +0000
Committer: Keith Wall <kw...@apache.org>
Committed: Fri Nov 3 15:29:05 2017 +0000
----------------------------------------------------------------------
tools/bin/memory-test | 45 +++--
tools/pom.xml | 120 +++++++++++-
.../qpid/tools/MemoryConsumptionTestClient.java | 196 ++++++++++---------
3 files changed, 244 insertions(+), 117 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/8721d329/tools/bin/memory-test
----------------------------------------------------------------------
diff --git a/tools/bin/memory-test b/tools/bin/memory-test
index 4a7df83..52b38e8 100755
--- a/tools/bin/memory-test
+++ b/tools/bin/memory-test
@@ -43,7 +43,8 @@ function awaitBroker()
function startBroker()
{
echo "Starting broker"
- ${QPID_HOME}/bin/qpid-server -prop qpid.rmi_port=$RMI_PORT 2>${QPID_WORK}/log/qpid.stderr > ${QPID_WORK}/log/qpid.stdout &
+ export QPID_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=${RMI_PORT} -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
+ ${QPID_HOME}/bin/qpid-server 2>${QPID_WORK}/log/qpid.stderr > ${QPID_WORK}/log/qpid.stdout &
brokerpid=$!
echo "Broker started: PID $brokerpid"
}
@@ -60,7 +61,7 @@ function stopBroker()
(kill -9 $brokerpid 2>&1) > /dev/null
grep BRK-1014 ${QPID_WORK}/log/qpid.log | sed 's/,/ /g' | sed 's/^/# /' >> $resultFile
mv ${QPID_WORK}/log/qpid.log ${QPID_WORK}/log/qpid.log.$messageSize_$messageCount
- rm -fr $QPID_WORK/default/messages
+ rm -fr ${QPID_WORK}/default/messages
}
function performTest()
@@ -75,9 +76,13 @@ function performTest()
startBroker
awaitBroker
echo "Running test: messageSize=$messageSize messageNumber=$messageCount connections=${connections} sessions=${sessions}"
- java -cp "${TOOLS_DIR}/target/qpid-tools-6.0.0-SNAPSHOT.jar:${TOOLS_DIR}/target/dependency/*" -Dqpid.amqp.version=${PROTOCOL} org.apache.qpid.tools.MemoryConsumptionTestClient \
- connections=${connections} sessions=${sessions} producers=${producers} \
- messagecount=${messageCount} size=${messageSize} jmxuser=admin jmxpassword=admin jmxhost=${BROKER_HOSTNAME} jmxport=${RMI_PORT} >> $resultFile
+
+ tmp=$(mktemp)
+ mvn -f ${TOOLS_DIR}/pom.xml \
+ exec:java \
+ -Dmemorytest=${PROFILE} \
+ -Dexec.args="jndiProperties=${JNDI_PROPERTIES} jmxhost=${BROKER_HOSTNAME} jmxport=${RMI_PORT} jmxuser=guest jmxpassword=guest jndiConnectionFactory=qpidConnectionFactoryTls connections=${connections} sessions=${sessions} producers=${producers} messagecount=${messageCount} size=${messageSize} resultsFile=${tmp}"
+ cat ${tmp} >> $resultFile
stopBroker $messageSize $messageCount $resultFile
}
@@ -130,22 +135,26 @@ else
fi
echo "Tools module folder ${TOOLS_DIR}"
-if [ ! -d ${TOOLS_DIR}/target ]
-then
- echo "target directory does not exists run: mvn package"
- exit 1
-fi
-
-if [ ! -d ${TOOLS_DIR}/target/dependency ]
-then
- echo "target dependencies directory does not exists run: mvn dependency:copy-dependencies"
- exit 1
-fi
-
PROTOCOL=${1:-0-9}
BROKER_HOSTNAME=${2:-"localhost"}
RMI_PORT=${3:-8999}
+case ${PROTOCOL} in
+0-9|0-10)
+ JNDI_PROPERTIES=stress-test-client-qpid-jms-client-0-x.properties
+ PROFILE=jms-client-${PROTOCOL}
+ ;;
+1-0)
+ JNDI_PROPERTIES=stress-test-client-qpid-jms-client.properties
+ PROFILE=qpid-jms-client
+ ;;
+*)
+ echo "Unrecognised protocol ${PROTOCOL}"
+ exit 1
+ ;;
+esac
+
+
brokerVersion=`$QPID_HOME/bin/qpid-server -v | grep "qpid -" | awk '{print $3 " rev" $5}'`
javaVersion=`java -version 2>&1 | grep "java version" | awk '{print $3}' | sed -e "s/\"//g"`
startTime=`date "+%Y-%m-%d %H:%M:%S"`
@@ -154,7 +163,7 @@ resultFile="${TOOLS_DIR}/target/results-${PROTOCOL}-${javaVersion}-${startTimeFi
echo "Results will be written into ${resultFile}"
-rm -fr $QPID_WORK
+rm -fr ${QPID_WORK}/default/messages
mkdir -p ${QPID_WORK}/log
echo "# $startTime" > ${resultFile}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/8721d329/tools/pom.xml
----------------------------------------------------------------------
diff --git a/tools/pom.xml b/tools/pom.xml
index a6c92cb..30c8f29 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -74,13 +74,24 @@
<profiles>
<profile>
- <id>qpid-jms-client</id>
+ <id>stresstest_qpid-jms-client</id>
<activation>
<property>
<name>stresstest</name>
<value>qpid-jms-client</value>
</property>
</activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <configuration>
+ <mainClass>org.apache.qpid.tools.StressTestClient</mainClass>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
<dependencies>
<dependency>
<groupId>org.apache.qpid</groupId>
@@ -90,7 +101,7 @@
</dependencies>
</profile>
<profile>
- <id>jms-client-0-9</id>
+ <id>stresstest_jms-client-0-9</id>
<activation>
<property>
<name>stresstest</name>
@@ -103,6 +114,7 @@
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
+ <mainClass>org.apache.qpid.tools.StressTestClient</mainClass>
<systemProperties>
<systemProperty>
<key>qpid.amqp.version</key><value>0-9</value>
@@ -126,7 +138,7 @@
</dependencies>
</profile>
<profile>
- <id>jms-client-0-10</id>
+ <id>stresstest_jms-client-0-10</id>
<activation>
<property>
<name>stresstest</name>
@@ -139,6 +151,108 @@
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
+ <mainClass>org.apache.qpid.tools.StressTestClient</mainClass>
+ <systemProperties>
+ <systemProperty>
+ <key>qpid.amqp.version</key><value>0-10</value>
+ </systemProperty>
+ </systemProperties>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.qpid</groupId>
+ <artifactId>qpid-client</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jms_1.1_spec</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+ </profile>
+ <profile>
+ <id>memorytest_qpid-jms-client</id>
+ <activation>
+ <property>
+ <name>memorytest</name>
+ <value>qpid-jms-client</value>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <configuration>
+ <mainClass>org.apache.qpid.tools.MemoryConsumptionTestClient</mainClass>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.qpid</groupId>
+ <artifactId>qpid-jms-client</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+ </profile>
+ <profile>
+ <id>memorytest_jms-client-0-9</id>
+ <activation>
+ <property>
+ <name>memorytest</name>
+ <value>jms-client-0-9</value>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <configuration>
+ <mainClass>org.apache.qpid.tools.MemoryConsumptionTestClient</mainClass>
+ <systemProperties>
+ <systemProperty>
+ <key>qpid.amqp.version</key><value>0-9</value>
+ </systemProperty>
+ </systemProperties>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.qpid</groupId>
+ <artifactId>qpid-client</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jms_1.1_spec</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+ </profile>
+ <profile>
+ <id>memorytest_jms-client-0-10</id>
+ <activation>
+ <property>
+ <name>memorytest</name>
+ <value>jms-client-0-10</value>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <configuration>
+ <mainClass>org.apache.qpid.tools.MemoryConsumptionTestClient</mainClass>
<systemProperties>
<systemProperty>
<key>qpid.amqp.version</key><value>0-10</value>
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/8721d329/tools/src/main/java/org/apache/qpid/tools/MemoryConsumptionTestClient.java
----------------------------------------------------------------------
diff --git a/tools/src/main/java/org/apache/qpid/tools/MemoryConsumptionTestClient.java b/tools/src/main/java/org/apache/qpid/tools/MemoryConsumptionTestClient.java
index c1c3b68..d73b578 100644
--- a/tools/src/main/java/org/apache/qpid/tools/MemoryConsumptionTestClient.java
+++ b/tools/src/main/java/org/apache/qpid/tools/MemoryConsumptionTestClient.java
@@ -20,6 +20,7 @@
*/
package org.apache.qpid.tools;
+import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
@@ -32,12 +33,12 @@ import java.util.Properties;
import java.util.Set;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
+
import javax.jms.BytesMessage;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
-import javax.jms.ExceptionListener;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
@@ -48,8 +49,6 @@ import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
import javax.management.MBeanServerConnection;
import javax.management.MalformedObjectNameException;
-import javax.management.Notification;
-import javax.management.NotificationListener;
import javax.management.ObjectName;
import javax.management.ReflectionException;
import javax.management.openmbean.CompositeData;
@@ -68,34 +67,37 @@ public class MemoryConsumptionTestClient
{
private static final Logger LOGGER = LoggerFactory.getLogger(MemoryConsumptionTestClient.class);
+ private static final String RESULTS_FILE_ARG = "resultsFile";
+
private static final String JNDI_PROPERTIES_ARG = "jndiProperties";
private static final String JNDI_CONNECTION_FACTORY_ARG = "jndiConnectionFactory";
private static final String JNDI_DESTINATION_ARG = "jndiDestination";
- public static final String CONNECTIONS_ARG = "connections";
- public static final String SESSIONS_ARG = "sessions";
- public static final String PRODUCERS_ARG = "producers";
- public static final String MESSAGE_COUNT_ARG = "messagecount";
- public static final String MESSAGE_SIZE_ARG = "size";
- public static final String PERSISTENT_ARG = "persistent";
- public static final String TIMEOUT_ARG = "timeout";
- public static final String TRANSACTED_ARG = "transacted";
- public static final String JMX_HOST_ARG = "jmxhost";
- public static final String JMX_PORT_ARG = "jmxport";
- public static final String JMX_USER_ARG = "jmxuser";
- public static final String JMX_USER_PASSWORD_ARG = "jmxpassword";
-
+ private static final String CONNECTIONS_ARG = "connections";
+ private static final String SESSIONS_ARG = "sessions";
+ private static final String PRODUCERS_ARG = "producers";
+ private static final String MESSAGE_COUNT_ARG = "messagecount";
+ private static final String MESSAGE_SIZE_ARG = "size";
+ private static final String PERSISTENT_ARG = "persistent";
+ private static final String TIMEOUT_ARG = "timeout";
+ private static final String TRANSACTED_ARG = "transacted";
+ private static final String JMX_HOST_ARG = "jmxhost";
+ private static final String JMX_PORT_ARG = "jmxport";
+ private static final String JMX_USER_ARG = "jmxuser";
+ private static final String JMX_USER_PASSWORD_ARG = "jmxpassword";
+
+ private static final String RESULTS_FILE_DEFAULT = "results.csv";
private static final String JNDI_PROPERTIES_DEFAULT = "stress-test-client-qpid-jms-client-0-x.properties";
private static final String JNDI_CONNECTION_FACTORY_DEFAULT = "qpidConnectionFactory";
private static final String JNDI_DESTINATION_DEFAULT = "stressTestQueue";
- public static final String CONNECTIONS_DEFAULT = "1";
- public static final String SESSIONS_DEFAULT = "1";
- public static final String PRODUCERS_DEFAULT = "1";
- public static final String MESSAGE_COUNT_DEFAULT = "1";
- public static final String MESSAGE_SIZE_DEFAULT = "256";
- public static final String PERSISTENT_DEFAULT = "false";
- public static final String TIMEOUT_DEFAULT = "1000";
- public static final String TRANSACTED_DEFAULT = "false";
+ private static final String CONNECTIONS_DEFAULT = "1";
+ private static final String SESSIONS_DEFAULT = "1";
+ private static final String PRODUCERS_DEFAULT = "1";
+ private static final String MESSAGE_COUNT_DEFAULT = "1";
+ private static final String MESSAGE_SIZE_DEFAULT = "256";
+ private static final String PERSISTENT_DEFAULT = "false";
+ private static final String TIMEOUT_DEFAULT = "1000";
+ private static final String TRANSACTED_DEFAULT = "false";
private static final String JMX_HOST_DEFAULT = "localhost";
private static final String JMX_PORT_DEFAULT = "8999";
@@ -104,6 +106,7 @@ public class MemoryConsumptionTestClient
public static void main(String[] args) throws Exception
{
Map<String,String> options = new HashMap<>();
+ options.put(RESULTS_FILE_ARG, RESULTS_FILE_DEFAULT);
options.put(JNDI_PROPERTIES_ARG, JNDI_PROPERTIES_DEFAULT);
options.put(JNDI_CONNECTION_FACTORY_ARG, JNDI_CONNECTION_FACTORY_DEFAULT);
options.put(JNDI_DESTINATION_ARG, JNDI_DESTINATION_DEFAULT);
@@ -134,7 +137,7 @@ public class MemoryConsumptionTestClient
testClient.runTest(options);
}
- public static void parseArgumentsIntoConfig(Map<String, String> initialValues, String[] args)
+ private static void parseArgumentsIntoConfig(Map<String, String> initialValues, String[] args)
{
for(String arg: args)
{
@@ -154,6 +157,7 @@ public class MemoryConsumptionTestClient
private void runTest(Map<String,String> options) throws Exception
{
+ String resultsFile = options.get(RESULTS_FILE_ARG);
String jndiProperties = options.get(JNDI_PROPERTIES_ARG);
String connectionFactoryString = options.get(JNDI_CONNECTION_FACTORY_ARG);
int numConnections = Integer.parseInt(options.get(CONNECTIONS_ARG));
@@ -177,17 +181,47 @@ public class MemoryConsumptionTestClient
Map<Connection, List<Session>> connectionsAndSessions = openConnectionsAndSessions(numConnections, numSessions, transacted, conFac);
publish(numMessage, messageSize, numProducers, deliveryMode, destination, connectionsAndSessions);
MemoryStatistic memoryStatistics = collectMemoryStatistics(options);
- generateCSV(memoryStatistics, numConnections, numSessions, transacted, numMessage, messageSize, numProducers, deliveryMode);
+ generateCSV(memoryStatistics, numConnections, numSessions, transacted, numMessage, messageSize, numProducers, deliveryMode, resultsFile);
purgeQueue(conFac, queueString, receiveTimeout);
closeConnections(connectionsAndSessions.keySet());
+ System.exit(0);
}
- private void generateCSV(MemoryStatistic memoryStatistics, int numConnections, int numSessions, boolean transacted, int numMessage, int messageSize, int numProducers, int deliveryMode)
+ private void generateCSV(MemoryStatistic memoryStatistics,
+ int numConnections,
+ int numSessions,
+ boolean transacted,
+ int numMessage,
+ int messageSize,
+ int numProducers,
+ int deliveryMode,
+ final String resultsFile) throws IOException
{
- System.out.println(memoryStatistics.getHeapUsage() + "," + memoryStatistics.getDirectMemoryUsage()
- + "," + numConnections + "," + numSessions + "," + numProducers + "," + transacted + "," + numMessage
- + "," + messageSize + "," + deliveryMode + "," + toUserFriendlyName(memoryStatistics.getHeapUsage())
- + "," + toUserFriendlyName(memoryStatistics.getDirectMemoryUsage()));
+ try (FileWriter writer = new FileWriter(resultsFile))
+ {
+ writer.write(memoryStatistics.getHeapUsage()
+ + ","
+ + memoryStatistics.getDirectMemoryUsage()
+ + ","
+ + numConnections
+ + ","
+ + numSessions
+ + ","
+ + numProducers
+ + ","
+ + transacted
+ + ","
+ + numMessage
+ + ","
+ + messageSize
+ + ","
+ + deliveryMode
+ + ","
+ + toUserFriendlyName(memoryStatistics.getHeapUsage())
+ + ","
+ + toUserFriendlyName(memoryStatistics.getDirectMemoryUsage())
+ + System.lineSeparator());
+ }
}
private void publish(int numberOfMessages, int messageSize, int numberOfProducers, int deliveryMode,
@@ -227,14 +261,9 @@ public class MemoryConsumptionTestClient
for (int i= 0; i < numConnections ; i++)
{
Connection connection = conFac.createConnection();
- connection.setExceptionListener(new ExceptionListener()
- {
- @Override
- public void onException(JMSException jmse)
- {
- LOGGER.error("The sample received an exception through the ExceptionListener", jmse);
- System.exit(1);
- }
+ connection.setExceptionListener(jmse -> {
+ LOGGER.error("The sample received an exception through the ExceptionListener", jmse);
+ System.exit(1);
});
List<Session> sessions = new ArrayList<>();
@@ -268,7 +297,7 @@ public class MemoryConsumptionTestClient
private Destination ensureQueueCreated(String queueURL, ConnectionFactory connectionFactory) throws JMSException
{
Connection connection = connectionFactory.createConnection();
- Destination destination = null;
+ Destination destination;
try
{
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
@@ -284,21 +313,6 @@ public class MemoryConsumptionTestClient
return destination;
}
- private ConnectionFactory createConnectionFactory(Properties properties) throws NamingException
- {
- ConnectionFactory connectionFactory = null;
- Context ctx = new InitialContext(properties);
- try
- {
- connectionFactory = (ConnectionFactory) ctx.lookup("qpidConnectionfactory");
- }
- finally
- {
- ctx.close();
- }
- return connectionFactory;
- }
-
private void closeConnections(Collection<Connection> connections) throws JMSException, NamingException
{
for (Connection c: connections)
@@ -318,13 +332,13 @@ public class MemoryConsumptionTestClient
connection.start();
int count = 0;
- while(true)
+ while (true)
{
BytesMessage msg = (BytesMessage) consumer.receive(receiveTimeout);
if(msg == null)
{
- LOGGER.debug("Received {} message(s)", connection);
+ LOGGER.debug("Received {} message(s)", count);
break;
}
else
@@ -348,10 +362,10 @@ public class MemoryConsumptionTestClient
if (!"".equals(host) && !"".equals(port) && !"".equals(user) && !"".equals(password))
{
Map<String, Object> environment = Collections.<String, Object>singletonMap(JMXConnector.CREDENTIALS, new String[]{user, password});
- JMXConnector jmxConnector = JMXConnectorFactory.newJMXConnector(new JMXServiceURL("rmi", "", 0, "/jndi/rmi://" + host + ":" + port + "/jmxrmi"), environment);
- jmxConnector.connect();
- try
+
+ try(JMXConnector jmxConnector = JMXConnectorFactory.newJMXConnector(new JMXServiceURL("rmi", "", 0, "/jndi/rmi://" + host + ":" + port + "/jmxrmi"), environment))
{
+ jmxConnector.connect();
final MBeanServerConnection mBeanServerConnection = jmxConnector.getMBeanServerConnection();
final ObjectName memoryMBean = new ObjectName("java.lang:type=Memory");
String gcCollectorMBeanName = options.get(JMX_GARBAGE_COLLECTOR_MBEAN);
@@ -376,11 +390,6 @@ public class MemoryConsumptionTestClient
}
}
}
- finally
- {
- jmxConnector.close();
- }
-
}
return null;
}
@@ -391,36 +400,31 @@ public class MemoryConsumptionTestClient
final MemoryStatistic memoryStatistics = new MemoryStatistic();
final CountDownLatch notificationReceived = new CountDownLatch(1);
final ObjectName memoryMBean = new ObjectName("java.lang:type=Memory");
- mBeanServerConnection.addNotificationListener(gcMBean, new NotificationListener()
- {
- @Override
- public void handleNotification(Notification notification, Object handback)
+ mBeanServerConnection.addNotificationListener(gcMBean, (notification, handback) -> {
+ if (notification.getType().equals("com.sun.management.gc.notification"))
{
- if (notification.getType().equals("com.sun.management.gc.notification"))
+ CompositeData userData = (CompositeData) notification.getUserData();
+ try
{
- CompositeData userData = (CompositeData) notification.getUserData();
- try
+ Object gcAction = userData.get("gcAction");
+ Object gcCause = userData.get("gcCause");
+ if ("System.gc()".equals(gcCause) && String.valueOf(gcAction).contains("end of major GC"))
{
- Object gcAction = userData.get("gcAction");
- Object gcCause = userData.get("gcCause");
- if ("System.gc()".equals(gcCause) && String.valueOf(gcAction).contains("end of major GC"))
+ try
{
- try
- {
- collectMemoryStatistics(memoryStatistics, mBeanServerConnection, memoryMBean);
- }
- finally
- {
- notificationReceived.countDown();
- }
-
+ collectMemoryStatistics(memoryStatistics, mBeanServerConnection, memoryMBean);
}
+ finally
+ {
+ notificationReceived.countDown();
+ }
+
}
- catch (Exception e)
- {
- e.printStackTrace();
- notificationReceived.countDown();
- }
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ notificationReceived.countDown();
}
}
}, null, null);
@@ -453,13 +457,13 @@ public class MemoryConsumptionTestClient
{
return String.valueOf(value/1024) + "kB";
}
- else if (value <= 1024l * 1024l * 1024l)
+ else if (value <= 1024L * 1024L * 1024L)
{
- return String.valueOf(value/1024l/1024l) + "MB";
+ return String.valueOf(value/1024L/1024L) + "MB";
}
else
{
- return String.valueOf(value/1024l/1024l/1024l) + "GB";
+ return String.valueOf(value/1024L/1024L/1024L) + "GB";
}
}
@@ -479,22 +483,22 @@ public class MemoryConsumptionTestClient
private long heapUsage;
private long directMemoryUsage;
- public long getHeapUsage()
+ long getHeapUsage()
{
return heapUsage;
}
- public void setHeapUsage(long heapUsage)
+ void setHeapUsage(long heapUsage)
{
this.heapUsage = heapUsage;
}
- public long getDirectMemoryUsage()
+ long getDirectMemoryUsage()
{
return directMemoryUsage;
}
- public void setDirectMemoryUsage(long directMemoryUsage)
+ void setDirectMemoryUsage(long directMemoryUsage)
{
this.directMemoryUsage = directMemoryUsage;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org