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(); } }
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(); } }
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(); } } } }