我正在尝试开发一个应用程序,在退出之前必须运行一个新的守护进程来执行类的主要方法。
我要求在主应用程序退出后,守护进程必须仍在执行中。
它是在 Oracle DB 上运行的 Java 存储过程,因此我无法使用 Runtime.exec,因为我无法从操作系统 Shell 中找到 java 类,因为它是在数据库结构而不是文件系统文件中定义的。
特别是期望的行为应该是在远程数据库会话期间我应该能够
调用运行守护进程并退出的第一个 java 方法,使守护进程处于执行状态
然后(让守护进程启动和会话控制,因为最后一次调用终止)因此
调用与守护进程通信的方法(最终在通信结束时退出)
这可能吗?
谢谢
更新
我的确切需要是创建一个大文本文件并将其加载(达到最佳性能)到数据库中,假设主机没有来自使用 JDBC-11G oci 驱动程序连接到 Oracle 11gR1 DB 的 Java JDK6 客户端应用程序的文件传输服务。
我已经通过调用将作为输入给出的 LOB(大型数据库对象)存储到文件中的过程开发了一个可行的解决方案,但是这种方法使用了太多我想避免的中间结构。
所以我考虑通过第一次调用在数据库上创建一个 ServerSocket,然后连接到它,并通过直接和快速的通信建立数据传输。
我遇到的问题是因为创建 ServerSocket 的 java 程序无法退出并留下一个正在执行的线程/进程在该 Socket 和客户端上侦听,以确保 ServerSocket 已创建,无法运行单独的线程来处理剩下的工作。
希望清楚