Example #1
0
  protected static PerfParams getParams(final String fileName) throws Exception {
    Properties props = null;

    InputStream is = null;

    try {
      is = new FileInputStream(fileName);

      props = new Properties();

      props.load(is);
    } finally {
      if (is != null) {
        is.close();
      }
    }

    int noOfMessages = Integer.valueOf(props.getProperty("num-messages"));
    int noOfWarmupMessages = Integer.valueOf(props.getProperty("num-warmup-messages"));
    int messageSize = Integer.valueOf(props.getProperty("message-size"));
    boolean durable = Boolean.valueOf(props.getProperty("durable"));
    boolean transacted = Boolean.valueOf(props.getProperty("transacted"));
    int batchSize = Integer.valueOf(props.getProperty("batch-size"));
    boolean drainQueue = Boolean.valueOf(props.getProperty("drain-queue"));
    String queueName = props.getProperty("queue-name");
    String address = props.getProperty("address");
    int throttleRate = Integer.valueOf(props.getProperty("throttle-rate"));
    String host = props.getProperty("host");
    int port = Integer.valueOf(props.getProperty("port"));
    int tcpBufferSize = Integer.valueOf(props.getProperty("tcp-buffer"));
    boolean tcpNoDelay = Boolean.valueOf(props.getProperty("tcp-no-delay"));
    boolean preAck = Boolean.valueOf(props.getProperty("pre-ack"));
    int confirmationWindowSize = Integer.valueOf(props.getProperty("confirmation-window"));
    int producerWindowSize = Integer.valueOf(props.getProperty("producer-window"));
    int consumerWindowSize = Integer.valueOf(props.getProperty("consumer-window"));
    boolean blockOnACK = Boolean.valueOf(props.getProperty("block-ack", "false"));
    boolean blockOnPersistent = Boolean.valueOf(props.getProperty("block-persistent", "false"));
    boolean useSendAcks = Boolean.valueOf(props.getProperty("use-send-acks", "false"));

    PerfBase.log.info("num-messages: " + noOfMessages);
    PerfBase.log.info("num-warmup-messages: " + noOfWarmupMessages);
    PerfBase.log.info("message-size: " + messageSize);
    PerfBase.log.info("durable: " + durable);
    PerfBase.log.info("transacted: " + transacted);
    PerfBase.log.info("batch-size: " + batchSize);
    PerfBase.log.info("drain-queue: " + drainQueue);
    PerfBase.log.info("address: " + address);
    PerfBase.log.info("queue name: " + queueName);
    PerfBase.log.info("throttle-rate: " + throttleRate);
    PerfBase.log.info("host:" + host);
    PerfBase.log.info("port: " + port);
    PerfBase.log.info("tcp buffer: " + tcpBufferSize);
    PerfBase.log.info("tcp no delay: " + tcpNoDelay);
    PerfBase.log.info("pre-ack: " + preAck);
    PerfBase.log.info("confirmation-window: " + confirmationWindowSize);
    PerfBase.log.info("producer-window: " + producerWindowSize);
    PerfBase.log.info("consumer-window: " + consumerWindowSize);
    PerfBase.log.info("block-ack:" + blockOnACK);
    PerfBase.log.info("block-persistent:" + blockOnPersistent);
    PerfBase.log.info("use-send-acks:" + useSendAcks);

    if (useSendAcks && confirmationWindowSize < 1) {
      throw new IllegalArgumentException(
          "If you use send acks, then need to set confirmation-window-size to a positive integer");
    }

    PerfParams perfParams = new PerfParams();
    perfParams.setNoOfMessagesToSend(noOfMessages);
    perfParams.setNoOfWarmupMessages(noOfWarmupMessages);
    perfParams.setMessageSize(messageSize);
    perfParams.setDurable(durable);
    perfParams.setSessionTransacted(transacted);
    perfParams.setBatchSize(batchSize);
    perfParams.setDrainQueue(drainQueue);
    perfParams.setQueueName(queueName);
    perfParams.setAddress(address);
    perfParams.setThrottleRate(throttleRate);
    perfParams.setHost(host);
    perfParams.setPort(port);
    perfParams.setTcpBufferSize(tcpBufferSize);
    perfParams.setTcpNoDelay(tcpNoDelay);
    perfParams.setPreAck(preAck);
    perfParams.setConfirmationWindow(confirmationWindowSize);
    perfParams.setProducerWindow(producerWindowSize);
    perfParams.setConsumerWindow(consumerWindowSize);
    perfParams.setBlockOnACK(blockOnACK);
    perfParams.setBlockOnPersistent(blockOnPersistent);
    perfParams.setUseSendAcks(useSendAcks);

    return perfParams;
  }