java - 如何通过 MySQL 触发器执行外部 java 函数?

标签 java mysql triggers function-calls

我在远程机器上有一个数据库。假设 db1 位于 http://example.com .我的意思是这个数据库不在我的本地机器上,但我可以通过 URL 连接它。

我希望每当 db1.table1 上发生一些更新时,触发器都会调用本地计算机上 JAVA 应用程序中的函数来执行一些处理。

我找到了解决方案 here它需要在您拥有 MySQL 服务器的同一台机器上具有 java 功能,因为这一行:

SET result = sys_exec('/path/to/javabin -jar your.jar');

如何在 lib_mysqludf_sys 库或类似这样的其他库中提供我机器的 IP 地址而不是 path

最佳答案

数据库服务器获取对表的修改。假设您有 php 包装器,并且您从调用中知道插入/更新在交易级别成功,因此使用 php/jms 组合添加到 jms 队列(activemq 等相同的东西)。如果处理插入/更新的不是 php 而是 db 服务器端 java 中间件,则同样如此。

现在在你的机器上(不是数据库服务器),你的 java 应用程序一直在运行,它正在查看远程 jms

当然你也可以用套接字来做。

我会使用触发器作为避免回滚的最后手段,正如他们所说,您正在尝试回调导弹(也就是说,您的本地机器有时可能正在处理与回滚相关的数据)。这些是一般性的(回滚),在您面临的狭窄范围内可能不相关

此外,也不是 trigger/udf/exec 的忠实粉丝。所以我倾向于排队

关于java - 如何通过 MySQL 触发器执行外部 java 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30518071/

相关文章:

mysql - 优化mysql View ,将多条记录合并为一条记录

php - 在 IF 语句中取两个不同值的变量

mysql - 我可以从 DTS 迁移到等效的 MySQL 工具吗?

java - 向 "Methods should not have too many parameters"SonarQube 规则添加自定义异常(exception)

Swing Action 的 JavaFX 模拟

mysql - 如何使用内部联接创建触发器

triggers - 检测何时在触发器中克隆记录

postgresql - 触发器更新另一个表

java - 在此行 : Factory bean not Found 处找到多个注释

java swing 与圆点的交线