データベース

最終更新日: 2022年12月7日
R8 | R9

データベースの設定

「環境」メニューから「データベース」を選択します。

図1 データベースの設定

メインデータベースとサブデータベース

1つのWagbyアプリケーションから、複数のデータベースを利用することができます。詳細は "モデル > サブデータベースを指定する" をお読みください。

データベース接続

データベース

次のデータベースから一つを選択できます。

  • HSQLDB (組み込みDB) Wagby同梱版のみ、変更不可
  • MySQL (4/5)
  • MySQL 6
  • MySQL 8
  • MariaDB
  • PostgreSQL 8.1
  • PostgreSQL 8.2〜
  • PostgreSQL 9
  • PostgreSQL 9.2〜
  • PostgreSQL 9.4〜
  • Firebird (3)
  • Oracle 9i
  • Oracle 10g/11g
  • Oracle 12c〜
  • SQLServer 2000
  • SQLServer 2005
  • SQLServer 2008
  • SQLServer 2012〜

利用できるデータベースのバージョンは「環境 > 本番運用サーバ」のページを参照してください。

上記に記載していないデータベースを利用するために、設定欄を拡張することもできます。

ワンポイント

Wagbyでは、HSQLDB以外のデータベースを「外部データベース」と呼んでいます。外部データベースを利用する場合は、そのデータベースに対応した「JDBCドライバファイル」を用意する必要があります。詳細は"外部連携>データベース活用ガイド>接続手順>をお読みください。

接続先データベースを変更した場合はフルビルドを行う必要があります。

接続URL

リレーショナルデータベースへ接続するためのURLを指定します。 選択されたリレーショナルデータベースによってURLの書式が異なります。 詳細は"他社製品との連携>データベース活用ガイド>接続手順をお読みください。

ユーザ名

リレーショナルデータベース側で用意されたユーザ名を指定します。 予め、データベース側にユーザを作成しておいてください。

パスワード

利用するリレーショナルデータベース側で用意されたユーザ名に対応したパスワードを指定します。 予め、データベース側にユーザのパスワードを設定しておいてください。

データベース環境

文字エンコード

外部データベースの文字コードを指定することができます。標準は UTF-8 となっています。

この値は自由入力形式となっています。利用する外部データベースの作成時に指定した文字コードを転記するようにしてください。

重要

データベース製品に固有の文字エンコーディングを指定することはできません。例えばオラクル製品が提供する "JA16SJIS" を指定することはできません。この場合は代わりに "Windows-31J" としてください。

識別子の区切り文字

Wagby は標準で、SQL文における識別子の区切り文字を設定するようになっています。

このため、Wagby が作成したテーブルを(外部システムなどで)SQL 文を使って利用する場合はテーブル名、カラム名に区切り文字を付与する必要があります。例えば、次のようになります。

select * from "juser" where "id" > 0

この設定を「区切り文字を指定しない」に変えることができます。
この場合、モデルIDやモデル項目IDに利用できないパターンが生じることに配慮する必要があります。 詳細は "Appendix > SQL文における識別子の区切り文字"をお読みください。

HSQLDB(組み込みDB)では、識別子の区切り文字は指定できません。
この値を変更した場合はフルビルドを行う必要があります。

重要

区切り文字を指定しない設定のとき、利用するデータベースによってはテーブル作成に失敗することがあります。これはデータベースの予約語が(テーブルの)列名に使われていたことが原因です。このような場合はエラーとなった列の物理名を指定して回避してください。

データベースの自動再接続を有効にする

Wagby が利用している外部データベースを再起動する場合、Wagby で構築したアプリケーション (wagbyapp) も再起動する必要があります。

本設定を有効にすると、データベースへ問い合わせる度に、接続確認処理を行なうようになります。アプリケーションの再起動は不要になります。

本設定は内蔵データベース(HSQLDB)を用いた場合には適用されません。

注意

この設定を行うと、接続確認処理のためシステムのパフォーマンスが若干、低下します。外部データベースの再起動処理が頻繁に行われないようであれば、本設定は適用しないことを推奨します。

重要

この設定は「Wagbyアプリケーションを起動したあとに、データベースを起動する」というパターンには対応していません。Wagbyアプリケーションは起動時にデータベース接続を行いますが、最初の接続に失敗すると(以降、データベースが回復しても)動作しません。

列にデフォルト値を設定する 8.5.0

生成される DDL (create table) において、必須項目のカラムにデフォルト値を付与します。migrate_db コマンドを用いたスキーママイグレーションを行う場合、この設定を有効にしてください。

この値を変更した場合はフルビルドを行う必要があります。
R8.4.x からバージョンアップした場合、本設定を有効にしてビルドするとテーブル定義が変更されます。[詳細...]

最大接続数

アプリケーションとデータベースの間の通信に利用される仮想的な「コネクション(接続)」の最大数を設定します。 このコネクションは、複数の利用者(Webブラウザ)で再利用されます。初期値は「100」です。1より大きい数を指定してください。

例えば Wagby の同時認証接続数が 200 の場合、最大 200 名の利用者がログオンします。ここで、コネクションの最大数が 100 の場合、200 名の利用者が 100 本の仮想線を使い回すことになります。Wagby の同時認証接続数に合わせて、この数値を調整することでパフォーマンスが向上します。

この値に -1 を指定すると「無制限」となります。なお、この数値を変更した場合、それに合わせてデータベース側の設定変更(接続受け入れ本数の上限数の指定)が必要になる場合があります。詳細はご利用になる外部データベースのマニュアルをお読みください。

注意

「データベースへの最大接続数」が小さい場合、運用中にデータベース接続エラーが発生することがあります。初期値 100 を下回る設定を行う場合はご注意ください。

未使用接続の最大数

未使用状態になっているコネクションの最大数を指定します。0 を指定すると「無制限」となります。初期値は「10」です。

最大待ち時間

ある利用者によってコネクションが使われたあと、次の利用者が使えるようになるまでの待ち時間を指定します。「-1」を指定すると無制限(永久に待ち続ける)となります。単位はミリ秒です。初期値は「2000ミリ秒」です。

データベースパスワードを暗号化する8.5.7

データベース設定欄の「パスワード」の値が AES-256 で暗号化されます。詳細は「連携する技術>データベース接続のパスワードを暗号化する」をお読みください。

スキーマ

サブデータベースで有効です。(*4)

ここで設定した値は、SQL 発行時にテーブル名の先頭に付与されます。例えばスキーマに "FUNNY" を設定すると、SELECT 文が "FUNNY.テーブル名" となります。

4. メインデータベースでのスキーマ指定は現在、開発中です。将来の Wagby R8 のバージョンアップで対応予定です。 メインデータベースでのスキーマ指定はR8では未対応です。R9で対応を継続します。

対応する設定ファイル

すでに運用中の本番機の設定を変更する場合、次の説明を参考に設定ファイルを編集してください。

R8.5.7〜

設定 対応する設定ファイル 設定場所
接続URL wagbyapp\conf\catalina.properties WAGBY_DATASOURCE_URL
ユーザ名 WAGBY_DATASOURCE_USERNAME
パスワード WAGBY_DATASOURCE_PASSWORD
最大接続数 WAGBY_DATASOURCE_MAXTOTAL
未使用接続の最大数 WAGBY_DATASOURCE_MAXIDLE
最大待ち時間 WAGBY_DATASOURCE_MAXWAITMILLIS

R8.0.0〜R8.5.6

設定 対応する設定ファイル 設定場所
接続URL wagbyapp\webapps\$(APPNAME)\META-INF\context.xml Resource/@name="jdbc/jfc" 要素のurl属性
ユーザ名 Resource/@name="jdbc/jfc" 要素のusername属性
パスワード Resource/@name="jdbc/jfc" 要素のpassword属性
最大接続数 Resource/@name="jdbc/jfc" 要素のmaxActive属性
未使用接続の最大数 Resource/@name="jdbc/jfc" 要素のmaxIdle属性
最大待ち時間 Resource/@name="jdbc/jfc" 要素のmaxWait属性

同様に wagbyapp\webapps\$(APPNAME)\WEB-INF\export\conf\initdb.xml も修正してください。initdb.xmlの詳細な説明はこちらをお読みください。

注意事項

外部データベースを利用する場合は、それぞれのデータベースにおける使用上の注意事項に目を通してください。

詳細は"データベース活用ガイドをお読みください。

コネクションプーリング

「データベース環境 > 最大接続数」は、コネクションプーリングという技術を使って管理されます。 標準では Commons DBCP を使います。

  • Wagby はコネクションプールからコネクションを取得するという処理を行います。コネクションの接続や解放は、上記コネクションプール機構が行います。
  • Commons DBCP は「プール内に空き接続が無ければ、新たに接続を作って返す」というルールとなっています。

詳細は"データベース活用ガイド > コネクションプーリング"をお読みください。

関連するページ