我试图在oracle上实现DCN(数据库更改通知)以通知侦听器DB的事件,以便我可以更新Coherence Cache。
我按照教程here使用带有main方法的示例程序来执行侦听器类并使其保持运行。
我的问题是这个通知和监听器如何在生产环境中实现,因为我的本地测试只运行一个主要方法来保持监听器运行?用什么技术来保持监听器始终在后台运行并从数据库接收通知??
我们使用Weblogic 10作为我们的应用服务器。
修改:
weblogic startup class会为此目的而工作吗?
答案 0 :(得分:0)
新驱动程序上的JDBC驱动程序为您运行侦听器(请参阅此处的说明:http://docs.oracle.com/cd/E14072_01/java.112/e10589/dbchgnf.htm)。正如它所说,假设您使用的是纯JDBC方法:
“JDBC驱动程序启动一个新线程,该线程侦听来自服务器的通知(通过专用通道)并将这些通知消息转换为Java事件。然后驱动程序通知所有注册了此注册的侦听器。”< / em>的
因此,您可以在具有“load-on-startup”集的servlet中使用Weblogic启动类或init()方法来进行注册,然后忘记它。您的回调将由另一个线程上的JDBC驱动程序调用。