サポート > リポジトリ > モデル > サブデータベースを指定する

1つのWagbyアプリケーションから、複数のデータベースを利用することができます。

Wagbyではモデル単位でどのデータベースを利用するかを指定することができます。一つ目を「メインデータベース」と呼び、二つ目以降を「サブデータベース」を呼びます。

サブデータベースの用途は、既存システムのマスタデータを直接、Wagbyアプリケーションが利用することです。

両者の違いは次のとおりです。

メインデータベース(標準) サブデータベース
設定できる数 1つだけです。 オプションという位置付けです。3つまでのサブデータベースを指定できます。
機能 読み込みと書き込みができます。書き込みはトランザクション制御にも対応しています。 読み込みと書き込みができます。(*1)
メインデータベースとサブデータベースの両方の更新を一つのトランザクションとすることはできません。それぞれの書き込み処理は独立して行われます。(*2)
1. R8.1.0よりサブデータベースの書き込みが行えるようになりました。それ以前の Wagby は読み込みのみとなります。
2. トランザクション境界はデータベースごととなります。そのため、例えばメインデータベースとサブデータベースの両方を更新したいが、サブデータベースの更新が失敗したらメインデータベースの更新も失敗させ、このトランザクション全体をロールバックするという指定を行うことはできません。どちらか一方が成功すれば更新は完了となります。

サブデータベース利用時の制約

サブデータベースを使うモデルには次の制約があります。

キャッシュの扱い

サブデータベースを利用しているモデルのキャッシュは標準では有効となっていますが、利用状況に応じてキャッシュを無効にすることを検討して下さい。

キャッシュを有効としても良いケース
サブデータベースで参照しているテーブルのデータが別システムから変更されない、または、データの変更頻度が少ない場合。 データの変更頻度に応じてジョブを使ってキャッシュをクリアすることで、(リアルタイムではありませんが)最新の情報を利用できます。
キャッシュを無効とした方が良いケース
リアルタイムでの最新データの表示が必要なモデルではキャッシュは無効として下さい。

データベースの設定

「環境>データベース」から、メインデータベースとサブデータベースの指定を行います。

図1 メインデータベースの設定(標準)

サブデータベースは最大5つまで指定できます。

図2 サブデータベースの設定。

モデルの設定

モデル毎に、どのデータベースを利用するかを指定できます。設定したサブデータベースのみ選択肢に用意されます。

空白時(標準)はメインデータベースを利用します。

図3 データベースを指定する

サブデータベースにデータを登録する場合、Wagbyが標準で提供する「順序」の設定は無効にする必要があります。(Wagbyが提供する「順序」はメインデータベースのみを対象にしています。)

しかしスクリプトを使ってサブデータベースの登録時に順序を使うことはできます。この詳細は Wagby Developer Network > 高度な使い方 > サブデータベースで順序を使う をお読みください。

Wagby Developer Day 2018