示例#1
0
 public PerfListener(
     final ClientSession session,
     final CountDownLatch countDownLatch,
     final PerfParams perfParams) {
   this.session = session;
   this.countDownLatch = countDownLatch;
   this.perfParams = perfParams;
   warmingUp = perfParams.getNoOfWarmupMessages() > 0;
   modulo = 2000;
 }
示例#2
0
  protected void runSender() {
    try {
      PerfBase.log.info("params = " + perfParams);

      init(perfParams.isSessionTransacted(), perfParams.getQueueName());

      if (perfParams.isDrainQueue()) {
        drainQueue();
      }

      start = System.currentTimeMillis();
      PerfBase.log.info(
          "warming up by sending " + perfParams.getNoOfWarmupMessages() + " messages");
      sendMessages(
          perfParams.getNoOfWarmupMessages(),
          perfParams.getBatchSize(),
          perfParams.isDurable(),
          perfParams.isSessionTransacted(),
          false,
          perfParams.getThrottleRate(),
          perfParams.getMessageSize(),
          perfParams.isUseSendAcks());
      PerfBase.log.info("warmed up");
      start = System.currentTimeMillis();
      sendMessages(
          perfParams.getNoOfMessagesToSend(),
          perfParams.getBatchSize(),
          perfParams.isDurable(),
          perfParams.isSessionTransacted(),
          true,
          perfParams.getThrottleRate(),
          perfParams.getMessageSize(),
          perfParams.isUseSendAcks());
      long end = System.currentTimeMillis();
      displayAverage(perfParams.getNoOfMessagesToSend(), start, end);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
示例#3
0
    public void onMessage(final ClientMessage message) {
      try {
        if (warmingUp) {
          boolean committed = checkCommit(session);
          if (count.incrementAndGet() == perfParams.getNoOfWarmupMessages()) {
            PerfBase.log.info("warmed up after receiving " + count.longValue() + " msgs");
            if (!committed) {
              checkCommit(session);
            }
            warmingUp = false;
          }
          return;
        }

        if (!started) {
          started = true;
          // reset count to take stats
          count.set(0);
          start = System.currentTimeMillis();
        }

        message.acknowledge();

        long currentCount = count.incrementAndGet();
        boolean committed = checkCommit(session);
        if (currentCount == perfParams.getNoOfMessagesToSend()) {
          if (!committed) {
            checkCommit(session);
          }
          countDownLatch.countDown();
        }
        if (currentCount % modulo == 0) {
          double duration = (1.0 * System.currentTimeMillis() - start) / 1000;
          PerfBase.log.info(
              String.format("received %6d messages in %2.2fs", currentCount, duration));
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
    }