ヘッダーをスキップ
Oracle® Fusion Middleware Repository Creation Utilityユーザーズ・ガイド
11g リリース1(11.1.1.6.0)
B55904-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

3 カスタム・アプリケーション・リポジトリを構成するためのRepository Creation Utilityの拡張

コンポーネント所有者がスキーマの作成スクリプトおよび削除スクリプトをRCUにプラグインできるよう、RCUにはXMLベースのフレームワークが用意されています。この章では、コンポーネントをRCUに統合するときに使用する構成XMLファイルおよびスクリプトの作成ガイドラインについて詳しく説明します。

この章では、次のトピックを取り扱います:

3.1 RCU統合オプション

RCUには、コンポーネント・スクリプトを統合するための次のオプションが用意されています。

コンポーネント・スクリプトの統合に推奨されるオプションは、RCU JDBCエンジン準拠のSQL*Plusスクリプトです。SQL*Plusおよび外部プロセスは、Oracle Portal 10gやIdentity Managementなど、レガシー・コンポーネントおよびクラシック・コンポーネントの統合のみを目的とします。SQL*Plusスクリプトに依存するコンポーネントは、インストール先のOracleホームから実行している場合、RCUでロードできません。CDからRCUを実行している場合のみ使用できます。

3.1.1 RCU JDBCエンジン準拠のSQL*Plusスクリプト

RCU JDBCエンジンは、JDBC経由で一連のSQL*Plus機能をエミュレートします。この機能セットは広範にわたり、スキーマ作成の要件を十分に満たしています。コンポーネント・チームは、わずかな変更のみで既存のSQL*Plusスクリプトを統合できます。

RCU JDBCエンジンはSQL*Plusスクリプトを解析して個々の文を取得し、各文をJDBCで実行します。スクリプトへのコマンドライン引数およびDEFINE変数を用いた置換がサポートされています。スクリプトはネストできます(たとえば、1つのスクリプトから他のスクリプトをコールできます)。コンポーネント・チームが、構成ファイルを介して、RCUに対して予想されるエラーおよび致命的エラーのリストを指定すると、RCUはスクリプトの実行時にこれらを解析します。

これらのスクリプトは、開発環境においてSQL*Plusで実行できるため、簡単に管理および使用できます。ただし、RCUに統合されている場合は、これらのスクリプトが正しく実行されるよう、開発環境でRCU JDBCエンジン・ツールも使用することをお薦めします。

3.1.2 純粋なJDBCスクリプト

このオプションは、Oracle以外のデータベースに対して推奨されます(Oracleデータベースの場合は、RCU JDBCエンジン準拠のSQL*Plusスクリプトを使用する必要があります)。スクリプト・ファイルの内容は、Connection.prepareCall()またはConnection.createStatement()を使用してコールできる有効なPL/SQLブロックでなければなりません。標準のJDBCバインド変数と'?'の表記規則がサポートされます。

このオプションには次のような弱点があります。

  • スクリプトはネストされません。そのため、スクリプトが大量になる可能性があります。

  • この形式のスクリプトを再作成する場合、コンポーネント・チームによるやりなおしの作業が膨大になる可能性があります。

  • DDL文ごとにEXECUTE IMMEDIATEでラップする必要があるため、管理が困難です。

  • 開発環境でSQL*Plusを使用して実行できません。

  • なんらかのエラーが発生するとブロック全体が失敗するため、エラー・サポートがあまり役立ちません。

次に例を示します。

<Action TYPE="JDBC" PERCENT_PROGRESS="20">
   <ValidIf DBTYPE="ORACLE" />
   <Command TYPE="INLINE">DROP USER %SCHEMA_USER% CASCADE</Command>
</Action>

2番目の例を示します。

<Action TYPE="Java" PERCENT_PROGRESS="100">
   <Command TYPE="METHOD">
      oracle.ias.version.SchemaVersionUtil:utilSetComponentValid
   </Command>

   <Parameters>
      <Parameter TYPE="String">MDS</Parameter>
    </Parameters>
</Action>

3.1.3 SQL*Plusスクリプト

このオプションは主に、RCUからロードする必要があるレガシー・コンポーネントを使用するためのものです。このオプションは、CDまたはスタンドアロンshiphomeからRCUを実行する場合のみ使用できます。RCUは、CDまたはデータベース・サーバー上のOracleクライアントを使用します。OracleホームからRCUを起動することによってロードされることが予期される11gコンポーネントでは、このオプションを使用しないでください。

例:

<Action TYPE="SQLPlus" PERCENT_PROGRESS="100">
   <Command TYPE="SCRIPT">%SCRIPT_HOME%/oid/scripts/seedldap.sql</Command>
   <IgnorableErrors>
      <Error Type="ORA-01918">user name does not exist</Error>
   </IgnorableErrors>
</Action>

2番目の例を示します。

<Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20">
   <ValidIf DBTYPE="ORACLE" />
   <Command TYPE="SCRIPT">%SCRIPT_HOME%/mds/sql/mds_user.sql</Command>
   <Parameters>
      <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
      <Parameter TYPE="CmdLine">%SCHEMA_PASSWORD%</Parameter>
      <Parameter TYPE="CmdLine">%DEFAULT_TABLESPACE%</Parameter>
      <Parameter TYPE="CmdLine">%TEMPORARY_TABLESPACE%</Parameter>
   </Parameters>
</Action>

3.1.4 外部プロセス

このオプションは、OPCA(Oracle Portal 10g)のように、スキーマを作成するための独自の構成ツールを持つコンポーネント用のみに提供されています。このオプションはRCUエラー処理フレームワークを利用できないため、新しいコンポーネントでの使用はお薦めできません。

例:

<Action TYPE="HostCmd">
<Command TYPE="SCRIPT">%RCU_HOME%/rcu/integration/cdb/config/bin/configure</Command>
<Parameters>
   <Parameter TYPE="ProcessInput">%JDBC_CONNECT_STRING%</Parameter>
   <Parameter TYPE="ProcessInput">%DBADMIN_USER%</Parameter>
   <Parameter TYPE="ProcessInput">%DBADMIN_PASSWORD%</Parameter>
   <Parameter TYPE="ProcessInput">%PREFIX_NAME%</Parameter>
   <Parameter TYPE="ProcessInput">%SCHEMA_USER%</Parameter>
   <Parameter TYPE="ProcessInput">%SCHEMA_PASSWORD%</Parameter>
   <Parameter TYPE="ProcessInput">%DEFAULT_TABLESPACE%</Parameter>
   <Parameter TYPE="ProcessInput">%TEMPORARY_TABLESPACE%</Parameter>
</Parameters>
</Action>

3.1.5 JavaActionを使用するJavaコード

このオプションは、JDBC接続を受け入れてSQL文を実行できる、Javaコードを持つコンポーネントに対して提供されています。これは、通常、大量のデータを生成する必要がある場合、または、LOBを作成する必要がある場合に使用します。

例:

<Action TYPE="Java">
   <Command TYPE="METHOD">
      oracle.ias.version.SchemaVersionUtil:utilCreateRegistryEntry
   </Command>

   <Parameters>
      <Parameter TYPE="Connection"></Parameter>
      <Parameter TYPE="String">%SCHEMA_USER%</Parameter>
   </Parameters>
</Action>

2番目の例:

<Action TYPE="Java">
   <Command TYPE="METHOD">oracle.webdb.config.PortalConfigAssistant:main</Command>
   <Parameters>
      <Parameter TYPE="StringArray">-mode PORTAL -s %SCHEMA_USER% -p %DBADMIN_PASSWORD% -c %DB_HOSTNAME%:%DB_PORTNUMBER%:%DB_SERVICE% -silent -verbose -owa -u %DEFAULT_TABLESPACE% -t %TEMPORARY_TABLESPACE% -d %SCHEMA_USER%_DOC -l %SCHEMA_USER%_LOG -in %SCHEMA_USER%_IDX -demo -report -voh %RCU_HOME% -log %RCU_LOG_LOCATION% -oh %SQLPLUS_HOME% -mrc %PREFIX_NAME% -rcu </Parameter>
   </Parameters>
</Action>

3.2 RCU構成ファイル

RCUには、コンポーネントを統合するための次の構成ファイル・タイプが用意されています。

3.2.1 RCUで定義されるXML DTD

ここでは、RCUで定義されるXML DTDについて説明します。

3.2.1.1 コンポーネント記述子構成ファイル

各コンポーネント所有者は、前提条件とアクションを一覧表示した、次のDTDを遵守した構成ファイルを提供します。

コンポーネント記述子構成ファイルはComponentInfo.dtdと呼ばれ、RCU_HOME/rcu/configディレクトリ(UNIXオペレーティング・システム)またはRCU_HOME\rcu\configディレクトリ(Windowsオペレーティング・システム)にあります。

<?xml version="1.0" encoding="UTF-8" ?>
<!ENTITY % commonDTD SYSTEM "RCUCommon.dtd">
%commonDTD;
<!ELEMENT ComponentInfo (Display, PrefixSettings, Component*, PrerequisiteDescriptor*, ExecutionDescriptor?, FatalErrors?, IgnorableErrors?)>
<!ATTLIST ComponentInfo
        VERSION CDATA #REQUIRED
        TYPE CDATA #REQUIRED
        RESOURCE_BUNDLE_PACKAGE CDATA #IMPLIED>
<!ELEMENT PrefixSettings (DetectQuery*)>
<!ATTLIST PrefixSettings
          USE_SCHEMA_PREFIX (TRUE|FALSE) "TRUE"
          USE_TABLESPACE_PREFIX (TRUE|FALSE) "TRUE">
<!ELEMENT Component (ValidIfSet?, ValidIf?, Display, RepositoryConfigFile?, DetectQuery*, SchemaVersion?, SchemaUser?, AdditionalSchemaUser*, Dependents?, DatabaseName?, Tablespaces?, CustomVariables?)>
<!ATTLIST Component
        ID CDATA #REQUIRED
        PROGRESS_UNITS CDATA #IMPLIED
        IS_GROUPING_COMPONENT  (TRUE|FALSE) "FALSE"
        DEFAULT_SELECTED (TRUE|FALSE) "FALSE"
        CHILD_OF CDATA #IMPLIED
        MANDATORY_SELECTED (TRUE|FALSE) "FALSE">
<!ELEMENT Display (#PCDATA)>
<!ATTLIST Display
        NLS_ID CDATA #IMPLIED>
<!ELEMENT RepositoryConfigFile (#PCDATA)>
<!ELEMENT DetectQuery (#PCDATA)>
<!ATTLIST DetectQuery
        OPERATION (CREATE|DROP) 'CREATE'
        TYPE (ORACLE|SQLSERVER|IBMDB2|EBR|MYSQL) 'ORACLE'>
<!ELEMENT SchemaVersion (#PCDATA)>
<!ELEMENT SchemaUser (#PCDATA)>
<!ATTLIST SchemaUser
        USER_EDITABLE (TRUE|FALSE) "TRUE"
        PREFIXABLE (TRUE|FALSE) "TRUE"
        IS_CREATED  (TRUE|FALSE) "TRUE"
        MAX_LENGTH CDATA "30">
<!ELEMENT AdditionalSchemaUser (#PCDATA)>
<!ATTLIST AdditionalSchemaUser
        STARTS_WITH_SCHEMA_USER (TRUE|FALSE) "TRUE" >
<!ELEMENT Dependents (Dependent*)>
<!ELEMENT Dependent (#PCDATA)>
<!ATTLIST Dependent
        COMPONENT_ID CDATA #REQUIRED
        ALT_COMPONENT_ID CDATA #IMPLIED>
<!ELEMENT DatabaseName (#PCDATA)>
<!ELEMENT Tablespaces (Tablespace*)>
<!ATTLIST Tablespace TYPE (DEFAULT_TABLESPACE|TEMPORARY_TABLESPACE|ADDITIONAL_TABLESPACE1|ADDITIONAL_TABLESPACE2|ADDITIONAL_TABLESPACE3|ADDITIONAL_TABLESPACE4|ADDITIONAL_TABLESPACE5|ADDITIONAL_TABLESPACE6|ADDITIONAL_TABLESPACE7|ADDITIONAL_TABLESPACE8|ADDITIONAL_TABLESPACE9|ADDITIONAL_TABLESPACE10|ADDITIONAL_TABLESPACE11|ADDITIONAL_TABLESPACE12|ADDITIONAL_TABLESPACE13|ADDITIONAL_TABLESPACE14|ADDITIONAL_TABLESPACE15|ADDITIONAL_TABLESPACE16|ADDITIONAL_TABLESPACE17|ADDITIONAL_TABLESPACE18|ADDITIONAL_TABLESPACE19|ADDITIONAL_TABLESPACE20|ADDITIONAL_TABLESPACE21|ADDITIONAL_TABLESPACE22|ADDITIONAL_TABLESPACE23|ADDITIONAL_TABLESPACE24|ADDITIONAL_TABLESPACE25|ADDITIONAL_TABLESPACE26|ADDITIONAL_TABLESPACE27|ADDITIONAL_TABLESPACE28|ADDITIONAL_TABLESPACE29|ADDITIONAL_TABLESPACE30|ADDITIONAL_TABLESPACE31) "DEFAULT_TABLESPACE">
<!ELEMENT Tablespace (Prompt, TablespaceName)>
<!ELEMENT Prompt (#PCDATA)>
<!ATTLIST Prompt NLS_ID CDATA #IMPLIED>
<!ELEMENT TablespaceName (#PCDATA)>
<!ELEMENT CustomVariables (Variable*)>
<!ATTLIST Variable
          TYPE (STRING|NUMBER|PASSWORD|EXISTING_PASSWORD|FILE) "STRING"
          MAX_LENGTH CDATA "30"
          MIN_LENGTH CDATA "0"
          OPERATION (CREATE|DROP|BOTH) "BOTH"
          DEFAULT_VALUE CDATA "">
<!ELEMENT Variable (Name,Display)><!ELEMENT Name (#PCDATA)>

3.2.1.2 リポジトリ構成ファイル

リポジトリ構成ファイルはRepositoryConfig.dtdと呼ばれ、RCU_HOME/rcu/configディレクトリ(UNIXオペレーティング・システム)またはRCU_HOME\rcu\configディレクトリ(Windowsオペレーティング・システム)にあります。

<?xml version="1.0" encoding="UTF-8" ?>
<!ENTITY % commonDTD SYSTEM "RCUCommon.dtd">
%commonDTD;
<!ELEMENT RepositoryConfig (PrerequisiteDescriptor*, ExecutionDescriptor, DeleteDescriptor?)>
<!ATTLIST RepositoryConfig
        COMP_ID CDATA #REQUIRED>
<!ELEMENT DeleteDescriptor (Action*)>

3.2.1.3 サポートされるコンポーネントのマスター・リスト

RCUは、サポートされるコンポーネントのマスター・リストを保持しています。これは、サポートされる各コンポーネントのエントリで構成されています。新しいコンポーネントが追加されるたびに、サポートされるコンポーネントのマスター・リストは、コンポーネント所有者によって提供されるXML統合ファイルを参照して更新されます。

この構成ファイルはRCUCommon.dtdと呼ばれ、RCU_HOME/rcu/configディレクトリ(UNIXオペレーティング・システム)またはRCU_HOME\rcu\configディレクトリ(Windowsオペレーティング・システム)にあります。

<?xml version="1.0" encoding="UTF-8" ?>
<!ELEMENT PrerequisiteDescriptor (DBPrerequisiteSet*, DBPrerequisite*)>
<!ATTLIST PrerequisiteDescriptor
        TYPE (CREATE|DROP|REGISTER|DEREGISTER) 'CREATE'>
<!ELEMENT DBPrerequisiteSet (ValidIfSet?, ValidIf?, PrereqSetErrorMsg?, DBPrerequisite*)>
<!ATTLIST DBPrerequisiteSet
          OPERATOR (OR|AND) "OR"
          SOFT (TRUE|FALSE) "FALSE">
<!ELEMENT DBPrerequisite (ValidIfSet?, ValidIf?, PrereqIdentifier, PrereqValue, PrereqErrorMsg?)>
<!ATTLIST DBPrerequisite
PREREQ_TYPE (InitParameter|DBOption|Java|DBComponent|DBVersion|DBObject|CustomSQL|TablespaceFreeMB) "CustomSQL"
        DATA_TYPE (STRING|NUMBER) "STRING"
        COMPARE_OPERATOR (EQ|GT|LT|NE|GE|LE|COMPARE_VERSION) "EQ"
        SOFT (TRUE|FALSE) "FALSE">
 
<!ELEMENT PrereqIdentifier (#PCDATA)>
<!ELEMENT PrereqValue (#PCDATA)>
<!ELEMENT PrereqSetErrorMsg (#PCDATA)>
<!ATTLIST PrereqSetErrorMsg
        NLS_ID CDATA #IMPLIED>
<!ELEMENT PrereqErrorMsg (#PCDATA)>
<!ATTLIST PrereqErrorMsg
        NLS_ID CDATA #IMPLIED>
<!ATTLIST PrereqValue
        UNIT (KB|MB|NoUnit) 'NoUnit'>
<!ELEMENT ExecutionDescriptor (Action*)>
<!ATTLIST ExecutionDescriptor
        TYPE (Load|PreLoad|PostLoad) "Load">
<!ELEMENT Action (ValidIfSet?, ValidIf?, Command, Parameters?, FatalErrors?, IgnorableErrors?)>
<!ATTLIST Action
        TYPE (JDBCSqlScript|JDBC|SQLPlus|HostCmd|Java) "JDBCSqlScript"
        DB_VERSION CDATA #IMPLIED
        PERCENT_PROGRESS CDATA #IMPLIED
        CONNECT_AS_OWNER (TRUE|FALSE) "FALSE"
        RESET_SESSION (TRUE|FALSE) "FALSE">
<!ELEMENT Command (#PCDATA)>
<!ATTLIST Command
        TYPE (SCRIPT|INLINE|METHOD) "SCRIPT">
<!ELEMENT Parameters (Parameter*)>
<!ELEMENT Parameter (#PCDATA)>
<!ATTLIST Parameter
        TYPE (BindVar|CmdLine|ProcessInput|EnvVar|Connection|int|String|StringArray|boolean) "CmdLine">
<!ELEMENT FatalErrors (Error*)>
<!ELEMENT IgnorableErrors (Error*)>
<!ELEMENT Error (#PCDATA)>
<!ATTLIST Error
        Type CDATA #REQUIRED>
<!ELEMENT ValidIfSet (ValidIf*)>
<!ATTLIST ValidIfSet
          DBTYPE CDATA #IMPLIED
          DBVERSION CDATA #IMPLIED
          OSNAME CDATA #IMPLIED
          OPERATOR (OR|AND) "OR">
<!ELEMENT ValidIf (CustomQueryFilter?)>
<!ATTLIST ValidIf
        DBTYPE CDATA #IMPLIED
        DBVERSION CDATA #IMPLIED
        OSNAME CDATA #IMPLIED >
<!ELEMENT CustomQueryFilter (#PCDATA)>
<!ATTLIST CustomQueryFilter
        DATA_TYPE (STRING|NUMBER) "STRING"
        COMPARE_OPERATOR (EQ|GT|LT|NE|GE|LE|COMPARE_VERSION) "EQ"
        VALUE CDATA #REQUIRED >

3.2.1.4 記憶域属性構成ファイル

RCUは、作成される表領域とデータファイルおよびその属性のリストを保持しています。これにより、表領域属性およびデータファイル属性を外部で変更できます。

記憶域属性の構成ファイルはStorage.dtdと呼ばれ、RCU_HOME/rcu/configディレクトリ(UNIXオペレーティング・システム)またはRCU_HOME\rcu\configディレクトリ(Windowsオペレーティング・システム)にあります。

<?xml version="1.0" encoding="UTF-8" ?>
<!ELEMENT StorageAttributes (TablespaceAttributes*)>
<!ELEMENT TablespaceAttributes (Type?,DefaultTemp?,BlockSize?,ExtentSize?,PageSize?,AutoResize?,IncreaseSize?,MaxSize?,Bigfile?,AutoSegmentSpaceManagement?, DatafilesList)>
<!ATTLIST TablespaceAttributes
        NAME CDATA #REQUIRED>
<!ELEMENT Type (#PCDATA)>
<!ELEMENT DefaultTemp (#PCDATA)>
<!ELEMENT BlockSize (#PCDATA)>
<!ELEMENT ExtentSize (#PCDATA)>
<!ELEMENT PageSize (#PCDATA)>
<!ATTLIST PageSize
        UNIT (KB|NoUnit) 'KB'>
<!ELEMENT AutoResize (#PCDATA)>
<!ELEMENT IncreaseSize (#PCDATA)>
<!ATTLIST IncreaseSize
        UNIT (KB|MB|GB) 'MB'>
<!ELEMENT MaxSize (#PCDATA)>
<!ATTLIST MaxSize
        UNIT (KB|MB|GB) 'MB'>
<!ELEMENT Bigfile (#PCDATA)>
<!ELEMENT AutoSegmentSpaceManagement (#PCDATA)>
<!ELEMENT DatafilesList (DatafileAttributes+)>
<!ELEMENT DatafileAttributes (Size, Reuse?, AutoExtend?, Increment?, Maxsize?)>
<!ATTLIST DatafileAttributes
 ID CDATA #REQUIRED>
<!ELEMENT Size (#PCDATA)>
<!ATTLIST Size
        UNIT (KB|MB|GB) 'MB'>
<!ELEMENT Reuse (#PCDATA)>
<!ELEMENT AutoExtend (#PCDATA)>
<!ELEMENT Increment (#PCDATA)>
<!ATTLIST Increment
        UNIT (KB|MB|GB) 'KB'>
<!ELEMENT Maxsize (#PCDATA)>
<!ATTLIST Maxsize
        UNIT (KB|MB|GB) 'MB'>

3.2.2 コンポーネント・リポジトリ構成ファイル

コンポーネント・リポジトリ構成ファイル(<component>.xml)には、前提条件と、スキーマのロードまたは削除の実行に必要なスクリプトまたはアクションのリストが含まれています。このファイルは、コンポーネント所有者が提供および管理します。この構成ファイルは、コンポーネント・リスト構成ファイル(ComponentInfo.xml)から参照されます。

<component>.xmlファイルは、RCU_HOME/rcu/integrationcomponent/component.xmlファイル(UNIXオペレーティング・システム)またはRCU_HOME\rcu\integrationcomponent\component.xmlファイル(Windowsオペレーティング・システム)にあります。

コンポーネント所有者は、事前定義されている一連のRCUパラメータを使用できます。これらのパラメータはユーザー入力に基づき、RCUにより実行時に置換されます。事前定義されているパラメータのリストを次に示します。

表3-1 事前定義されているRCUパラメータ

RCUパラメータ 説明

%ORACLE_HOME%

Oracleホーム・ディレクトリの場所。

このマニュアルでは、実際の場所はRCU_HOMEになります。これは、システム上でRCUが解凍された場所です。

%SCRIPT_HOME%

スクリプトが配置される場所。RCU_HOMEと同じ可能性があります。

%SCHEMA_USER%

RCUでユーザーによって入力されるデータベース・スキーマ名(所有者)。

%SCHEMA_PASSWORD%

RCUでユーザーによって入力されるデータベース・スキーマ・パスワード。

%ADDITIONAL_SCHEMA_USER%

ComponentInfo.xmlファイル内で定義される追加のスキーマ・ユーザー。

%ADDITIONAL_SCHEMA_PASSWORD<n>%

追加のスキーマ・ユーザーのパスワード。

%DEFAULT_TABLESPACE%

ユーザーによってコンポーネントに割り当てられるデフォルト表領域。

%TEMPORARY_TABLESPACE%

ユーザーによってコンポーネントに割り当てられる一時表領域。

%ADDITIONAL_TABLESPACE<n>%

ユーザーによってコンポーネントに割り当てられるその他の表領域。その他の表領域は最大で3つサポートされます。

%DEFAULT_PERMANENT_TABLESPACE%

設定が行われなかった場合の、データベース内のデフォルトの永続表領域(USERSSYSTEMなど)。

%DEFAULT_TEMP_TABLESPACE%

設定が行われなかった場合の、データベース内のデフォルトの一時表領域(たとえば、Oracle付属のデータベース内のTEMP、またはSYSTEM)。

%DATAFILE_LOCATION%

表領域やデータファイルが作成されるデフォルトの場所。

%JDBC_CONNECT_STRING%

JDBC接続文字列。

%PREFIX_NAME%

スキーマおよび表領域の名前に使用されるユーザー指定の接頭辞。

%CONNECTION%

JavaActionに渡される接続済のjava.sql.Connectionオブジェクト。

%DBADMIN_USER%

「データベース接続の詳細」で提供されるデータベース管理ユーザー。

%DBADMIN_PASSWORD%

「データベース接続の詳細」で提供されるデータベース管理ユーザーのパスワード。

%DBADMIN_ROLE%

「データベース接続の詳細」で提供されるデータベース管理ユーザーのロール。

%DB_HOSTNAME%

「データベース接続の詳細」で提供されるデータベースのホスト名。

%DB_SERVICE%

データベース・サービス名。

%DB_PORTNUMBER%

「データベース接続の詳細」で提供されるデータベースのポート番号。

%RCU_HOME%

RCUのインストール先のディレクトリ。

%SQLPLUS_HOME%

SQL*Plusが配置されるRCU_HOME

%RCU_LOG_LOCATION%

RCUログ・ファイルが作成されるディレクトリの場所。

%DATABASE_NMAE%

データベース名(SQLServerデータベースの場合)。


MDSのコンポーネント・レジストリ構成ファイルのサンプル(mds.xml)を次に示します。このファイルには、一連の前提条件およびアクションが一覧表示されています。

<?xml version="1.0" encoding="UTF-8" ?>
<!-- DOCTYPE RepositoryConfig SYSTEM "file:////home/mmehta/development/XML/latest/RepositoryConfig.dtd" -->
<!--
  DESCRIPTION
 
    MDS's RCU configuration file for creating MDS repository.
 
  MODIFIED (MM/DD/YY)
  jhsi      07/06/11 - (12700444) Update version number to 11.1.1.6.0
  jhsi      04/26/11 - Add ebr support
  jhsi      02/23/11 - Bump up version to 11.1.1.5.0
  erwang    01/13/11 - Added support for MySQL database. 
  erwang    10/01/10 - XbranchMerge erwang_bug-10150062 from main
  erwang    09/30/10 - #(10150062) Removed SYSDBA requirement
  erwang    07/13/10 - #(9831116) Added SYSDBA role check.
  ????????  ??/??/?? - Creation
 
-->
 
<!DOCTYPE RepositoryConfig SYSTEM "RepositoryConfig.dtd">
<RepositoryConfig COMP_ID="MDS">
   <PrerequisiteDescriptor>
         <DBPrerequisite PREREQ_TYPE="TablespaceFreeMB" DATA_TYPE="NUMBER" COMPARE_OPERATOR="GT">
            <ValidIf DBTYPE="ORACLE" />
            <PrereqIdentifier>%DEFAULT_TABLESPACE%</PrereqIdentifier>
            <PrereqValue>50</PrereqValue>
         </DBPrerequisite>
         <DBPrerequisite PREREQ_TYPE="TablespaceFreeMB" DATA_TYPE="NUMBER" COMPARE_OPERATOR="GT">
            <ValidIf DBTYPE="ORACLE" />
            <PrereqIdentifier>%TEMPORARY_TABLESPACE%</PrereqIdentifier>
            <PrereqValue>20</PrereqValue>
         </DBPrerequisite>
         <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="STRING" 
                         COMPARE_OPERATOR="EQ">
            <ValidIf DBTYPE="SQLSERVER"/>
            <PrereqIdentifier>select is_read_committed_snapshot_on from
                              sys.databases where name='%DATABASE_NAME%'
            </PrereqIdentifier>
            <PrereqValue>1</PrereqValue>
            <PrereqErrorMsg>
------------------------------------------------------------------------------
Component     : MDS
Error         : Repository creation check failed.
Cause         : Database: '%DATABASE_NAME%' is not configured correctly.
Action        : Alter database to turn on the READ_COMMITTED_SNAPSHOT option.
                Ensure you have DBA priviliges. Also the DBA should not have
                multiple logins on this database - else it will result in a
                lock error.
Command       : ALTER database %DATABASE_NAME% SET READ_COMMITTED_SNAPSHOT ON
-------------------------------------------------------------------------------
            </PrereqErrorMsg>
          </DBPrerequisite>
          <DBPrerequisite PREREQ_TYPE="CustomSQL" 
                          DATA_TYPE="NUMBER" 
                          COMPARE_OPERATOR="GE">
            <ValidIf DBTYPE="SQLSERVER"/>
            <PrereqIdentifier>select count(*) from sys.databases
            where name='%DATABASE_NAME%' AND
            patindex('%%[_]CS[_]%%', collation_name) > 0
            </PrereqIdentifier>
            <PrereqValue>1</PrereqValue>
            <PrereqErrorMsg>
-------------------------------------------------------------------------------
Component     : MDS
Error         : Repository creation check failed.
Cause         : Database: '%DATABASE_NAME%' is not configured correctly.
Action        : Alter database to apply the correct collate to the database.
                Ensure you have DBA priviliges. Also, the DBA should not have
                multiple logins on this database - else it will result in a
                lock error.
Command       : DECLARE @collate   sysname
                SELECT @collate = convert(sysname, serverproperty('COLLATION'))
                IF ( charindex(N'_CI', @collate) > 0 )
                BEGIN
                  select @collate = replace(@collate, N'_CI', N'_CS')
                  exec ('ALTER database $(DATABASE_NAME) COLLATE ' + @collate)
                END
                GO
-------------------------------------------------------------------------------
             </PrereqErrorMsg>
           </DBPrerequisite>
 
   </PrerequisiteDescriptor>
 
   <PrerequisiteDescriptor TYPE="DROP">
       <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ">
 
           <ValidIf DBTYPE="ORACLE" />
               <PrereqIdentifier>select count(*) from v$session where
                  username='%SCHEMA_USER%'</PrereqIdentifier>
           <PrereqValue>0</PrereqValue>
           <PrereqErrorMsg>The schema owner '%SCHEMA_USER%' is connected to the
                database. Please disconnect and try again.</PrereqErrorMsg>
       </DBPrerequisite>
       <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ">
 
           <ValidIf DBTYPE="EBR" />
               <PrereqIdentifier>select count(*) from v$session where
                  username='%SCHEMA_USER%'</PrereqIdentifier>
           <PrereqValue>0</PrereqValue>
           <PrereqErrorMsg>The schema owner '%SCHEMA_USER%' is connected to the
                database. Please disconnect and try again.</PrereqErrorMsg>
       </DBPrerequisite>
   </PrerequisiteDescriptor>

 <ExecutionDescriptor>
     <Action TYPE="Java">
         <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilCreateRegistryEntry</Command>
         <Parameters>
            <Parameter TYPE="Connection"></Parameter>
            <Parameter TYPE="String">MDS</Parameter>
            <Parameter TYPE="String">Metadata Services</Parameter>
            <Parameter TYPE="String">%PREFIX_NAME%</Parameter>
            <Parameter TYPE="String">MDS</Parameter>
            <Parameter TYPE="String">MDS</Parameter>
            <Parameter TYPE="String">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="String">11.1.1.6.0</Parameter>
            <Parameter TYPE="String">LOADING</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="ORACLE" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/mds/sql/mds_user.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%SCHEMA_PASSWORD%</Parameter>
            <Parameter TYPE="CmdLine">%DEFAULT_TABLESPACE%</Parameter>
            <Parameter TYPE="CmdLine">%TEMPORARY_TABLESPACE%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="EBR" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/mds/oracle_ebr/mds_user.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%SCHEMA_PASSWORD%</Parameter>
            <Parameter TYPE="CmdLine">%DEFAULT_TABLESPACE%</Parameter>
            <Parameter TYPE="CmdLine">%TEMPORARY_TABLESPACE%</Parameter>
            <Parameter TYPE="CmdLine">%EDITION_NAME%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="SQLSERVER" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/mds/MSSQL/cremduser-rcu.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%DATABASE_NAME%</Parameter>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%SCHEMA_PASSWORD%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="IBMDB2" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/mds/db2/cremduser-rcu.db2</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%DEFAULT_TABLESPACE%</Parameter>
            <Parameter TYPE="CmdLine">%TEMPORARY_TABLESPACE%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="MYSQL" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/mds/mysql/cremduser-rcu.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%SCHEMA_PASSWORD%</Parameter>
         </Parameters>
      </Action>
 <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="ORACLE" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/mds/sql/cremds-rcu.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="EBR" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/mds/oracle_ebr/cremds-rcu.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%EDITION_NAME%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20" CONNECT_AS_OWNER="TRUE">
         <ValidIf DBTYPE="SQLSERVER" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/mds/MSSQL/cremds-rcu.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%DATABASE_NAME%</Parameter>
            <Parameter TYPE="CmdLine">%RCU_VARCHAR%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20" CONNECT_AS_OWNER="TRUE">
         <ValidIf DBTYPE="IBMDB2" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/mds/db2/cremds-rcu.db2</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%DEFAULT_TABLESPACE%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20" CONNECT_AS_OWNER="TRUE">
         <ValidIf DBTYPE="MYSQL" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/mds/mysql/cremds-rcu.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="Java">
         <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilSetComponentValid</Command>
         <Parameters>
            <Parameter TYPE="String">MDS</Parameter>
         </Parameters>
      </Action>
   </ExecutionDescriptor>
   <DeleteDescriptor>
      <Action TYPE="JDBC" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="ORACLE" />
         <Command TYPE="INLINE">DROP USER %SCHEMA_USER% CASCADE</Command>
      </Action>
      <Action TYPE="JDBC" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="EBR" />
         <Command TYPE="INLINE">DROP USER %SCHEMA_USER% CASCADE</Command>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="SQLSERVER" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/mds/MSSQL/dropmduser-rcu.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%DATABASE_NAME%</Parameter>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>
 <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="IBMDB2" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/mds/db2/dropmds-rcu.db2</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="Java">
          <ValidIf DBTYPE="IBMDB2" />
          <Command TYPE="METHOD">oracle.sysman.assistants.common.dbutil.jdbc.DB2DropUtil:dropCompRepos</Command>
          <Parameters>
             <Parameter TYPE="Connection"></Parameter>
             <Parameter TYPE="String">%SCHEMA_USER%</Parameter>
          </Parameters>
      </Action>
      <Action TYPE="JDBC" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="MYSQL" />
         <Command TYPE="INLINE">DROP USER %SCHEMA_USER% ,%SCHEMA_USER%@'localhost' </Command>
      </Action>
      <Action TYPE="JDBC" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="MYSQL" />
         <Command TYPE="INLINE">DROP SCHEMA IF EXISTS %SCHEMA_USER% </Command>
      </Action>
      <Action TYPE="Java">
         <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilDropRegistryEntry</Command>
         <Parameters>
            <Parameter TYPE="Connection"></Parameter>
            <Parameter TYPE="String">MDS</Parameter>
            <Parameter TYPE="String">%PREFIX_NAME%</Parameter>
            <Parameter TYPE="String">MDS</Parameter>
         </Parameters>
      </Action>
   </DeleteDescriptor>
</RepositoryConfig>

3.2.3 コンポーネント・リスト構成ファイル

コンポーネント・リスト構成ファイル(ComponentInfo.xml)には、すべてのコンポーネント、対応する構成ファイルおよびデフォルトのユーザーと表領域のマッピングが一覧表示されています。このファイルには、すべてのコンポーネントに対してグローバルに実行される、高レベルな前提条件のチェックおよび高レベルなアクション(schema_version_registry表の作成など)も一覧表示されます。また、グローバルに無視できるエラーまたは致命的なエラーのリストも指定できます。

このファイルは、RCU_HOME/rcu/configディレクトリ(UNIXオペレーティング・システム)またはRCU_HOME\rcu\configディレクトリ(Windowsオペレーティング・システム)にあります。

サンプルのComponentInfo.xmlファイルを次に示します。

<?xml version="1.0" encoding="UTF-8" ?>
<!-- DOCTYPE ComponentInfo SYSTEM "dtds/ComponentInfo.dtd" -->
<!DOCTYPE ComponentInfo SYSTEM "ComponentInfo.dtd" [
<!ENTITY mds SYSTEM "../integration/mds/mds_ComponentInfo.xml">
<!ENTITY oid SYSTEM "../integration/oid/oid_ComponentInfo.xml">
<!ENTITY soainfra SYSTEM "../integration/soainfra/soainfra_ComponentInfo.xml">
<!ENTITY bam SYSTEM "../integration/bam/bam_ComponentInfo.xml">
<!ENTITY WebCenterSuite SYSTEM "../integration/webcenter/WebCenterSuite_ComponentInfo.xml">
<!ENTITY iau SYSTEM "../integration/iau/iau_ComponentInfo.xml">
<!ENTITY iauoes SYSTEM "../integration/iauoes/iauoes_ComponentInfo.xml">
<!ENTITY discoverer SYSTEM "../integration/dc/discoverer_ComponentInfo.xml">
<!ENTITY sdpm SYSTEM "../integration/sdpm/sdpm_ComponentInfo.xml">
<!ENTITY portal SYSTEM "../integration/portal/portal_ComponentInfo.xml">
<!ENTITY oif SYSTEM "../integration/oif/oif_ComponentInfo.xml">
<!ENTITY oim SYSTEM "../integration/oim/oim_ComponentInfo.xml">
<!ENTITY oam SYSTEM "../integration/oam/oam_ComponentInfo.xml">
<!ENTITY oaam SYSTEM "../integration/oaam/oaam_ComponentInfo.xml">
<!ENTITY oaam_with_partition SYSTEM "../integration/oaam/oaam_with_partition_ComponentInfo.xml">
<!ENTITY oaam_with_mssql_unicode SYSTEM "../integration/oaam/oaam_with_mssql_unicode_ComponentInfo.xml">
<!ENTITY irm SYSTEM "../integration/irm/irm_ComponentInfo.xml">
<!ENTITY ess SYSTEM "../integration/ess/ess_ComponentInfo.xml">
<!ENTITY odi SYSTEM "../integration/odi/odi_ComponentInfo.xml">
<!ENTITY biplatform SYSTEM "../integration/biplatform/biplatform_ComponentInfo.xml">
<!ENTITY contentserver11 SYSTEM "../integration/contentserver11/contentserver11_ComponentInfo.xml">
<!ENTITY contentserver11search SYSTEM "../integration/contentserver11search/contentserver11search_ComponentInfo.xml">
<!ENTITY urm SYSTEM "../integration/urm/urm_ComponentInfo.xml">
<!ENTITY ipm SYSTEM "../integration/ipm/ipm_ComponentInfo.xml">
<!ENTITY commspresence SYSTEM "../integration/commspresence/commspresence_ComponentInfo.xml">
<!ENTITY commssds SYSTEM "../integration/commssds/commssds_ComponentInfo.xml">
<!ENTITY commsls SYSTEM "../integration/commsls/commsls_ComponentInfo.xml">
<!ENTITY epm SYSTEM "../integration/epm/epm_ComponentInfo.xml">
<!ENTITY apm SYSTEM "../integration/apm/apm_ComponentInfo.xml">
<!ENTITY opss SYSTEM "../integration/opss/opss_ComponentInfo.xml">
]>
<ComponentInfo VERSION="11.0.0.0" TYPE="AS_REPOSITORY" RESOURCE_BUNDLE_PACKAGE="oracle.sysman.rcu.as.ASBundle">
  <Display NLS_ID="ASREP_ID">Oracle AS Repository Components</Display>
  <PrefixSettings USE_SCHEMA_PREFIX="TRUE" USE_TABLESPACE_PREFIX="TRUE">
     <DetectQuery>
        Select distinct mrc_name from schema_version_registry
     </DetectQuery>
     <DetectQuery TYPE="IBMDB2">
        Select distinct mrc_name from NULLID.schema_version_registry
     </DetectQuery>
  </PrefixSettings>
 
  <!-- AS Common GROUP START -->
<Component ID="AS_COMMON" IS_GROUPING_COMPONENT="TRUE">
      <Display NLS_ID="AS_COMMON_ID">AS Common Schemas</Display>
    </Component>
&mds;
&iau;
&iauoes;
&ess;
&opss;
<!-- AS Common GROUP END -->

<!-- OID GROUP START -->
<Component ID="IDM" IS_GROUPING_COMPONENT="TRUE">
      <Display NLS_ID="IDM_ID">Identity Management</Display>
    </Component>
&oid;
&oif;
&oim;
&oam;
&oaam;
&oaam_with_partition;
&oaam_with_mssql_unicode;
&apm;
 
<!-- OID GROUP START -->
 
<!-- ECM_SUITE START -->
<Component ID="ECM_SUITE" IS_GROUPING_COMPONENT="TRUE">
      <Display NLS_ID="ECM_SUITE">WebCenter Content</Display>
    </Component>
&irm;
&contentserver11;
&contentserver11search;
&urm;
&ipm;
<!-- ECM_SUITE END -->
 
<!-- ODI_SUITE START -->
<Component ID="ODI_REPOSITORIES" IS_GROUPING_COMPONENT="TRUE">
      <Display NLS_ID="ODI_REPOSITORIES">Oracle Data Integrator</Display>
    </Component>
&odi;
<!-- ODI_SUITE END -->
 
 
<!-- BI_SUITE START -->
<Component ID="BUSINESS INTELLIGENCE" IS_GROUPING_COMPONENT="TRUE">
      <Display NLS_ID="BUSINESS INTELLIGENCE">Oracle Business Intelligence</Display>
    </Component>
&biplatform;
<!-- BI_SUITE END -->
 
<!-- OWLCS START -->
   <Component ID="OWLCS" IS_GROUPING_COMPONENT="TRUE">
       <ValidIf DBTYPE="ORACLE" />
       <Display NLS_ID="OWLCS_ID">WebLogic Communication Services</Display>
   </Component>
&commspresence;
&commssds;
&commsls;
<!-- OWLCS END -->
 
<!-- SOA INFRA GROUP START -->
        <Component ID="SOA" IS_GROUPING_COMPONENT="TRUE">
      <Display NLS_ID="SOA_ID">SOA and BPM Infrastructure</Display>
    </Component>
&soainfra;
&bam;
&sdpm;
<!-- SOA INFRA GROUP END -->

<!-- WEBCENTER_SUITE START -->
        <Component ID="WEBCENTER_SUITE" IS_GROUPING_COMPONENT="TRUE">
      <Display NLS_ID="WEBCENTER_SUITE_ID">WebCenter Portal</Display>
    </Component>
&WebCenterSuite;
<!-- WEBCENTER_SUITE END -->
 
 
 
<!-- PORTAL_BI START -->
        <Component ID="PORTAL_BI" IS_GROUPING_COMPONENT="TRUE">
        <ValidIf DBTYPE="ORACLE" />
      <Display NLS_ID="PORTAL_BI_ID">Portal and BI</Display>
    </Component>
 
&portal;
&discoverer;
 
&epm;
<!-- AS Common GROUP END -->
 
 
 
<!-- PORTAL_BI END -->
 
<!--
  <Component ID="CAS" PROGRESS_UNITS="30">
    <Display NLS_ID="CAS_ID">Management Administration Server</Display>
    <RepositoryConfigFile>%SCRIPT_HOME%/cas/cas.xml</RepositoryConfigFile>
    <DetectQuery>select owner from schema_version_registry where mr_type = 'CAS' and mrc_name = '%PREFIX_NAME%'</DetectQuery>
    <SchemaUser>MAS</SchemaUser>
    <Tablespaces>
      <Tablespace TYPE="DEFAULT_TABLESPACE">
         <Prompt NLS_ID="DEFAULT_TABLESPACE">Default Tablespace</Prompt>
         <TablespaceName>IAS_MAS</TablespaceName>
      </Tablespace>
      <Tablespace TYPE="TEMPORARY_TABLESPACE">
         <Prompt NLS_ID="TEMPORARY_TABLESPACE">Temporary Tablespace</Prompt>
         <TablespaceName>IAS_TEMP</TablespaceName>
      </Tablespace>
    </Tablespaces>
  </Component>
 
  <Component ID="MID" IS_GROUPING_COMPONENT="TRUE">
    <Display NLS_ID="MID_ID">Middleware Components</Display>
  </Component>
 
  <Component ID="BPEL" PROGRESS_UNITS="30" CHILD_OF="MID">
    <Display NLS_ID="BPEL_ID">BPEL DB Checkpoint Store</Display>
    <RepositoryConfigFile>%SCRIPT_HOME%/cas/cas.xml</RepositoryConfigFile>
    <DetectQuery>select owner from schema_version_registry where mr_type = 'BPEL' and mrc_name = '%PREFIX_NAME%'</DetectQuery>
    <SchemaUser>BPEL</SchemaUser>
    <Tablespaces>
      <Tablespace TYPE="DEFAULT_TABLESPACE">
         <Prompt NLS_ID="DEFAULT_TABLESPACE">Default Tablespace</Prompt>
         <TablespaceName>IAS_MID</TablespaceName>
      </Tablespace>
      <Tablespace TYPE="TEMPORARY_TABLESPACE">
         <Prompt NLS_ID="TEMPORARY_TABLESPACE">Temporary Tablespace</Prompt>
         <TablespaceName>IAS_TEMP</TablespaceName>
      </Tablespace>
    </Tablespaces>
  </Component>

 <Component ID="OPTM" PROGRESS_UNITS="30" CHILD_OF="MID">
    <Display NLS_ID="OPTM_ID">Optimization</Display>
    <RepositoryConfigFile>%SCRIPT_HOME%/cas/cas.xml</RepositoryConfigFile>
    <DetectQuery>select owner from schema_version_registry where mr_type = 'OPTM' and mrc_name = '%PREFIX_NAME%'</DetectQuery>
    <SchemaUser>OPTM</SchemaUser>
    <Tablespaces>
      <Tablespace TYPE="DEFAULT_TABLESPACE">
         <Prompt NLS_ID="DEFAULT_TABLESPACE">Default Tablespace</Prompt>
         <TablespaceName>IAS_MID</TablespaceName>
      </Tablespace>
      <Tablespace TYPE="TEMPORARY_TABLESPACE">
         <Prompt NLS_ID="TEMPORARY_TABLESPACE">Temporary Tablespace</Prompt>
         <TablespaceName>IAS_TEMP</TablespaceName>
      </Tablespace>
    </Tablespaces>
  </Component>
 
  <Component ID="RFID" PROGRESS_UNITS="30" CHILD_OF="MID">
    <Display NLS_ID="RFID_ID">RFID Sensor Store</Display>
    <RepositoryConfigFile>%SCRIPT_HOME%/cas/cas.xml</RepositoryConfigFile>
    <DetectQuery>select owner from schema_version_registry where mr_type = 'RFID' and mrc_name = '%PREFIX_NAME%'</DetectQuery>
    <SchemaUser>RFID</SchemaUser>
    <Tablespaces>
      <Tablespace TYPE="DEFAULT_TABLESPACE">
         <Prompt NLS_ID="DEFAULT_TABLESPACE">Default Tablespace</Prompt>
         <TablespaceName>IAS_MID</TablespaceName>
      </Tablespace>
      <Tablespace TYPE="TEMPORARY_TABLESPACE">
         <Prompt NLS_ID="TEMPORARY_TABLESPACE">Temporary Tablespace</Prompt>
         <TablespaceName>IAS_TEMP</TablespaceName>
      </Tablespace>
    </Tablespaces>
  </Component>
 
  <Component ID="WKP" PROGRESS_UNITS="30" CHILD_OF="MID">
    <Display NLS_ID="WKP_ID">Workplace</Display>
    <RepositoryConfigFile>%SCRIPT_HOME%/cas/cas.xml</RepositoryConfigFile>
    <DetectQuery>select owner from schema_version_registry where mr_type = 'WKP' and mrc_name = '%PREFIX_NAME%'</DetectQuery>
    <SchemaUser>WKP</SchemaUser>
    <Tablespaces>
      <Tablespace TYPE="DEFAULT_TABLESPACE">
         <Prompt NLS_ID="DEFAULT_TABLESPACE">Default Tablespace</Prompt>
         <TablespaceName>IAS_MID</TablespaceName>
      </Tablespace>
      <Tablespace TYPE="TEMPORARY_TABLESPACE">
         <Prompt NLS_ID="TEMPORARY_TABLESPACE">Temporary Tablespace</Prompt>
         <TablespaceName>IAS_TEMP</TablespaceName>
      </Tablespace>
    </Tablespaces>
  </Component>
 
-->

 <PrerequisiteDescriptor>
      <DBPrerequisiteSet OPERATOR="OR">
      <ValidIf DBTYPE="ORACLE" />
       <DBPrerequisite PREREQ_TYPE="InitParameter" DATA_TYPE="NUMBER" COMPARE_OPERATOR="GE">
            <PrereqIdentifier>SHARED_POOL_SIZE</PrereqIdentifier>
            <PrereqValue UNIT="KB">147456</PrereqValue>
         </DBPrerequisite>
         <DBPrerequisite PREREQ_TYPE="InitParameter" DATA_TYPE="NUMBER" COMPARE_OPERATOR="GE">
            <PrereqIdentifier>SGA_MAX_SIZE</PrereqIdentifier>
            <PrereqValue UNIT="KB">147456</PrereqValue>
        </DBPrerequisite>
      </DBPrerequisiteSet>
 
      <DBPrerequisite PREREQ_TYPE="InitParameter" DATA_TYPE="NUMBER" COMPARE_OPERATOR="GE">
            <ValidIf DBTYPE="ORACLE" />
            <PrereqIdentifier>DB_BLOCK_SIZE</PrereqIdentifier>
            <PrereqValue UNIT="KB">8</PrereqValue>
      </DBPrerequisite>
      <!--DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="STRING" COMPARE_OPERATOR="NE">
        <ValidIf  DBTYPE="ORACLE" >
        <CustomQueryFilter DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" VALUE="0">
            select 1 from dual where exists (select column_name from dba_tab_columns where table_name(+) like 'V_$INSTANCE' and column_name(+) = 'EDITION') union select 0 from dual where not exists (select column_name from dba_tab_columns where table_name(+) like 'V_$INSTANCE' and column_name(+) = 'EDITION')
          </CustomQueryFilter>
        </ValidIf>
        <PrereqIdentifier>version</PrereqIdentifier>
        <PrereqValue>11.1.0.6.0</PrereqValue>
                <PrereqErrorMsg>
                                The database you are connecting is 11.1.0.6.0 version. 11.1.0.6.0 is not a supported version. The database version should be 11.1.0.7.0 or greater.
                  </PrereqErrorMsg>
        </DBPrerequisite-->
        <DBPrerequisite PREREQ_TYPE="DBVersion" DATA_TYPE="STRING" COMPARE_OPERATOR="GE">
        <ValidIf  DBTYPE="ORACLE" >
        <CustomQueryFilter DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" VALUE="0">
            select 1 from dual where exists (select column_name from dba_tab_columns where table_name(+) like 'V_$INSTANCE' and column_name(+) = 'EDITION') union select 0 from dual where not exists (select column_name from dba_tab_columns where table_name(+) like 'V_$INSTANCE' and column_name(+) = 'EDITION')
          </CustomQueryFilter>
        </ValidIf>
        <PrereqIdentifier>version</PrereqIdentifier>
        <PrereqValue>10.2.0.4.0</PrereqValue>
                <PrereqErrorMsg>
                                The database you are connecting is not a supported version.  Enter Database with version equal to or higher than 10.2.0.4.0 in 10g or version equal to or higher than 11.1.0.7.0 in 11g. Refer to the certification matrix for supported DB versions
                  </PrereqErrorMsg>
        </DBPrerequisite>

<DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ">
        <ValidIf  DBTYPE="ORACLE" >
        <CustomQueryFilter DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" VALUE="0">
            select 1 from dual where exists (select column_name from dba_tab_columns where table_name(+) like 'V_$INSTANCE' and column_name(+) = 'EDITION') union select 0 from dual where not exists (select column_name from dba_tab_columns where table_name(+) like 'V_$INSTANCE' and column_name(+) = 'EDITION')
          </CustomQueryFilter>
        </ValidIf>
        <PrereqIdentifier>select count(*) from product_component_version  where product like 'Oracle%Database%'  AND version BETWEEN '11' AND '11.1.0.6.0' </PrereqIdentifier>
        <PrereqValue>0</PrereqValue>
                <PrereqErrorMsg>
                                The database you are connecting is not a supported version.  Enter Database with version equal to or higher than 10.2.0.4.0 in 10g or version equal to or higher than 11.1.0.7.0 in 11g. Refer to the certification matrix for supported DB versions
                  </PrereqErrorMsg>
        </DBPrerequisite>
 
 
<DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ">
            <ValidIf DBTYPE="IBMDB2"/>
            <PrereqIdentifier>select count(*) from syscat.tablespaces where tbspace = 'SYSCATSPACE' and pagesize >= 32768
            </PrereqIdentifier>
            <PrereqValue>1</PrereqValue>
            <PrereqErrorMsg>
                        Component     : RCU
                        Error         : Database prerequisite check failed.
                        Cause         : Database: '%DATABASE_NAME%' needs to be configured with
                        default pagesize 32768 or 32K.
                        Action        : Modify the default of the current database or create a new
                        database with the required default pagesize.
           </PrereqErrorMsg>
    </DBPrerequisite>
 
 
<DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="STRING" COMPARE_OPERATOR="EQ">
                <ValidIf DBTYPE="SQLSERVER" />
                 <PrereqIdentifier>SELECT count(*) where CAST(SERVERPROPERTY('productversion') as VARCHAR(20)) like '1.%' or CAST(SERVERPROPERTY('productversion') as VARCHAR(20)) like '4.%' or CAST(SERVERPROPERTY('productversion') as VARCHAR(20)) like '6.%' or CAST(SERVERPROPERTY('productversion') as VARCHAR(20)) like '7.%' or CAST(SERVERPROPERTY('productversion') as VARCHAR(20)) like '8.%'</PrereqIdentifier>
                <PrereqValue>0</PrereqValue>
                  <PrereqErrorMsg>
                  The database you are connecting is not a supported version. Enter Database with version equal to or higher than 2005. Refer to the certification matrix for supported DB versions.
                  </PrereqErrorMsg>
</DBPrerequisite>
 
 <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="STRING" COMPARE_OPERATOR="EQ">
                <ValidIf DBTYPE="IBMDB2" />
                  <PrereqIdentifier>select count(*) FROM TABLE (sysproc.env_get_inst_info()) where INT(substr(service_level, POSSTR(service_level, 'v')+1, LOCATE('.', service_level,POSSTR(service_level, 'v') +1) - POSSTR(service_level,  'v') -1 ) ) = 9  AND INT(substr(service_level, POSSTR(service_level,  '.')+1, LOCATE('.',service_level,POSSTR(service_level, '.') +1) - POSSTR(service_level, '.') -1 )) &lt; 7 OR INT(substr(service_level, POSSTR(service_level, 'v')+1, LOCATE('.', service_level,POSSTR(service_level, 'v') +1) - POSSTR(service_level, 'v') -1 ) ) &lt; 9</PrereqIdentifier>
                  <PrereqValue>0</PrereqValue>
                  <PrereqErrorMsg>
                          The database you are connecting is not a supported version. Enter Database with version equal to or higher than 9.7. Refer to the certification matrix for supported DB versions.
                </PrereqErrorMsg>
</DBPrerequisite>

 <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="STRING" COMPARE_OPERATOR="EQ">
                <ValidIf DBTYPE="ORACLE" />
                  <PrereqIdentifier>select GRANTED_ROLE from DBA_ROLE_PRIVS where((GRANTED_ROLE='DBA' and GRANTEE=(select user from dual) and lower(SYS_CONTEXT ('USERENV', 'SESSION_USER'))='sys') OR(GRANTED_ROLE='DBA' and GRANTEE=(select user from dual)))</PrereqIdentifier>
                  <PrereqValue>DBA</PrereqValue>
                  <PrereqErrorMsg>
                        User should have sysdba or dba privilages.
                  </PrereqErrorMsg>
                </DBPrerequisite>
 
<DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="STRING" COMPARE_OPERATOR="EQ">
                <ValidIf DBTYPE="SQLSERVER" />
                  <PrereqIdentifier>select Is_Member('db_owner')</PrereqIdentifier>
                  <PrereqValue>1</PrereqValue>
                  <PrereqErrorMsg>
                        User should have sysdba or dba privilages.
                 </PrereqErrorMsg>
    </DBPrerequisite>
 
       <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="STRING" COMPARE_OPERATOR="EQ" SOFT="TRUE">
                  <ValidIf DBTYPE="ORACLE" />
                  <PrereqIdentifier>select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET'</PrereqIdentifier>
                  <PrereqValue>AL32UTF8</PrereqValue>
                  <PrereqErrorMsg>
                                The database you are connecting is with non-AL32UTF8 character set. Oracle strongly recommends using AL32UTF8 as the database character set.
                  </PrereqErrorMsg>
                </DBPrerequisite>
 
 
      <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" SOFT="TRUE">
        <ValidIf  DBTYPE="ORACLE" >
        <CustomQueryFilter DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" VALUE="0">
            select 1 from dual where exists (select column_name from dba_tab_columns where table_name(+) like 'V_$INSTANCE' and column_name(+) = 'EDITION') union select 0 from dual where not exists (select column_name from dba_tab_columns where table_name(+) like 'V_$INSTANCE' and column_name(+) = 'EDITION')
          </CustomQueryFilter>
        </ValidIf>
        <PrereqIdentifier>select count(*) from product_component_version  where product like 'Oracle%Database%'  AND version BETWEEN '10.2.0.6.0' AND '10.9.9.9.9' </PrereqIdentifier>
        <PrereqValue>0</PrereqValue>
                <PrereqErrorMsg>
                The database you are connecting to, is a more recent than the supported version. Refer to the certification matrix for supported DB versions.
                  </PrereqErrorMsg>
        </DBPrerequisite>

 <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" SOFT="TRUE">
        <ValidIf  DBTYPE="ORACLE" >
        <CustomQueryFilter DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" VALUE="0">
            select 1 from dual where exists (select column_name from dba_tab_columns where table_name(+) like 'V_$INSTANCE' and column_name(+) = 'EDITION') union select 0 from dual where not exists (select column_name from dba_tab_columns where table_name(+) like 'V_$INSTANCE' and column_name(+) = 'EDITION')
          </CustomQueryFilter>
        </ValidIf>
        <PrereqIdentifier>select count(*) from product_component_version  where product like 'Oracle%Database%'  AND version > '11.1.0.7.0' AND version not like '11.2._._._'</PrereqIdentifier>
        <PrereqValue>0</PrereqValue>
                <PrereqErrorMsg>
            The database you are connecting to, is a more recent one than the supported version. Refer to the certification matrix for supported DB versions.
               </PrereqErrorMsg>
        </DBPrerequisite>
 
        <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" SOFT="TRUE">
        <ValidIf  DBTYPE="ORACLE" >
        </ValidIf>
        <PrereqIdentifier>select 1 from dual where exists (select column_name from dba_tab_columns where table_name(+) like 'V_$INSTANCE' and column_name(+) = 'EDITION') union select 0 from dual where not exists (select column_name from dba_tab_columns where table_name(+) like 'V_$INSTANCE' and column_name(+) = 'EDITION') </PrereqIdentifier>
        <PrereqValue>0</PrereqValue>
                <PrereqErrorMsg>
                                The database you are connecting is not a supported version. Enter Database with version equal to or higher than 10.2.0.4.0 in 10g or version equal to or higher than 11.1.0.7.0 in 11g. Refer to the certification matrixfor supported DB versions
                                </PrereqErrorMsg>
        </DBPrerequisite>
 
       <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="STRING" COMPARE_OPERATOR="EQ" SOFT="TRUE">
                <ValidIf DBTYPE="SQLSERVER" />
                  <PrereqIdentifier>SELECT count(*) where CAST(SERVERPROPERTY('productversion') as VARCHAR(20)) not like '1.%' and CAST(SERVERPROPERTY('productversion') as VARCHAR(20)) not like '4.%' and CAST(SERVERPROPERTY('productversion') as VARCHAR(20)) not like '6.%' and CAST(SERVERPROPERTY('productversion') as VARCHAR(20)) not like '7.%' and CAST(SERVERPROPERTY('productversion') as VARCHAR(20)) not like '8.%' and CAST(SERVERPROPERTY('productversion') as VARCHAR(20)) not like '9.%' and CAST(SERVERPROPERTY('productversion') as VARCHAR(20)) not like '10.%' </PrereqIdentifier>
                  <PrereqValue>0</PrereqValue>
                  <PrereqErrorMsg>
                   The database you are connecting to, is a more recent than the  supported version.  Refer to the certification matrix for supported DB versions.
                  </PrereqErrorMsg>
       </DBPrerequisite>
 
       <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="STRING" COMPARE_OPERATOR="EQ" SOFT="TRUE">
                <ValidIf DBTYPE="IBMDB2" />
                  <PrereqIdentifier>select count(*) FROM TABLE (sysproc.env_get_inst_info()) where INT(substr(service_level, POSSTR(service_level, 'v')+1, LOCATE('.', service_level, POSSTR(service_level, 'v') +1) - POSSTR(service_level, 'v') -1 ) ) = 9 and INT(substr(service_level, POSSTR(service_level, '.')+1, LOCATE('.', service_level, POSSTR(service_level, '.') +1) - POSSTR(service_level, '.') -1 )) &gt; 7 or INT(substr(service_level, POSSTR(service_level, 'v')+1, LOCATE('.', service_level, POSSTR(service_level, 'v') +1) - POSSTR(service_level, 'v') -1 ) ) &gt; 9</PrereqIdentifier>
                  <PrereqValue>0</PrereqValue>
                  <PrereqErrorMsg>
                          The database you are connecting to, is a more recent than the supported version. Refer to the certification matrix for supported DB versions.
                </PrereqErrorMsg>
       </DBPrerequisite>

 <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ">
                <ValidIf DBTYPE="MYSQL" />
                  <PrereqIdentifier>select version() &lt; '5.5.14'</PrereqIdentifier>
                  <PrereqValue>0</PrereqValue>
                  <PrereqErrorMsg>
                          The database you are connecting is not a supported version. Enter Database with version equal to or higher than 5.5.14. Refer to the certification matrix for supported DB versions.
                </PrereqErrorMsg>
       </DBPrerequisite>
 
      <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" SOFT="TRUE">
                <ValidIf DBTYPE="MYSQL" />
                  <PrereqIdentifier>select version() &gt; '5.6' or version() = '5.6'</PrereqIdentifier>
                  <PrereqValue>0</PrereqValue>
                  <PrereqErrorMsg>
                          The database you are connecting to, is a more recent than the supported version. Refer to the certification matrix for supported DB versions.
                </PrereqErrorMsg>
       </DBPrerequisite>
 
 <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="STRING" COMPARE_OPERATOR="EQ">
                <ValidIf DBTYPE="MYSQL" />
                  <PrereqIdentifier>select VARIABLE_VALUE from INFORMATION_SCHEMA.GLOBAL_VARIABLES where VARIABLE_NAME = 'INNODB_FILE_PER_TABLE'</PrereqIdentifier>
                  <PrereqValue>ON</PrereqValue>
                  <PrereqErrorMsg>
                     DB Init Param Prerequisite failure for INNODB_FILE_PER_TABLE. Its value should be 'ON'.
                </PrereqErrorMsg>
       </DBPrerequisite>
 
<DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="STRING" COMPARE_OPERATOR="EQ">
                <ValidIf DBTYPE="MYSQL" />
                  <PrereqIdentifier>select VARIABLE_VALUE from INFORMATION_SCHEMA.GLOBAL_VARIABLES where VARIABLE_NAME = 'INNODB_FILE_FORMAT'</PrereqIdentifier>
                  <PrereqValue>Barracuda</PrereqValue>
                  <PrereqErrorMsg>
                    DB Init Param Prerequisite failure for INNODB_FILE_FORMAT. Its value should be 'Barracuda'.
                </PrereqErrorMsg>
       </DBPrerequisite>
 
<DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="STRING" COMPARE_OPERATOR="EQ">
                <ValidIf DBTYPE="MYSQL" />
                  <PrereqIdentifier>select VARIABLE_VALUE from INFORMATION_SCHEMA.GLOBAL_VARIABLES where VARIABLE_NAME = 'INNODB_LARGE_PREFIX'</PrereqIdentifier>
                  <PrereqValue>ON</PrereqValue>
                  <PrereqErrorMsg>
                      DB Init Param Prerequisite failure for INNODB_LARGE_PREFIX. Its value should be 'ON'.
                </PrereqErrorMsg>
 </DBPrerequisite>
 
   </PrerequisiteDescriptor>

 <ExecutionDescriptor TYPE="PreLoad">
         <Action TYPE="Java" PERCENT_PROGRESS="60">
         <ValidIf DBTYPE="ORACLE">
             <CustomQueryFilter DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" VALUE="1">
               select count(*) from  dba_views where VIEW_NAME = 'APP_REGISTRY' and not exists (select view_name from  dba_views where VIEW_NAME= 'SCHEMA_VERSION_REGISTRY')
             </CustomQueryFilter>
         </ValidIf>
         <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilCreateRegistryAndCopyData</Command>
         <Parameters>
            <Parameter TYPE="Connection"></Parameter>
         </Parameters>
     </Action>
         <Action TYPE="Java" PERCENT_PROGRESS="60">
         <ValidIf DBTYPE="ORACLE">
             <CustomQueryFilter DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" VALUE="0">
             select count(*) from  dba_views where VIEW_NAME= 'SCHEMA_VERSION_REGISTRY'
             </CustomQueryFilter>
         </ValidIf>
         <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilCreateRegistryTable</Command>
         <Parameters>
            <Parameter TYPE="Connection"></Parameter>
         </Parameters>
     </Action>
         <Action TYPE="Java" PERCENT_PROGRESS="60">
        <ValidIf DBTYPE="SQLSERVER">
            <CustomQueryFilter DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" VALUE="0">
            select count(*) from  INFORMATION_SCHEMA.TABLES where TABLE_NAME='SCHEMA_VERSION_REGISTRY'
            </CustomQueryFilter>
        </ValidIf>
        <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilCreateRegistryTable</Command>
        <Parameters>
           <Parameter TYPE="Connection"></Parameter>
        </Parameters>
    </Action>
   <Action TYPE="Java" PERCENT_PROGRESS="60">
                <ValidIf DBTYPE="IBMDB2">
                        <CustomQueryFilter DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" VALUE="0">
                         select count(*) from syscat.tables where TABNAME='SCHEMA_VERSION_REGISTRY'
                        </CustomQueryFilter>
                </ValidIf>
                <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilCreateRegistryTable</Command>
      <Parameters>
         <Parameter TYPE="Connection"></Parameter>
      </Parameters>
    </Action>
         <Action TYPE="Java" PERCENT_PROGRESS="60">
         <ValidIf DBTYPE="EBR">
             <CustomQueryFilter DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" VALUE="1">
               select count(*) from  dba_views where VIEW_NAME = 'APP_REGISTRY' and not exists (select view_name from  dba_views where VIEW_NAME= 'SCHEMA_VERSION_REGISTRY')
             </CustomQueryFilter>
         </ValidIf>
         <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilCreateRegistryAndCopyData</Command>
         <Parameters>
            <Parameter TYPE="Connection"></Parameter>
         </Parameters>
     </Action>
         <Action TYPE="Java" PERCENT_PROGRESS="60">
         <ValidIf DBTYPE="EBR">
             <CustomQueryFilter DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" VALUE="0">
             select count(*) from  dba_views where VIEW_NAME= 'SCHEMA_VERSION_REGISTRY'
             </CustomQueryFilter>
         </ValidIf>
 <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilCreateRegistryTable</Command>
         <Parameters>
            <Parameter TYPE="Connection"></Parameter>
         </Parameters>
     </Action>

 <Action TYPE="Java" PERCENT_PROGRESS="60">
      <ValidIf DBTYPE="MYSQL">
            <CustomQueryFilter DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" VALUE="0">
            select count(*) from  INFORMATION_SCHEMA.TABLES where TABLE_NAME='SCHEMA_VERSION_REGISTRY'
            </CustomQueryFilter>
      </ValidIf>
      <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilCreateRegistryTable</Command>
    <Parameters>
         <Parameter TYPE="Connection"></Parameter>
    </Parameters>
  </Action>
   </ExecutionDescriptor>
 
   <FatalErrors>
     <Error Type="ORA-17439">Invalid SQL type</Error>
         <Error Type="ORA-01435">user does not exist</Error>
         <Error Type="ORA-01435">user does not exist</Error>
     <Error Type="ORA-00955">name is already used by an existing object</Error>
         <Error Type="ORA-01031">name is already used by an existing object</Error>
   </FatalErrors>
 
   <IgnorableErrors>
     <Error Type="ORA-02289">sequence does not exist</Error>
     <Error Type="ORA-00904">invalid identifier</Error>
     <Error Type="ORA-01920">user name conflicts with another user or role name</Error>
     <Error Type="ORA-01418">specified index does not exist</Error>
     <Error Type="ORA-00942">table or view does not exist</Error>
     <Error Type="ORA-06512">Not found</Error>
     <Error Type="ORA-01403">no data found</Error>
         <Error Type="ORA-04043">does not exist</Error>
         <Error Type="ORA-04080">Trigger does not exist</Error>
         <Error Type="ORA-00959">Tablespace  does not exist</Error>
         <Error Type="ORA-24035">AQ agent not subscriber</Error>
         <Error Type="ORA-24185">Transformation not found</Error>
         <Error Type="ORA-24042">Does not exist</Error>
         <Error Type="ORA-24088">Does not exist</Error>
   </IgnorableErrors>
</ComponentInfo>

3.2.4 ソフト前提条件のサポート

ComponentInfo.xmlファイルで特定の<DBPrerequisiteSet>または<DBPrerequisite> は必須でない場合は、SOFT属性をTRUEに設定して、ソフト前提条件のオプションを使用できます。ソフト前提条件が満たされない場合、ポップアップ・ウィンドウが開き、エラー・メッセージまたは警告メッセージが表示されます。ここでユーザーはメッセージを無視するか、操作を中止するかを選択することができます。<DBPrerequisiteSet>レベル、<DBPrerequisite>レベルまたはその両方で、ソフト前提条件を定義できます。両方定義されている場合は、<DBPrerequisiteSet>が優先されます。

<DBPrerequisite>レベルでソフト前提条件を設定する例を次に示します。

<DBPrerequisiteSet>
...
   <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="STRING" COMPARE_OPERATOR="EQ" SOFT="TRUE">
      <PrereqIdentifier>select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET'</PrereqIdentifier>
      <PrereqValue>AL32UTF8</PrereqValue>
      <PrereqErrorMsg>
      The database you are connecting is with non-AL32UTF8 character set.
      Oracle strongly recommends using AL32UTF8 as the database character
      set.
      </PrereqErrorMsg>
   </DBPrerequisite>
...
<DBPrerequisiteSet>

3.2.5 デフォルト表領域構成ファイル

デフォルト表領域構成ファイル(Storage.xml)には、デフォルトで表領域が作成されるコンポーネントが一覧表示されます。このファイルは、RCU_HOME/rcu/configディレクトリ(UNIXオペレーティング・システム)またはRCU_HOME\rcu\configディレクトリ(Windowsオペレーティング・システム)にあります。

各コンポーネントの実際の表領域構成ファイルは、RCU_HOME/rcu/integrationcomponent/component_Storage.xmlファイル(UNIXオペレーティング・システム)またはRCU_HOME\rcu\integrationcomponent\component_Storage.xmlファイル(Windowsオペレーティング・システム)にあります。各コンポーネントには、それぞれの表領域構成ファイルがあります。

サンプルのsoainfra_Storage.xmlファイルを次に示します。

<?xml version="1.0" encoding="UTF-8"?>
          <!-- SOAINFRA -->
      <TablespaceAttributes NAME="SOAINFRA" >
      <DatafilesList>
        <DatafileAttributes ID="%DATAFILE_LOCATION%/soainfra.dbf">
          <Size UNIT="MB">
            200
          </Size>
          <Reuse>
            True
          </Reuse>
          <AutoExtend>
            True
          </AutoExtend>
          <Increment UNIT="MB">
            50
          </Increment>
          <Maxsize UNIT="GB">
            2
          </Maxsize>
        </DatafileAttributes>
      </DatafilesList>
    </TablespaceAttributes>
 
   <!-- End 0f SOAINFRA -->

3.3 RCUスクリプト作成のガイドライン

RCUスクリプトを作成する際の一般的ないくつかのガイドラインを次に示します。

スキーマ・ユーザー名およびパスワードをハードコードしないでください。これらは置換可能な変数としてコード化する必要があります。

3.3.1 RCU JDBCエンジンに準拠したSQL*Plusスクリプトのガイドライン

RCU JDBCエンジンに準拠したSQL*Plusスクリプトを作成する際のいくつかのガイドラインを次に示します。

  • すべての文は、適切な終了文字で終了する必要があります。CREATE PACKAGE、TYPEは、「;」と次の行の「/」で終了する必要があります。他のすべての文(Create TABLE、VIEWなど)は、「;」または「/」で終了する必要があります(いずれか1つのみで、両方は指定しません)。

  • EXECUTEコールは、BEGIN/ENDブロックに置き換える必要があります。

  • DEFINE文は1行で指定し、同じ行にコメントは指定しません。また、最後に「;」は付けません。

  • SET、SHOW、SPOOL、WHENEVER、BREAK、EXITの各文は無視されます。

  • HOSTコマンドはまだサポートされていません。

  • VARIABLEおよびCOL(UMN)はまだサポートされていません。

    次の方法を使用して、PL/SQLブロック内で別のSQLスクリプトを動的にコールすることはサポートされていません。

    VARIABLE initfile VARCHAR2(32)
    COLUMN :initfile NEW_VALUE init_file NOPRINT;
    BEGIN
      IF (some condition) THEN
         :initfile := 'initcdc.sql';
      ELSE  
         :initfile := 'nothing.sql';
      END IF;
    END;
    /
    SELECT :initfile FROM DUAL;
    @@&init_file
    

    これに対処するには、個別のアクションとValidIfタグで条件を指定します。

3.3.2 純粋なJDBCスクリプトのガイドライン

RCU用の純粋なJDBCスクリプトを作成する際のいくつかのガイドラインを次に示します。

  • SQL*Plusディレクティブ(SET、WHENEVERなど)を指定してはいけません。

  • すべてのDEFINESは、PL/SQL変数宣言に変更します。

  • すべてのSQL文はEXECUTE IMMEDIATEでラップします。

  • PL/SQLスタイルのコメントは使用できますが、SQL*Plusスタイル(REM)のコメントは使用できません。

  • CREATE文の前のDROP文は動作しません。DROPは、オブジェクトの有無を確認した後でのみ実行してください。すべてのDROP文を異なるPL/SQLスクリプトにまとめておいて、RCUがCREATEスクリプトをコールする前に、必要に応じてこのスクリプトをコールできるようにすることが理想です。

  • スクリプト・ファイルの内容は、Connection.prepareCall()内でコールできる有効なPL/SQLブロックである必要があります。

3.3.3 SQL*Plusスクリプトのガイドライン

RCU用のSQL*Plusスクリプトを作成する際のいくつかのガイドラインを次に示します。

  • exit文またはWHENEVER ERROR EXITディレクティブを指定しないでください。これを指定すると、RCU SQL*Plusセッションが予期せず終了し、後で実行される他のコンポーネント・スクリプトが影響を受けることがあります。

  • スクリプトにはスプール・コマンドは指定しません。RCUは、コンポーネントごとにスプール・ログを生成します。

3.3.4 SQL Serverベース・スクリプトのガイドライン

RCU用のSQL Serverベース・スクリプトを作成する際のいくつかのガイドラインを次に示します。

  • サポートの内容は、sqlcmdによって実行できるt-sqlスクリプトでサポートされているもののサブセットです。

  • データベース固有のすべてのアクションおよび前提条件に、ValidIfタグを追加します。例:

    <DBPrerequisite PREREQ_TYPE="TablespaceFreeMB" DATA_TYPE="NUMBER" COMPARE_OPERATOR="GT">
       <ValidIf DBTYPE="ORACLE" />
       <PrereqIdentifier>%DEFAULT_TABLESPACE%</PrereqIdentifier>
       <PrereqValue>50</PrereqValue>
    </DBPrerequisite>
    
  • RCUは、次のような再帰的な変数定義をサポートします。

    setvar var1 value1
    setvar var2 $(var1)
    
  • 文のブロックを終了するには、go文が必要です。go文より前のすべての文は、単一の文としてJDBCで実行されます。

  • JDBC接続は、自動コミット・モードがオンのときに作成されます。

  • 現時点では、BEGIN TRANSACTION文およびCOMMIT TRANSACTION文はサポートされていません。

  • XMLファイルを介してスクリプトに渡される変数は、次のように渡します。

    Script.sql –v v1=value1 v2=value2
    

    これはXMLファイルを使用してコールされるスクリプトに限定されます。スクリプトが別のスクリプトをコールする場合は、他の変数名を使用できます。