Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过MySQL触发器执行外部java函数?_Java_Mysql_Triggers_Function Calls - Fatal编程技术网

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

如何通过MySQL触发器执行外部java函数?,java,mysql,triggers,function-calls,Java,Mysql,Triggers,Function Calls,我在一个远程机器中有一个数据库。假设db1在。我的意思是这个数据库不在我的本地机器上,但我可以通过URL连接它 我希望每当db1.table1上发生一些更新时,触发器就会调用本地机器上JAVA应用程序中的函数来进行一些处理 我找到了一个解决方案,但它需要与MySQL服务器在同一台机器上具有java功能,因为这一行: SET result = sys_exec('/path/to/javabin -jar your.jar'); 如何在lib\u mysqludf\u sys库或类似的其他库中提

我在一个远程机器中有一个数据库。假设db1在。我的意思是这个数据库不在我的本地机器上,但我可以通过URL连接它

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

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

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

如何在
lib\u mysqludf\u sys
库或类似的其他库中提供机器的IP地址,而不是
path

Db server对表进行了修改。假设您有php包装器,并且从调用中知道插入/更新在传输级别成功,那么使用php/jms组合添加到jms队列(activemq等)。如果处理插入/更新的不是php而是db服务器端java中间件,则处理相同的事务

现在在您的机器上(而不是db服务器),您的java应用程序一直在运行,它正在窥视远程jms

当然,你也可以用插座来做

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


此外,我不太喜欢trigger/udf/exec。所以我倾向于排队

你能做到吗?在查询中,