2つの別の場所のテーブルの同期を取る方法

「ASTERIA Warp」「ASTERIA 3」「ASTERIA On Demand」の
インストール・動作環境・パイプライン機能・フロー機能など全般について

2つの別の場所のテーブルの同期を取る方法

投稿記事by waki » 2018年4月25日(水) 15:29

やりたいこととしましては、
「2つの別の場所に存在するテーブルのレコードをプログラム(ASTERIA)で同期したい。」

双方の環境に「連携処理用テーブル(連携対象のテーブル、実行フロー、キーを項目にセット)」を作成し、
そのテーブルをアステリアのフローで10秒おきに見に行き、未処理のものを連携処理(各フロー)で連携させるつもりです。

但し、上記の方法では、
何かの障害で連携が止まってしまった場合、「連携処理用テーブル」に未処理状態のデータがたまってしまいます。
障害が回復して連携が再開されると、双方向から一気に連携されてしまい、双方で更新している項目があった場合、
最後に連携された内容が勝ちになると思われます。

良い解決策等がありましたら、ご教示願えませんでしょうか。

また、そもそも連携の仕方がおかしい等、ご指摘もいただければ幸いです。
waki
 
記事: 4
登録日時: 2018年4月25日(水) 15:01

Re: 2つの別の場所のテーブルの同期を取る方法

投稿記事by arimitsu » 2018年4月25日(水) 22:53

2つの場所で同じ情報をそれぞれ持ち、それぞれが他の場所の状態を気にせずに編集できるということのようですが、
その場合、まさに「最後に連携された内容が勝ち」になるかと思います。

障害が起きていない10秒間でも、2つが同じレコードを処理する可能性があるとしたら、
いつでも「遅いもの勝ち」が発生してしまいそうです。

処理内容を勘違いしていたら、ごめんなさい。
arimitsu
 
記事: 46
登録日時: 2015年6月16日(火) 16:54

Re: 2つの別の場所のテーブルの同期を取る方法

投稿記事by waki » 2018年4月26日(木) 09:33

早速の返信、ありがとうございます。

そうですよね、、
そもそも、ほぼ同時更新されると「後勝ち」になりそうです。

やはり、連携方法を根本的に見直した方がよいのか、

但し、運用等にインパクトが微々たるものであれば、
「それぞれが他の場所の状態を気にせずに編集できる」点では、登録・更新アプリ側の対応が簡易なものになるので、、

色々な方にお知恵をかりつつ、悩んでいる最中です。
waki
 
記事: 4
登録日時: 2018年4月25日(水) 15:01


Return to 聞きたい、知りたい、教えます

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[5人]