2017-05-29 14 views
-1

Javaプロジェクトの仕事は、デスクトップアプリケーション(金融アプリケーション)です。スタンドアロンデータベースへのJava埋め込みデータベース

オフラインのユーザーが埋め込みデータベース(H2データベース)内のすべてのデータを保存し、ユーザーがオンラインになったり、一部のボタンをクリックしたときに、スタンドアロンデータベース(My SQLサーバー)サーバーのすべての新しいデータを保存します。 今、このシナリオで私はちょっと迷っています。 これをどのように行うべきか、これが可能であるかを記述できる人がいます。あなたの質問のように仮定に基づいて

+0

ただ、理解したいです。バックエンドサーバーがダウンしているか、データベースサービスがダウンしているようですか?あなたはあなたの質問に正確に答えるためにそれをさらに詳しく説明できますか? – Nik

+0

これはWebアプリケーションではありません。これはPCアプリケーションです.soはオフラインで、ユーザーはインターネットに接続していません。 –

答えて

1

あなたは

  • MySQLは、他のネットワーク上にあってもよいローカルH2データベースを持っている

    1. 、要件の下を向いているようです。
    2. アプリケーションにいくつかのデータを保存すると、h2データベースに移動します。
    3. インターネットに接続しているものは、アプリケーションが動作しているh2ローカルデータベースと異なるホストにあるmysqlデータベースに移動します。

    ソリューション:あなたがシームレスに別のデータベースからデータを複製するレプリケーションツールを追加する必要が

    は便利なツールの一つを参照してください。https://www.symmetricds.org/

    は、あなたが他の要件を持っているなら、私に教えてください。また、質問をするときに十分な詳細を記入してください。ありがとう。

  • +0

    はい、それはまさに私が意味したものですが、h2データベースはサーバーデータベースではありません。組み込みデータベースです(sqliteと同様) –

    +0

    それは本当です。対称でサポートされているproject.Referデータベースの1つでsqliteのsqliteへのレプリケーションを行ったことがあります:https://www.symmetricds.org/doc/3.0/html/databases.html –

    +0

    いいえ私はそれを使用していません –

    0

    レプリケータツールを使用してH2 DBからMysql DBにデータを複製することも、1つの方法です。

    他の方法は、クライアントマシンに重いインメモリDBインスタンスを作成するのではなく、クライアントマシン上のファイルに同じデータを書き込み、ハートビートをチェックするスケジューラプログラムを作成することですサーバのpingが成功した場合は、ファイルを読み込んで実際のDBサーバにアップロードすることができます。また、独自のスケジューラーとデータアップローダーを書くことで、より多くの制御が可能になります。

    レプリケータツールのその他の問題は、データ型の互換性です。

    まだ

    あなたはタングステンレプリケータを見てすることができますツール - 任意の複製を進めて行きたい場合は - あなたがオフラインで何を意味するかのようにhttps://docs.continuent.com/tungsten-replicator-4.0/deployment-oracle-fromoracle.html

    関連する問題