Fóruns: Open Discussion (Thread #21604)

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

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

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

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

Responder a #41752×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

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にて適宜切り替える
という選択があるかと思いますが、いずれも制御が複雑になるので
おすすめはいたしません。

以上です。
Responder a #41752

Responder a #41753×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

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

kuramotoki様

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

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

アドバイスをしていただき、大変助かりました。
Responder a #41752

Responder a #41771×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login