ヘッダーをスキップ
Oracle® Fusion Middleware mod_plsqlユーザーズ・ガイド
11gリリース1(11.1.1)
B56249-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

A よくある質問

mod_plsqlとはなんですか。

mod_plsqlはOracle HTTP Serverのプラグインであり、SQL*Net接続を介してブラウザ・リクエストをデータベース・ストアド・プロシージャのコールにマッピングすることでデータベースと通信します。通常、仮想パスの/plsで示されます。mod_plsqlゲートウェイは、Web上でのPL/SQLベースのアプリケーションの構築と運用をサポートします。PL/SQLストアド・プロシージャはデータベース表からデータを取得し、Webブラウザで表示する書式付きデータとHTMLコードが含まれたHTTPレスポンスを生成できます。詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。

PL/SQL Web Toolkitとはなんですか。

PL/SQL Web Toolkitを使用すると、Webアプリケーションを、Oracleデータベース・サーバーに格納されるPL/SQLプロシージャとして開発できます。このツールキット内のパッケージにより定義されるプロシージャ、ファンクションおよびデータ型を、独自のストアド・プロシージャで使用できます。詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。

mod_plsqlのリリースを確認するにはどうすればよいですか。

mod_plsqlのリリースは、mod_plsqlバイナリでoversioncheckスクリプトを実行すると確認できます。

UNIXプラットフォームでは、次のコマンドを発行します。

ORACLE_HOME/ohs/modules/mod_plsql.so

Windowsプラットフォームでは、次のコマンドを発行します。

ORACLE_HOME\ohs\modules\mod_plsql.dll

OWAパッケージのリリースを確認するにはどうすればよいですか。

  1. SQL*Plusを使用し、任意のユーザーとしてデータベースに接続します。

  2. 次のコマンドを実行します。

    select owa_util.get_version from dual;
    

    OWAパッケージのリリースが表示されます。たとえば、10.1.2.0.4。

この問合せに失敗した場合は、OWAパッケージのリリースが古すぎるためにバージョニング機能がありません。新しいリリースにアップグレードすることをお薦めします。

OWAパッケージをインストールするにはどうすればよいですか。

詳細は、1.2項「必須パッケージのインストール」を参照してください。

OWAパッケージをアンインストールするにはどうすればよいですか。

次のタスクを実行すると、OWAパッケージをアンインストールできます。

  1. OWAパッケージのインストール元ディレクトリに移動します。たとえば、次のようになります。

    cd ORACLE_HOME\ohs\mod_plsql
    
  2. SQL*Plusを使用し、OWAパッケージの所有者として接続します。OWAパッケージの旧バージョンがある場合を除き、ここではSYSユーザーを使用する必要があります。

  3. owadins.sqlスクリプトを起動してOWAパッケージをアンインストールします。

データベースに重複してインストールされているOWAパッケージを検出してクリーンアップするには、どうすればよいですか。

次のSQL問合せを使用すると、OWAパッケージの位置を判断できます。

SELECT OWNER, OBJECT_TYPE
FROM   DBA_OBJECTS
WHERE  OBJECT_NAME = 'OWA'

次の結果が表示されます。

SQL> 

1  SELECT OWNER, OBJECT_TYPE 
2  FROM DBA_OBJECTS 
3* WHERE OBJECT_NAME = 'OWA' 

OWNER  OBJECT_TYPE 
-----  ----------- 
SYS    PACKAGE 
SYS    PACKAGE BODY 
PUBLIC SYNONYM 

このSQL問合せよりも多数の行が表示される場合は、他のスキーマに古いOWAパッケージが存在し、それがmod_plsqlユーザーにとって問題になっている可能性があることを意味します。この場合は、すべてのバージョンのOWAパッケージをデータベースからアンインストールし、製品とともに出荷されているOWAパッケージを再インストールします。

mod_plsqlを介してPL/SQLプロシージャにアクセス中にHTTPエラー・コードが戻されます。

mod_plsqlでは、Oracle HTTP ServerファイルのORACLE_HOME\ohs\mod_plsql\logsに詳細なエラー・メッセージが記録されます。このファイルを調べて問題を把握してください。mod_plsqlのロギングの詳細は、「mod_plsqlではどのような種類のロギング機能を使用できますか。」を参照してください。

すべての独自PL/SQLプロシージャで、Netscapeでは「ドキュメントにデータが含まれていません」というエラー、Internet Explorerでは空白ページが戻されます。

データベースにOWAパッケージが重複してインストールされていると、この問題が発生する場合があります。詳細は、「データベースに重複してインストールされているOWAパッケージを検出してクリーンアップするには、どうすればよいですか。」を参照してください。

パフォーマンスの高いPL/SQLプロシージャがありますが、mod_plsqlを介した一部のHTTPリクエストに15秒以上かかることがあります。

この問題の最も一般的な原因は、中間層とバックエンド・データベースのキャラクタ・セットが一致せず、Oracle HTTP ServerでHTTP KeepAliveが有効化されていることです。設定にこの種の誤りがあると、無効なContent-Lengthがブラウザに送信され、ブラウザはKeepAliveTimeout間隔によってストリームがクローズされた場合にのみレスポンス・ストリームの終わりを検出します。この問題を解決するには、DADとデータベースのPlsqlNLSLanguageパラメータが一致するようにします。

これが問題の原因ではない場合、PL/SQLアプリケーションにパフォーマンス問題があると考えられます。これは次の方法で確認できます。

mod_plsqlを使用して独自データベース上でアプリケーションを実行することはできますか。

はい。ただし、アプリケーションを実行する前に、データベースにOWAパッケージをインストールする必要があります。1.2項「必須パッケージのインストール」を参照してください。

mod_plsql用のDADを作成するにはどうすればよいですか。

『Oracle Fusion Middleware Oracle HTTP Server管理者ガイド』の「mod_plsql」を参照してください。

mod_plsqlではどのような認証モードを使用できますか。

第2章「mod_plsqlを使用したアプリケーション・データベース・アクセスの保護」を参照してください。

mod_plsqlクリーンアップ・スレッドとはなんですか。

mod_plsqlは、各httpdプロセスでスレッドを起動します。このスレッドのジョブは、アイドル状態のデータベース・セッションとファイル・システムのキャッシュをクリーンアップすることです。このスレッドをクリーンアップ・スレッドと呼びます。

mod_plsqlには、どのような種類のデータベース接続プーリング機能がありますか。

第4章「PL/SQLのパフォーマンスの最適化」を参照してください。

mod_plsqlではどのようにしてデータベース・セッションがクリーンアップされますか。

mod_plsqlでは、PlsqlIdleSessionCleanupIntervalの構成設定に基づいて、使用されていないデータベース・セッションがクリーンアップされます。この他、プールされたデータベース・セッションから提供されるリクエストの数は、設定ディレクティブPlsqlMaxRequestsPerSessionにより制御されます。HTTPDプロセスがシャットダウンされると、データベース・セッションがクローズされます。

プールされたデータベース接続がmod_plsqlに存在するときに、データベースを再起動するとどうなりますか。

詳細は、3.11.3項「接続プールでの停止中のデータベース接続の検出」を参照してください。

mod_plsqlではファイル・システム内でキャッシュされたコンテンツがどのようにクリーンアップされますか。

クリーンアップ・スレッドは、PlsqlCacheCleanupTimeの設定に基づいてファイル・システム・キャッシュをスキャンします。デフォルトのクリーンアップ時刻は、現地時間で毎日午後11時です。

URLに接頭辞/plsを付けずにmod_plsqlを起動できますか。

はい。mod_plsqlはOracle HTTP ServerのLocationディレクティブを使用するため、mod_plsqlで処理されるように任意の仮想パスを設定できます。

PL/SQLとmod_plsqlのパフォーマンスを改善するにはどうすればよいですか。

第4章「PL/SQLのパフォーマンスの最適化」を参照してください。

mod_plsqlではどのような種類のロギング機能を使用できますか。

mod_plsqlには高可用性についてどのような考慮事項がありますか。

高可用性のために、mod_plsqlベースのアプリケーションでは次のことを認識する必要があります。

データベースがファイアウォールで分離されている場合、mod_plsqlではどのような考慮事項がありますか。

mod_plsqlを実行する中間層とバックエンド・データベースの間にファイアウォールが存在する場合は、mod_plsqlでアイドル・セッションのクリーンアップ間隔を、ファイアウォールでの間隔よりも短く設定する必要があります。これにより、mod_plsqlが確立した接続をファイアウォールがクローズすることはなくなります。


注意:

mod_plsqlのアイドル・セッション・クリーンアップ間隔は、ORACLE_HOME\ohs\conf\moduleconf\plsql.conf内のパラメータPlsqlIdleSessionCleanupIntervalを使用して設定できます。デフォルト値は15分です。

PL/SQLアプリケーションに対して異なるホスト名、ポートまたはrequest_protocolをアサートするには、どうすればよいですか。

特定のパターンを持つプロシージャ名へのアクセスを無効化するにはどうすればよいですか。

詳細は、2.1.2項「mod_plsqlでのPlsqlExclusionListディレクティブへのルールの追加」を参照してください。

ファイルORACLE_HOME/Apache/Apache/conf/error_logにエラー「HTTP-503 ORA-12154」があります。これは何を意味しますか。

このエラーは、mod_plsqlからデータベースに接続できないことを意味します。

次のことを確認してください。

  1. データベースが稼働中であること。

  2. DADに指定されているユーザー名およびパスワード情報が正しいこと。

  3. 中間層が、DADのPlsqlDatabaseConnectStringパラメータを使用してデータベースに接続できること。

ほとんどの場合、この問題が発生するのは、SQL*NetがORACLE_HOME/network/adminにある設定情報を使用して接続文字列パラメータを解決できないためです。

接続できない場合、トラブルシューティング情報についてはOracle SQL*Netのマニュアルを参照してください。


注意:

DADのデフォルトの接続文字列パラメータは、Oracle Internet DirectoryでLDAP検索を介して解決されるように設定されます。ldap.oraを変更した場合は、その変更にmod_plsqlからアクセスできるようにOracle HTTP Serverを再起動する必要があります。

mod_plsqlの起動時に、/DAD/package.procedure()または/DAD/package.procedure(123)という形式のURLが機能しないのはなぜですか。

mod_plsqlでは次の形式のURLをサポートしていません。

たとえば、次のようになります。

http://www.acme.com:9000/pls/mydad/mypackage.myproc()またはhttp://www.acme.com:9000/pls/mydad/mypackage.myproc(123)

サポートされているURLの形式の詳細は、3.3項「mod_plsqlの実行」を参照してください。