フォーラム: 公開討議 (スレッド #21604)

【バッチFW】複数のデータベースの参照について (2009-02-09 17:48 by 匿名 #41752)

お世話になります。
現在、TERASOLUNAにて、Oracleのテーブルを参照してPostgreSQLのテーブルを更新するようなバッチ処理の開発を考えております。

上記のような2種類以上のデータベースを参照するようなTESASOLUNAプロジェクトのサンプルや参考情報などがあれば参考にさせていただきたいと思い、質問させていただきました。

よろしくお願い致します。

メッセージ #41752 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

RE: 【バッチFW】複数のデータベースの参照について (2009-02-09 18:42 by kuramotoki #41753)

現在当方で認識している限りですが、1つのAPの中で複数のデータベースと
接続するケースはありましたので、その例を元に回答いたします。
なお、バッチFWからサンプルとして提供しておりません。ご了承下さい。

要件を満たす際にポイントになるのは、
「複数のデータベース(OracleとPostgreSQL)を同時にコミットするのか」

「バッチFWは分散トランザクションに対応していない」
の2点です。

1つのデータベースはSELECTを発行するだけで、
もう一方のデータベースはINSERT等も含め参照/更新するという場合であれば、
現在のFWに手を入れることなく対応できると思います。
データソースを(Oracle用、PostgreSQL用に)2つ定義し、それぞれのデータソースに
対応した参照用DAO、更新用DAOを定義してAPで利用することで
問題ないでしょう。

そうではなく、2つのデータベースともに参照/更新するのであれば
・分散トランザクションに対応できるようにFWを拡張する
・セッションを(ALTER SESSIONを使って)APにて適宜切り替える
という選択があるかと思いますが、いずれも制御が複雑になるので
おすすめはいたしません。

以上です。
#41752 への返信

メッセージ #41753 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

RE: 【バッチFW】複数のデータベースの参照について (2009-02-10 17:39 by 匿名 #41771)

kuramotoki様

丁寧な対応ありがとうございます。

今回検討していたバッチ処理ですが、
片方のデータベースを参照し、その情報を基にもう片方のデータベースを参照・更新する処理でしたので、
回答内容の通りフレームワークに手を入れることなく対応可能なパターンでした。

アドバイスをしていただき、大変助かりました。
#41752 への返信

メッセージ #41771 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする