Repository: activemq-artemis Updated Branches: refs/heads/master dc3b01036 -> bfaaae8c9
modifying perf example to accept amqp connections as well Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/0354944e Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/0354944e Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/0354944e Branch: refs/heads/master Commit: 0354944e8f6f261a405248ac497c77e50d3b24d2 Parents: dc3b010 Author: Clebert Suconic <clebertsuco...@apache.org> Authored: Mon Sep 21 17:45:00 2015 -0400 Committer: Clebert Suconic <clebertsuco...@apache.org> Committed: Mon Sep 21 17:46:50 2015 -0400 ---------------------------------------------------------------------- examples/features/perf/perf/pom.xml | 6 ++++ examples/features/perf/perf/readme.html | 6 ++-- .../activemq/artemis/jms/example/PerfBase.java | 22 +++++++++++--- .../artemis/jms/example/PerfParams.java | 32 +++++++++++++++++--- .../perf/src/main/resources/perf.properties | 18 +++++++---- 5 files changed, 66 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/0354944e/examples/features/perf/perf/pom.xml ---------------------------------------------------------------------- diff --git a/examples/features/perf/perf/pom.xml b/examples/features/perf/perf/pom.xml index d5307e6..d67d47d 100644 --- a/examples/features/perf/perf/pom.xml +++ b/examples/features/perf/perf/pom.xml @@ -57,6 +57,12 @@ under the License. <artifactId>artemis-cli</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.apache.qpid</groupId> + <artifactId>qpid-jms-client</artifactId> + <version>0.5.0</version> + </dependency> + </dependencies> <profiles> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/0354944e/examples/features/perf/perf/readme.html ---------------------------------------------------------------------- diff --git a/examples/features/perf/perf/readme.html b/examples/features/perf/perf/readme.html index aa42266..ab2d50e 100644 --- a/examples/features/perf/perf/readme.html +++ b/examples/features/perf/perf/readme.html @@ -27,11 +27,11 @@ under the License. <body onload="prettyPrint()"> <h1>JMS Simple Performance</h1> - <p>To start the server run <code>mvn verify -Pexample</code></p> + <p>To start the server run <code>mvn verify -Pserver</code></p> - <p>To start the listener run <code>mvn -Plistener package</code></p> + <p>To start the listener run <code>mvn -Plistener verify</code></p> - <p>To start the sender run <code>mvn -Psender package</code></p> + <p>To start the sender run <code>mvn -Psender verify</code></p> <p>To configure the clients simply edit the <code>perf.properties</code> or <code>client.jndi.properties</code> in the <code>src/main/resources</code> directory</p> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/0354944e/examples/features/perf/perf/src/main/java/org/apache/activemq/artemis/jms/example/PerfBase.java ---------------------------------------------------------------------- diff --git a/examples/features/perf/perf/src/main/java/org/apache/activemq/artemis/jms/example/PerfBase.java b/examples/features/perf/perf/src/main/java/org/apache/activemq/artemis/jms/example/PerfBase.java index 8fcafa4..006d495 100644 --- a/examples/features/perf/perf/src/main/java/org/apache/activemq/artemis/jms/example/PerfBase.java +++ b/examples/features/perf/perf/src/main/java/org/apache/activemq/artemis/jms/example/PerfBase.java @@ -37,6 +37,7 @@ import java.util.logging.Logger; import org.apache.activemq.artemis.utils.TokenBucketLimiter; import org.apache.activemq.artemis.utils.TokenBucketLimiterImpl; +import org.apache.qpid.jms.JmsConnectionFactory; public abstract class PerfBase { @@ -99,7 +100,7 @@ public abstract class PerfBase { boolean dupsOK = Boolean.valueOf(props.getProperty("dups-ok-acknowlege")); boolean disableMessageID = Boolean.valueOf(props.getProperty("disable-message-id")); boolean disableTimestamp = Boolean.valueOf(props.getProperty("disable-message-timestamp")); - boolean openwire = Boolean.valueOf(props.getProperty("openwire", "true")); + String clientLibrary = props.getProperty("client-library", "core"); String uri = props.getProperty("server-uri", "tcp://localhost:61616"); PerfBase.log.info("num-messages: " + noOfMessages); @@ -115,7 +116,7 @@ public abstract class PerfBase { PerfBase.log.info("disable-message-timestamp: " + disableTimestamp); PerfBase.log.info("dups-ok-acknowledge: " + dupsOK); PerfBase.log.info("server-uri: " + uri); - PerfBase.log.info("openwire:" + openwire); + PerfBase.log.info("client-library:" + clientLibrary); PerfParams perfParams = new PerfParams(); perfParams.setNoOfMessagesToSend(noOfMessages); @@ -130,7 +131,7 @@ public abstract class PerfBase { perfParams.setDisableMessageID(disableMessageID); perfParams.setDisableTimestamp(disableTimestamp); perfParams.setDupsOK(dupsOK); - perfParams.setOpenwire(openwire); + perfParams.setLibraryType(clientLibrary); perfParams.setUri(uri); return perfParams; @@ -160,7 +161,7 @@ public abstract class PerfBase { connection = factory.createConnection(); } - else { + else if (perfParams.isCore()) { factory = new org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory(perfParams.getUri()); destination = new org.apache.activemq.artemis.jms.client.ActiveMQQueue(perfParams.getDestinationName()); @@ -168,6 +169,19 @@ public abstract class PerfBase { connection = factory.createConnection(); } + else if (perfParams.isAMQP()) { + factory = new JmsConnectionFactory(perfParams.getUri()); + + destination = new org.apache.activemq.artemis.jms.client.ActiveMQQueue(perfParams.getDestinationName()); + + connection = factory.createConnection(); + + Session sessionX = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + + destination = sessionX.createQueue(perfParams.getDestinationName()); + + sessionX.close(); + } session = connection.createSession(perfParams.isSessionTransacted(), perfParams.isDupsOK() ? Session.DUPS_OK_ACKNOWLEDGE : Session.AUTO_ACKNOWLEDGE); } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/0354944e/examples/features/perf/perf/src/main/java/org/apache/activemq/artemis/jms/example/PerfParams.java ---------------------------------------------------------------------- diff --git a/examples/features/perf/perf/src/main/java/org/apache/activemq/artemis/jms/example/PerfParams.java b/examples/features/perf/perf/src/main/java/org/apache/activemq/artemis/jms/example/PerfParams.java index ce78ffd..3e192c0 100644 --- a/examples/features/perf/perf/src/main/java/org/apache/activemq/artemis/jms/example/PerfParams.java +++ b/examples/features/perf/perf/src/main/java/org/apache/activemq/artemis/jms/example/PerfParams.java @@ -25,6 +25,12 @@ public class PerfParams implements Serializable { private static final long serialVersionUID = -4336539641012356002L; + enum ClientLibraryType { + core, openwire, amqp + } + + private ClientLibraryType libraryType; + private int noOfMessagesToSend = 1000; private int noOfWarmupMessages; @@ -47,8 +53,6 @@ public class PerfParams implements Serializable { private boolean disableTimestamp; - private boolean openwire; - private boolean dupsOK; private String uri; @@ -158,10 +162,28 @@ public class PerfParams implements Serializable { } public boolean isOpenwire() { - return openwire; + return libraryType.equals(ClientLibraryType.openwire); + } + + public boolean isAMQP() { + return libraryType.equals(ClientLibraryType.amqp); + } + + public boolean isCore() { + return libraryType.equals(ClientLibraryType.core); + } + + public ClientLibraryType getLibraryType() { + return libraryType; } - public void setOpenwire(boolean openwire) { - this.openwire = openwire; + public void setLibraryType(ClientLibraryType libraryType) { + this.libraryType = libraryType; } + + + public void setLibraryType(String libraryType) { + this.libraryType = ClientLibraryType.valueOf(libraryType); + } + } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/0354944e/examples/features/perf/perf/src/main/resources/perf.properties ---------------------------------------------------------------------- diff --git a/examples/features/perf/perf/src/main/resources/perf.properties b/examples/features/perf/perf/src/main/resources/perf.properties index 7a0242a..db58fcd 100644 --- a/examples/features/perf/perf/src/main/resources/perf.properties +++ b/examples/features/perf/perf/src/main/resources/perf.properties @@ -15,17 +15,23 @@ # specific language governing permissions and limitations # under the License. -num-messages=25000 +num-messages=250000 num-warmup-messages=1000 message-size=1024 durable=true transacted=false -batch-size=1000 -drain-queue=false -destination-name=perfQueue +batch-size=100 +drain-queue=true +destination-name=jms.queue.perfQueue throttle-rate=-1 dups-ok-acknowledge=false disable-message-id=true disable-message-timestamp=true -server-uri=tcp://localhost:61616 -openwire=false + +server-uri=amqp://localhost:61616 +#server-uri=tcp://localhost:61616 + +#valid ones are openwire,core,amqp +client-library=amqp +#client-library=openwire +#client-library=core