我有一个 dotnet 进程,它通过对非托管 dll 的调用与 Java 进程进行通信。
在某些情况下,Java 进程似乎正在崩溃并导致我的 dotnet 进程崩溃。没有引发异常,该过程就死了。崩溃时,java 正在创建一个名称为“hs_err_pid3228”等的日志文件。
没有从提供非托管 dll 和 java 进程的供应商那里得到任何满意,我只好试图减轻问题,这需要确保调用 java 进程,如果它们崩溃,不要取消我的进程.
阅读了各种文章后,appdomains 似乎是一个可能使用的候选者 - 我的理论是我可以通过一些工作将调用 java 进程的功能分开并在单独的 appdomain 中运行它,如果没有捕获 appdomain,这将有望让我下降,至少检测到它已经发生并重新启动该功能。
有没有人遇到过类似的问题?对于那些有更多 appdomain 经验的人来说,这种方法是否合理?
为了让它更有趣,Java 崩溃并不是真正可重现的——它看起来很随机,我仍在与如何测试分离到 appdomain 中的方法作斗争