付録B.3 組み込みデータベースの構築
(1) 組み込みデータベースの構築手順
組み込みデータベースの構築方法には,次の二つがあります。
- データベースを構築したあとにユーザ定義およびテーブル定義を行う方法
- ユーザ定義およびテーブル定義を行ったあとにデータベースを構築する方法
それぞれの場合に分けて,組み込みデータベースの構築方法を説明します。
なお,組み込みデータベースを利用して,データベースにアクセスするJ2EEアプリケーションを開発する場合,ここで示す手順のほかに,次のマニュアルを参照してください。
- 「HiRDB コマンドリファレンス」
- 「HiRDB UAP開発ガイド」
- 「HiRDB SQLリファレンス」
- 「HiRDB メッセージ」
- 注意
- 組み込みデータベースを構築したあとにHiRDBのコマンドを実行する場合は,Windowsの[スタート]メニューから[Cosminexus]-[Application Development Plug-in]-[組み込みDBプロンプト]から起動できる専用のDBコマンドプロンプトで,コマンドを入力してください。
- 組み込みデータベースは,開始された状態で構築されます。
- BINARY型およびBLOB型のカラムのアンロードおよびロードはサポートしていません。これらの型のデータは,それぞれのアプリケーションで移行してください。
- 組み込みデータベースの最大同時接続数は8接続です。
接続に使用するリソースアダプタの「コネクションの最小値と最大値」のプロパティ定義は「8」以下を設定してください。リソースアダプタのコネクションの最小値と最大値のデフォルト値は「10」です。「8」よりも大きい値を設定している状態でリソースアダプタを開始させると,開始時にKDJE49513-Wのメッセージが出力されます。
なお,コネクションプールのウォーミングアップ機能を使用していない場合は,「8」よりも大きい値を設定していても開始時にKDJE49513-Wのメッセージは出力されません。
(a) データベース構築後にユーザ定義およびテーブル定義を行う方法
データベースを構築したあとに,ユーザ定義およびテーブル定義を行う場合の手順を次に示します。
- pdi_s.iniファイルをコピーします。
組み込みデータベースを構築する前に,pdi_s.iniファイルを所定のフォルダに上書きコピーする必要があります。コピー元ファイルとコピー先フォルダを次に示します。
- コピー元ファイル
<Cosminexusのインストールディレクトリ>¥SCC¥DB¥bats¥pdi_s.ini
- コピー先フォルダ
<Cosminexusのインストールディレクトリ>¥SCC¥DB¥ini
- 次のディレクトリを任意の場所にコピーします。
<Cosminexusのインストールディレクトリ>¥SCC¥DB
ここでは,次のディレクトリにコピーしたものとして説明します。
C:¥Setup_Input¥DB
- 組み込みデータベース用の設定ファイルに記述を追加します。
C:¥Setup_Input¥DB¥bats¥cdsetupconfig.batファイルに,次の項目を設定します。
- データベースの領域サイズ(DB_SIZE)
- RDエリアおよびシステムファイルを作成するディレクトリ(RDAREA_DIR)
- 組み込みデータベースで使用するポート番号(DB_PORT)
- 手順2.でコピーしたディレクトリのパス(INPUT_FILE_DIR)
この方法では,次の項目の記述は不要です。
- テーブル所有者の認可識別子(USRID)
- テーブル所有者のパスワード(PSWD)
設定ファイルの記述例を次に示します。
@rem Environment settings file used by HiRDB Embedded Server @rem Please do not use double quotation marks (") in the file path of this file. @rem Table owner's authorization identifier set USRID= @rem Table owner's password set PSWD= @rem Area size of the database to be constructed (required) set DB_SIZE=S @rem Directories where the RD area and system files are to be created (required) set RDAREA_DIR=C:¥Program Files¥Hitachi¥Cosminexus¥SCC¥DB¥area @rem TCP/IP port number used by HiRDB Embedded Server set DB_PORT=22200 @rem Directory where the input files used for HiRDB Embedded Server execution exist set INPUT_FILE_DIR=C:¥Setup_Input¥DB |
空白を含むパスでも,(")ダブルクォーテーションを使用しないで記述してください。
各設定項目については,「(2) 組み込みデータベース用の設定ファイルの設定項目」を参照してください。
- ユーザ定義ファイルおよびテーブル定義ファイルを削除します。
次のディレクトリにあるgrantuserファイルとtablecreateファイルを削除するか,ファイル名を変更してください。
C:¥Setup_Input¥DB¥bats¥
- 組み込みデータベース構築用のバッチファイルを実行します。
コマンドプロンプトのカレントディレクトリをC:¥Setup_Input¥DB¥bats¥に変更して,次のコマンドを実行してください。
エラーとなった場合は,バッチファイルを実行したプロンプト上に,構築に失敗したというメッセージが表示されます。この場合,次に示す内容に従って対処してください。
- pdi_err.txtを参照してエラーの原因を特定する。
- エラーの原因を取り除き,組み込みデータベースを再構築する。
組み込みデータベースを再構築する前に,組み込みデータベースを削除してください。削除する手順については,「(3) 組み込みデータベースの削除」を参照してください。
- HiRDB SQL Executerを起動して,データベースに接続します。
HiRDB SQL Executerの[CONNECT]ダイアログでは,次に示す情報を入力してください。
- 認可識別子:"root"
- パスワード:"root"
- ホスト名:localhost
- ポート番号:22200(設定ファイルのDB_PORTで指定した値)
注 認可識別子およびパスワードには"も含めて指定してください。
- ユーザ定義をします。
データベースに接続後,データベースにアクセスするユーザを定義します。認可識別子をUSER1,パスワードをPSWDとする場合の定義例を示します。
GRANT DBA TO USER1 IDENTIFIED BY PSWD; |
- 定義したユーザでHiRDB SQL Executerに接続し,テーブル定義をします。
CREATE SCHEMA文やCREATE TABLE文などで定義します。また,insert文でデータをロードできます。SQL文の文法については,マニュアル「HiRDB SQLリファレンス」を参照してください。
テーブル定義とデータのロードの例を次に示します。
CREATE SCHEMA; CREATE FIX TABLE CUSTOM ( CUSTOMCD CHAR(5) , CUSTOMNAME CHAR(30), TELNO CHAR(12), ZIPCD CHAR(3) , ADDRESS CHAR(30)) IN RDDATA10 PCTFREE=(10,0); CREATE INDEX CUSTOMX ON CUSTOM ( CUSTOMNAME ASC) IN RDINDX10 PCTFREE=10; insert into CUSTOM values('TK001', 'ミキダデンキ', '011-434-1998', '091', 'トツカ'); insert into CUSTOM values('TK002', 'シンコウデパート', '012-402-5055', '082', 'ヨコハマ'); insert into CUSTOM values('TK003', 'キセツヤ', '014-252-1555', '043', 'カナザワ'); |
データのロードはSQL文を使用する方法のほかに,pdloadコマンドを使用する方法もあります。pdloadコマンドについては,マニュアル「HiRDB コマンドリファレンス」を参照してください。
(b) ユーザ定義およびテーブル定義後にデータベースを構築する方法
ユーザ定義およびテーブル定義を行ったあとに,データベースを構築する場合の手順を次に示します。
- pdi_s.iniファイルをコピーします。
組み込みデータベースを構築する前に,pdi_s.iniファイルを所定のフォルダに上書きコピーする必要があります。コピー元ファイルとコピー先フォルダを次に示します。
- コピー元ファイル
<Cosminexusのインストールディレクトリ>¥SCC¥DB¥bats¥pdi_s.ini
- コピー先フォルダ
<Cosminexusのインストールディレクトリ>¥SCC¥DB¥ini
- 次のディレクトリを任意の場所にコピーします。
<Cosminexusのインストールディレクトリ>¥SCC¥DB
ここでは,次のディレクトリにコピーしたものとして説明します。
C:¥Setup_Input¥DB
- 組み込みデータベース用の設定ファイルに記述を追加します。
C:¥Setup_Input¥DB¥bats¥cdsetupconfig.batファイルに,次の項目を設定します。
- テーブル所有者の認可識別子(USRID)
- テーブル所有者のパスワード(PSWD)
- データベースの領域サイズ(DB_SIZE)
- RDエリアおよびシステムファイルを作成するディレクトリ(RDAREA_DIR)
- 組み込みデータベースで使用するポート番号(DB_PORT)
- 手順2.でコピーしたディレクトリのパス(INPUT_FILE_DIR)
設定ファイルの記述例を次に示します。
@rem Environment settings file used by HiRDB Embedded Server @rem Please do not use double quotation marks (") in the file path of this file. @rem Table owner's authorization identifier set USRID=USER1 @rem Table owner's password set PSWD=PSWD @rem Area size of the database to be constructed (required) set DB_SIZE=S @rem Directories where the RD area and system files are to be created (required) set RDAREA_DIR=C:¥Program Files¥Hitachi¥Cosminexus¥SCC¥DB¥area @rem TCP/IP port number used by HiRDB Embedded Server set DB_PORT=22200 @rem Directory where the input files used for HiRDB Embedded Server execution exist set INPUT_FILE_DIR=C:¥Setup_Input¥DB |
空白を含むパスでも,(")ダブルクォーテーションを使用しないで記述してください。
記述例では,認可識別子をUSER1,パスワードをPSWDとしています。
各設定項目については,「(2) 組み込みデータベース用の設定ファイルの設定項目」を参照してください。
- ユーザ定義ファイルを作成します。
C:¥Setup_Input¥DB¥bats¥に格納されているユーザ定義ファイルのgrantuserファイルは,SQLのGRANT文を記述したテキストファイルです。次に作成規則を示します。
- ファイル名は「grantuser」で固定です。
- このファイルは,C:¥Setup_Input¥DB¥bats¥に作成してください。
- grantuserファイルで指定する認可識別子およびパスワードは,C:¥Setup_Input¥DB¥bats¥cdsetupconfig.batファイルで指定したUSRIDパラメタおよびPSWDパラメタと同じ値にしてください。
- ユーザ定義ファイルがない場合は,ユーザ定義を実行しません。また,ユーザ定義を実行しないでテーブルを作成した場合,テーブル所有者の認可識別子とパスワードはともに「root」になります。
次に,認可識別子をUSER1,パスワードをPSWDとした場合の定義例を示します。
/* grantuser */ GRANT DBA TO USER1 IDENTIFIED BY PSWD; GRANT SCHEMA TO USER1; |
- テーブル定義ファイルを作成します。
C:¥Setup_Input¥DB¥bats¥に格納されているテーブル定義ファイルのtablecreateファイルは,CREATE SCHEMA文やCREATE TABLE文などの定義系SQL(DDL文)を記述したテキストファイルです。次に作成規則を示します。
- このファイルはC:¥Setup_Input¥DB¥bats¥に作成します。
- テーブル定義ファイル名は「tablecreate」で固定です。
- テーブル定義ファイルがない場合には,テーブル定義を実行しません。
SQL文の文法については,マニュアル「HiRDB SQLリファレンス」を参照してください。テーブルを作成する例を次に示します。
CREATE SCHEMA; CREATE FIX TABLE CUSTOM ( CUSTOMCD CHAR(5) , CUSTOMNAME CHAR(30), TELNO CHAR(12), ZIPCD CHAR(3) , ADDRESS CHAR(30)) IN RDDATA10 PCTFREE=(10,0); CREATE INDEX CUSTOMX ON CUSTOM ( CUSTOMNAME ASC) IN RDINDX10 PCTFREE=10; |
テーブルへデータをロードする場合は,データベースを構築したあとにpdloadコマンドを使用してください。pdloadコマンドについては,マニュアル「HiRDB コマンドリファレンス」を参照してください。
- 組み込みデータベース構築用のバッチファイルを実行します。
コマンドプロンプトのカレントディレクトリをC:¥Setup_Input¥DB¥bats¥に変更して,次のコマンドを実行してください。
エラーとなった場合は,バッチファイルを実行したプロンプト上に,構築に失敗したというメッセージが表示されます。この場合,次に示す内容に従って対処してください。
- pdi_err.txtを参照してエラーの原因を特定する。
- エラーの原因を取り除き,組み込みデータベースを再構築する。
組み込みデータベースを再構築する前に,組み込みデータベースを削除してください。削除する手順については,「(3) 組み込みデータベースの削除」を参照してください。
(2) 組み込みデータベース用の設定ファイルの設定項目
ここでは,次に示す組み込みデータベース用の設定ファイル(cdsetupconfig.bat)の設定項目について説明します。
@rem ALL RIGHTS RESERVED, COPYRIGHT (C) 2004, HITACHI, LTD. @rem LICENSED MATERIAL OF HITACHI, LTD. @title HiRDB Embedded Server @echo off @rem Environment settings file used by HiRDB Embedded Server @rem Please do not use double quotation marks (") in the file path of this file. @rem Table owner's authorization identifier set USRID=USER1 ・・・(1) @rem Table owner's password set PSWD=PSWD ・・・(2) @rem Area size of the database to be constructed (required) set DB_SIZE=S ・・・(3) @rem Directories where the RD area and system files are to be created (required) set RDAREA_DIR=C:¥Program Files¥Hitachi¥Cosminexus¥SCC¥DB¥area ・・・(4) @rem TCP/IP port number used by HiRDB Embedded Server set DB_PORT=22200 ・・・(5) @rem Directory where the input files used for HiRDB Embedded Server execution exist set INPUT_FILE_DIR=C:¥Program Files¥Hitachi¥Cosminexus¥SCC¥DB ・・・(6) |
設定ファイルに記述を追加するときは,次の点に注意してください。
- 空白を含むパスでも,(")ダブルクォーテーションを使用しないでください。
- 空白も文字として認識します。イコール(=)のあとに空白を入れないでください。
(1)~(6)の各設定項目について説明します。
- USRID(認可識別子)
テーブル所有者の認可識別子を設定します。この設定は,cddbconstruct.batコマンドでシステム定義と,ユーザ定義・テーブル定義を同時に行う場合に必要です。grantuserファイルで指定した認可識別子と同じものを指定してください。
- PSWD(パスワード)
テーブル所有者のパスワードを設定します。この設定は,cddbconstruct.batコマンドでシステム定義と,ユーザ定義・テーブル定義を同時に行う場合に必要です。grantuserファイルで指定したパスワードと同じものを指定してください。
- DB_SIZE(データベースの領域サイズ)
構築するデータベースの領域サイズを設定します。この設定は必須です。提供しているひな型のデータベース領域サイズは,システムファイルとRDエリアを合わせたサイズで,S,M,Lのどれかを指定します。
- RDAREA_DIR(RDエリアを作成するディレクトリ)
RDエリアを作成するディレクトリおよびシステムファイルを作成するディレクトリを絶対パスで設定します。この設定は必須です。指定する形式を示します。
RDAREA_DIR=rdarea_directory[,systemA_directory[,systemB_directory]]
- rdarea_directory
RDエリアを作成するディレクトリを指定します。
- systemA_directory
A系システムファイルを作成するディレクトリを指定します。
- systemB_directory
B系システムファイルを作成するディレクトリを指定します。
指定時は,次の点に注意してください。
- RDAREA_DIRで指定するディレクトリは48バイト以内の半角英数字で指定してください。
- systemA_directoryを省略した場合,rdarea_directoryにシステムファイルが作成されます。
- systemB_directoryを省略した場合,systemA_directory にB系システムファイルが作成されます。
- systemB_directoryを指定した場合,初期値ファイルで指定するシステムファイル作成先の領域は,A系とB系で分ける必要があります。
- 同じファイルシステム領域が使用されている場合,コマンド実行時にエラーとなります。
- 存在しないディレクトリを指定した場合は,新規にディレクトリが作成されます。
- 指定したディレクトリのディスク容量がセットアップするファイル容量よりも小さい場合はエラーとなります。
- DB_PORT(ポート番号)
組み込みデータベースで使用するTCP/IPポート番号を設定します(pd_name_portに対応します)。指定時は,次の点に注意してください。
- 指定値は5001~65535の範囲で指定します。
- 省略時は22200を仮定します。
- すでに存在するポート番号を指定した場合はエラーとなります。存在するポート番号とはservicesファイルに記述されているポート番号を示します。なお,ほかのHiRDBポート番号との重複チェックはされません。
- INPUT_FILE_DIR(入力ファイルのディレクトリ)
入力ファイルの存在するディレクトリを絶対パスで設定します。入力ファイルとは,初期値ファイルおよびシステム定義入力ファイルを指します。指定時は,次の点に注意してください。
- 指定したディレクトリの下に,ひな型として提供されているディレクトリ構成と同様にconfおよびini以下のディレクトリを作成する必要があります。
- 指定を省略した場合は,環境変数COSMINEXUS_HOME¥DB¥PDISTUPディレクトリが仮定されます。
ひな型として提供されているディレクトリ,任意に作成するディレクトリ,および指定省略時に読み込まれるディレクトリ構成を次の図に示します。
図B-2 組み込みデータベースの入力ファイルのディレクトリ構成
![[図データ]](figure/zu040300.gif)
(3) 組み込みデータベースの削除
組み込みデータベースは,次に示すバッチファイルを実行して削除します。
エラーとなった場合は,バッチファイルを実行したプロンプト上に,構築に失敗したというメッセージが表示されます。この場合,pdirst_err.txtを参照してエラーの原因を取り除き,再度cddbdelete.batを実行してください。