C カスタム・アプリケーション・リポジトリを構成するためのリポジトリ作成ユーティリティの拡張

構成XMLファイルは、カスタムのスキーマ作成スクリプトおよび削除スクリプトの生成に使用できます。

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

RCU統合オプション

RCUには、コンポーネント・スクリプトを統合するための複数のオプションがあります。

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

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

RCU JDBCエンジンは、JDBC経由で一連のSQL*Plus機能をエミュレートします。この機能セットは広範にわたり、スキーマ作成の要件を十分に満たしています。

コンポーネント・チームは、わずかな変更のみで既存のSQL*Plusスクリプトを統合できます。

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

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

純粋な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>

SQL*Plusスクリプト

このオプションは主に、RCUからロードする必要があるレガシー・コンポーネントを使用するためのものです。

例:

<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>

外部プロセス

このオプションは、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>

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>

RCU構成ファイル

RCUには、コンポーネントを統合するための複数の構成ファイル・タイプがあります。

次に、RCUによって定義される構成ファイルを示します。

RCUで定義されるXML DTD

RCUで定義されるXML DTDは、ORACLE_HOME/oracle_common/rcu/configディレクトリにあります。

構成ファイルは次のとおりです。

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

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

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

<?xml version="1.0" encoding="UTF-8" ?>
<!ENTITY % commonDTD SYSTEM "RCUCommon.dtd">
%commonDTD;
<!ELEMENT ComponentInfo (Display?, PrefixSettings?, Component*, ComponentConfigFiles?,  PrerequisiteDescriptor*, 
ExecutionDescriptor*, FatalErrors?, IgnorableErrors?)>
<!ATTLIST ComponentInfo
          VERSION CDATA #IMPLIED
          TYPE CDATA #IMPLIED
          RESOURCE_BUNDLE_PACKAGE CDATA #IMPLIED>
<!ELEMENT PrefixSettings (DetectQuery*)>
<!ATTLIST PrefixSettings 
            USE_SCHEMA_PREFIX (TRUE|FALSE) "TRUE"
            USE_TABLESPACE_PREFIX (TRUE|FALSE) "TRUE">
<!ELEMENT ComponentConfigFiles (ConfigFile*)>
<!ATTLIST ConfigFile
            ID CDATA #REQUIRED>
<!ELEMENT ConfigFile (#PCDATA)>
<!ELEMENT Component (ValidIfSet?, ValidIf?, Display,Consolidate*,SchemaBase*, 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 Consolidate  EMPTY>
<!ATTLIST Consolidate
          VALID (TRUE|FALSE) "FALSE"
          DYNAMIC_OBJECTS (TRUE|FALSE) "FALSE">
<!ELEMENT SchemaBase  (#PCDATA) > 
<!ATTLIST SchemaBase  
    PARENT (TRUE|FALSE) "FALSE"
    TBS_OVERRIDE (TRUE|FALSE) "FALSE"
    TBS_OVERRIDE_USE_CUSTOM (TRUE|FALSE) "FALSE" 
    COMPONENT_DROP (TRUE|FALSE) "FALSE">
<!ELEMENT RepositoryConfigFile (#PCDATA)>
<!ELEMENT DetectQuery (#PCDATA)>
<!ATTLIST DetectQuery
         OPERATION (CREATE|DROP|DATALOAD) 'CREATE'
         TYPE (ORACLE|SQLSERVER|IBMDB2|EBR|MYSQL|JAVADB) '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" 
         COMPONENT_ID CDATA #IMPLIED>
<!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*, ValidationDescriptor*)>
<!ATTLIST Variable
        TYPE (STRING|NUMBER|PASSWORD|EXISTING_PASSWORD|FILE|LIST) "STRING"
        MAX_LENGTH CDATA "30"
        MIN_LENGTH CDATA "0"
        MAX_VALUE CDATA #IMPLIED
        MIN_VALUE CDATA #IMPLIED
        OPERATION (CREATE|DROP|SYSTEM_LOAD|DATA_LOAD|BOTH) "BOTH"
        DEFAULT_VALUE CDATA ""
        PROMPT_ON_DEFAULT_VALUE (YES|NO) "YES"
        VALUES CDATA "">
<!ELEMENT Variable (Name,Display)>
<!ELEMENT ValidationDescriptor (Action*)>
<!ATTLIST ValidationDescriptor
        OPERATION (CREATE|DROP|SYSTEM_LOAD|DATA_LOAD|BOTH) "BOTH">
<!ELEMENT Name (#PCDATA)>
リポジトリ構成ファイル

リポジトリ構成ファイルはRepositoryConfig.dtdという名前で、ORACLE_HOME/oracle_common/rcu/configディレクトリ(UNIXオペレーティング・システム)またはORACLE_HOME\oracle_common\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*)>
サポートされるコンポーネントのマスター・リスト

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

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

<?xml version="1.0" encoding="UTF-8" ?>
<!ELEMENT PrerequisiteDescriptor (DBPrerequisiteSet*, DBPrerequisite*)>
<!ATTLIST PrerequisiteDescriptor
        TYPE (CREATE|DROP|REGISTER|DEREGISTER|SYSTEMLOAD|DATALOAD) '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|VERSION) "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|DataLoad|PostDataLoad) "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"
        CONNECT_AS_REGISTRYOWNER (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
          OPERATION_TYPE CDATA "ALL"
          OPERATOR (OR|AND) "OR">
<!ELEMENT ValidIf (CustomQueryFilter?)>
<!ATTLIST ValidIf
 DBTYPE CDATA #IMPLIED
        DBVERSION CDATA #IMPLIED
        OSNAME CDATA #IMPLIED
        OPERATION_TYPE CDATA "ALL">
<!ELEMENT CustomQueryFilter (#PCDATA)>
<!ATTLIST CustomQueryFilter
        DATA_TYPE (STRING|NUMBER) "STRING"
        COMPARE_OPERATOR (EQ|GT|LT|NE|GE|LE|COMPARE_VERSION) "EQ"
        VALUE CDATA #REQUIRED >
記憶域属性構成ファイル

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

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

<?xml version="1.0" encoding="UTF-8" ?>
<!ELEMENT StorageAttributes ( ComponentStorageFiles?, TablespaceAttributes*)>
<!ELEMENT ComponentStorageFiles (StorageFile*)>
<!ATTLIST StorageFile
          ID CDATA #REQUIRED>
<!ELEMENT StorageFile (#PCDATA)>
<!ELEMENT TablespaceAttributes (ValidIfSet?, ValidIf?,Type?,DefaultTemp?,BlockSize?,ExtentSize?,PageSize?,AutoResize?,IncreaseSize?,MaxSize?,Bigfile?,AutoSegmentSpaceManagement?, DatafilesList)>
<!ATTLIST TablespaceAttributes
        NAME CDATA #REQUIRED
    OMF (TRUE|FALSE) "FALSE">
<!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 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'>

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

コンポーネント・リポジトリ構成ファイル(component.xml)には、前提条件と、スキーマのロードまたは削除の実行に必要なスクリプトまたはアクションのリストが含まれています。

このファイルは、コンポーネント所有者が提供および管理します。この構成ファイルは、コンポーネント・リスト構成ファイル(ComponentInfo.xml)から参照されます。

component.xmlファイルは、ORACLE_HOME/oracle_common/common/sql/component/component.xmlディレクトリ(UNIXオペレーティング・システム)またはORACLE_HOME\oracle_common\common\sql\component\component.xmlディレクトリ(Windowsオペレーティング・システム)にあります。

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

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

RCUパラメータ 説明

%ORACLE_HOME%

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

%SCRIPT_HOME%

スクリプトが配置される場所。ORACLE_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が配置されるORACLE_HOME

%RCU_LOG_LOCATION%

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

%DATABASE_NMAE%

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

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

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE RepositoryConfig SYSTEM "RepositoryConfig.dtd">
<RepositoryConfig COMP_ID="OPSS">
 
   <!-- Prerequisites for OPSS -->
   <PrerequisiteDescriptor>
         <!-- ORACLE Prerequisites -->
         <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>50</PrereqValue>
         </DBPrerequisite>
 
         <!-- ORACLE EBR Prerequisites -->
         <DBPrerequisite PREREQ_TYPE="TablespaceFreeMB" DATA_TYPE="NUMBER"
                         COMPARE_OPERATOR="GT">
            <ValidIf DBTYPE="EBR" />
            <PrereqIdentifier>%DEFAULT_TABLESPACE%</PrereqIdentifier>
            <PrereqValue>50</PrereqValue>
         </DBPrerequisite>
         <DBPrerequisite PREREQ_TYPE="TablespaceFreeMB" DATA_TYPE="NUMBER"
                         COMPARE_OPERATOR="GT">
            <ValidIf DBTYPE="EBR" />
            <PrereqIdentifier>%TEMPORARY_TABLESPACE%</PrereqIdentifier>
            <PrereqValue>50</PrereqValue>
         </DBPrerequisite>
 
      <!-- SQLServer Prerequisites -->
 
      <!-- DB2 Prerequisites -->
 
   </PrerequisiteDescriptor>

 <PrerequisiteDescriptor TYPE="DROP">
        <!-- ORACLE Prerequisites -->
        <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>
 
        <!-- ORACLE EBR Prerequisites -->
        <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 NLS_ID="WC_USER_CONNECTED">The schema owner %SCHEMA_USER% is connected to the database. Please disconnect and try again.</PrereqErrorMsg>
        </DBPrerequisite>
 
 
      <!-- SQLServer Prerequisites -->
 
      <!-- DB2 Prerequisites -->
 
   </PrerequisiteDescriptor>
 
 
   <!-- Creating the OPSS Schema and Setting it to valid in the Registry -->
   <ExecutionDescriptor>
      <Action TYPE="Java" PERCENT_PROGRESS="20">
         <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilCreateRegistryEntry</Command>
         <Parameters>
            <Parameter TYPE="Connection"></Parameter>
            <Parameter TYPE="String">OPSS</Parameter>
            <Parameter TYPE="String">Oracle Platform Security Services</Parameter>
            <Parameter TYPE="String">%PREFIX_NAME%</Parameter>
            <Parameter TYPE="String">OPSS</Parameter>
            <Parameter TYPE="String">OPSS</Parameter>
            <Parameter TYPE="String">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="String">12.1.2.0.0</Parameter>
            <Parameter TYPE="String">LOADING</Parameter>
         </Parameters>
      </Action>
 <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="40">
         <ValidIf DBTYPE="ORACLE" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/opss_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>
         <IgnorableErrors>
            <Error Type="ORA-01918">user name does not exist</Error>
         </IgnorableErrors>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="EBR" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/oracleEbr/opss_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>
         <IgnorableErrors>
            <Error Type="ORA-01918">user name does not exist</Error>
         </IgnorableErrors>
      </Action>
 
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="40">
         <ValidIf DBTYPE="SQLSERVER" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/sqlserver/opss_user.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%SCHEMA_PASSWORD%</Parameter>
            <Parameter TYPE="CmdLine">%DATABASE_NAME%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="40">
         <ValidIf DBTYPE="IBMDB2"/>
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/db2/opss_user.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%DEFAULT_TABLESPACE%</Parameter>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>

 <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="60">
         <ValidIf DBTYPE="ORACLE" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/opss_tables.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
         <IgnorableErrors>
            <Error Type="ORA-00942">table or view does not exist</Error>
         </IgnorableErrors>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="60">
         <ValidIf DBTYPE="EBR" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/oracleEbr/opss_tables.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%EDITION_NAME%</Parameter>
         </Parameters>
         <IgnorableErrors>
            <Error Type="ORA-00942">table or view does not exist</Error>
         </IgnorableErrors>
      </Action>
 
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="60">
         <ValidIf DBTYPE="SQLSERVER" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/sqlserver/opss_tables.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%DATABASE_NAME%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="60">
         <ValidIf DBTYPE="IBMDB2" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/db2/opss_tables.sql</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="70">
         <ValidIf DBTYPE="ORACLE" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/opss_version.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="70">
         <ValidIf DBTYPE="EBR" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/oracleEbr/opss_version.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%EDITION_NAME%</Parameter>
         </Parameters>
      </Action>

 <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="70">
         <ValidIf DBTYPE="SQLSERVER" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/sqlserver/opss_version.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%DATABASE_NAME%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="70">
         <ValidIf DBTYPE="IBMDB2" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/db2/opss_version.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>
 
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="80">
         <ValidIf DBTYPE="ORACLE" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/opss_gencatalog.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>
 
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="80">
         <ValidIf DBTYPE="SQLSERVER" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/sqlserver/opss_gencatalog.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%DATABASE_NAME%</Parameter>
         </Parameters>
      </Action>
 
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="80">
         <ValidIf DBTYPE="IBMDB2" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/db2/opss_gencatalog.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>
 
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="80">
         <ValidIf DBTYPE="EBR" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/oracleEbr/opss_gencatalog.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%EDITION_NAME%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript"  CONNECT_AS_OWNER="TRUE" PERCENT_PROGRESS="100">
         <ValidIf DBTYPE="ORACLE" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/upgd_mgmt_schema.sql</Command>
      </Action>
 
      <Action TYPE="Java">
         <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilSetComponentValid</Command>
         <Parameters>
            <Parameter TYPE="String">OPSS</Parameter>
         </Parameters>
      </Action>
 </ExecutionDescriptor>

 <!-- Deleting the OPSS Schema and removing it from the Registry -->
   <DeleteDescriptor>
      <Action TYPE="JDBC" PERCENT_PROGRESS="50">
         <ValidIf DBTYPE="ORACLE" />
         <Command TYPE="INLINE">DROP USER %SCHEMA_USER% CASCADE</Command>
      </Action>
      <Action TYPE="JDBC" PERCENT_PROGRESS="50">
         <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%/opss/scripts/sqlserver/opss_drop_table.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%DATABASE_NAME%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="50">
         <ValidIf DBTYPE="SQLSERVER" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/sqlserver/opss_drop_user.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%DATABASE_NAME%</Parameter>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>
 
     <Action TYPE="Java" PERCENT_PROGRESS="50">
       <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="Java" PERCENT_PROGRESS="100">
         <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilDropRegistryEntry</Command>
         <Parameters>
            <Parameter TYPE="Connection"></Parameter>
            <Parameter TYPE="String">OPSS</Parameter>
            <Parameter TYPE="String">%PREFIX_NAME%</Parameter>
            <Parameter TYPE="String">OPSS</Parameter>
         </Parameters>
     </Action>
   </DeleteDescriptor>
</RepositoryConfig>

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

コンポーネント・リスト構成ファイル(ComponentInfo.xml)には、すべてのコンポーネント、対応する構成ファイルおよびデフォルトのユーザーと表領域のマッピングが一覧表示されています。

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

ノート:

RCUでは、動的検出を使用して、使用可能なコンポーネントを検出します。その結果、すべてのコンポーネントが、コンポーネント・リスト構成ファイルにリストされない場合があります。

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

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

<?xml version="1.0" encoding="UTF-8" ?>
<!-- DOCTYPE ComponentInfo SYSTEM "dtds/ComponentInfo.dtd" -->
<!DOCTYPE ComponentInfo SYSTEM "ComponentInfo.dtd" []>
<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>
         <DetectQuery TYPE="JAVADB">
        Select distinct mrc_name from ORACLEFMW.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>
 
  <Component ID="SOA" IS_GROUPING_COMPONENT="TRUE">
      <Display NLS_ID="SOA">SOA Suite</Display>
  </Component>
 
 
  <Component ID="ODI_REPOSITORIES" IS_GROUPING_COMPONENT="TRUE">
      <Display NLS_ID="ODI_REPOSITORIES">Oracle Data Integrator</Display>
  </Component>
 
 
 
 <ComponentConfigFiles>
    <ConfigFile ID="MDS">%RCU_HOME%/../oracle_common/common/sql/mds/mds_ComponentInfo.xml</ConfigFile>
    <ConfigFile ID="IAU">%RCU_HOME%/../oracle_common/common/sql/iau/iau_ComponentInfo.xml</ConfigFile>
    <ConfigFile ID="OPSS">%RCU_HOME%/../oracle_common/common/sql/opss/opss_ComponentInfo.xml</ConfigFile>
    <ConfigFile ID="UCSMESSAGING">%RCU_HOME%/../oracle_common/common/sql/ucs.messaging/ucs.messaging_ComponentInfo.xml</ConfigFile>
    <ConfigFile ID="WLS">%RCU_HOME%/../oracle_common/common/sql/wlsservices/wlsservices_ComponentInfo.xml</ConfigFile>
    <ConfigFile ID="ESS">%RCU_HOME%/../oracle_common/common/sql/ess/ess_ComponentInfo.xml</ConfigFile>
    <ConfigFile ID="SOAINFRA">%RCU_HOME%/../soa/common/sql/soainfra/soainfra_ComponentInfo.xml</ConfigFile>
    <ConfigFile ID="ODI">%RCU_HOME%/../odi/common/sql/odi/odi_ComponentInfo.xml</ConfigFile>
<ConfigFile ID="OER">%RCU_HOME%/../oer/common/sql/oer/oer_ComponentInfo.xml</ConfigFile>
<ConfigFile ID="OWLCS">%RCU_HOME%/../oracle_common/common/sql/ucs.callcontrol/ucs.callcontrol_ComponentInfo.xml</ConfigFile>
<ConfigFile ID="SVCTBL">%RCU_HOME%/../oracle_common/common/sql/svctbl/svctbl_ComponentInfo.xml</ConfigFile>
<ConfigFile ID="MFT">%RCU_HOME%/../mft/common/sql/mft/mft_ComponentInfo.xml</ConfigFile>
 </ComponentConfigFiles>

<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>
 
           <DBPrerequisiteSet OPERATOR="AND">
             <ValidIf DBTYPE="ORACLE" />
    <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ"  SOFT="TRUE">
     <ValidIf DBTYPE="ORACLE">
    <CustomQueryFilter DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" VALUE="1">
       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 V_$INSTANCE where EDITION = 'XE'</PrereqIdentifier>
            <PrereqValue>0</PrereqValue>
            <PrereqErrorMsg>
                                        The database you are connecting is not a 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="ORACLE">
    <CustomQueryFilter DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" VALUE="1">
       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 >= '12.0.0.0.0' AND  version &lt;  '12.1.0.1.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 12.1.0.1.0 in 12c. 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="1">
       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 > '12.1.0.1.9'</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>
 
  </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 &gt; '11.1.0.7.0' AND version &lt;= '11.1.9.9.9'</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" >
        <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.2.0.4.0' AND '11.2.9.9.9' </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">
        <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.2.0.0.0' AND '11.2.0.2.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 11.2.0.3.0 in 11g. 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 >= '12.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">
        <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 like '12.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 12.1.0.0.0 in 12c. 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="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="Java" DATA_TYPE="STRING" COMPARE_OPERATOR="NE" SOFT="TRUE">
   <ValidIf DBTYPE="JAVADB" />
    <PrereqIdentifier>%RCU_HOME%/../oracle_common/rcu/config/JavaDB.jar:javadbproject.JavaDB:checkJavaDBVersion</PrereqIdentifier>
       <PrereqValue>SOFTPASS</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="Java" DATA_TYPE="STRING" COMPARE_OPERATOR="NE">
   <ValidIf DBTYPE="JAVADB" />
                  <PrereqIdentifier>%RCU_HOME%/../oracle_common/rcu/config/JavaDB.jar:javadbproject.JavaDB:checkJavaDBVersion</PrereqIdentifier>
                  <PrereqValue>FAIL</PrereqValue>
                  <PrereqErrorMsg>
            The database you are connecting is not a supported version. Enter Database with version equal to or higher than 10.5.3.0. 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>

<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 ='log_bin_trust_function_creators'</PrereqIdentifier>
                  <PrereqValue>ON</PrereqValue>
                  <PrereqErrorMsg>
                      DB Init Param Prerequisite failure for log_bin_trust_function_creators. Its value should be 'ON'.
                </PrereqErrorMsg>
 </DBPrerequisite>
 
 </PrerequisiteDescriptor>
 
   <ExecutionDescriptor TYPE="PreLoad">
         <Action TYPE="Java" PERCENT_PROGRESS="60">
         <ValidIf DBTYPE="ORACLE,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="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="JAVADB">
                        <CustomQueryFilter DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ" VALUE="0">
               SELECT  COUNT(*) FROM SYS.SYSTABLES INNER JOIN SYS.SYSSCHEMAS ON SYS.SYSTABLES.SCHEMAID = SYS.SYSSCHEMAS.SCHEMAID WHERE SCHEMANAME='ORACLEFMW' AND TABLENAME='SCHEMA_VERSION_REGISTRY_T'
                        </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>
 
  <ExecutionDescriptor TYPE="PostLoad">
         <Action TYPE="Java" PERCENT_PROGRESS="60">
          <ValidIf DBTYPE="EBR"/>
          <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilSetEditionName</Command>
                <Parameters>
             <Parameter TYPE="String">%EDITION_NAME%</Parameter>
          </Parameters>
         </Action>
 
     <Action TYPE="Java">
         <ValidIf DBTYPE="ORACLE,EBR"/>
         <Command  TYPE="METHOD">com.oracle.cie.rcu.ComponentSchemaUtil:loadCompSchemaInfo</Command>
         <Parameters>
             <Parameter TYPE="Connection"></Parameter>
             <Parameter TYPE="String">%SERVICE_TABLE_STRING%</Parameter>
             <Parameter TYPE="String">%PREFIX_NAME%</Parameter>
             <Parameter TYPE="String">%DB_HOSTNAME%</Parameter>
             <Parameter TYPE="String">%DB_SERVICE%</Parameter>
             <Parameter TYPE="String">%DB_PORTNUMBER%</Parameter>
         </Parameters>
     </Action>
     <Action TYPE="Java">
       <ValidIf DBTYPE="SQLSERVER,IBMDB2,MYSQL,JAVADB"/>
       <Command  TYPE="METHOD">com.oracle.cie.rcu.ComponentSchemaUtil:loadNonOracleCompSchemaInfo</Command>
       <Parameters>
         <Parameter TYPE="Connection"></Parameter>
         <Parameter TYPE="String">%SERVICE_TABLE_STRING%</Parameter>
         <Parameter TYPE="String">%PREFIX_NAME%</Parameter>
         <Parameter TYPE="String">%DB_HOSTNAME%</Parameter>
         <Parameter TYPE="String">%DB_PORTNUMBER%</Parameter>
         <Parameter TYPE="String">%DATABASE_NAME%</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>

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

特定の<DBPrerequisiteSet>または<DBPrerequisite>が必須でない場合は、ComponentInfo.xmlファイル内で、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>

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

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

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

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

<?xml version="1.0" encoding="UTF-8" ?>
 
<!--  OPSS START   -->
<TablespaceAttributes NAME="IAS_OPSS">
  <Type>Permanent</Type>
  <DefaultTemp>False</DefaultTemp>
  <Bigfile>False</Bigfile>
  <DatafilesList>
    <DatafileAttributes ID="%DATAFILE_LOCATION%/ias_opss.dbf">
      <Size UNIT="MB">60</Size>
      <Reuse>True</Reuse>
      <AutoExtend>True</AutoExtend>
    </DatafileAttributes>
  </DatafilesList>
</TablespaceAttributes>
<!--  OPSS END   -->

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

RCUスクリプトの作成時には、ここに示すガイドラインを使用してください。

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

  • スキーマ・ユーザーを作成する必要がある場合は、RCUによって渡されたパラメータを使用して最初に作成します。

  • 表領域および一時表領域の参照をハードコードしないでください。これらは変数としてコード化する必要があります。

  • CONNECTを使用しないでください。かわりに、スキーマ・ユーザーの作成後にALTER SESSION SET CURRENT_SCHEMA = <SCHEMA_OWNER>を使用します。

  • 無視できる、および致命的なORAエラーのセット(ある場合)は、RCU XMLコンポーネント構成ファイルに一覧表示します。

  • データベース・インスタンスをバウンスする停止起動は回避します。

  • スキーマのロードの前後にSCHEMA_VERSION_REGISTRYを更新してください。これは、「JavaActionを使用するJavaコード」に示されているJavaActionを使用して、または、SCHEMA_VERSION PL/SQLパッケージを使用するコンポーネント・スクリプト内で実行できます。

  • 行コメント(/* -- コメント */)を含むブロック・コメントはサポートされていません。

次に、様々なスクリプトのRCUに関するガイドラインを示します。

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

ここに示すガイドラインは、RCU JDBCエンジンのSQL*Plusスクリプトを作成する際に使用してください。

  • すべての文は、適切な終了文字で終了する必要があります。CREATE PACKAGE、TYPEは、次の行の; (セミコロン)と/ (スラッシュ)で終了する必要があります。他のすべての文(Create TABLE、VIEWなど)は、; (セミコロン)または/ (スラッシュ)のいずれかで終了する必要があります。

  • 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タグで条件を指定します。

純粋な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ブロックである必要があります。

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

ここに示すガイドラインは、RCU用のSQL*Plusスクリプトを作成する際に使用してください。

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

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

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ファイルを使用してコールされるスクリプトに限定されます。スクリプトが別のスクリプトをコールする場合は、他の変数名を使用できます。