Example #1
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();
    }
  }
Example #2
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();
      }
    }
Example #3
0
  protected void runListener() {
    ClientSession session = null;

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

      session =
          factory.createSession(
              !perfParams.isSessionTransacted(), !perfParams.isSessionTransacted());

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

      ClientConsumer consumer = session.createConsumer(perfParams.getQueueName());

      session.start();

      PerfBase.log.info("READY!!!");

      CountDownLatch countDownLatch = new CountDownLatch(1);
      consumer.setMessageHandler(new PerfListener(session, countDownLatch, perfParams));
      countDownLatch.await();
      long end = System.currentTimeMillis();
      // start was set on the first received message
      displayAverage(perfParams.getNoOfMessagesToSend(), start, end);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (factory != null) {
        try {
          factory.close();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
  }