データベースは、インストール時に設定するか、またはインストール後にSetupツールを使用して設定できます。これらのシナリオでは、いずれもこの項で説明する同じGUIパネルのセットを使用します。
Setupツールを実行するには、インストールのbinサブディレクトリから次のスクリプトを実行します。
Windows: | setup.bat |
UNIX: | ./setup.sh |
詳細は、「Setup」のコマンドライン・パラメータを参照してください。
データベースを選択します。Setupツールの詳細は、「インストール後の再構成」を参照してください。
レジストリにはデータベースが必要です。インストール時には、新しいデータベースの作成、既存の空のデータベースへのスキーマの作成、または作成したスキーマでの既存のデータベースへ接続を行うことができます。Setupツールを使用して、データベースまたはデータベース・スキーマを削除することもできます。次のパネルで、データベース操作を選択します。
図17に示されているいずれかの方法を選択します。
(データベース・サーバーのタイプに応じて)新しいデータベース/ユーザー/表領域およびデータベース・スキーマを作成します。 これは、必要なデータベースをOracle Service Registryに接続する最も簡単な方法です。データベース管理者の資格証明が必要であることに注意してください。
既存のデータベースに新しいスキーマを作成します。既存の空のデータベースにアクセスして表および索引を作成できる場合は、この方法を選択します。このオプションは、管理者の資格証明がわからない場合に適しています。ここでは、管理者がこのオプション用に新しいデータベース/ユーザー/表領域をすでに作成していることを前提としています。
データベース/ユーザー/表領域全体を削除します。このオプションは、データベース・サーバーのタイプによって異なることに注意してください。
データベース内のすべての表を削除しますが、空のデータベースは残します。
レジストリ・データベースを構成します。 たとえば、同じリリース番号の以前のOracle Service Registryインストールなどからのレジストリ・データベースがすでに存在する場合は、この方法を使用して接続パラメータのみを入力します。
図18は、Oracle Service Registry用に準備できる、サポートされているデータベース・エンジンを示しています。前のステップで別の方法を選択した場合は、パネルが異なる場合があります。
次に示す選択したデータベースのリンクをクリックして、詳細を参照してください。
インストーラ/Setupツールの「Create New Tablespace/Database」オプションは、新しい物理データベースの作成を意味しません。インストール・プロセスでは、新しい表領域、その表領域に関連付けられたデータベース・ユーザー、および新しいデータベース・スキーマが作成されます。その後、データベース・スキーマにデフォルトのデータが移入されます。追加のUDDIデータベース(公開レジストリおよび検出レジストリ用のデータベースなど)を作成する場合は、異なるデータベース・ユーザーを使用して作成する必要があります。
Oracle Databaseの作成には、次のプロパティが必要です。スキーマへの接続またはスキーマの作成には、これらのプロパティのサブセットが必要です。アスタリスク(*)が付けられたプロパティは、データベース内の既存のオブジェクトと競合しないようにしてください。
通常、データベース・サーバーにアクセスできるコンピュータのホスト名またはIPアドレス。
データベースが接続をリスニングするポート。
Oracle Service Registryの表領域、ユーザーおよびスキーマが作成される既存のデータベースの名前。
データベースの管理者のユーザー名。既存のデータベースに新しいユーザーおよび新しい表領域を作成するために必要です。
上のテキスト・ボックスで指定した管理者アカウントのパスワード。
既存のデータベースに作成され、UDDIデータ構造を保存する表領域の名前。
データベースに接続するために作成される新しいユーザー・アカウント。
上のテキスト・ボックスで指定したユーザー・アカウントのパスワード。
上のテキスト・ボックスと異なると続行できません。
「JDBCドライバ」に進みます。
Systinet Registryは、高速接続フェイルオーバーを除いて、Oracle RACデータベースをサポートします。 通常のフェイルオーバーは機能します。 このデータベースを設定するには、前述のフィールドよりも詳しい情報を指定する必要があります。 Oracle RACデータベースでは、特殊な接続文字列を使用します。 「JDBC Drivers」ページで、「Use custom connection string」を選択して、RACパラメータを含む接続文字列を入力します。
接続文字列の例は、jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) (HOST=node1.example.com) (PORT=1521))(ADDRESS=(PROTOCOL=TCP) (HOST=node2.example.com) (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=myservice)) (FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5)))のようになります。
インストール・プロセスでは、特定のユーザー名でデータベース・サーバー上に新しいデータベースが作成されます。データベース・スキーマが作成され、UDDIデータがロードされます。このユーザーは、Database Creatorsサーバー・ロールを持っている必要があります。
![]() | 重要 |
---|---|
データベース・サーバーで大/小文字を区別する照合が行われることを確認してください。データベース・サーバーで大/小文字を区別する照合が行われない場合は、caseSensitiveMatch findQualifierが設定されている場合でも、すべての比較で大/小文字が区別されなくなります。かわりに、大/小文字を区別する照合が行われるデータベースを手動で作成し、「Create Schema」オプションを使用することができます。 |
![]() | 重要 |
---|---|
図17に示されているインストール/設定パネルでオプション「Create New Tablespace/Database」を選択した場合は、Database Creatorsサーバー・ロールを持つデータベース・ユーザー・アカウントが必要です。このようなアカウントを作成するには、SQL Server Enterprise Managerを使用できます。
|
MSSQLデータベースの作成には、次のプロパティが必要です。スキーマへの接続またはスキーマの作成には、これらのプロパティのサブセットが必要です。アスタリスク(*)が付けられたプロパティは、データベース内の既存のオブジェクトと競合しないようにしてください。
通常、データベース・サーバーにアクセスできるホスト名またはIPアドレス。
データベースが接続をリスニングするポート。
UDDIデータ構造を保持するデータベースの名前。
新しいデータベースを作成できるユーザーのユーザー名。
上のボックスで指定したユーザーのパスワード。
「JDBCドライバ」に進みます。
インストーラ/Setupツールの「Create New Tablespace/Database」オプションによって、新しいデータベースは物理的には作成されません。インストール・プロセスでは、特定の(既存の)バッファ・プールを持つ既存のデータベース内に新しい表領域が作成され、特定のファイルに関連付けられます。指定したユーザーに、表領域を使用する権限が付与されます。その後、データベース・スキーマが作成され、UDDIデータがロードされます。
![]() | 重要 |
---|---|
リレーショナル表は暗黙的スキーマに作成されるため、追加のUDDIデータベース(承認プロセス用の公開レジストリおよび検出レジストリのデータベースなど)を作成する場合は、異なるデータベース・ユーザーを使用してUDDIデータベースを作成する必要があります。 |
![]() | 重要 |
---|---|
「Create New Tablespace/Database」オプションには、8Kのページ・サイズのバッファ・プールおよびそのようなバッファ・プールを持つ一時表領域を使用できるデータベース・ユーザー・アカウントが必要です。
|
DB2データベースの作成には、次のプロパティが必要です。スキーマへの接続またはスキーマの作成には、これらのプロパティのサブセットが必要です。アスタリスク(*)が付けられたプロパティは、データベース内の既存のオブジェクトと競合しないようにしてください。
通常、データベース・サーバーにアクセスできるホスト名またはIPアドレス。
データベースが接続をリスニングするポート。
すでに存在しているデータベースの名前。UDDI表領域は、このデータベースに作成されます。
データベースの管理者のユーザー名。これは、既存のデータベースに新しい表領域を作成するために必要です。
上のテキスト・ボックスで指定したユーザーのパスワード。
既存のデータベースに作成され、UDDIデータ構造を保存する表領域の名前。
表領域ファイルが保存されるホスト・マシンのフルパス。
![]() | 重要 |
---|---|
このディレクトリに対する読取り権限および書込み権限が必要です。 |
データベースのバッファ・プール。8Kのサイズのページが必要です。
認可レベルconnect database、create tableおよびcreate schema implicitlyを持つユーザーのユーザー名。
![]() | 重要 |
---|---|
このユーザーには、一時表用に使用する8Kの長さのバッファ・プールが関連付けられた一時表領域へのアクセス権も必要です。 |
上のテキスト・ボックスで指定したユーザーのパスワード。
データベース内に作成されるOracle Service Registry管理者アカウントを指定します。(「configure database」が選択されている場合、この管理者アカウントはデータベース内に存在するアカウントと一致している必要があります。)
![]() | 重要 |
---|---|
トランザクション・ログ・サイズ(パラメータlogfilsiz)をデフォルト値の250から1000に増やします。この変更は、Control Centerツールを使用して行うことができます。 |
「JDBCドライバ」に進みます。
インストール・ウィザードによって、データベース作成パネルで入力した情報からデータソースを作成できます。 インストール・ウィザードでOracle Application Server内にデータソース定義を作成する場合は、「Create data source」チェック・ボックスを選択し、データソースの有効なJNDI名を入力します。
クリアテキストのパスワードが構成ファイルに保存されないようにするには、「Use indirect password」チェック・ボックスを選択し、現行のOracle Application Serverインスタンスで使用できる、有効なセキュリティ・プロバイダに登録されたユーザー名を入力します。詳細は、『Oracle Containers for J2EEセキュリティ・ガイド』のパスワード管理に関する説明を参照してください。
図8に示されているように、JDBCドライバを選択します。これらのデータベースのJDBCドライバは配布でインストールされるため、Oracle Database用にこのパスを構成する必要はありません。選択したデータベースに対して以前にすでにこのパスを構成している場合でも、必要はありません。通常、JDBCドライバは、データベース・ベンダーから提供されます。
データベースまたはスキーマを作成した場合は、認証アカウント・プロバイダを構成できます。
図9では、認証アカウント・プロバイダを選択できます。
すべてのアカウントがレジストリ・データベースに保存されます。これが推奨バックエンドです。
LDAPサーバーと統合されたレジストリ・アカウント。
Oracle Application Serverのスタンドアロン・インストールおよび開発者インストールに存在する、XMLベースのユーザー・ストアと統合されたレジストリ・アカウント。
他の外部ストレージと統合されたレジストリ・アカウント。 Oracle Service Registryを外部バックエンドと統合するには、インタフェースcom.systinet.uddi.account.ExternalBackendApiを実装し、レジストリ・インストールに追加する必要があります。
LDAP、Oracle XMLおよび外部アカウント・バックエンドの詳細は、「外部アカウント統合」を参照してください。
この項では、Oracle Service Registryによる多言語データ形式でのUDDI構造の保存のサポートについて説明します。
UDDI構造には、UnicodeフィールドおよびASCIIフィールドという2つのタイプのテキスト・フィールドがあります。
判読可能な情報用です。フィールド長は、次に示すように文字数で示されます。
フィールド名 | 最大長(文字数) |
---|---|
businessEntityおよびbusinessServiceの名前 | 255 |
keyName | 255 |
keyValue | 255 |
useType | 255 |
description | 255 |
addressLine | 80 |
personName | 255 |
マシン処理用です(URIなど)。長さはバイトで示されます。通常、ASCIIフィールドは多言語データを保持できます。データの長さは、UTF-8エンコーディングでシリアライズされたフォームのバイト数によって制限されます。たとえば、日本語の場合、tModelの名前は最大85文字です。UTF-8エンコーディングでは、日本語の各文字は3バイトにエンコードされるためです(255÷3 = 85)。
フィールド名 | 最大長(バイト数) |
---|---|
tModelの名前 | 255 |
overviewURL | 4096 |
discoveryURL | 4096 |
sortCode | 10 |
255 | |
phone | 50 |
accessPoint | 4096 |
instanceParms | 8192 |
Oracle Databaseでは、両方のタイプ(UnicodeおよびASCII)のフィールドでUnicode文字がサポートされています。
MSSQLでは、UnicodeフィールドでのみUnicode文字がサポートされています。Unicode文字は、サーバー照合と一致する場合にのみASCIIフィールドに正常に保存されます。それ以外の場合は、疑問符(?)に変換されます。たとえば、Japanese_Unicode_Cl_AS照合がサーバーのデフォルトの場合、日本語の文字は正しく保存されます。英語の照合が設定されている場合、日本語の文字は?に変換されます。
DB2データベースでは、両方のタイプのフィールドでUnicode文字がサポートされています。フィールドの最大長は、Unicodeフィールドであるにもかかわらず、デフォルトのデータベース・スキーマではバイトで示されます。任意のUnicode文字を使用できますが、許容される文字列長は保証されていません。たとえば、日本語の場合、tModelの名前は最大85文字です。UTF-8エンコーディングでは、日本語の各文字は3バイトにエンコードされるためです(255÷3 = 85)。
文字列が長すぎると、データベース例外が発生することに注意してください。索引付けされた列の累積長は800バイトに制限されているため、この制限が設定されます。デフォルトのスキーマでは、多言語サポートよりパフォーマンスが優先されます。
Unicodeフィールドを長いバイト長で使用する場合は、該当するデータベース列を拡張する必要があります。ただし、累積長が800バイトを超える索引は、パフォーマンスに悪影響を及ぼす可能性があるため、削除する必要があります。次の手順を実行します。
「No database」オプションを使用して、Oracle Service Registryをインストールします。
データベース・スキーマ・ファイルREGISTRY_HOME/etc/db/db2/schema_core.sqlを変更します。
nameおよびkeyValueの列の長さを増やします。
該当する索引を削除します。
Setupツールを使用してデータベースを作成します。
Oracle Service Registryには、デフォルトで、データベースへの接続用に次のクラスが必要です。ダウンロードしたJDBC JARにこれらが含まれていることを確認してください。
データベース | ドライバ・クラス |
---|---|
DB2 | com.ibm.db2.jcc.DB2Driver |
MSSQL | com.microsoft.jdbc.sqlserver.SQLServerDriver |
Oracle | oracle.jdbc.driver.OracleDriver |
この項では、前述のデフォルトのドライバ以外のJDBCドライバの使用方法について説明します。ドライバ・クラスはfoo.jdbc.Driver、接続文字列はjdbc:foo:...のFooJDBC.jarをダウンロードしたとします。
すでにレジストリをインストールし、デフォルトのJDBCドライバでデータベースを設定した後で、代替JDBCドライバを使用する場合は、ファイルREGISTRY_HOME/app/uddi/conf/database.xmlを次のように編集します。
<databaseMappings/>要素の最後に次の行を追加します。
<universalDriver name="fooDriver"> <JDBC_driver>foo.jdbc.Driver</JDBC_driver> <URI_pattern>jdbc:foo:...</URI_pattern> </universalDriver>
<URI_pattern>要素で、次のパラメータを使用できます。
${hostname}: データベース・サーバーのホスト名またはIPアドレス
${port}: データベース・サーバーがリクエストをリスニングするポート
${dbName}: データベースの名前
${userName}: データベース・アカウントの名前
${userPassword}: アカウントのパスワード
Setupツールまたはレジストリ・コントロールを使用して、パラメータを対応する値に置き換えます。
interfaceMapping要素のclassName属性をデータベースのfooDriver値に置き換えます。type属性によって、適切なdatabaseMapping要素を指定します。
(デフォルトのドライバを使用せずに)代替JDBCドライバを使用してデータベースを作成する場合は、次の手順を実行します。
データベースを作成せずにOracle Service Registryをインストールします。
前述のとおり、REGISTRY_HOME/app/uddi/conf/database.xmlを変更します。
REGISTRY_HOME/etc/db/ <database_type>/installXXX.xml内のインストール・スクリプトのドライバ・クラスおよび接続文字列を置き換えます。
Setupツールを実行してデータベースを作成します。