この章では、Oracle Virtual Directoryに関連する問題について説明します。内容は次のとおりです。
この項では、一般的な問題および回避方法について説明します。内容は次のとおりです。
複数のOracle Virtual Directoryコンポーネントを管理していてその1つを停止すると、Oracle Directory Services Managerで例外が起きる場合がある
アクセス制御ポイントに関連付けられているDNのOracle Directory Services Managerでの識別
ODSMバージョン11.1.1.4.0がOVDバージョン11.1.1.2.0または11.1.1.3.0をサポートしていない
ODSMバージョン11.1.1.5.0がOVDバージョン11.1.1.2.0、11.1.1.3.0または11.1.1.4.0をサポートしていない
Fusion Middleware ControlからOracle Directory Services Managerを起動し、新規Oracle Directory Services Managerタスクを選択すると、ブラウザ・ウィンドウが使用できなくなる場合があります。たとえば、ウィンドウが繰り返しリフレッシュしたり、空白ページとして表示されたり、ユーザー入力を受け付けなかったり、nullポインタ・エラーを表示します。
回避方法として、URL: http://host:port/odsmに移動します。hostおよびportは、Oracle Directory Services Managerが実行されている場所を示します。たとえば、http://myserver.example.com:7005/odsmなどです。これにより、Oracle Directory Services Managerウィンドウを使用してサーバーにログインできるようになります。
同じOracle Directory Services Managerセッションから複数のOracle Virtual Directoryコンポーネントを管理する場合、Oracle Virtual Directoryコンポーネントの1つを停止すると、例外またはエラーが表示されることがあります。たとえば、同じOracle Directory Services Managerセッションからovd1およびovd2という名前のOracle Virtual Directoryコンポーネントを管理するとします。ovd1とovd2の両方とも構成され、実行されています。ovd1を停止し、Oracle Directory Services Manager内を移動しようとすると、例外またはターゲットにアクセスできないというメッセージが表示される場合があります。
この問題を回避するには、現在のOracle Directory Services Managerセッションを終了し、Webブラウザを閉じてから、新しいOracle Directory Services ManagerセッションでOracle Virtual Directoryコンポーネントに接続します。
Oracle Directory Services Managerを使用してアクセス制御ポイント(ACP)を作成すると、ACPを作成したDNの相対識別名(RDN)が画面の左側のナビゲーション・ツリーに表示されます。たとえば、cn=ForExample,dc=us,dc=sales,dc=westというDNでACPを作成すると、ナビゲーション・ツリーにcn=ForExampleが表示されます。ナビゲーション・ツリーでACPをクリックすると、その設定が画面の右側に表示され、関連付けられているRDNがページの上部に表示されます。
ACPに関連付けられているDNを識別するには、ナビゲーション・ツリーでACP上にカーソルを移動(マウス・オーバー)します。ACPに関連付けられている完全DNがツールチップ・ダイアログ・ボックスに表示されます。
ナビゲーション・ツリーでのACPのマウス・オーバーは、次のようにRDNが同一のDNに関連付けられているACPが複数ある場合に便利です。
ACP 1 = cn=ForExample,dc=us,dc=sales,dc=west
ACP 2 = cn=ForExample,dc=us,dc=sales,dc=east
ここでは、Fusion Middleware ControlのOracle Virtual Directoryメトリックの問題について説明します。内容は次のとおりです。
追加、バインド、取得などの特定の操作で実行されるようプラグインが構成されているOracle Virtual Directoryリリース10gインストールを11g リリース1(11.1.1)にアップグレードした場合、Fusion Middleware Controlを使用してパフォーマンス・メトリックを表示する前に、これらの操作固有のプラグインを更新する必要があることがあります。
11g リリース1(11.1.1)へアップグレードし、アップグレードが成功かどうかを確認する初期操作を行った後、Fusion Middleware ControlでOracle Virtual Directoryホームページをチェックします。「現行ロード」および「平均レスポンス時間と操作」メトリックのデータが表示されるはずです。
これらのメトリックのデータが表示されない場合、特定の操作で実行されるよう構成されているプラグインを更新する必要があります。回避方法は、パフォーマンス監視プラグインを操作固有のプラグインの構成チェーンに追加することです。
次の手順を実行して、パフォーマンス監視プラグインを操作固有のプラグインの構成チェーンに追加します。
操作固有のプラグインがグローバル・レベルのプラグインの場合、ORACLE_INSTANCE/config/OVD/NAME_OF_OVD_COMPONENT/ディレクトリにあるserver.os_xmlファイルを編集します。
操作固有のプラグインがアダプタ・レベルのプラグインの場合、ORACLE_INSTANCE/config/OVD/NAME_OF_OVD_COMPONENT/ディレクトリにあるadapters.os_xmlファイルを編集します。
ファイルでpluginChains
要素を見つけます。たとえば、トランザクションのダンプ・プラグインが取得操作で実行されるよう構成されている場合、次のようになります。
例29-1 取得操作について構成されているトランザクションのダンプ・プラグイン
<pluginChains xmlns="http://xmlns.oracle.com/iam/management/ovd/config/plugins"> <plugins> <plugin> <name>Dump Transactions</name> <class>com.octetstring.vde.chain.plugins.DumpTransactions.DumpTransactions</class> <initParams> <param name="loglevel" value="info"/> </initParams> </plugin> <plugin> <name>Performance Monitor</name> <class>com.octetstring.vde.chain.plugins.performance.MonitorPerformance</class> <initParams/> </plugin> </plugins> <default> <plugin name="Performance Monitor"/> </default> <get> <plugin name="Dump Transactions"> <namespace>ou=DB,dc=oracle,dc=com </namespace> </plugin> </get> </pluginChains>
次のパフォーマンス監視プラグイン要素を操作固有の構成チェーンに追加します。
<plugin name="Performance Monitor"/>
次に例を示します。
例29-2 操作固有のプラグイン構成チェーンへのパフォーマンス監視の追加
<pluginChains xmlns="http://xmlns.oracle.com/iam/management/ovd/config/plugins">
<plugins>
<plugin>
<name>Dump Transactions</name>
<class>com.octetstring.vde.chain.plugins.DumpTransactions.DumpTransactions</class>
<initParams>
<param name="loglevel" value="info"/>
</initParams>
</plugin>
<plugin>
<name>Performance Monitor</name>
<class>com.octetstring.vde.chain.plugins.performance.MonitorPerformance</class>
<initParams/>
</plugin>
</plugins>
<default>
<plugin name="Performance Monitor"/>
</default>
<get>
<plugin name="Dump Transactions">
<namespace>ou=DB,dc=oracle,dc=com </namespace>
</plugin>
<plugin name="Performance Monitor"/>
</get>
</pluginChains>
ファイルを保存します。
Oracle Virtual Directoryを再起動します。
現在、TimesTenのバグにより、TimesTenを使用したデータベース・アダプタでワイルドカード検索(「cn=t*
」など)が使用できません。
この問題を回避するには、「大/小文字区別なしの検索」オプションを有効化し、検索で使用する任意のデータベース列に必要な言語索引を作成します。
詳細は、関連するTimesTen拡張リクエスト、Oracle Bug#9885055および『Oracle Virtual Directory管理者ガイド』のOracle TimesTenメモリー内データベースのデータベース・アダプタの作成に関する項を参照してください。
Oracle Directory Services Managerバージョン11.1.1.4.0は、Oracle Virtual Directoryバージョン11.1.1.2.0または11.1.1.3.0をサポートしていません。
Oracle Directory Services Managerバージョン11.1.1.4.0で導入された変更によって構成の監査が向上しますが、これらの変更により、Oracle Virtual Directory 11.1.1.4.0を使用する必要があります。
Oracle Directory Services Managerバージョン11.1.1.5.0は、Oracle Virtual Directoryバージョン11.1.1.2.0、11.1.1.3.0または11.1.1.4.0をサポートしていません。
Oracle Directory Services Managerバージョン11.1.1.5.0で導入された変更によって構成の監査が向上しますが、これらの変更により、Oracle Virtual Directory 11.1.1.5.0を使用する必要があります。
JDK 6を使用したWindowsプラットフォームでCRUD操作を実行する場合、JDK 6はWindows Vista/2008でIPv6スタックをサポートしていないため、JDK 6が原因でNIO(Non Input Output)モードで問題が発生します。
注意: IPv6スタックに対するサポートはJDK 7ビルドb36で追加されました。 |
詳細は、JDKバグID 6230761(http://bugs.sun.com/view_bug.do?bug_id=6230761)および4640544(http://bugs.sun.com/view_bug.do?bug_id=4640544)を参照してください。
Oracle Virtual Directory開発チームはJDK 7でこのユース・ケースを検証し、Oracle Virtual DirectoryのNIOモードで動作することを確認しました。
回避方法:
注意: この回避方法をOracle Virtual Directoryサーバーに適用する必要があります。 |
<
OracleInstance>
/config/OVD/ovd1/listeners.os_xml
の次の場所に<useNIO>false</useNIO>
XML要素を追加し、NIOモードをオフにしてから、Oracle Virtual Directoryサーバーを停止して再起動します。
<ldap id="LDAP Endpoint" version="0"> <port>6501</port> ... <socketOptions> ... </socketOptions> <useNIO>false</useNIO> </ldap>
シングル・サインオン用としてOracle Access Manager 11gリリース1(11.1.1.2)を使用するようODSMが構成されている場合、ASCII以外の文字が名前に含まれるユーザーがログインした後、次の問題が発生することがあります。
ホームページに表示されるユーザー名が文字化けします。
Oracle Virtual Directoryサーバーに対するシングル・サインオン接続が接続のリストに表示されません。
Oracle Directory Services Managerをアップグレードした後、属性またはオブジェクト・クラスを作成すると、NPEエラーが発生します。
回避方法:
作成が失敗するたびに「リフレッシュ」をクリックし、エントリをリフレッシュします。
この項では、ドキュメントの訂正箇所を示します。内容は次のとおりです。
「Fusion Middleware Controlを使用したOracle Virtual Directory管理リスナー設定の編集に関する追加の手順」
『Oracle Fusion Middleware Oracle Virtual Directory管理者ガイド』の付録Bのコマンドおよびパスが正しくない
『Oracle Virtual Directory管理者ガイド』のOracle Enterprise Manager Fusion Middleware Controlを使用したOracle Virtual Directoryの管理リスナー設定の編集に関する項の内容が不完全です。
この項に含まれる6つの手順を実行した後で、次の追加の手順を実行する必要があります。
7.opmnctl updatecomponentregistration
コマンドを使用して、編集した管理リスナーが含まれるOracle Virtual Directoryコンポーネントの登録を更新します。
opmnctl updatecomponentregistration
の構文は次のとおりです。
$ORACLE_INSTANCE/bin/opmnctl updatecomponentregistration [-adminHost hostname] [-adminPort weblogic_port] [-adminUsername weblogic_admin] [-adminPasswordFile 'FILE_WITH_WEBLOGIC_ADMIN_PASSWORD'] [-componentType OVD] -componentName componentName [-Host OVD_HOST_NAME]
注意:
|
次に例を示します。
$ORACLE_INSTANCE/bin/opmnctl updatecomponentregistration -adminHost myhost \
-adminPort 7001 -adminUsername weblogic -componentType OVD -componentName ovd1
『Oracle Virtual Directory管理者ガイド』の付録BのOracleスタックの起動および停止に関する項には、次のエラーが記載されています。
スタックの起動に関する項の次のステップ3は、
MW_HOME/user_projects/domains/DOMAIN_NAME/bin/startNodeManager.sh
は、正しくは次のとおりです。
MW_HOME/wlserver_10.3/server/startNodeManager.sh
『Oracle Virtual Directory管理者ガイド』の操作プラグインの実装ポイントに関する項に現在記載されているコード例では、バックエンドLDAPサーバーに対する接続が閉じられません。
コード例では、chain.getVSI().get
を使用しています。これにより、アダプタごとにVector<EntrySet>
に1つのEntrySetが移入されます。get()
内の各EntrySetには、データソース接続に対するライブ・ハンドルが含まれます。これは、エントリを取得するために使用されます。
プールへのデータソース接続を解放するには、entrySet.cancelEntrySet()
に対するコールを提供します。そうでない場合、Oracle Virtual Directoryがブロックされる可能性があります。ブロックが行われるのは、構成されているプールとの接続をプラグインがすべて占有し、新しいリクエストを実行するための接続を確立できない場合です。
entrySet.cancelEntrySet()
に対するコールを実装するには、次のように、コード例を更新する必要があります。
ChainVector results = new ChainVector(); try { chain.getVSI().get(...); } catch (...) { } finally { for (EntrySet entrySet : results) entrySet.cancelEntrySet(); }