カスタム・スキーマ・スクリプトの使用
カスタム・スキーマ・スクリプトを使用する多重定義 createInstance メソッドを呼び出すことができます。これにより、データベース管理者 (DBA) は、ファクトリーにより生成されたオブジェクト・ストアのデータベース・スキーマを変更できます。
カスタム・スキーマ・スクリプトは、オブジェクト・ストアの作成中に DatabaseXXXStorageLocation プロパティーによって設定された値をオーバーライドします。カスタム・スキーマ・スクリプトは、Domain オブジェクト上の ObjectStoreSchemaXXX プロパティーから選択可能なデフォルトの (ファクトリーにより生成された) スクリプトのいずれかから派生したものである必要があります。これらのプロパティーの名前は ObjectStoreSchemaDB2、ObjectStoreSchemaMSSQL、および ObjectStoreSchemaOracle で、それぞれの値には、ファクトリーがデータベース・ベンダーのインジケーターに従って生成したオブジェクト・ストアのスキーマが含まれます。
カスタム・スキーマ・スクリプトには正しいバージョン情報を含める必要があります。スクリプトのヘッダーにあるバージョン情報は、ObjectStore データベースの DDState.schema_revision_string 列に格納される Content Engine のスキーマ・リビジョン・レベル・インジケーターと対応している必要があります。スクリプトを Domain レベルのプロパティーから取得すると、そのスクリプトには正しいリビジョン・レベルが含まれています。ただし、ごくまれな状況 (通常は、スクリプトの取得後にサーバーのアップグレードを行った場合に関連する) では、データベースに格納されたスキーマ・リビジョン文字列がスキーマ・スクリプトのヘッダーに含まれるリビジョン情報と一致しないことがあります。Content Engine は、このインジケーターが Content Engine サーバーで予期するスキーマ・リビジョン・レベルと一致しない場合、スクリプトを処理せずに例外を生成します。 次のテキストは、スクリプト・ヘッダーに含まれるバージョン情報の一例です (環境によって、生成日およびリビジョン番号は異なります)。
-- Generated for SQL Server databases on: Wed Apr 02 11:11:30 PDT 2008
-- The following SchemaRevision comment must be present and must correspond to
-- the proper schema revision level at the time the ObjectStore is created.
-- SchemaRevision: 14.1.14
注: DB2 for z/OS スクリプトは、GCD が DB2 for z/OS データベースに対して構成されている場合 ObjectStoreSchemaDB2 プロパティーから利用可能です。デフォルトのデータベース・スクリプトを変更する際には、IBM® DB2® for z/OS® のスクリプトが、置換プレースホルダーの使用方法を含め、IBM DB2 for Linux, UNIX and Windows、SQL Server、および Oracle のスクリプトと大幅に異なることに注意してください。 それぞれの置換変数は疑問符 (?) で囲まれ、変数名は IBM DB2 for z/OS の構成中に指定された文字列値のカスタム・プロパティー名に対応します。以下にあるスクリプトの抜粋では、スクリプト内でのこの変数の使用方法を示しています (ここで「...」は、表記の便宜上省略された、追加のステートメントを示します)。
CREATE TABLE DocVersion(object_id varchar(16) for bit data NOT NULL PRIMARY KEY , object_class_id varchar(16) for bit data NOT NULL , security_id varchar(16) for bit data NOT NULL
, … , security_folder_id varchar(16) for bit data ) IN DATABASE ?zOSDatabaseName?
CREATE INDEX I_DocVersion22 ON DocVersion (version_series_id, major_version_number DESC, minor_version_number DESC)
USING STOGROUP ?zOSDefaultSTOGROUP? ?zOSSTOGROUPOptions?
…
上記の例を以下の WebSphere® Application Server スクリプトと比較してください (省略符号は、簡略化のため削除されている追加のステートメントを示します)。
CREATE TABLE DocVersion(object_id uniqueidentifier NOT NULL PRIMARY KEY , object_class_id uniqueidentifier NOT NULL , security_id uniqueidentifier NOT NULL ,
… , security_folder_id uniqueidentifier )
CREATE INDEX I_DocVersion22 ON DocVersion (version_series_id, major_version_number DESC, minor_version_number DESC)
…