@Test
    public void benchPublishRecycledLotOfMessages() throws InterruptedException, IOException {
        System.out.println("benchPublishRecycledLotOfMessages");
        final Connection connection = factory.newConnection();
        final ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
        for (int ii = 0; ii < 100; ii++) {
            executor.execute(new Runnable() {

                @Override
                public void run() {
                    try {
                        final SharedConnectionPublisher publisher = new SharedConnectionPublisher(connection);
                        publisher.setQueueName("TASKS");
                        publisher.prepare();
                        for (long ii = 0; ii < 1000000000L; ii++) {
                            publisher.run();

                            System.out.println("Publishing : " + ii);
                        }
                    } catch (IOException ex) {
                    }
                }
            });
        }

        executor.shutdown();
        executor.awaitTermination(1, TimeUnit.HOURS);

    }