我已经实现了mnesia系统事件的处理程序,如mnesia_overload,inconsistent_database和mnesia_fatal。现在我想测试这些处理程序。我可以创建事件并手动发送它们,但我更喜欢mnesia发送它们,因为这样测试用例会更真实的,他们可以发现我对mnesia系统事件文档的误解。是否有可能人为触发这些事件以进行测试?
mnesia_overload
inconsistent_database
mnesia_fatal
rm5edbpk1#
实现mnesia_overload的一种方法是通过同时向mnesia表中写入巨大的流量(可以使用spawn-ed进程内的表插入来模拟),同时将-mnesia dump_log_write_threshold参数设置为非常低的值。您可能会在stdout ** WARNING ** Mnesia is overloaded: {dump_log,write_threshold}上收到类似以下内容的消息。对于mnesia_fatal,可以尝试删除mnesiadata目录中的所有文件。
spawn
-mnesia dump_log_write_threshold
** WARNING ** Mnesia is overloaded: {dump_log,write_threshold}
1条答案
按热度按时间rm5edbpk1#
实现
mnesia_overload
的一种方法是通过同时向mnesia表中写入巨大的流量(可以使用spawn
-ed进程内的表插入来模拟),同时将-mnesia dump_log_write_threshold
参数设置为非常低的值。您可能会在stdout
** WARNING ** Mnesia is overloaded: {dump_log,write_threshold}
上收到类似以下内容的消息。对于
mnesia_fatal
,可以尝试删除mnesiadata目录中的所有文件。