Oracle Identity Managerを構成して、1つのデータベースを現行トランザクション・データに使用し、セカンダリ・データベースを履歴データに使用するようにできます。セカンダリ・データベースにより、トランザクション・データベースの負荷が軽減されます。
セカンダリ・データベースには、異なるデータソースを使用できます。次の各項では、セカンダリ・データソースを使用するために、Oracle Identity Managerとアプリケーション・サーバーを構成する方法について説明します。
この章の内容は次のとおりです。
ユーザー・プロファイル監査データのサイズは、急速に増える場合があります。セカンダリ・データベースを使用してこの情報を格納することをお薦めします。次のシステム・プロパティを使用すると、このデータベースに対して直接読取りおよび書込みができるようになります。
XL.UserProfileAuditInSecondaryDS
デフォルトでは、XL.UserProfileAuditInSecondaryDS
プロパティはfalse
に設定されています。このプロパティをtrue
に設定すると、すべてのユーザー・プロファイル・データの読取りおよび書込みは、セカンダリ・データベースに対して直接行われます。
セカンダリ・データベースを構成すると、すべての履歴レポートがセカンダリ・データベースに対して実行されるように自動的に構成されます。
ユーザー・プロファイル監査では、セカンダリ・データベースと直接やり取りします。レポートにはアクセス制御およびレポートのフィルタ処理のために他の表が必要であるため、トランザクション・データベースからそれらの表をレプリケートする必要があります。データのバックアップ、リストアまたはレプリケーションを簡単にするために、これらの表および制約を無効にできます。
表4-1に、使用される表および制約を示します。
表4-1 履歴レポートで使用される表および制約
表名 | 外部キー制約名 | 参照表名 | 参照列名 |
---|---|---|---|
AAD |
FK_AAD_FK_AAD_AC_ACT |
ACT |
ACT_KEY |
FK_AAD_FK_AAD_UG_UGP |
UGP |
UGP_KEY |
|
ACT |
FK_ACT_ACT |
ACT |
PARENT_KEY |
FK_ACT_SRP |
SRP |
SRP_KEY |
|
GPG |
FK_GPG_UGP |
UGP |
UGP_KEY |
FK_GPG_UGP_KEY_UGP |
UGP |
GPG_UGP_KEY |
|
OUG |
FK_OUG_OBJ |
OBJ |
OBJ_KEY |
FK_OUG_UGP |
UGP |
UGP_KEY |
|
POL |
|||
PTY |
|||
REQ |
FK_REQ_ORC |
ORC |
ORC_KEY |
FK_REQ_OST |
OST |
OST_KEY |
|
FK_REQ_USR |
USR |
USR_KEY |
|
UGP |
|||
USG |
FK_USG_RUL |
RUL |
RUL_KEY |
FK_USG_UGP |
UGP |
UGP_KEY |
|
FK_USG_USR |
USR |
USR_KEY |
|
USR |
FK_USR_ACT |
ACT |
ACT_KEY |
セカンダリ・データベースを設定するには、次のようにします。
セカンダリ・データベースを作成します。
トランザクション・データベースを異なるデータベース名でバックアップおよびリストアするか、レプリケートできます。
セカンダリ・データベースを使用するように、アプリケーション・サーバーを設定します。
詳細は、次の各項を参照してください。
システム・プロパティXL.UserProfileAuditInSecondaryDS
をTrue
に設定します。
この設定により、ユーザー・プロファイル監査データはセカンダリ・データベースに格納されます。
データの日次レプリケーションを構成し、表4-1に示したセカンダリ・データベース内の表がプライマリ・データベースから更新されるようにします。セカンダリ・データベースが有効になった後に、プライマリ・データベース全体をセカンダリ・データベースにレプリケートしないでください。レプリケートすると、セカンダリ・データベースに格納されていた監査データが削除されます。
あるいは、完全なリストアまたはレプリケーションのいずれかを設定します。
すべてのストアド・プロシージャがセカンダリ・データベースに正しくレプリケートされていることを確認します。
Oracle Databaseの場合:
jdbc:oracle:thin:@<
IP of database
>:<
SID
>
SQL Serverの場合:
jdbc:Microsoft:sqlserver://<
IP of database
>:<
Port
>;DatabaseName=<
SID
>;SelectMethod=Cursor
新しいデータソースをJBossに作成するために、xlreportds-service.xmlという新しいファイルが設定によってデプロイ・ディレクトリに作成されます。このファイルでは、トランザクション・データベースに対する別名がjava:jdbc/xlXAReportingDS
設定を使用して作成されます。
JBossのセカンダリ・データベースを指すようにするには、次のようにします。
Oracle Databaseの場合、次のコードを2つ目のxa-datasource
タグとしてxell-ds.xmlに追加します。
<xa-datasource> <jndi-name>jdbc/xlXAReportingDS</jndi-name> <track-connection-by-tx>true</track-connection-by-tx> <isSameRM-override-value>false</isSameRM-override-value> <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource </xa-datasource- class> <xa-datasource-property name="URL">jdbc:oracle:thin:@<IP of database system>: 1521:XELL </xa-datasource-property> <xa-datasource-property name="User">sysadm</xa-datasource-property> <xa-datasource-property name="Password">sysadm</xa-datasource-property> <exception-sorter-class-name> org.jboss.resource.adapter.jdbc.vendor. OracleExceptionSorter </exception-sorter-class-name> <no-tx-separate-pools/> <valid-connection-checker-class-name> org.jboss.resource.adapter.jdbc.vendor. OracleValidConnectionChecker </valid-connection-checker-class-name> </xa-datasource>
SQL Serverの場合、セカンダリ・データベースのタグは、次のようになります。
<xa-datasource>
<jndi-name>jdbc/xlXADS</jndi-name>
<track-connection-by-tx>true</track-connection-by-tx>
<xa-datasource-class>
com.microsoft.jdbcx.sqlserver.SQLServerDataSource</xa-datasource-class>
<xa-datasource-property name="ServerName"><IP of database system> </xa-datasource-property>
<xa-datasource-property name="DatabaseName">XELL</xa-datasource-property>
<xa-datasource-property name="SelectMethod">cursor</xa-datasource-property>
<xa-datasource-property name="PortNumber">1433</xa-datasource-property>
<user-name>sysadm</user-name>
<password>sysadm</password>
<check-valid-connection-sql>
select 1 from USR where 1=2
</check-valid-connection-sql>
</xa-datasource>
Oracle Databaseの場合とSQL Serverの場合では、クラス名は次に示すように異なります。
Oracleの場合:
oracle.jdbc.xa.client.OracleXADataSource
SQL Serverの場合:
com.microsoft.jdbcx.sqlserver.SQLServerDataSource
セカンダリ・データベースとして設定するデータベースに接続するためのデータベース名、ユーザー名およびパスワードを変更します。
JBossサーバーを再起動します。
注意: エラーの原因となるため、この項のxa-datasource ブロックを追加したり、jdbc/xlXAReportingDS がトランザクション・データベースを指すように設定しないでください。同じトランザクション・データベースを指すようにするには、xlreportds-service.xmlファイルを現状のままにしておきます。 |
スタンドアロン設定では、xell-ds.xmlファイルとxlreportds-service.xmlファイルは、JBOSS_HOME\server\default\deploy\ディレクトリにあります。
クラスタ化設定では、xell-ds.xmlファイルはJBOSS_HOME\server\all\farm\ディレクトリに、xlreportds-service.xmlファイルは JBOSS_HOME\server\all\deploy\ディレクトリにあります。
JBoss用にクラスタを構成するには、次のようにします。
xell-ds.xmlファイルに対する変更をクラスタ内のすべてのコンピュータにコピーします。
クラスタ内のすべてのコンピュータでJBossサーバーを再起動します。
Oracle Identity Managerでレポートの作成に使用されるデータソースを変更する前に、新しいデータソースをWeblogicに作成します。Weblogicのマニュアルに従って、新しいデータソースを設定します。
Oracle Databaseを使用してWeblogicをセカンダリ・データソースとともに構成するには、次のようにします。
Weblogic管理コンソールにログインします。
セカンダリ・データソースを作成し、サーバーにデプロイします。
Weblogic管理コンソールでJDBCデータソースにナビゲートし、次の資格証明を使用してデータソースを作成します。
新しいデータソースを指すように、XL_HOME/Xellerate/profiles/のweblogic.profileファイルを編集します。
次のように、JNDI名をweblogic.profileに追加します。
Oracle Identity Managerでレポートの作成に使用されるデータソースを変更する前に、新しいデータソースをWebsphereに作成する必要があります。新しいデータソースの設定の詳細は、Websphereのマニュアルを参照してください。
Oracle Databaseを使用してWebsphereをセカンダリ・データソースとともに構成するには、次のようにします。
Websphere管理コンソールにログインします。
次の詳細情報を使用して新しいデータソースを作成します。
jdbc:oracle:thin:@<
IP of database
>:<
port_number
>:<
SID
>
例: jdbc:oracle:thin:@192.168.161.134:1521:xeltest
別名: <secondary user alias>
ユーザー: <secondary user>
パスワード: <secondary user password>
説明: <Descriptive text for the data>
次の値を持つXAReportingDatasource
の認証別名を選択します。
コンポーネント管理の認証別名: <J2C Authentication Data Entries>
コンテナ管理の認証別名: <J2C Authentication Data Entries>
変更を保存し、すべてのノード間で同期化します。
websphere.profileファイルを開き、XL_HOME/xellerate/Profilesディレクトリの新しいデータソースを指すJNDI情報を追加します。
次のように、既存のxlXADS
のデータソース・エントリをコメント化してxlXAReportingDS
の情報を追加します。
# Reporting data source #datasource.report=jdbc/xlXADS datasource.report=jdbc/xlXAReportingDS
次のJavaクライアント・システム・プロパティをtrueに設定します。
XL.UserProfileAuditInSecondaryDS=True
XL_HOME\xellerate\setupディレクトリのpatch_websphere.cmd
またはpatch_websphere.sh
を規定どおりに実行します。