execute processMsgQueue on connected callback in separate thread because producer.send() will execute in Producer worker thread and can block messages producing
transportService.getCallbackExecutor().execute(()->processMsgQueue(ctx));//this callback will execute in Producer worker thread and hard or blocking work have to be submitted to the separate thread.