Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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_Web Services_Real Time - Fatal编程技术网

Java 实时数据提取/事务捕获

Java 实时数据提取/事务捕获,java,web-services,real-time,Java,Web Services,Real Time,我们正试图在通过VPN连接的另一个远程数据库中,在核心数据库上[近]实时地捕获一些事务。 这些事务很容易识别,但在决定工作流程和确定使用哪种技术时,我们面临着挑战 例如。 1.)每x秒转储一次CSV文件。 从核心系统中,我们每x秒创建一个CSV文件,其中包含所需信息。然后,我们将把这个文件推/拉到远程系统并处理它 2.)Web服务 我们将有两个web服务,一个在发送方,另一个在接收方。 每x秒,发送方web服务将执行一次查询并从源数据库获取记录,并将数据以“y”记录的批次推送到接收方web服务。

我们正试图在通过VPN连接的另一个远程数据库中,在核心数据库上[近]实时地捕获一些事务。 这些事务很容易识别,但在决定工作流程和确定使用哪种技术时,我们面临着挑战

例如。 1.)每x秒转储一次CSV文件。 从核心系统中,我们每x秒创建一个CSV文件,其中包含所需信息。然后,我们将把这个文件推/拉到远程系统并处理它

2.)Web服务 我们将有两个web服务,一个在发送方,另一个在接收方。 每x秒,发送方web服务将执行一次查询并从源数据库获取记录,并将数据以“y”记录的批次推送到接收方web服务。 然后,接收者将处理记录并发送“y”记录的确认

注意

1.)理想情况下,我们希望使流程实时化。上述两种想法都是[接近]实时的,而不是实时的

2.)源数据库系统不具体。它可以是oracle、ms sql、mysql、sybase、informix等

3.)远程目标数据库是oracle

任何想法都是最受欢迎的,而且所使用的技术也可以是灵活的。 主要关注点是减少由于核心数据库上的此过程而导致的负载

编辑: 我越来越清楚地认识到,由于插入记录时的触发器/通知是特定于RDBMS的,因此在异构数据库系统中获得实际的实时性几乎是不可能的

我想把问题的焦点转移到更好的接近实时的想法上,除了上面分享的两个例子


另外请注意,我们对源数据库以及最初将记录插入数据库的进程/服务几乎没有控制权。我们只能控制记录。

有关如何在PostgreSQL中侦听数据库更改(在本例中为数据库触发器)的示例,请参见。基本上,您可以设置一个函数来处理向所有感兴趣的客户机发送事件的触发器。然后,应用程序将侦听此事件,并可以在执行触发器时启动同步。该示例将触发器应用于特定表上的新插入。

有关如何在PostgreSQL中侦听数据库更改(本例中为数据库触发器)的示例,请参阅。基本上,您可以设置一个函数来处理向所有感兴趣的客户机发送事件的触发器。然后,应用程序将侦听此事件,并可以在执行触发器时启动同步。该示例将触发器应用于特定表上的新插入。

源DBMS将非常重要,并非所有DBs都提供通知外部应用程序更改的选项。感谢您的回复。我明白你对数据库管理系统的看法。我已经相应地编辑了我的问题。源数据库管理系统将非常重要,并非所有数据库都提供通知外部应用程序更改的选项。感谢您的回复。我明白你对数据库管理系统的看法。我已经相应地编辑了我的问题。谢谢。我现在明白了。我已经相应地编辑了我的问题。这不是解决你问题的可行办法吗?您的服务必须连接到PostgreSQL数据库,并且可以将更改推送到您的Oracle数据库/Web服务。我们无法控制源数据库和类型。由于我们计划从多个来源提取数据,因此数据库也是可变的。谢谢。我现在明白了。我已经相应地编辑了我的问题。这不是解决你问题的可行办法吗?您的服务必须连接到PostgreSQL数据库,并且可以将更改推送到您的Oracle数据库/Web服务。我们无法控制源数据库和类型。由于我们计划从多个来源提取数据,因此数据库也是可变的。