java - 从 Oracle 触发器启动 Java Web 应用程序中的流程

标签 java oracle web-applications triggers quartz-scheduler

在后端有 Oracle 11g 的 Java Web 应用程序中,我想在 Oracle 存储过程完成其工作后启动程序(可能是 servlet)的执行。

我的想法是让该过程在完成作业时将记录插入到数据库表中,并且表上设置的触发器启动此 Java 进程。

我怎样才能实现它?如果 Quartz Scheduler 可用于完成此任务,请提供如何实现此任务的指示。如果没有,我还有什么其他选择?

最佳答案

我过去曾使用 UTL_HTTP 向 servlet 发送请求。这样做的潜在好处是它很简单,您可以轻松地在数据库中记录/利用响应消息。这需要添加 ACL 规则:http://www.oracle-base.com/articles/11g/fine-grained-access-to-network-services-11gr1.php

您还可以启动从 servlet 到数据库的连接,并在触发器中使用 DBMS_ALERT 信号:http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_alert.htm这样做的潜在好处是速度快,并且不需要 ACL 规则。

最后,您可以使用触发器在某处插入一行/更新状态列,然后简单地让 servlet 轮询一段时间,看看它是否应该执行任何操作。这是所有解决方案中最简单的,但实现起来并不那么优雅或那么有趣。

关于java - 从 Oracle 触发器启动 Java Web 应用程序中的流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14974292/

相关文章:

oracle - ODP.NET 不起作用 System.Data.OracleClient 起作用

sql - 如何在表中创建总和为 1 条 sql 的行

java - 有关GWT,Cookie和网页定向的问题

javascript - 如何访问未压缩到 nw.js 中的 nw 包中的本地资源

java - 从数据库检索的时间为 00 :00:00

java - Android 软键盘在重新打开时隐藏 EditText

Java 8 使用带有 SealedObject 的 ECIES 密码失败,并显示 'NullPointerException' - 字符串不能为空

sql - 计算整个表的哈希值的最快方法

java循环添加100的增量

java - 为什么从 https 切换到 http 时我的 session ID (JSESSIONID) 会发生变化? java jsf