summaryrefslogtreecommitdiff
path: root/src/rabbit.erl
diff options
context:
space:
mode:
authorMarek Majkowski <majek@lshift.net>2009-11-06 14:06:38 +0000
committerMarek Majkowski <majek@lshift.net>2009-11-06 14:06:38 +0000
commit66ce4890b83be5bb02799cfd447fe2279c30911f (patch)
tree96794f76de2dfd6699ed158dea644e61bad771f2 /src/rabbit.erl
parent68d168857188d58f9a31c8c58d16825cc01d16c1 (diff)
parentc1e3115d1388121c3563f1ab9bd83f57e2e8395a (diff)
downloadrabbitmq-server-git-66ce4890b83be5bb02799cfd447fe2279c30911f.tar.gz
Merged default into bug21742.
Diffstat (limited to 'src/rabbit.erl')
-rw-r--r--src/rabbit.erl21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 01e06db342..b17711b473 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -140,8 +140,16 @@ start(normal, []) ->
ok = rabbit_binary_generator:
check_empty_content_body_frame_size(),
- {ok, MemoryAlarms} = application:get_env(memory_alarms),
- ok = rabbit_alarm:start(MemoryAlarms),
+ ok = rabbit_alarm:start(),
+ MemoryWatermark =
+ application:get_env(os_mon, vm_memory_high_watermark),
+ ok = case MemoryWatermark of
+ {ok, Float} when Float == 0 -> ok;
+ {ok, Float} -> start_child(vm_memory_monitor, [Float]);
+ undefined ->
+ throw({undefined, os_mon,
+ vm_memory_high_watermark, settings})
+ end,
ok = rabbit_amqqueue:start(),
@@ -203,6 +211,10 @@ start(normal, []) ->
stop(_State) ->
terminated_ok = error_logger:delete_report_handler(rabbit_error_logger),
ok = rabbit_alarm:stop(),
+ ok = case rabbit_mnesia:is_clustered() of
+ true -> rabbit_amqqueue:on_node_down(node());
+ false -> rabbit_mnesia:empty_ram_only_tables()
+ end,
ok.
%---------------------------------------------------------------------------
@@ -265,8 +277,11 @@ print_banner() ->
io:nl().
start_child(Mod) ->
+ start_child(Mod, []).
+
+start_child(Mod, Args) ->
{ok,_} = supervisor:start_child(rabbit_sup,
- {Mod, {Mod, start_link, []},
+ {Mod, {Mod, start_link, Args},
transient, 100, worker, [Mod]}),
ok.