2015-05-28 45 views
2

我在远程机器上有一个数据库。假设db1http://example.com。我的意思是这个数据库不在我的本地机器上,但我可以通过一个URL连接它。如何通过MySQL触发器执行外部java函数?

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

我找到了解决办法here,但它需要有在同一台机器上的Java函数,你有因为该行的MySQL服务器

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

我怎能舍弃的IP地址我机器而不是pathlib_mysqludf_sys库或像这样的其他库?

+0

你能做到吗? – sergioBertolazzo

+0

在查询中, –

回答

1

DB服务器获得对表的修改。假设你有php包装,并且你从调用中知道插入/更新在tranaction级别成功,所以使用php/jms组合来添加到jms队列(activemq等等同样的东西)。如果它不是PHP,而是db处理插入/更新的db服务器端java中间件,那么同样的处理。

现在你的机器(而不是数据库服务器)上u有你的Java应用程序持续运行,它是在偷看远程JMS

你可以用插座也当然做到这一点。

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

此外不是触发器/ udf/exec的忠实粉丝。所以我倾向于排队

相关问题