Config file for RabbitMQ as windows service

I'm setting up an instance of RabbitMQ to run on my development workstation so as to make tests.

I would like to play with the configuration (conf regarding flow control in my case).

I've installed erlang, rabbitmq-server-3.1.1, set RABBITMQ_BASE to a certain directory, set RABBITMQ_CONFIG_FILE to c:/path/to/myconf (so it references c:\path\to\myconf.config).

Now I open my cmd and execute rabbitmq-service install. The web manager shows that my RMQ server is up and running.

But the value for disk_free_limit I've set does not match.

I don't know if the config file is not read or if I my config file has errors and is therefore ignored.

Content of my conf file:

[
    {rabbit,
        [
            {disk_free_limit, 250000000}
        ]
    }
].

Launch report in the logs (it shows that my conf file is not read):

=INFO REPORT==== 12-Jun-2013::17:06:44 ===
node           : rabbit@DEV-WORKSTATION
home dir       : C:\Windows
config file(s) : (none)
cookie hash    : 2SazL+DgWDMqrHlr4w8R8A==
log            : c:/rabbitmq_server-3.1.1/RabbitMQ/log/DEV-WORKSTATION.log
sasl log       : c:/rabbitmq_server-3.1.1/RabbitMQ/log/[email protected]
database dir   : c:/rabbitmq_server-3.1.1/RabbitMQ/db/rabbit@DEV-WORKSTATION-mnesia

Thanks for your help.


Solution 1:

I had the same issue and struggled to figure it out. I think the options provided in the start menu are doing things incorrectly. Once I ran from the command line it worked well.

set the RABBITMQ_CONFIG_FILE to your config file 1. Add your config file 2. rabbitmq-service stop 3. rabbitmq-service remove 4. rabbitmq-service install

Then it was able to pickup the config file

Solution 2:

Make sure you set the RABBITMQ_CONFIG_FILE environment variable in the correct place. It needs to be in the System variables section in Control Panel > System > Advanced... > Environment Variables.

Note that all that the RabbitMQ Service start script does is:

if "!RABBITMQ_CONFIG_FILE!"=="" (
    set RABBITMQ_CONFIG_FILE=!RABBITMQ_BASE!\rabbitmq
)

which simply checks if the variable is set and sets it to the default if it isn't set. It then goes on to check if the file, appending a .config extension, exists:

if exist "!RABBITMQ_CONFIG_FILE!.config" (
    set RABBITMQ_CONFIG_ARG=-config "!RABBITMQ_CONFIG_FILE!"
) else (
    set RABBITMQ_CONFIG_ARG=
)

(I can't really say that I recommend doing this, but, if you really want to, you can change c:/rabbitmq_server-3.1.1/RabbitMQ/sbin/rabbitmq-service.bat so the line above uses the location that you want as the default.)