mnesia:activity/2は飛行機本
1> mnesia:transaction(fun() -> mnesia:read({sample, foo}) end).
{atomic,[{sample, foo, data_of_foo}]}
2> mnesia:activity(transaction, fun() -> mnesia:read({sample, foo}) end).
[{sample, foo, data_of_foo}]
mnesia:activity/2にするときは、
・第1引数に「transaction」を指定する。
・返ってくる値は「 {atomic, VALUE} 」ではなく、「 VALUE 」となる。
の2点でなんとかなりそう。
トランザクション以外の処理させ方もいろいろ使えるみたい。ドキュメントはこちら>mnesia:activity/2
ちなみに、存在しないテーブル名を指定するなどして失敗すると、mnesia:transaction/1だったら{aborted, Reason}だったのが、mnesia:activity/2だと、いきなりexitしてくるんですね。気をつけます。