サブデータベースを指定する前へ3456789101112次へ1つのWagbyアプリケーションから、複数のデータベースを利用することができます。メインデータベースとサブデータベースWagbyではモデル単位でどのデータベースを利用するかを指定することができます。一つ目を「メインデータベース」と呼び、二つ目以降を「サブデータベース」と呼びます。サブデータベースの用途は、既存システムのマスタデータを直接、Wagbyアプリケーションが利用することです。両者の違いは次のとおりです。メインデータベース(標準)サブデータベース設定できる数1つだけです。オプションという位置付けです。3つまでのサブデータベースを指定できます。読み込みと書き込みができます。書き込みはトランザクション制御にも対応しています。読み込みと書き込みができます。(*1)メインデータベースとサブデータベースの両方の更新を一つのトランザクションとすることはできません。それぞれの書き込み処理は独立して行われます。R8.1.0よりサブデータベースの書き込みが行えるようになりました。読み込みのみとなります。トランザクション境界はデータベースごととなります。そのため、例えばメインデータベースとサブデータベースの両方を更新したいが、サブデータベースの更新が失敗したらメインデータベースの更新も失敗させ、このトランザクション全体をロールバックするという指定を行うことはできません。どちらか一方が成功すれば更新は完了となります。サブデータベース利用時の制約サブデータベースを使うモデルには次の制約があります。テーブルの作成は行えない。(既存テーブルの再利用を想定している)全文検索機能は利用できない。ワークフローは利用できない。メインモデル、サブモデルは利用できない。(メインモデルとサブモデルで別々のデータベースを指定することはない。)登録、更新、削除などの更新系ボタンは標準で無効になる。(登録や更新処理を行う場合は、手動でこれを再設定すること。)システムモデル(juserなど)をサブデータベースに指定することはできない。内蔵データベース(HSQLDB)は利用できない。参照先モデルがサブデータベースに存在する場合、"参照連動項目を参照先モデルに保存する"機能の利用は行わないようにすること。これはトランザクション境界が分かれているため。(DB保存なし)を検索項目として指定することはできない。データベースをまたがる検索になるため。サブデータベースのテーブルにスキーマを含めることはできない。サブデータベースへ登録処理を行う場合、順序を利用することはできない。そのため順序の利用は無効にする必要がある。キャッシュの扱いサブデータベースを利用しているモデルのキャッシュは標準では有効となっていますが、利用状況に応じてキャッシュを無効にすることを検討して下さい。キャッシュを有効としても良いケースサブデータベースで参照しているテーブルのデータが別システムから変更されない、または、データの変更頻度が少ない場合。データの変更頻度に応じてジョブを使ってキャッシュをクリアすることで、(リアルタイムではありませんが)最新の情報を利用できます。モデルのキャッシュを消去するキャッシュを無効とした方が良いケースリアルタイムでの最新データの表示が必要なモデルではキャッシュは無効として下さい。「環境>データベース」から、メインデータベースとサブデータベースの指定を行います。メインデータベースの設定(標準)サブデータベースは最大5つまで指定できます。サブデータベースの設定。モデルの設定モデル毎に、どのデータベースを利用するかを指定できます。設定したサブデータベースのみ選択肢に用意されます。空白時(標準)はメインデータベースを利用します。8.4.0R8.4以降のWagbyで必要になります。用意し、次の行を含めるようにしてください。spring.main.allow-bean-definition-overriding=trueサブデータベースの設定を無効にするサブデータベースの設定を無効にするには、環境タブのサブデータベース設定を消去することに加え、サブデータベースを利用しているモデル側の設定も解除してください。スクリプトを使ってサブデータベースで順序を利用するサブデータベースにデータを登録する場合、Wagbyが標準で提供する「順序」の設定は無効にする必要があります。(Wagbyが提供する「順序」はメインデータベースのみを対象にしています。)しかしスクリプトを使ってサブデータベースの登録時に順序を使うことはできます。