C カスタム・アプリケーション・リポジトリを構成するためのリポジトリ作成ユーティリティの拡張
コンポーネント所有者がスキーマの作成スクリプトおよび削除スクリプトをRCUにプラグインできるよう、RCUにはXMLベースのフレームワークが用意されています。次の各トピックでは、コンポーネントをRCUに統合するときに使用する構成XMLファイルとスクリプト作成のガイドラインについて詳しく説明します。
- RCU統合オプション
RCUには、コンポーネント・スクリプトを統合するための複数のオプションがあります。 - RCU構成ファイル
RCUには、コンポーネントを統合するための複数の構成ファイル・タイプがあります。 - RCUスクリプト作成のガイドライン
RCUスクリプトの作成時には、該当するガイドラインを使用してください。
RCU統合オプション
RCUには、コンポーネント・スクリプトを統合するための複数のオプションがあります。
コンポーネント・スクリプトの統合に推奨されるオプションは、RCU JDBCエンジン準拠のSQL*Plusスクリプトです。SQL*Plusスクリプトに依存するコンポーネントは、インストール先のOracleホームから実行している場合、RCUでロードできません。
- RCU JDBCエンジン準拠のSQL*Plusスクリプト
RCU JDBCエンジンは、JDBC経由で一連のSQL*Plus機能をエミュレートします。この機能セットは広範にわたり、スキーマ作成の要件を十分に満たしています。 - 純粋なJDBCスクリプト
このオプションは、Oracle以外のデータベースに対して推奨されます(Oracleデータベースの場合は、RCU JDBCエンジン準拠のSQL*Plusスクリプトを使用する必要があります)。 - SQL*Plusスクリプト
このオプションは主に、RCUからロードする必要があるレガシー・コンポーネントを使用するためのものです。 - 外部プロセス
このオプションは、OPCA (Oracle Portal 10g)のように、スキーマを作成するための独自の構成ツールを持つコンポーネント専用に提供されています。 - JavaActionを使用するJavaコード
このオプションは、JDBC接続を受け入れてSQL文を実行できる、Javaコードを持つコンポーネントに対して提供されています。
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ツールも使用することをお薦めします。
親トピック: RCU統合オプション
純粋な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>
親トピック: RCU統合オプション
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>
親トピック: RCU統合オプション
外部プロセス
このオプションは、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>
親トピック: RCU統合オプション
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によって定義される構成ファイルを示します。
- RCUで定義されるXML DTD
RCUで定義されるXML DTDは、ORACLE_HOME/oracle_common/rcu/config
ディレクトリにあります。 - コンポーネント・リポジトリ構成ファイル
コンポーネント・リポジトリ構成ファイル(component.xml
)には、スキーマのロードまたは削除の実行に必要な前提条件とスクリプトまたはアクションのリストが含まれています。 - ソフト前提条件のサポート
特定の<DBPrerequisiteSet>
または<DBPrerequisite>
が必須でない場合は、ComponentInfo.xml
ファイル内で、SOFT
属性をTRUE
に設定することで、ソフト前提条件のオプションを使用できます - デフォルト表領域構成ファイル
デフォルト表領域構成ファイル(Storage.xml
)には、表領域が即時利用可能な状態で作成されるコンポーネントをリストします。UNIXオペレーティング・システムでは、このファイルはORACLE_HOME/oracle_common/rcu/config
ディレクトリにあります。
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オペレーティング・システム)にあります。 - リポジトリ構成ファイル
リポジトリ構成ファイルはRepositoryConfig.dtd
という名前で、ORACLE_HOME/oracle_common/rcu/config
ディレクトリ(UNIXオペレーティング・システム)またはORACLE_HOME\oracle_common\rcu\config
ディレクトリ(Windowsオペレーティング・システム)にあります。 - サポートされるコンポーネントのプライマリ・リスト
RCUは、サポートされるコンポーネントのプライマリ・リストを保持しています。これは、サポートされる各コンポーネントのエントリで構成されています。新しいコンポーネントが追加されるたびに、サポートされるコンポーネントのプライマリ・リストは、コンポーネント所有者によって提供されるXML統合ファイルを参照して更新されます。 - 記憶域属性構成ファイル
RCUは、作成する必要のある表領域またはデータファイルおよびそれらの属性のリストを保持しています。これにより、表領域属性およびデータファイル属性を外部で変更できます。
親トピック: RCU構成ファイル
コンポーネント記述子構成ファイル
コンポーネント記述子構成ファイルは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)>
親トピック: RCUで定義されるXML DTD
リポジトリ構成ファイル
リポジトリ構成ファイルは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 DTD
サポートされるコンポーネントのプライマリ・リスト
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で定義されるXML DTD
記憶域属性構成ファイル
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'>
表C -1 RCU XML構成ファイルの詳細
要素 | 属性 | 説明 | サポートされる値 |
---|---|---|---|
TablespaceAttributes |
名前 |
表領域の名前を示します |
— |
タイプ |
— |
表領域のタイプ(デフォルトまたは一時)を示します |
|
Bigfile |
— |
値に基づいて表領域がbigfile表領域かどうかを示します |
|
DatafilesList |
— |
データファイル情報をグループ化します |
— |
DatafileAttributes: Size |
ID たとえば、 <DatafileAttributes ID="%DATAFILE_LOCATION%/mds.dbf"> <Size UNIT="MB"> 100 </Size> |
表領域のサイズを示します |
整数値 |
DatafileAttributes: Reuse |
— |
既存のファイルを再利用できます |
|
DatafileAttributes: AutoExtend |
— |
値に基づいて、新規データファイルまたは一時ファイルの自動拡張機能を有効または無効にできるようにします |
|
DatafileAttributes: Increment |
— |
オブジェクトに割り当てる次のエクステント・サイズをバイト単位で指定します |
整数値 |
DatafileAttributes: Maxsize |
— |
セグメントの最大サイズを示します |
値は-1で、maxsizeが無制限の場合は必要な値を指定します |
— |
UNIT |
表領域サイズの単位を示します |
KB/MB/GB デフォルト値はMBです。 |
AutoSegmentSpaceManagement |
値に基づいて、ディクショナリ管理表領域またはローカル管理表領域を示します |
「True」はディクショナリ管理表領域を示し、「False」はローカル管理表領域を示します。 |
データベース表領域の詳細は、Oracle® Databaseリファレンス・ガイドのDBA_TABLESPACESに関する項を参照してください。
親トピック: RCUで定義されるXML DTD
コンポーネント・リポジトリ構成ファイル
コンポーネント・リポジトリ構成ファイル(component.xml
)には、前提条件と、スキーマのロードまたは削除の実行に必要なスクリプトまたはアクションのリストが含まれています。
このファイルは、コンポーネント所有者が提供および管理します。
UNIXオペレーティング・システムでは、各component.xml
ファイルはORACLE_HOME/oracle_common/common/sql/component/component.xml
ディレクトリにあります。
コンポーネント所有者は、事前定義されている一連のRCUパラメータを使用できます。これらのパラメータはユーザー入力に基づき、RCUにより実行時に置換されます。事前定義されているパラメータのリストを次に示します。
表C-2 事前定義されているRCUパラメータ
RCUパラメータ | 説明 |
---|---|
|
Oracleホーム・ディレクトリの場所。 |
|
スクリプトが配置される場所。 |
|
RCUでユーザーによって入力されるデータベース・スキーマ名(所有者)。 |
|
RCUでユーザーによって入力されるデータベース・スキーマ・パスワード。 |
|
|
|
追加のスキーマ・ユーザーのパスワード。 |
|
ユーザーによってコンポーネントに割り当てられるデフォルト表領域。 |
|
ユーザーによってコンポーネントに割り当てられる一時表領域。 |
|
ユーザーによってコンポーネントに割り当てられるその他の表領域。その他の表領域は最大で3つサポートされます。 |
|
設定が行われなかった場合の、データベース内のデフォルトの永続表領域( |
|
設定が行われなかった場合の、データベース内のデフォルトの一時表領域(たとえば、Oracle付属のデータベース内の |
|
表領域やデータファイルが作成されるデフォルトの場所。 |
|
JDBC接続文字列。 |
|
スキーマおよび表領域の名前に使用されるユーザー指定の接頭辞。 |
|
JavaActionに渡される接続済の |
|
「データベース接続の詳細」で提供されるデータベース管理ユーザー。 |
|
「データベース接続の詳細」で提供されるデータベース管理ユーザーのパスワード。 |
|
「データベース接続の詳細」で提供されるデータベース管理ユーザーのロール。 |
|
「データベース接続の詳細」で提供されるデータベースのホスト名。 |
|
データベース・サービス名。 |
|
「データベース接続の詳細」で提供されるデータベースのポート番号。 |
|
RCUのインストール先のディレクトリ。 |
|
SQL*Plusが配置される |
|
RCUログ・ファイルが作成されるディレクトリの場所。 |
|
データベース名(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>
親トピック: RCU構成ファイル
ソフト前提条件のサポート
特定の<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>
親トピック: RCU構成ファイル
デフォルト表領域構成ファイル
デフォルト表領域構成ファイル(Storage.xml
)には、表領域が即時利用可能な状態で作成されるコンポーネントが一覧表示されます。UNIXオペレーティング・システムでは、このファイルはORACLE_HOME/oracle_common/rcu/config
ディレクトリにあります。
UNIXオペレーティング・システムでは、各コンポーネントの実際の表領域構成ファイルはORACLE_HOME/oracle_common/rcu/integrationcomponent/component_Storage.xml
ディレクトリにあります。各コンポーネントには、それぞれの表領域構成ファイルがあります。
サンプルの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 XML構成ファイルの詳細は、「記憶域属性構成ファイル」の表C-1を参照してください
親トピック: RCU構成ファイル
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スクリプトを作成する際に使用します。 - 純粋なJDBCスクリプトのガイドライン
このガイドラインは、RCU用の純粋なJDBCスクリプトを作成する際に使用します。 - SQL*Plusスクリプトのガイドライン
このガイドラインは、RCU用のSQL*Plusスクリプトを作成する際に使用します。 - SQL Serverベース・スクリプトのガイドライン
このガイドラインは、RCU用のSQL Serverベース・スクリプトを作成する際に使用します。
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タグで条件を指定します。
親トピック: RCUスクリプト作成のガイドライン
純粋な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ブロックである必要があります。
親トピック: RCUスクリプト作成のガイドライン
SQL*Plusスクリプトのガイドライン
ここに示すガイドラインは、RCU用のSQL*Plusスクリプトを作成する際に使用してください。
-
exit文またはWHENEVER ERROR EXITディレクティブを指定しないでください。これを指定すると、RCU SQL*Plusセッションが予期せず終了し、後で実行される他のコンポーネント・スクリプトが影響を受けることがあります。
-
スクリプトにはスプール・コマンドは指定しません。RCUは、コンポーネントごとにスプール・ログを生成します。
親トピック: 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ファイルを使用してコールされるスクリプトに限定されます。スクリプトが別のスクリプトをコールする場合は、他の変数名を使用できます。
親トピック: RCUスクリプト作成のガイドライン