ユーザアプリケーションは、環境設定データの保存や、ワークフローアクティビティのデータの保存など、さまざまなタスクにデータベースを使用します。Roles Based Provisioning Moduleまたはユーザアプリケーションをインストールする前に、インストールして設定されているプラットフォームに対してサポートされているデータベースが1つ存在する必要があります。以下のような機能があります。
データベースおよびデータベースドライバのインストール
データベースまたはデータベースインスタンスの作成
Identity Manager Roles Based Provisioning Moduleのインストール手順で使用するための以下のデータベースパラメータの記録
ホストおよびポート
データベース名、ユーザ名、およびユーザパスワード
データベースをポイントするデータソースファイルの作成
方法はアプリケーションサーバに応じて変わります。JBossの場合は、Identity Manager Roles Based Provisioning Moduleのインストールプログラムが、データベースを指すアプリケーションサーバのデータソースファイルを作成し、Identity Manager Roles Based Provisioning ModuleWARファイルの名前に基づいてファイルに名前を付けます。WebSphereおよびWebLogicの場合は、インストール前に手動でデータソースを設定します。
データベースではUTF-8を有効にする必要があります。
メモ:新しいバージョンのRoles Based Provisoining Moduleへマイグレートする場合は、古いインストール(マイグレート元のインストール)で使用していたものと同じユーザアプリケーションデータベースを使用する必要があります。
ユーザアプリケーションには、MySQLの特定の設定オプションが必要です。MySQLを自分でインストールする場合、これらを設定します。JBossMySQLユーティリティを使用してMySQLをインストールすると、ユーティリティによって正しい値が設定されますが、以下を維持するための値は把握しておく必要があります。
ユーザアプリケーションはINNODBストレージエンジンを使用します。これにより、MySQLのINNODBテーブルタイプを選択できます。テーブルタイプを指定せずにMySQLテーブルを作成した場合、テーブルはデフォルトでMyISAMテーブルタイプを受け付けます。Identity Managerのインストール手順に従ってMySQLをインストールした場合は、この手順で発行されるMySQLは、INNODBテーブルタイプが指定された状態で付属します。MySQLサーバが確実にINNODBを使用するようにするには、my.cnf (LinuxまたはSolarisの場合)またはmy.ini (Windowsの場合)に次のオプションが含まれていることを確認します。
default-table-type=innodb
このファイルにはskip-innodbオプションが含まれていてはなりません。
サーバ全体またはデータベースのみに対し、文字セットとしてUTF-8を指定します。サーバ全体にUTF-8を指定するには、my.cnf (LinuxまたはSolaris)またはmy.ini (Windows)に以下のオプションを含めます。
character_set_server=utf8
次のコマンドを使用して、データベースの作成時にデータベースの文字セットを指定することもできます。
create database databasename character set utf8 collate utf8_bin;
データベースに文字セットを指定した場合、以下の例のように、IDM-ds.xmlファイルのJDBC* URLにも文字セットを指定する必要があります。
<connection-url>jdbc:mysql://localhost:3306/databasename?useUnicode=true&characterEncoding=utf8&connectionCollation=utf8_bin</connection-url>
サーバまたはプラットフォーム全体でデータをバックアップおよびリストアする計画の場合は、大文字と小文字の区別がサーバまたはプラットフォーム全体で統一されていることを確認します。統一されているかどうかを確認するには、デフォルトをそのまま使用するのではなく(Windowsではデフォルトで0に、Linuxではデフォルトで1に設定されます)、すべてのmy.cnfファイル(LinuxまたはSolarisの場合)またはmy.iniファイル(Windowsの場合)のlower_case_table_namesに同じ値 (0または1)を指定します。データベースを作成してIdentity Managerのテーブルを作成する前に、この値を指定します。たとえば、次のように指定します。
lower_case_table_names=1
これは、データベースのバックアップおよびリストアを計画しているすべてのプラットフォームのmy.cnfおよびmy.iniファイルに指定します。