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