我遇到了一个问题,我不能在我的程序中停止mnesia而不会导致应用程序挂起.
我现在正在我的erlang应用程序中进行mnesia原型设计.
在我的jaus_app.erl文件中,start()调用:
{atomic, ok} = mnesia:load_textfile("priv/mnesia_prototype.txt")
Run Code Online (Sandbox Code Playgroud)
我的stop()函数调用:
mnesia:dump_to_textfile("priv/mnesia_prototype_res.txt"),
mnesia:stop(),
Run Code Online (Sandbox Code Playgroud)
当我注释掉这些行并从erlang提示符启动和停止mnesia时,我能够干净地停止我的应用程序.
我不应该在完全成熟的erlang应用程序中使用这些原型函数吗?
肯.
Java 8 update 121 添加了部分用于反序列化的过滤器、RMI 注册表串行过滤器和 RMI DGC Serail 过滤器,请参见此处。
目前我正在尝试解组我们制作的用于 Rmi 配置的类。如果没有任何系统属性,过滤器不允许它,并且使用系统属性-Dsun.rmi.registry.registryFilter=<package_name>.**它仍然拒绝该类。日志消息是:
INFO: ObjectInputFilter REJECTED: class <package_name and class name>, arraylength: -1, nRefs: 11, depth: 4, bytes: 837, ex: n/a
Run Code Online (Sandbox Code Playgroud)
调试它是有问题的,因为我正在查找没有 Oracle 提供的源代码的代码。我可以看到检查已完成,但无法查看类的过滤器是什么以及阈值是什么:
maxdepth=value - the maximum depth of a graph
maxrefs=value - the maximum number of internal references
maxbytes=value - the maximum number of bytes in the input stream
maxarray=value - the maximum array length allowed
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以正确应用此白名单吗?
是否有标准的地方将mnesia数据库放在erlang中?目前我将它放在priv目录中.