DBサーバーの双方向のバッチ処理について

このQ&Aのポイント
  • DBサーバー(A)とDBサーバー(B)を双方向のバッチ処理で更新させようと思っています。しかし、データを送る方法や大量のデータの送信方法について悩んでいます。
  • HTTPプロトコルを使用してデータを送信する方法がスタンダードですが、異なるサーバー間での通信や大量データの送信には課題があります。
  • このような場合、どのようなロジックでデータの送受信を行うべきか、そして大量データの送信にはどのような方法を採用すれば良いか検討しています。
回答を見る
  • ベストアンサー

DBサーバー(A)とDBサーバー(B)を双方向のバッチ処理で更新させよ

DBサーバー(A)とDBサーバー(B)を双方向のバッチ処理で更新させようと思っています。 ですが、そもそもAのDBからBのDBにデータを送るにはどうしたら良いかがわかりません。 httpプロトコルでバッチ処理をやることになっているのですが、 サーバーが違うしWEB SessionやHTTP リクエストを受け取れるのだろうか? そもそも大量のデータを一括で遅れるのだろうかと疑問があります。 HTTPリクエストだと「アドレス?パラメータ」の形でデータを送信して 受けとるというのがスタンダードなやり方ですが、大量のデータは難しいと思ってしまいます。 こういった形でデータ授受を行う場合、 ロジック的にはどういうふうになるのでしょうか。 またhttpプロトコルで大量のデータを送るにはどうすれば良いのでしょうか。

  • Java
  • 回答数1
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

手順 1) Aからデータを抽出して (例えばCSVファイルかなんかにする) Bでそれを取り込む。 2) BにHTTPServerを立てる 3) AからBにHTTPプロトコルでアクセスする 4) AからBにHTTPプロトコルでファイルを送信する ここまでできればあとは何とでもなるわね。 私ならわざわざ転送を実装せずに ファイル転送ソフトの導入を提案するけど。 > サーバが違うし 違うからデータ転送にHTTPを使うんだと思うけど。 同じサーバ内ならコピーでいいじゃない。 > スタンダードなやり方 あなたの行っているのは http://~/xx?key1=value1&key2=value2 という感じでキーとバリューで送ると言っているのよね? そうじゃなくて 普通にWebページでファイルのアップロードってしたことないかしら? それをすれば良いだけよ。 この方法もスタンダードよ。 逆に、ファイルダウンロードをしたことないかしら? 数百MBとかのダウンロードもあるわよね。 これらはHTTPで行われているの。 どお?HTTPで大量データの転送なんて珍しい話じゃないでしょ?

関連するQ&A

  • DBとバッチ処理、オンライン処理の関係について

    DBの登録や更新や削除をする際に利用するバッチ処理とオンライン処理の使い分けについてについて、お聞きしたいです。 バッチ処理は決められた時間に起動する処理だと認識しています。オンライン処理は求められたらその場でする処理だと認識しています。もしDBに登録や更新、削除する情報がある場合は、なるべくオンライン処理では行わないほうがいいのですか? もしその場合、対象のデータはファイルや更新用のDBなどを用意して一時的に保存しておいてバッチ処理にて行うということでしょうか?

  • 2つの異なるサーバーのDBを扱う

    現在、Visual Studio 2005(BASIC) を使って、Aのサーバー(IIS)に画像データを貯めるWebプログラムを作成しようとしています。この管理にはMDB形式のDBを使用する予定です。 ところが、このサービスを利用できるユーザーの管理は、Bのサーバー(UNIX MySQL)のDBで管理されています。 このように、Aのサーバーで動作するWebプログラムからBのサーバーのDBに接続することは可能なのでしょうか?

  • アップロードでのバッチ処理

    ローカルのAというフォルダの中身を サーバーのB,C,D,E,F…というフォルダにコピーしたいのですが、 現在ffftpで、ひとつひとつ手動で行っています。 バッチ処理で転送できるソフトがありますか? よろしくお願いします。

  • バッチ処理について

    お世話になります。 バッチファイルを作成して、サーバー間でファイルのコピーを行おうと思ってます。 サーバーA:win2003server standerdEditon サーバーB:win2003server standerdEditon サーバーC:win2003server R2 standerdEditon(ServicePack1) A、Bからnet useコマンドでCをマウントしてます A→Cのコピーは大丈夫なのですが、 B→Cでは頻繁にnet useコマンドで失敗します。 サーバーBのバッチファイル if not exist P:\ net use P: \\serverC\test >> log.txt if %ERRORLEVEL% neq 0 echo エラー発生 ERRORLEVEL=%ERRORLEVEL% >> log.txt &goto END if ERRORLEVEL 0 echo 正常終了 >> log.txt のようにしているのですが、エラーなのに、 「エラー発生」がログに出ずに終了してます。 「正常終了」も 「エラー発生」もログに出ないということは、if文で評価されてないように 思うのですが、&gotoで次の処理を飛ばしているので、終了のログは出てます。 説明が不足しておりましたら追加させていただきますので、 なぜこの現象が発生するのかお知恵をお貸しいただければ幸いです。 よろしくお願いします。

  • Javaでバッチ処理

    こんばんは。 Javaによるバッチ処理の、フレームワークについて調べています。 画面に関してはStrutsなどがありますが、バッチ処理周りに関しては 皆様はどうされてますか?。 ゼロから製造されているのでしょうか。それとも商用製品を 使われていますか?。 想定する機能としては、Javaモジュール内で JDBCによりDBデータの集計、 ログファイルの出力、 管理ツールへの戻り値の返却 などシンプルな構成を考えています。 ご参考に事例や、動向など教えて頂けますと助かります。 よろしくお願いします。

    • ベストアンサー
    • Java
  • PHPUnitを使った逐一実行プログラムのテスト方

    今とあるバッチのテストをしようと考えています。 バッチの処理としては、DBから必要なデータを取ってきて(クラスを使っています)、そのデータを元にPEAR::HTTP_Requestクラス使ってGETリクエストを送信するようなものです。 そもそもテストというものに関してド素人なのでよくわかっていないのですが、こういったプログラムをPHPUnitを使ってテストすることは可能なのでしょうか。 出来ればDBからデータ取ってくる部分と、HTTP_Requestクラス使ってGETリクエストを投げる部分をモック化(?)して、これらの戻り値をこっちで制御していくつかのケースでテストしたいです。 テストの先頭で、requireで読み込んだらファイルが実行されてしまうし、execなどを使ってもプログラム内のクラスをモック化する方法が分かりません。 長くなりましたが、聞きたい事としては、こういった逐一実行するようなプログラムのテストはPHPUnitを使ってテスト出来るものなのでしょうか。 また、PHPUnitを使ってテストする場合、テスト対象ファイルの内部で読み込まれたクラスをモック化するにはどうしたらよりのでしょうか。

    • ベストアンサー
    • PHP
  • サーバーAからサーバーBへPOSTする方法

    お世話になっております。 WEBアプリケーションを作成しているのですが、 問題が解消されずに困っております。 どなたかわかる方、ご教授いただけないでしょうか。 【質問】 サーバーAからサーバーBへデータをPOSTする方法を教えてください。 【詳細】 現在サーバーAのサーブレットより、サーバーBのサーブレットへデータをPOSTで渡そうとしています。 そして、サーバーBのサーブレットが持つdoPostメソッドにて、渡したデータ処理を実施したいです。 forwardとsendRedirectを考えたのですが、 forwardだと他サーバーへデータを渡すことができないようです。 また、sendRedirectだとdoGetメソッドが実行されるため、おそらくGetが行われていると考えられます。 現在、Javaだけでコーディングを実施しているため、Javaでの実現方法を教えていただけると非常に助かります。 大変困っておりますので、わかる方はぜひご教授ください。

    • ベストアンサー
    • Java
  • ストアドプロシージャーでバッチ処理

    MySQL のストアドプロシージャーをつかって バッチ処理を作ろうとしています。 windows のスケジューラーを利用して、ファイルより定期的に処理したいと思っています。 LOAD DATA 文でファイルよりデータを取得し、DBへインサートはできるのですが、ストアドプロシージャーはバッチとして起動させることはできるのかご教授ねがいます。 その他、良い方法があれば、ご教授ねがいます。 環境は  MySQL 5.x os Windows2003です。

  • DBの更新??

    ソースは下記です。 Set db=Server.CreateObject("ADODB.Connection") db.Provider="Microsoft.Jet.OLEDB.4.0" db.Mode=2 db.ConnectionString=Server.MapPath("../../script/db_dat/crv_haken.mdb") db.Open Set rs=db.Execute("select * from control " ) rs("day-upd") = Request.Form("編集担当") rs("tanto-upd") = date rs.update rs.Close db.Close Set db=Nothing で・・・実行しますと エラー タイプ ADODB.Recordset (0x800A0CB3) 現在の Recordset は更新をサポートしていません。プロバイダか、選択されたロックタイプの限界の可能性があります。 のメッセージがでます。 何が原因でしょうか?お教えください。

  • webサーバーにデータベースを置いて処理したい

    VB6.0で作成したソフト(DBはAccessのmdb)があり、 それを、ネットワークに対応させたいのですが、 どうすればいいでしょうか? イメージとしては次のようなことが出来るようになればと思っています。 端末Aと端末Bの両方からwebサーバーの同じDBを更新 (端末AのIEを使ってHPからwebサーバーのDBの更新 端末BのVBで作成したソフトでwebサーバーのDBの更新) 端末A[IE]←→webサーバー[HPとDB]←→端末B[VBで作成したソフト] なるべく元のプログラムを変更したくないので、 DBとの接続処理だけの変更ですめば嬉しいです。 よろしくお願い致します。

専門家に質問してみよう