Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.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
两个应用程序之间的Java缓存同步_Java_Caching_Plsql - Fatal编程技术网

两个应用程序之间的Java缓存同步

两个应用程序之间的Java缓存同步,java,caching,plsql,Java,Caching,Plsql,我想听听你的专业建议 场景] 有两个基于java的应用程序(比方说两个节点),它们都有缓存数据。如果刷新一个节点中的缓存,则应同步缓存的数据。例如,Tom最近获得了应用程序A的写入权限,这也应该反映在应用程序B中 挑战] 两个节点不是群集友好的,唯一的通信方式是通过数据库 问题陈述] 我们如何从一个节点获取触发器来启动另一个节点上的缓存刷新(并且由于策略而不使用第三方库) 我目前尝试的一种方法是实现DatabaseChangeListener,它将在出现任何事件(DatabaseChangeEv

我想听听你的专业建议

场景]
有两个基于java的应用程序(比方说两个节点),它们都有缓存数据。如果刷新一个节点中的缓存,则应同步缓存的数据。例如,Tom最近获得了应用程序A的写入权限,这也应该反映在应用程序B中

挑战]
两个节点不是群集友好的,唯一的通信方式是通过数据库

问题陈述]
我们如何从一个节点获取触发器来启动另一个节点上的缓存刷新(并且由于策略而不使用第三方库)

我目前尝试的一种方法是实现DatabaseChangeListener,它将在出现任何事件(DatabaseChangeEvent)时激活。我可以尝试的另一种方法是轮询,但我认为这不是一种好的做法,因为这会产生很多无用的线程(可能会发生内存泄漏)


非常感谢您的意见:)

我认为最好的方法是通过网络通知第二个集群-您可以使用套接字


如果您确实无法从一个节点连接到另一个节点(当两个节点都可以看到数据库服务器时,我看不出任何原因),那么您可以使用PL/SQL(甚至Oracle DB中的Java)向触发器中的第二个节点发送HTTP请求。有关更多详细信息,请参阅:

我只想在Java端工作。据我所知,您介绍给我的内容还涉及PL/SQL端的配置工作,对吗?第一种方法——网络——纯粹是Java。第二种方法确实涉及PL/SQL。