diff options
| author | Francesco Mazzoli <francesco@rabbitmq.com> | 2012-05-09 17:46:43 +0100 |
|---|---|---|
| committer | Francesco Mazzoli <francesco@rabbitmq.com> | 2012-05-09 17:46:43 +0100 |
| commit | f01e52c4573fcf86ca57d0c38af26c386db869f3 (patch) | |
| tree | 96692836b21b36ba08dc794de00d4f3bc5aea348 /src | |
| parent | 46ba4d4f986b325625d6b1853fe9eb046fe52a52 (diff) | |
| download | rabbitmq-server-git-f01e52c4573fcf86ca57d0c38af26c386db869f3.tar.gz | |
dumping schema table on changes in ram nodes
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_mnesia.erl | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl index a120b9a33c..08e91e27b6 100644 --- a/src/rabbit_mnesia.erl +++ b/src/rabbit_mnesia.erl @@ -97,6 +97,7 @@ status() -> init() -> ensure_mnesia_running(), ensure_mnesia_dir(), + monitor_schema(), Nodes = read_cluster_nodes_config(), ok = init_db(Nodes, should_be_disc_node(Nodes)), %% We intuitively expect the global name server to be synced when @@ -830,3 +831,21 @@ start_mnesia() -> stop_mnesia() -> stopped = mnesia:stop(), ensure_mnesia_not_running(). + +handle_schema_events() -> + receive + {mnesia_table_event, _Event} -> + case is_disc_node() of + true -> ok; + false -> mnesia:dump_tables([schema]) + end, + handle_schema_events(); + _ -> + exit(non_event) + end. + +monitor_schema() -> + spawn(fun () -> mnesia:subscribe({table, schema, simple}), + handle_schema_events() + end), + ok. |
