[jboss-cvs] JBoss Messaging SVN: r4345 - in trunk: examples/jms/src/org/jboss/jms/example and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu May 29 12:30:31 EDT 2008
Author: timfox
Date: 2008-05-29 12:30:30 -0400 (Thu, 29 May 2008)
New Revision: 4345
Modified:
trunk/examples/jms/build.xml
trunk/examples/jms/src/org/jboss/jms/example/PerfExample.java
trunk/examples/jms/src/org/jboss/jms/util/PerfParams.java
trunk/src/config/jbm-jndi.xml
Log:
Tweaks
Modified: trunk/examples/jms/build.xml
===================================================================
--- trunk/examples/jms/build.xml 2008-05-29 16:19:44 UTC (rev 4344)
+++ trunk/examples/jms/build.xml 2008-05-29 16:30:30 UTC (rev 4345)
@@ -39,6 +39,7 @@
<property name="src.dir" value="src"/>
<property name="config.dir" value="config"/>
<property name="build.dir" value="build"/>
+ <property name="other.system.client.dir" value="other-system-client-dir"/>
<!--perf props-->
<property name="message.count" value="200000"/>
@@ -50,9 +51,16 @@
<property name="sess.ackmode" value="DUPS_OK"/>
<property name="sess.trans.size" value="1000"/>
<property name="drain.queue" value="true"/>
- <property name="queue.lookup" value="/queue/testPerfQueue"/>
- <property name="cf.lookup" value="/ConnectionFactory"/>
+ <property name="queue.lookup" value="MyQueue"/>
+ <property name="cf.lookup" value="ConnectionFactory"/>
+ <property name="throttle.rate" value="-1"/>
+ <path id="other.system.client.classpath">
+ <fileset dir="${other.system.client.dir}">
+ <include name="**/*.jar"/>
+ </fileset>
+ </path>
+
<path id="compile.classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
@@ -61,6 +69,7 @@
</path>
<path id="runtime.classpath">
+ <path refid="other.system.client.classpath"/>
<path refid="compile.classpath"/>
<pathelement location="${build.dir}"/>
<pathelement location="config"/>
@@ -116,18 +125,19 @@
***********************************************************************************
* available parameters (-Dmessage.count=1000)
*
-* parameter description default current
-* --------- ----------- ------- -------
-* message.count number of messages 200000 ${message.count}
-* message.warmup.count number of messages to warm up 10000 ${message.warmup.count}
-* message.size message size (in bytes) 1024 ${message.size}
-* delivery.mode PERSISTENT/NON_PERSISTENT NON_PERSISTENT ${delivery.mode}
-* sess.trans Is session transacted false ${sess.trans}
-* sess.trans.size batch size to commit 1000 ${sess.trans.size}
-* sess.ackmode Ack mode DUPS_OK/AUTO_ACK DUPS_OK ${sess.ackmode}
-* drain.queue drain the queue (listener only) true ${drain.queue}
-* queue.lookup Queue JNDI lookup /queue/testPerfQueue ${queue.lookup}
-* cf.lookup ConnectionFactory JNDI lookup /ConnectionFactory ${cf.lookup}
+* parameter current (default) description
+* --------- ----------------- -----------
+* message.count ${message.count} (200000) number of messages
+* message.size ${message.size} (1000) size of message in bytes
+* message.warmup.count ${message.warmup.count} (10000) number of messages to warm up
+* delivery.mode ${delivery.mode} (NON_PERSISTENT) PERSISTENT/NON_PERSISTENT
+* sess.trans ${sess.trans} (false) Is session transacted
+* sess.trans.size ${sess.trans.size} (1000) batch size to commit
+* sess.ackmode ${sess.ackmode} (DUPS_OK) Ack mode DUPS_OK/AUTO_ACK
+* drain.queue ${drain.queue} (true) drain the queue (listener only)
+* queue.lookup ${queue.lookup} (MyQueue) Queue JNDI lookup
+* cf.lookup ${cf.lookup} (ConnectionFactory) ConnectionFactory JNDI lookup
+* throttle.rate ${throttle.rate} (-1) The max rate to throttle senders to in msgs/sec, -1 = no throttle
***********************************************************************************
</echo>
</target>
@@ -152,6 +162,7 @@
<arg value="${drain.queue}"/>
<arg value="${queue.lookup}"/>
<arg value="${cf.lookup}"/>
+ <arg value="${throttle.rate}"/>
</java>
</target>
@@ -175,6 +186,7 @@
<arg value="false"/>
<arg value="${queue.lookup}"/>
<arg value="${cf.lookup}"/>
+ <arg value="${throttle.rate}"/>
</java>
</target>
Modified: trunk/examples/jms/src/org/jboss/jms/example/PerfExample.java
===================================================================
--- trunk/examples/jms/src/org/jboss/jms/example/PerfExample.java 2008-05-29 16:19:44 UTC (rev 4344)
+++ trunk/examples/jms/src/org/jboss/jms/example/PerfExample.java 2008-05-29 16:30:30 UTC (rev 4345)
@@ -39,6 +39,7 @@
import org.jboss.jms.util.PerfParams;
import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.util.TokenBucketLimiter;
/**
* A simple example that can be used to gather basic performance measurements.
@@ -76,6 +77,7 @@
boolean drainQueue = Boolean.parseBoolean(args[8]);
String queueLookup = args[9];
String connectionFactoryLookup = args[10];
+ int throttleRate = Integer.parseInt(args[11]);
PerfParams perfParams = new PerfParams();
perfParams.setNoOfMessagesToSend(noOfMessages);
@@ -88,6 +90,7 @@
perfParams.setDrainQueue(drainQueue);
perfParams.setQueueLookup(queueLookup);
perfParams.setConnectionFactoryLookup(connectionFactoryLookup);
+ perfParams.setThrottleRate(throttleRate);
if (args[0].equalsIgnoreCase("-l"))
{
@@ -124,10 +127,14 @@
init(perfParams.isSessionTransacted(), perfParams.getQueueLookup(), perfParams.getConnectionFactoryLookup(), perfParams.isDupsOk());
start = System.currentTimeMillis();
log.info("warming up by sending " + perfParams.getNoOfWarmupMessages() + " messages");
- sendMessages(perfParams.getNoOfWarmupMessages(), perfParams.getMessageSize(), perfParams.getTransactionBatchSize(), perfParams.getDeliveryMode(), perfParams.isSessionTransacted(), false);
+ sendMessages(perfParams.getNoOfWarmupMessages(), perfParams.getTransactionBatchSize(),
+ perfParams.getDeliveryMode(), perfParams.isSessionTransacted(),
+ false, perfParams.getThrottleRate(), perfParams.getMessageSize());
log.info("warmed up");
start = System.currentTimeMillis();
- sendMessages(perfParams.getNoOfMessagesToSend(), perfParams.getMessageSize(), perfParams.getTransactionBatchSize(), perfParams.getDeliveryMode(), perfParams.isSessionTransacted(), true);
+ sendMessages(perfParams.getNoOfMessagesToSend(), perfParams.getTransactionBatchSize(),
+ perfParams.getDeliveryMode(), perfParams.isSessionTransacted(),
+ true, perfParams.getThrottleRate(), perfParams.getMessageSize());
long end = System.currentTimeMillis();
displayAverage(perfParams.getNoOfMessagesToSend(), start, end);
}
@@ -151,7 +158,9 @@
}
}
- private void sendMessages(int numberOfMessages, int messageSize, int txBatchSize, int deliveryMode, boolean transacted, boolean display) throws JMSException
+ private void sendMessages(final int numberOfMessages, final int txBatchSize, final int deliveryMode,
+ final boolean transacted, final boolean display, final int throttleRate,
+ final int messageSize) throws JMSException
{
MessageProducer producer = session.createProducer(queue);
producer.setDisableMessageID(true);
@@ -161,7 +170,9 @@
byte[] payload = new byte[messageSize];
bytesMessage.writeBytes(payload);
- final int modulo = numberOfMessages / 10;
+ final int modulo = 1000;
+
+ TokenBucketLimiter tbl = throttleRate != -1 ? new TokenBucketLimiter(throttleRate, false): null;
boolean committed = false;
for (int i = 1; i <= numberOfMessages; i++)
@@ -184,6 +195,11 @@
double duration = (1.0 * System.currentTimeMillis() - start) / 1000;
log.info(String.format("sent %6d messages in %2.2fs", i, duration));
}
+
+ if (tbl != null)
+ {
+ tbl.limit();
+ }
}
if (transacted && !committed)
{
@@ -266,7 +282,7 @@
this.countDownLatch = countDownLatch;
this.perfParams = perfParams;
warmingUp = perfParams.getNoOfWarmupMessages() > 0;
- this.modulo = perfParams.getNoOfMessagesToSend() / 10;
+ this.modulo = 1000;
}
public void onMessage(final Message message)
Modified: trunk/examples/jms/src/org/jboss/jms/util/PerfParams.java
===================================================================
--- trunk/examples/jms/src/org/jboss/jms/util/PerfParams.java 2008-05-29 16:19:44 UTC (rev 4344)
+++ trunk/examples/jms/src/org/jboss/jms/util/PerfParams.java 2008-05-29 16:30:30 UTC (rev 4345)
@@ -44,13 +44,14 @@
private String queueLookup = "/queue/testPerfQueue";
private String connectionFactoryLookup = "/ConnectionFactory";
private boolean dupsOk;
+ private int throttleRate;
public int getNoOfMessagesToSend()
{
return noOfMessagesToSend;
}
- public void setNoOfMessagesToSend(int noOfMessagesToSend)
+ public void setNoOfMessagesToSend(final int noOfMessagesToSend)
{
this.noOfMessagesToSend = noOfMessagesToSend;
}
@@ -60,7 +61,7 @@
return noOfWarmupMessages;
}
- public void setNoOfWarmupMessages(int noOfWarmupMessages)
+ public void setNoOfWarmupMessages(final int noOfWarmupMessages)
{
this.noOfWarmupMessages = noOfWarmupMessages;
}
@@ -80,7 +81,7 @@
return deliveryMode;
}
- public void setDeliveryMode(int deliveryMode)
+ public void setDeliveryMode(final int deliveryMode)
{
this.deliveryMode = deliveryMode;
}
@@ -90,7 +91,7 @@
return isSessionTransacted;
}
- public void setSessionTransacted(boolean sessionTransacted)
+ public void setSessionTransacted(final boolean sessionTransacted)
{
isSessionTransacted = sessionTransacted;
}
@@ -100,7 +101,7 @@
return transactionBatchSize;
}
- public void setTransactionBatchSize(int transactionBatchSize)
+ public void setTransactionBatchSize(final int transactionBatchSize)
{
this.transactionBatchSize = transactionBatchSize;
}
@@ -110,7 +111,7 @@
return drainQueue;
}
- public void setDrainQueue(boolean drainQueue)
+ public void setDrainQueue(final boolean drainQueue)
{
this.drainQueue = drainQueue;
}
@@ -120,7 +121,7 @@
return queueLookup;
}
- public void setQueueLookup(String queueLookup)
+ public void setQueueLookup(final String queueLookup)
{
this.queueLookup = queueLookup;
}
@@ -130,7 +131,7 @@
return connectionFactoryLookup;
}
- public void setConnectionFactoryLookup(String connectionFactoryLookup)
+ public void setConnectionFactoryLookup(final String connectionFactoryLookup)
{
this.connectionFactoryLookup = connectionFactoryLookup;
}
@@ -140,19 +141,29 @@
return dupsOk;
}
- public void setDupsOk(boolean dupsOk)
+ public void setDupsOk(final boolean dupsOk)
{
this.dupsOk = dupsOk;
}
+
+ public int getThrottleRate()
+ {
+ return throttleRate;
+ }
+
+ public void setThrottleRate(final int throttleRate)
+ {
+ this.throttleRate = throttleRate;
+ }
public String toString()
{
- return "message to send = " + noOfMessagesToSend + ", messages to warm up = " + noOfWarmupMessages + ", message size = " + messageSize +
- ", DeliveryMode = " + (deliveryMode == DeliveryMode.PERSISTENT ? "PERSISTENT" : "NON_PERSISTENT") +
- ", session transacted = " + isSessionTransacted + (isSessionTransacted ? ", transaction batch size = " + transactionBatchSize : "") +
- ", drain queue = " + drainQueue +
- ", queue lookup = " + queueLookup + ", connection factory lookup = " + connectionFactoryLookup +
- ", Session Acknowledge mode = " + (dupsOk ? "DUPS_OK_ACKNOWLEDGE" : "AUTO_ACKNOWLEDGE");
+ return "message to send = " + noOfMessagesToSend + ", DeliveryMode = " +
+ (deliveryMode == DeliveryMode.PERSISTENT ? "PERSISTENT" : "NON_PERSISTENT") + ", session transacted = " + isSessionTransacted +
+ (isSessionTransacted ? ", transaction batch size = " + transactionBatchSize : "") + ", drain queue = " + drainQueue +
+ ", queue lookup = " + queueLookup + ", connection factory lookup = " + connectionFactoryLookup +
+ ", Session Acknowledge mode = " + (dupsOk ? "DUPS_OK_ACKNOWLEDGE" : "AUTO_ACKNOWLEDGE") +
+ ", Throttle rate = " + throttleRate;
}
Modified: trunk/src/config/jbm-jndi.xml
===================================================================
--- trunk/src/config/jbm-jndi.xml 2008-05-29 16:19:44 UTC (rev 4344)
+++ trunk/src/config/jbm-jndi.xml 2008-05-29 16:30:30 UTC (rev 4345)
@@ -5,6 +5,7 @@
</connection-factory>
<connection-factory name="ConnectionFactory">
+ <entry name="ConnectionFactory"/>
<entry name="/ConnectionFactory"/>
<entry name="/XAConnectionFactory"/>
<entry name="java:/ConnectionFactory"/>
@@ -46,6 +47,9 @@
</connection-factory>
+ <queue name="MyQueue">
+ <entry name="MyQueue"/>
+ </queue>
<queue name="DLQ">
<entry name="/queue/DLQ"/>
</queue>
More information about the jboss-cvs-commits
mailing list