サポート > データベース活用ガイド(R6) > データベース接続手順

Wagby は外部のデータベース製品を利用することができます。ここではその手順を説明します。

準備:内蔵データベースからのアップグレード

Wagby に内蔵のデータベースを使ってシステムを構築済みであり、その後に外部データベースに切り替える場合は、外部データベースの設定を行ったあと、必ず「フルビルド」を行ってください。

方法(初回)

  1. 外部データベースをインストールします。詳細は各データベース製品に含まれているドキュメントをお読みください。 なお PostgreSQL と MySQL については、以下のインストールガイドをお使いいただけます。
  2. 対応するデータベースドライバソフトウェアを Wagby に登録(配置)します。データベースドライバはそれぞれのデータベース製品に同梱されています。
    データベースドライバの配置は、以下のフォルダにドライバファイルをコピーすることで完了します。

    R6 系

    $(DEVHOME)\customize\lib-common
    

    R5 系

    $(DEVHOME)\env\lib-common
    
    各データベースドライバを配置する際には、以下の命名規則に従ってファイル名を変更後、配置を行ってください。
    データベース データベースドライバファイル名
    R6系 R5系
    HSQLDB ドライバは既に組み込まれているため配置の必要はありません。
    PostgreSQL postgresql.jar pg74.214.jdbc3.jar
    MySQL mysql-connector-java.jar
    Oracle (9i/10g) ojdbc14.jar
    Oracle (11g) ojdbc14.jar (※ ojdbc5.jar ではなく ojdbc14.jar に改名してお使い下さい)
    SQLServer2000/2005 sqljdbc.jar (Java 5 用)
    sqljdbc4.jar (Java 6 用, sqljdbc.jar に改名してお使い下さい)
    DB2 db2jcc.jar, db2jcc_license_cu.jar
    SQL Anywhere 9 jconn3.jar
  3. Wagby定義ファイル「project_env.xls」を編集し、「database」タブで利用するデータベースを選択します。
    選択されたデータベースによって、「データベースのURL」項目が補完されるので「[ホスト名]」の文字列部分をデータベースサーバのホスト名もしくはIPアドレスに、「[DB名]」の文字列部分をデータベースの名前に変更するようにしてください。
    なお、Webサーバとデータベースサーバを同一のマシンにインストールする場合は「ホスト名」の部分は「localhost」と指定してください。

    例) データベースサーバのIPアドレスが「192.168.10.10」、データベース名が「sampledb」 となっている場合、「データベースのURL」には以下の値を設定します。
     変更前:jdbc:postgresql://[ホスト名]/[DB名]
     変更後:jdbc:postgresql://192.168.10.10/sampledb
    また、「ホスト名」と「データベース名」以外の設定が必要であれば続けて正しいURLを入力します。

    次にデータベースへ接続するユーザ名、パスワードを入力します。
    これらの設定を行うことによって、Wagbyによりビルドされたデータベースは、目的のデータベースへ接続できます。
    以下にデータベースのURL設定例を示します。
    データベース URL
    HSQLDB jdbc:hsqldb:sampledb
    PostgreSQL jdbc:postgresql://localhost/sampledb
    MySQL jdbc:mysql://localhost/sampledb?useUnicode=true&relaxautoCommit=true
    Oracle (9i/10g/11g) jdbc:oracle:thin:@localhost:1521:sampledb
    SQLServer2000/2005 jdbc:sqlserver://localhost;databasename=sampledb
    DB2 jdbc:db2://localhost:50000/sampledb
    SQL Anywhere 9 jdbc:sybase:Tds:localhost:2638?SERVICENAME=sampledb
    (*1) 上記例にある "sampledb" の部分は、お使いの環境にあわせて読み替えてください。
    (*2) URLは一行で入力します。
  4. 3.で設定したデータベース(上記の例では "sampledb") を作成して下さい。データベースの作成方法は各データベースのマニュアルを確認して下さい。
  5. Wagby を用いて Web アプリケーションをビルドします。
  6. check_db.bat (sh) スクリプトを使って、外部データベースに正しく接続できることを確認します。
  7. init_db.bat (sh) スクリプトを使って、テーブルの作成ならびにデータの初期登録を行います。(データベースに HSQLDB 以外のリレーショナルデータベースを指定した場合、本処理を手動で行う必要があります。)
    コマンドプロンプトから、次のコマンドを入力します。
    > cd C:\Wagby-6.0.0\wagbyapp\bin
    > init_db.bat
    
    (*) Linux の場合は、init_db.sh となります。

    コマンドが正常に実行されると、次のように表示されます。
    Command: auto
    All table enabled
    Config File:.\conf\initdb.xml
    Log4j Property File: default file.
    import seq 11/11 at 0 sec. process 11 at 0 sec. ...
    ...(省略)
    import juser 2/2 at 0 sec. process 2 at 0 sec. ...
    
    出力結果に Exception もしくは ERROR の文字がなければ処理は成功です。
  8. Web アプリケーションを起動し、ログオンを行います。初期化時に設定される管理者アカウント "admin" でログオンできることを確かめてください。

方法(二回目以降)

再ビルドを行う際には、ビルド前に「export_db」コマンドでデータを保存後、「drop_db」コマンドでデータベース内のテーブルを削除します。

ビルド後に「import_db」コマンドを実行して、データベース内にテーブルを作成し、あわせてデータを復元させます。

以下に手順を示します。

  1. Web アプリケーションを停止します。
  2. コマンドラインで wagbyapp\bin\export_db.bat を実行し、データのエクスポートを行います。
    > cd C:\Wagby-6.0.0\wagbyapp\bin
    > export_db.bat ..\..\export\data_xxxx
    
    フォルダ名は "data_" を接頭語としてください。
  3. コマンドラインで wagbyapp\bin\drop_db.bat を実行し、外部データベース上の(Wagbyに関する)データ及びテーブル定義を削除します。
    > drop_db.bat
    
  4. 再ビルドを行います。
  5. コマンドラインで、wagbyapp\bin\import_db.bat を実行し、先にエクスポートしたデータを復元させます。
    > cd C:\Wagby-6.0.0\wagbyapp\bin
    > import_db.bat ..\..\export\data_xxxx
    
    先ほどエクスポートしたフォルダを指定します。
  6. Web アプリケーションを起動します。

外部データベースを使用する場合は、常にこの手順を行ってください。

テーブル作成のタイミング

外部データベース利用時は、init_db.bat (sh) スクリプトを実行するタイミングで、テーブルの作成(create table) が行われます。 フルビルド・差分ビルドではテーブルの作成は行われません。

この仕組みのため、Wagby 定義ファイル修正時に、モデルやモデル項目の追加がなければ(より厳密には、テーブル定義を伴う変更が生じていなければ)init_db.bat (sh) スクリプトを実行する必要はありません。

トラブルシューティング

処理が途中でエラーになった場合の修正方法

テーブル作成処理をinit_dbやimport_dbコマンドで行っている途中で失敗した場合、Wagbyが自動生成したDDL文が途中まで実行された状態で停止している可能性があります。これは中途半端な状態です。

その後、テーブルの削除をdrop_dbコマンドで行っても、必要なテーブルや制約がそろっていないために削除も失敗します。結果としていくつかのテーブルが削除できない不正な状態になります。

この場合は各データベースのツールを用いて、テーブルの削除作業を手動で行ってください。

Wagbyクラウドではアプリケーションの入れ替えの際に(同様に)テーブルの削除を行いますが、このときデータベースの再作成も行っています。そのため不整合な状態にはなりません。