この章では、Oracle Web Services Manager(Oracle WSM)に関する問題について説明します。内容は次のとおりです。
この項では、一般的な問題とその対処方法について説明します。内容は次のとおりです。
スタンドアロンの基本インストールは、トレーニング、デモ、および本稼動前のテストに適切なコンパクトなデプロイですが、本格的な稼動には向きません。基本モードでインストールされるOracle Web Services Managerのスタンドアロン・インストールは、本番環境には移行できません。
ORACLE_HOMEディレクトリには、2つのREADMEファイル(Readme.txtおよびOC4J_Readme.txt)があります。OC4J_Readme.txtファイルには、Oracle Application Serverの起動に関する手順が記載されています。Oracle WSMをスタンドアロン・インストールでインストールした場合、これらの手順ではOracle WSMサーバーは正常に起動しません。
Oracle WSMをスタンドアロンでインストールする場合、Oracle WSMサーバーの起動についてはReadme.txtファイルの手順を実行します。詳細は『Oracle Web Services Manager管理者ガイド』を参照してください。
Webサービスの検出ページには、「ユーザーID」または「パスワード」フィールドはありません。ただし、このページ(図10-1)には次の手順が表示されています。
サービスを検出するURLを入力してください。認証が必要な場合は、ユーザーIDとパスワードを指定します。
ユーザーIDとパスワードに関する2つ目の文は無視してください。
各ポリシーのステップ・インスタンスは、Active DirectoryまたはLDAPディレクトリへの1つまたは2つの長い存続接続を作成します。本番環境では、LDAPディレクトリ・サーバーまたはActive Directoryサーバーに対するユーザー認証中に接続がオーバーロードする場合があります。
接続存続期間パラメータのデフォルト値(0ミリ秒)では、接続は確実にタイムアウトしません。
この問題に対処するには、次のように接続存続期間パラメータを調整する必要があります。
次のファイルを開きます。
ORACLE_HOME
/opmn/conf/opmn.xml
値が、Oracle Web Services Managerのインストール先インスタンス名であるprocess-type id
を検索します。これは、home
または別のインスタンス名になる場合があります。次に例を示します。
... <ias-component id="default_group"> <process-type id="home" module-id="OC4J" status="enabled"> ...
ファイルのcategory id="start-parameters"
セクションにあるdata id="java-options"
を検索します。
... <category id="start-parameters"> <data id="java-options" value="-server -XX:MaxPermSize=128M .../> </category> ...
java-optionsの下に接続存続期間パラメータを追加します。次に例を示します。
-Doracle.wsm.directory.timeout=
3600000
接続のタイムアウトの値については、Active DirectoryまたはLDAPのシステム管理者に問い合せてください。
構成を変更したサーバーを再起動し、変更を有効にします。
LinuxにOracle Web Services Managerモニターをデプロイする場合、「このプロジェクトにターゲット'install.deployCoreman'は存在しません。」というエラーが発生します。このエラーの原因は、Configuration AssistantのLinux版(wsmadmin.sh)の入力ミスによるものです。ORACLE_HOME/owsm/bin/wsmadmin.shファイルを編集し、出現する両方の文字列"install.deployCoreman"を"install.deployMonitor"に置き換えます。これらは、スクリプトの169行目および170行目にあります。
Windows版のConfiguration Assistant(wsmadmin.bat)では、この問題は発生しません。
Oracle Web Services Managerゲートウェイにより仮想化されたWebサービスのWSDLへアクセスしようとすると、「500 内部サーバー・エラー」が発生する場合があります。この問題が発生するのは、新規のコンポーネントIDを使用してゲートウェイ・アプリケーションをデプロイした場合です。問題を修正するには、アプリケーション・サーバーを再起動します。
ユーザー名、ユーザー・パスワードおよびグループIDに英数字以外の文字を使用した場合、エラーが発生することがあります。たとえば、円記号(¥)および一重引用符(')は無効な文字です。したがって、ユーザー名、ユーザー・パスワードおよびグループIDには英数字文字のみを使用することをお薦めします。
プロパティ・ファイルの文字のキャラクタ・セット・エンコーディングには制限があります。プロパティ・ファイルではISO 8859-1キャラクタ・セットに属している文字を使用できます。他のキャラクタ・セットに属している文字を使用する場合、エスケープされたUTF-8文字に変換する必要があります。たとえば、マルチバイト・キャラクタをユーザー名またはパスワードで使用するには、マルチバイト・キャラクタを、エスケープされたUTF-8文字に変換する必要があります。文字を変換しない場合、予期せぬ結果を招きます。
Web Services Manager Controlコンソールの次のページでは、日付書式と時間書式はローカライズされていません。
アラーム・リスト
ストレス・レポート
フロー詳細
マイ・ビュー
日付および時間は常に米国英語ロケールで表示されます。この問題の対処方法はありません。
Oracle WSMは、UTF-8キャラクタ・セットでデータをエンコードし、データベースのキャラクタ・セットとしてUTF-8をサポートしています。データベースで他のキャラクタ・セットを使用すると、データベースのキャラクタ・セットとUTF-8間のデータ変換に問題が発生する場合があります。たとえば、既知の問題では、データベースのキャラクタ・セットがBig 5(繁体字中国語)の場合に、コンポーネント名(つまりエージェントまたはゲートウェイの名前)にスペースを使用した場合があります。スペースはそのXMLエンコード( )に変換されます。したがって、「Acme Gateway」と入力すると、それはデータベースでは「Acme Gateway」として格納されます。ただし、データの取得時に、これは「Acme Gateway」に正しく変換されません。かわりに、「Acme?Gateway」と表示されます。スペースの使用を許可する対処方法はありません。Big 5キャラクタ・セットを使用する場合は、意図しない結果を回避するため、コンポーネント名にスペースを使用しないことをお薦めします。
Oracle WSMは、メッセージの機密性およびメッセージの統合性のためのPKCS #12(PKCS12)証明書の使用をサポートしています。Oracle WSM 10gリリース3(10.1.3.1.0)は、セキュリティ・プロバイダがBouncyCastleであるPKCS12のみをサポートしています。
セキュリティ・プロバイダがBouncyCastleであるキーストアを作成する手順は、次のとおりです。
Oracle WSMがインストールされているコンピュータ上で、次のファイルを確認します。
ORACLE_HOME
/jdk/lib/security/java.security
「List of providers and their preference orders」から始まるセクションを検索します。
次のエントリを
security.provider.preference_order=org.bouncycastle.jce.provider.BouncyCastleProvider
次の行の上に追加します。
security.provider.preference_order_+1=com.sun.net.ssl.internal.ssl.Provider
変数preference_order
は、特定のプロバイダをリクエストしない場合に、リクエストしたアルゴリズムに対してプロバイダを検索する順番です。
ファイル内のエントリは次のようになります。
security.provider.1=sun.security.provider.Sun security.provider.2=sun.security.rsa.SunRsaSign security.provider.3=org.bouncycastle.jce.provider.BouncyCastleProvider security.provider.4=com.sun.net.ssl.internal.ssl.Provider security.provider.5=com.sun.crypto.provider.SunJCE security.provider.6=sun.security.jgss.SunProvider security.provider.7=com.sun.security.sasl.Provider
ORACLE_HOME/
owsm/lib/extlib/bcprov-jdk14-119.jar
ファイルをORACLE_HOME/jdk/jre/lib/ext
ディレクトリにコピーします。
ORACLE_HOME
/jdk/jre/bin
ディレクトリから、次のコマンドを実行します。
keytool -genkey -alias private_key -keyalg RSA -keystore apkcs12keystore.p12 -storepass password -storetype pcks12 -v -provider org.bouncycastle.jce.provider.BouncyCastleProvider
変数private_key
はキーの別名、password
は別名のパスワードです。
このツールの使用方法の詳細は、セキュリティ・ツールに関するJava JDKのドキュメント(http://java.sun.com/j2se/1.5.0/docs/tooldocs/index.html#security
)を参照してください。
SSLを使用したOC4Jコンポーネント(Web Services Manager ControlおよびOracle WSM Policy Manager)の保護には、既知の問題があります。コンポーネントは、HTTPS接続をリスニングするポートを登録するために、再デプロイされます。ただし、制限があるために、コンポーネントの再デプロイ時、SSLを使用して保護するコンポーネントを指定する設定は、デフォルトの設定に戻ります。ポート設定の不一致が原因で、コンポーネントはOracle WSM Policy Managerとの通信を停止します。対処方法として、次の手順を実行します。
HTTPS接続に使用するポートを決定します。
keytool、Java keyおよび認証管理ツールを使用してトラストストアを構成します。
keytool -genkey -keyalg
algorithm
-alias
server_alias
-keystore
keystore_file
このツールの使用方法の詳細は、セキュリティ・ツールに関するJava JDKのドキュメント(http://java.sun.com/j2se/1.5.0/docs/tooldocs/index.html#security
)を参照してください。
ORACLE_HOME
/owsm/config/gateway/gateway-config-installer.properties
ファイルから、
gateway.policymanagerURL
プロパティを検索し、次の値を入力します。
gateway.policymanagerURL=https://
hostname:
SSL_port
/policymanager
変数hostname
はOracle Policy Managerが常駐するホスト、SSL_port
はSSLの接続先となるポートです。
ORACLE_HOME
/owsm/config/ccore/ui-config-installer.properties
ファイルから、
次のプロパティを検索し、それらを次のように設定します。
ui.pm.server.httpScheme=https
ui.pm.server.httpPort=SSL_port
変数SSL_port
は、SSLの接続先となるポートです。
次に、Web Services ControlアプリケーションおよびOracle WSM Gatewayアプリケーションを再デプロイします。
wsmadmin deploy password gateway wsmadmin deploy password ccore
Oracle WSMコンポーネントのデプロイの詳細は、『Oracle Web Services Managerデプロイメント・ガイド』を参照してください。
注意: 既知の制限により、Web Services Manager ControlおよびOracle WSM Gatewayは、Oracle WSM Policy Managerに一時的に接続できなくなります。残りの手順を完了する必要があります。最後の手順の完了後、つまりOracle Application Serverを再起動後、コンポーネントは適切に構成され、HTTPSによる通信が可能になります。 |
SSLを使用してOC4Jコンポーネントを保護します。『Oracle Web Services Managerデプロイメント・ガイド』の第4章「SSLでのOracle Web Services Managerコンポーネントの保護」、SSLを使用したOC4Jの保護に関する項の指示に従ってください。
OC4Jコンポーネント間の通信を保護します。『Oracle Web Services Managerデプロイメント・ガイド』の第4章「SSLでのOracle Web Services Managerコンポーネントの保護」、SSL接続用のトラストストア構成に関する項の指示に従ってください。デプロイメントがOPMN管理デプロイメントか、またはスタンドアロンのOC4Jデプロイメントかによって、この項に記述された2つの手順のいずれかを実行します。
さらに、もう1つの追加手順を実行する必要があります。
「OPMN管理デプロイメント」の項に記述された手順を実行する場合は、手順2に次のトラストストア・プロパティを追加してください。これらのプロパティは、手順2に記載済のプロパティの補足です。
-Djavax.net.ssl.keyStore=keystore_location -Djavax.net.keyStorePassword=password
変数keystore_location
はキーストアの場所へのパス、password
はキーストアへのパスワードです。
「スタンドアロンOC4Jサーバー・デプロイメント」の項に記述された手順を実行する場合は、手順2の一部として次のトラストストア・プロパティを追加してください。これらのプロパティは、手順2に記載済のプロパティの補足です。
<sysproperty key="javax.net.ssl.keyStore" value="keystore_location"/>
<sysproperty key="javax.net.ssl.keyStorePassword" value="password"/>
変数keystore_location
はキーストアの場所へのパス、password
はキーストアへのパスワードです。
Oracle Application Serverを再起動します。
この項では、構成に関する問題とその対処方法について説明します。内容は次のとおりです。
Oracle WSMをNFSマウント・デバイスにインストールする際にエラーが発生する場合があります。このエラーは、NFSマウント・デバイスでのタイミング問題の結果であり、Oracle WSM Configuration Assistantの実行中に発生します。表示されるエラーは、次のようなものです。
dataload-clean; delete] Deleting directory ORACLE_HOME/product/instance_name/owsm/db BUILD FAILED ORACLE_HOME/product/instance_name/owsm/scripts/install.xml:1971: The following error occurred while executing this line: ORACLE_HOME/product/instance_name/owsm/scripts/dataload.xml:159: Unable to delete directory ORACLE_HOME/product/instance_name/owsm/db ...
この問題に対処するには、次の手順を実行します。
ORACLE_HOME/owsm/scripts/dataload.xmlファイルを編集します。
次の行を編集します。
<delete dir="${dataload.generateSql.rootDirectory}" />
この行に、次の太字のテキストを追加します。
<delete
quiet="true"
dir="${dataload.generateSql.rootDirectory}" />
「再試行」をクリックしてOracle WSMの構成を続行します。
Oracle WSMが正常に構成した後、ディレクトリORACLE_HOME/owsm/dbを削除します。
Oracle WSMとともにOracle XEを使用すると、接続に問題が生じます。これは、Oracle XEデータベース・クライアントとともに発生する可能性がある既知のエラーですが、Oracle WSMの場合は断続的に発生する可能性があります。
断続的な発生に対処するには、データベース・パラメータPROCESSESの値を増やす必要があります。パラメータ設定のデフォルト値は40ですが、値を64に増やします。必要に応じて、パラメータの値をさらに増やすことができます。
Oracle WSMが構成されている場合は、ランタイム・メモリー要件がJVMのデフォルト構成を超えるため、メモリー不足例外が発生する可能性があります。この問題が発生するのは、Oracle WSM 10.1.3にパッチを適用して10.1.3.1に変更した場合です。
エラーを回避するには、Javaヒープ・サイズを増やす必要があります。
Javaヒープ値を変更するには、次の手順を実行します。
Oracle Enterprise Manager 10g Application Server Controlにログインします。
クラスタ・トポロジ・ページで、「メンバー」セクションを探し、「ホーム」をクリックします。
「管理」をクリックします。
「タスク名」リストの「サーバー・プロパティ」を探し、「タスクに移動」アイコンをクリックします。
「最大ヒープ・サイズ」(1024 MB)および「初期ヒープ・サイズ」(512 MB)の値を編集します。
-XX:MaxPermSize(256 MB)および-XX:PermSize(128 MB)パラメータに行を追加し、値を入力します。
「適用」をクリックします。
サーバーを再起動します。
注意: カッコ内の値は一例です。Oracle Application Server 10g リリース3(10.1.3.1.0)(Oracle SOA Suite(10.1.3.1.0)とも呼ばれます)のすべてのコンポーネントのインストールを想定して導出された値です。使用している環境に適切な設定の詳細は、OC4J管理者に確認するか、『Oracle Application Serverパフォーマンス・ガイド』を参照してください。 |
Oracle WSMとOracle Database間でネットワークの待機時間が長い場合は、データベースからデータを取得する前にWebブラウザがタイムアウトする可能性があります。
ブラウザのタイムアウトを回避するには、ブラウザのタイムアウト設定を変更します。
Internet Explorerの場合
次のレジストリ・キーを編集します。
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings
DWORD KeepAliveTimeoutを追加し、値をミリ秒で設定します。
これ以外のサポート対象Webブラウザの場合、ブラウザのタイムアウト設定の詳細は、製品マニュアルを確認してください。
Oracle Access Managerの認証の認可ポリシー・ステップを構成する場合、また、Oracle Access Manager SDKにパスを再構成する場合、新規パスはSDKを使用しているエージェントまたはゲートウェイを再起動した後有効になります。
注意: Oracle Access Manager SDKは、以前のAccess Server SDKと同じです。 |
非プロキシ・ホストに置かれたサービスをプロキシ・サーバーから起動すると、設定を正しく構成していても、問題が発生する場合があります。この問題は、Oracle WSMのスタンドアロン・インストールにおいて、またはOracle WSMがOracle SOA Suiteの一部としてインストールされている場合に発生する可能性があります。
この制限に対処するには、プロパティ・ファイルでproxy.hostおよびnonproxy.hostの設定を削除します。
Oracle WSMがスタンドアロン・インストールである場合、ORACLE_HOME
/owsm/bin/coresv.properties
ファイルで設定を削除します。
Oracle WSMがOracle SOA Suiteの一部としてインストールされている場合、ORACLE_HOME
/opmn/conf/opmn.xml
ファイルで設定を削除します。
これらのプロパティの設定方法は、『Oracle Web Services Managerデプロイメント・ガイド』または第10.3.4項「コマンド構文の訂正」を参照してください。
この項では、ドキュメントの記載内容の誤りについて説明します。内容は次のとおりです。
『Oracle Web Services Managerデプロイメント・ガイド』の第2章「Oracle WSMデプロイメントの実装」、「クラスタ環境でのOracle WSMの構成」には明確な説明が必要です。図2-1では、vhost1、vhost2およびvhost3上に3つのOracle WSMインスタンスがあります。vhost1およびvhost2のインスタンスには、Oracle WSM Gatewayが1つあります。明確には述べられていませんが、この図から、Oracle WSMインスタンスにインストールできるOracle WSM Gatewayは1つのみということがわかります。これは、ロード・バランシングが必要になる可能性があるOracle WSMインスタンスにはそれぞれゲートウェイを1つしかインストールできないことによります。
『Oracle Web Services Managerデプロイメント・ガイド』の第5章「Oracle WSM Gatewayのデプロイ」、「JMS使用のためのOracle Web Services Managerの有効化」には明確な説明が必要です。この項に含まれる手順は次のとおりです。
tibjms.jar
およびtibcrypt.jar
ファイルを、使用しているOracle WSMインストールの正しい場所(たとえばORACLE_HOME
/10.1.3.1/OracleAS_1/owsm/lib/custom
)にコピーします。このタスクを実行しないと、JMS機能は動作しません。
Tibco JMSを使用する場合にのみ、このタスクを実行する必要があります。Oracle JMSにこれらのJarファイルは必要ありません。
Oracle WSMのWSMADMINコマンドをUNIXオペレーティング・システム上で使用する場合は、コマンドをwsmadmin.sh
として指定する必要があります。Oracle WSMマニュアルでは、すべてのWSMADMINコマンドにMicrosoft Windowsオペレーティング・システムの構文(wsmadmin
)が使用されています。コマンドをUNIXシステム上で使用する場合は、wsmadmin
をwsmadmin.sh
で置き換えてください。
『Oracle Web Services Manager管理者ガイド』の第6章「Oracle Web Services Managerの監視」、「メトリック・データ永続性の構成」の項に誤りがあります。
手順3で、アプリケーションを再デプロイする正しいコマンドは、wsmadmin deploy
application_server_password
monitor
です。
『Oracle Web Services Manager管理者ガイド』の第10章「トラブルシューティング」、「WSDLインポート時のエラー」の項に誤りがあります。この誤りは、2つ目の手順「Oracle Application Server 10gリリース3(10.1.3.1.0)の一部としてインストールするOracle WSMの場合」に記述されています。
この手順の手順4を、次の手順に置き換えてください。
4. data_ id
タグのjava-options
属性に、-Dhttp.proxySet
、-Dhttp.proxyHost
、-Dhttp.proxyPort
および-Dhttp.nonproxyHosts
パラメータを追加します。
<data_id="java-options" value="-server -XX:MaxPermSize=128M -Dhttp.proxySet=true -Dhttp.proxyHost=proxy_server -Dhttp.proxyPort=listen_port -Dhttp.nonproxyHosts=host_name .../>
表10-1 Oracle Application Serverの一部としてインストールするOracle WSMのパラメータ設定
パラメータ値 | 値の説明 |
---|---|
|
値 |
|
プロキシ・サーバーの名前。 |
|
接続先のプロキシ・サーバーのポート番号。80などです。 |
|
何も経由せずにプロキシ・サーバーから直接接続するホスト。この値は、縦線(|)またはアスタリスク( |
『Oracle Web Services Manager管理者ガイド』の付録A「Oracle Web Services Managerのポリシー・ステップ」に訂正があります。資格証明の抽出ポリシー・ステップの訂正内容は、次のとおりです。
資格証明の場所プロパティには場所の候補が4つあり、その1つがXPathです。マニュアルに記載されているXPathの場所の例は誤りです。例は、次のように誤って記述されています。
/soap:Header/soap:Envelope/wsse:Security/wsse:UsernameToken/
正しい例を次に示します。
/soap:Envelope/soap:Header/wsse:Security/wsse:UsernameToken/
ネームスペース・プロパティは、次のように部分的に記述されています。
「ユーザーID」xpathプロパティと「パスワード」xpathプロパティに使用された接頭辞に関する、接頭辞とネームスペースのUniform Resource Identifier(URI)のペアのカンマ区切りリスト。
これは誤りです。URIのペアはカンマではなく空白で区切る必要があります。さらに、URI自体に空白が含まれている場合は、空白文字を文字%20で置き換える必要があります。
『Oracle Web Services Managerデプロイメント・ガイド』の第6章「Oracle WSM Agentのインストール」に誤りがあります。ドキュメントには、AXISクライアント・エージェントのインストールに関する説明があります。これは誤りです。Oracle Web Services Manager 10gリリース3(10.1.3.1.0および10.1.3.3)は、AXISクライアント・エージェントをサポートしていません。Oracleでは、AXISクライアント・エージェントをサポートすることを計画しています。このサポートの可用性に関する最新情報は、『Oracle Application Server Patch Set Notes Addendum 10g (10.1.3) Patch Set 3 (10.1.3.3.0)』を参照してください。
『Oracle Web Services Managerデプロイメント・ガイド』の付録D「データベースの保守」に訂正があります。「パスワードの変更」に記載されているデータベース・パスワード変更手順は、次の手順で置き換える必要があります。
単一のデータベース・インスタンスのパスワードを変更する手順は、次のとおりです。
Oracle Database内でOWSMスキーマ用のパスワードを変更します。
Oracle WSMコンポーネントがデプロイされているOracle Application Serverを再起動します。
ORACLE_HOME¥owsm¥bin¥coresv.properties
ファイルを編集し、dataload.messagelog.db.password
プロパティを新しいデータベース・パスワードで更新します。
coresv.properties
ファイル内のパスワードをエンコードします。
wsmadmin encodePasswords coresv.properties dataload.messagelog.db.password
データベース構成プロパティを構成ディレクトリ・プロパティ・ファイルにコピーします。
wsmadmin copyDBConfig
Oracle WSMアプリケーションを個別に、またはall
パラメータを使用して再デプロイします。
wsmadmin deploy oc4j_admin_password
all
Oracle Application Serverインスタンスを再起動します。
第10.3.8.1項「データベース構成プロパティの更新」の手順を完了します。
複数のデータベース・インスタンス用のパスワードを更新して調整する手順は、次のとおりです。
Oracle Database内でOWSMスキーマ用のパスワードを変更します。
Oracle WSMコンポーネントがデプロイされているOracle Application Serverを再起動します。
各アプリケーションのアプリケーション・プロパティ・ファイル内で関連属性を更新します。これらのファイルは、ORACLE_HOME
¥owsm¥config¥
application_name
にあります。
手順3で変更したプロパティごとにパスワードをエンコードします。
wsmadmin encodePasswords file_name property_name
データベースに接続するOracle WSMコンポーネントを再デプロイします。
wsmadmin deploy oc4j_admin_password
component
Oracle Application Serverインスタンスを再起動します。
この手順を、Oracle WSMコンポーネントで使用するOracle Databaseごとに繰り返します。
第10.3.8.1項「データベース構成プロパティの更新」の手順を完了します。
Oracle WSMコンポーネント用のデータベース・パスワードを更新しても、Oracle WSMエージェントおよびゲートウェイのデータベース構成プロパティは更新されません。そのため、これらのコンポーネントのメッセージ・ログにアクセスできなくなります。この問題の対処方法は、新しいパスワードを使用してコンポーネントのプロパティを手動で編集することです。
Web Services Manager Controlにログインします。
ナビゲーション・ペインで「ポリシー管理」を選択します。
Oracle WSMエージェントまたはゲートウェイの「編集」をクリックします。
新しいデータベース・パスワードを使用してcfluent.messagelog.db.password
を編集し、この変更内容を保存します。
これは『Oracle Web Services Managerデプロイメント・ガイド』の付録E「認証ソース」の訂正です。「Active Directory」に、Active Directoryに対して認証を受けられるユーザーに関して矛盾する文があります。正しい文は、「Active Directoryを使用すると、Oracle WSMシステム・ユーザーおよびエンド・ユーザーを認証できます。」です。