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