プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle HTTP Serverの管理
12c (12.1.3)
E56227-07
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

F OHS Moduleディレクティブ

この付録では、オラクル社が開発したOHSによってサポートされているモジュールで使用できるディレクティブについて説明します。これらの項目が含まれます。

F.1 mod_wl_ohsモジュールに関する注意

Oracle HTTP Serverには、この付録に記載されたディレクティブおよびモジュールに加えて、通常、Oracle WebLogic Serverプロキシ・プラグインと呼ばれるmod_wl_ohsモジュールが含まれています。このモジュールのディレクティブの詳細は、『Oracle WebLogic Serverプロキシ・プラグイン12.1.3の使用』のOracle WebLogic Serverプロキシ・プラグインのパラメータに関する項を参照してください。

F.2 mod_certheadersモジュール

mod_certheadersには次のディレクティブを使用できます。

F.2.1 AddCertHeader

CGI環境変数に変換する必要があるヘッダーを指定します。これは、AddCertHeaderディレクティブを使用して実行できます。このディレクティブは単一の引数を取ります。この引数は、受信リクエストのHTTPヘッダーから移入する必要があるCGI環境変数です。たとえば、SSL_CLIENT_CERT CGI環境変数を移入します。

カテゴリ
構文 AddCertHeader environment_variable
AddCertHeader SSL_CLIENT_CERT
デフォルト なし

F.2.2 SimulateHttps

mod_certheadersを使用すると、特定のリクエストがHTTP経由で受信された場合でも、HTTPS経由で受信されたかのようにそれらのリクエストを扱うように、Oracle HTTP Serverに指示することができます。これは、Oracle HTTP Serverがリバース・プロキシまたはロード・バランサのフロントエンドになっている場合に役立ちます。リバース・プロキシまたはロード・バランサは、SSLリクエストの終端点の機能を果たし、HTTPS経由でOracle HTTP Serverにリクエストを転送します。

カテゴリ
構文 SimulateHttps on|off
SimulateHttps on
デフォルト off

F.3 mod_osslモジュール

Oracle HTTP Serverに対してSSLを構成するには、使用するmod_osslのディレクティブをhttpd.confファイルに入力します。

次の項で、これらのディレクティブについて説明します。

F.3.1 SSLAccelerator

SSLアクセラレータが使用されるかどうかを指定します。現在サポートされているのは、nFastカードのみです。

カテゴリ
構文 SSLAccelerator yes|no
SSLAccelerator yes
デフォルト SSLAccelerator no


注意:

SSLAcceleratorディレクティブは非推奨になりました。ウォレットを使用したSSLアクセラレーション・サポートの有効化の詳細は、Oracle Advanced Security管理者ガイド(http://www.oracle.com/technology/documentation)を参照してください。

F.3.2 SSLCARevocationFile

証明書を発行したCA(認証局)からの証明書失効リスト(CRL)をまとめるファイルを指定します。このリストは、クライアント認証に使用されます。このファイルは、PEMでエンコードされた様々なCRLファイルを優先順位の順に連結したものです。このディレクティブは、SSLCARevocationPathの代替または補助用に使用できます。

カテゴリ
構文 SSLCARevocationFile file_name
SSLCARevocationFile ${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/crl/ca_bundle.cr
デフォルト なし

F.3.3 SSLCARevocationPath

PEMでエンコードされている証明書失効リスト(CRL)が格納されるディレクトリを指定します。CRLは、証明書の発行元のCA(認証局)から届きます。CRLのいずれかに記載されている証明書を使用してクライアントが自身を認証しようとすると、証明書は取り消され、そのクライアントはサーバーに対して自身を認証できなくなります。次の変更に関する項を参照してください:

このディレクティブは、CRLのハッシュ値が含まれるディレクトリを指している必要があります。ハッシュを生成するコマンドは、『Oracle Fusion Middlewareの管理』の「orapki」を参照してください。

カテゴリ
構文 SSLCARevocationPath path/to/CRL_directory/
SSLCARevocationPath ${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/crl 
デフォルト なし

F.3.4 SSLCipherSuite

クライアントがSSLハンドシェイク時に使用できるSSL暗号スイートを指定します。このディレクティブでは、コロンで区切られた暗号指定文字列を使用して暗号スイートを識別します。表11-2は、必要な暗号スイートを記述するためにこの文字列で使用できるタグを示しています。SSLCipherSuiteには次の値を使用できます。

  • none: リストに暗号を追加します。

  • +: リストに暗号を追加し、リスト内の正しい位置に配置します。

  • -: リストから暗号を削除します(後で追加できます)。

  • !: リストから暗号を永続的に削除します。

タグは、暗号指定文字列を構成する接頭辞と結合されます。表F-1に、暗号スイートのタグを示します。

カテゴリ
SSLCipherSuite ALL:!MD5

この例では、MD5強度暗号を除くすべての暗号が指定されています。

構文 SSLCipherSuite cipher-spec
デフォルト
ALL:!ADH:+HIGH:+MEDIUM:+LOW

表F-1 SSL暗号スイートのタグ

機能 タグ 意味

鍵の交換

kRSA

RSA鍵の交換

認証

aRSA

RSA認証

暗号化

3DES

Triple DESエンコード

暗号化

RC4

RC4エンコード

データの整合性

MD5

MD5ハッシュ関数

データの整合性

SHA

SHAハッシュ関数

データの整合性

SHA256

SHA256ハッシュ関数

データの整合性

SHA384

SHA384ハッシュ関数

別名

TLSv1

すべてのTLS V1暗号

別名

TLSv1.1

すべてのTLS V1.1暗号

別名

TLSv1.2

すべてのTLS V1.2暗号

別名

LOW

すべての低強度暗号(エクスポートおよびシングルDES)。注意: True LOW強度暗号はこのリリースでは無視されます。LOWとMEDIUMの定義は、次回以降のリリースで変更されます。

別名

MEDIUM

128ビット暗号化を使用したすべての暗号

別名

HIGH

Triple-DESを使用したすべての暗号

別名

AES

AES暗号化を使用したすべての暗号

別名

RSA

RSA鍵交換を使用したすべての暗号

別名

ECDHE

楕円曲線Diffie–Hellman Exchange鍵交換を使用したすべての暗号

別名

ECDSA

認証の楕円曲線デジタル署名アルゴリズムを使用したすべての暗号


F-2に、Oracle Advanced Security 12c (12.1.3)でサポートされている暗号スイートを示します。

表F-2 Oracle Advanced Security 12.1.3でサポートされている暗号スイート

暗号スイート 鍵の交換
認証
暗号化 データの整合性 TLS
v1
TLS
v1.1
TLS
v1.2

SSL_RSA_WITH_RC4_128_MD5

RSA

RSA

RC4 (128)

MD5

SSL_RSA_WITH_RC4_128_SHA

RSA

RSA

RC4 (128)

SHA

SSL_RSA_WITH_3DES_EDE_CBC_SHA

RSA

RSA

3DES (168)

SHA

SSL_RSA_WITH_AES_128_CBC_SHA

RSA

RSA

AES (128)

SHA

SSL_RSA_WITH_AES_256_CBC_SHA

RSA

RSA

AES (256)

SHA

RSA_WITH_AES_128_CBC_SHA256

RSA

RSA

AES (128)

SHA256

×

×

RSA_WITH_AES_256_CBC_SHA256

RSA

RSA

AES (256)

SHA256

×

×

RSA_WITH_AES_128_GCM_SHA256

RSA

RSA

AES (128)

SHA256

×

×

RSA_WITH_AES_256_GCM_SHA384

RSA

RSA

AES (256)

SHA384

×

×

ECDHE_ECDSA_WITH_AES_128_CBC_SHA

ECDHE

ECDSA

AES (128)

SHA

ECDHE_ECDSA_WITH_AES_256_CBC_SHA

ECDHE

ECDSA

AES (256)

SHA

ECDHE_ECDSA_WITH_AES_128_CBC_SHA256

ECDHE

ECDSA

AES (128)

SHA256

×

×

ECDHE_ECDSA_WITH_AES_256_CBC_SHA384

ECDHE

ECDSA

AES (256)

SHA384

×

×

ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

ECDHE

ECDSA

AES (128)

SHA256

×

×

ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

ECDHE

ECDSA

AES (256)

SHA384

×

×

ECDHE_RSA_WITH_RC4_128_SHA

RSA署名付きのエフェメラルECDH

RSA

RC4 (128)

SHA

ECDHE_RSA_WITH_3DES_EDE_CBC_SHA

RSA署名付きのエフェメラルECDH

RSA

3DES

SHA

ECDHE_RSA_WITH_AES_128_CBC_SHA

RSA署名付きのエフェメラルECDH

RSA

AES (128)

SHA

ECDHE_RSA_WITH_AES_256_CBC_SHA

RSA署名付きのエフェメラルECDH

RSA

AES (256)

SHA


F.3.5 SSLEngine

SSLプロトコル・エンジンの使用を切り替えます。通常は<VirtualHost>セクションの中で使用し、特定の仮想ホストに対してSSLを有効にします。デフォルトでは、SSLプロトコル・エンジンは、メイン・サーバーとすべての構成済仮想ホストの両方で無効にされています。

カテゴリ
構文 SSLEngine on|off
SSLEngine on
デフォルト Off

F.3.6 SSLFIPS

このディレクティブは、SSLライブラリのFIPS_modeフラグの使用方法を切り替えます。これは、グローバル・サーバー・コンテキスト内に設定される必要があり、競合する設定(SSLFIPS offが続くSSLFIPS onなど)があると構成できません。このモードはすべてのSSLライブラリ操作に適用されます。

カテゴリ
構文
SSLFIPS ON | OFF
SSLFIPS ON
デフォルト Off

SSLFIPSの変更を構成する場合は、SSLFIPS on/offディレクティブをssl.conf内でグローバルに設定する必要があります。仮想レベルの構成はSSLFIPSディレクティブ内で無効になっています。したがって、仮想ディレクティブにSSLFIPSを設定するとエラーになります。


注意:

SSLFIPSに関する次の制限に注意してください。

Oracle HTTP ServerでSSLFIPSモードを有効化するには、AESで暗号化された(compat_v12)ヘッダー付きで作成されたウォレットが必要になります。新しいウォレットを作成する場合、または既存のウォレットをAES暗号を使用して変換する場合は、Oracle Fusion Middlewareの管理のorapkiに関する項で次の項を参照してください。

orapkiを使用したOracleウォレットの作成と表示

AES暗号化によるOracleウォレットの作成

AES暗号化を使用するように既存のウォレットを変換


SSLFIPSモードでサポートされている暗号スイートは次のとおりです。

暗号構成(クライアントとサーバーの両方) プロトコル
SSL_RSA_WITH_3DES_EDE_CBC_SHA TLSv1以降
SSL_RSA_WITH_3DES_EDE_CBC_SHA TLSv1以降
SSL_RSA_WITH_AES_256_CBC_SHA TLSv1以降
RSA_WITH_AES_128_CBC_SHA256 TLSv1.2以降
RSA_WITH_AES_256_CBC_SHA256 TLSv1.2以降
RSA_WITH_AES_256_GCM_SHA384 TLSv1.2以降
ECDHE_ECDSA_WITH_AES_128_CBC_SHA TLSv1以降
ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLSv1以降
ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLSv1.2以降
ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 TLSv1.2以降
ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLSv1.2以降
ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLSv1.2以降
RSA_WITH_AES_128_GCM_SHA256 TLSv1.2以降
ECDHE_RSA_WITH_3DES_EDE_CBC_SHA TLSv1以降
ECDHE_RSA_WITH_AES_128_CBC_SHA TLSv1以降
ECDHE_RSA_WITH_AES_256_CBC_SHA TLSv1以降


注意:

SSLv3はOHS 12.1.3ではサポートされていません。

  • ECDHE_ECDSA暗号スイートを使用するには、Oracle HTTP ServerでECCユーザー証明書付きで作成されたウォレットが必要です。ECDHE_ECDSA暗号スイートはRSA証明書では機能しません。

  • SSL_RSA/RSA/ECDHE_RSA暗号スイートを使用するには、Oracle HTTP ServerでRSAユーザー証明書付きで作成されたウォレットが必要です。SSL_RSA/RSA/ECDHE_RSA暗号スイートはECC証明書では機能しません。

  • ウォレットでのECC/RSA証明書の構成の詳細は、Oracle Fusion Middlewareの管理のorapkiを使用したOracle Walletの作成および表示を参照してください。

    これらの暗号スイートおよび対応するプロトコルを実装する方法の手順は、F.3.4項「SSLCipherSuite」およびF.3.12項「SSLProtocol」を参照してください。

    Oracle HTTP Server 12.1.3用SSL FIPS 140-2標準の詳細は、https://support.oracle.com.のMy Oracle Support Knowledge Database Doc ID 2160983.1を参照してください。

F.3.7 SSLInsecureRenegotiation

最初は指定されていたように、SSLプロトコルとTLSプロトコルのすべてのバージョン(TLS/1.2を含めて、これまで)は、ネゴシエーション中の中間者攻撃(CVE-2009-3555)に対して脆弱でした。この脆弱性によって、攻撃者は、Webサーバーで表示される任意の平文をHTTPリクエストの前に付け加えることができます。クライアントとサーバーの両方でサポートされている場合は、この脆弱性を修正するプロトコルの拡張が開発されています。

中間者攻撃(CVE-2009-3555)の詳細は、次を参照してください。

https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-3555

デフォルト・モード

ディレクティブSSLInsecureRenegotionが構成に指定されていない場合、Oracle HTTP Serverは互換モードで動作します。

このモードでは、Renegotiation Info/Signaling Cipher Suite Value (RI/SCSV)をサポートしない脆弱なピアとの接続が可能になりますが、再ネゴシエーションはRI/SCSVをサポートしているピアとのみ許可されます。

SSLInsecureRenegotiation ON

このオプションでは、再ネゴシエーションを実行するRI/SCSVのない脆弱なピアを許可します。したがって、このオプションはCVE-2009-3555で説明している再ネゴシエーション攻撃に対してサーバーを脆弱なままにするため、注意して使用する必要があります。

SSLInsecureRenegotiation OFF

このオプションが使用されると、RI/SCSVをサポートするピアのみがセッションとネゴシエーションおよび再ネゴシエーションできます。これが最もセキュアな推奨されるモードです。

カテゴリ
構文
SSLInsecureRenegotiation ON | OFF
SSLInsecureRenegotiation ON
デフォルト デフォルト値は、ONでもOFFでもありません。見出しの「デフォルト・モード」で説明しているように、デフォルトでは、Oracle HTTP Serverは互換モードで動作します。

SSLInsecureRenegotiationを構成するには、ssl.confファイルを編集して、SSLInsecureRenegotiation ON/OFFをグローバルまたは仮想的に設定し、セキュアでない再ネゴシエーションを有効(または無効)に設定します。

F.3.8 SSLMutex

Oracle HTTP Serverプロセス間で同期化する必要がある操作の、SSLエンジンによる相互排他を行うために使用するセマフォ(ロック)のタイプ。使用できる値は次のとおりです。

  • file:path/to/mutex: ロック用のファイルを使用します。ファイル名が確実に一意になるように、Oracle HTTP Serverの親プロセスのプロセスID (PID)が、ファイル名に追加されます。このファイル名の先頭にスラッシュ(/)がない場合は、ServerRootへの相対ファイル名とみなされます。この設定はWindowsでは使用できません。

  • none: mutexは使用されません。mutexによりSSLセッション・キャッシュへの書込みアクセスが同期化されるため、この設定はお薦めしません。mutexを構成しない場合、セッション・キャッシュが不整合になります。

  • pthread: このディレクティブはSSLモジュールにPosixスレッド・ミューテックスを使用するように指示します。これは基本のプラットフォームおよびApache Portable Runtime (APR)がサポートする場合にのみ使用できます。

  • sem: 書込みの同期化にオペレーティング・システムのセマフォを使用します。UNIXではSys V IPCセマフォ、WindowsではWindows Mutexが使用されます。オペレーティング・システムがサポートしている場合は、これが最善の選択肢です。

カテゴリ
構文 SSLMutex none | file | pthread | sem
SSLMutex sem
デフォルト pthread


注意:

  • Oracle HTTP Serverのデフォルトssl.confテンプレート・ファイルでは、次に示すように、pthreadはSSLMutexディレクティブの非Windowsプラットフォームのデフォルト値として定義されており、noneはWindowsプラットフォームのデフォルト値として定義されています。

    <IfModule mpm_winnt_module>
       SSLMutex "none"
    </IfModule>
    <IfModule !mpm_winnt_module>
       SSLMutex pthread
    </IfModule>
     
    

    新しいOracle HTTP Serverインスタンスは、非Windowsプラットフォーム用に作成されているため、SSLMutexのデフォルト値は、構成を明示的に変更しないかぎりpthreadのままです。ssl.confファイルでこれらの行がコメント・アウトされ、Oracle HTTP Server構成ファイルでSSLMutexに値が指定されていない場合、Oracle HTTP ServerはSSLMutexのデフォルト値としてnoneが使用されます。

  • SSLMutexディレクティブのnone値は、不整合なセッション・キャッシュを作成し、コア・ダンプを引き起こす可能性があるため、非Windowsプラットフォームでは推奨されません。


F.3.9 SSLTraceLogLevel

SSLTraceLogLevelは、NZライブラリのエラー・ログに記録されるメッセージの冗長性を調整します。特定のレベルを指定すると、それより上位レベルの重要度のメッセージもすべて報告されます。たとえば、SSLTraceLogLevel sslが設定されていると、error、warn、userおよびdebugのログ・レベルのメッセージも報告されます。

SSLTraceLogLevelでは次のログ・レベルが使用されます。

  • none: NZトレースが無効

  • fatal: 致命的なエラーが発生してシステムが使用できない状態

  • error: エラー状態

  • warn: 警告状態

  • user: 正常ではあるが、重大な状態

  • debug: デバッグ・レベルの状態

  • ssl: SSLレベルのデバッグ

カテゴリ
構文
SSLTraceLogLevel none | fatal | error | warn | user | debug | ssl 
SSLTraceLogLevel fatal
デフォルト なし

F.3.10 SSLOptions

ディレクトリ単位で様々なランタイム・オプションを制御します。一般に、1つのディレクトリに複数のオプションが適用される場合は、最も包括的なオプションが適用されます(オプションはマージされません)。ただし、SSLOptionsディレクティブのすべてのオプションの前にプラス(+)またはマイナス(-)符号が付いている場合は、オプションがマージされます。プラスが前に付いているオプションは、現在有効なオプションに追加され、マイナスが前に付いているオプションは、現在有効なオプションから除外されます。

使用できる値は次のとおりです。

  • StdEnvVars: SSLに関連するCGI/SSI環境変数の標準セットを作成します。抽出操作はCPU時間が長くかかること、また静的コンテンツを提供するときには一般に適用されないことから、これはデフォルトでは無効になっています。一般に、この値はCGI/SSIリクエストの場合にのみ有効にします。

  • ExportCertData: 次の追加CGI/SSI変数を有効にします。

    SSL_SERVER_CERT

    SSL_CLIENT_CERT

    SSL_CLIENT_CERT_CHAIN_n (ここでn= 0, 1, 2...)

    これらの変数には、現在のHTTPS接続のサーバーおよびクライアント用にPrivacy Enhanced Mail (PEM)でエンコードされたX.509証明書が含まれています。CGIスクリプトではこれを使用して、より詳しい証明書チェックを行うことができます。クライアント証明書連鎖の他の証明書がすべて提供されます。このオプションを使用するとパフォーマンスに時間がかかるため、デフォルトではOffになっています。

    SSL_CLIENT_CERT_CHAIN_n変数の順序は、次のようになります。SSL_CLIENT_CERT_CHAIN_0は、SSL_CLIENT_CERTを署名する中間的なCAです。SSL_CLIENT_CERT_CHAIN_1は、SSL_CLIENT_ROOT_CERTをルートCAとして、SSL_CLIENT_CERT_CHAIN_0などを署名する中間的なCAです。

  • FakeBasicAuth: クライアントのX.509証明書の対象識別名をHTTP Basic認証のユーザー名に変換します。これは、標準のHTTPサーバー認証方式がアクセス制御に使用できることを意味します。ユーザーからはパスワードが取得されず、文字列passwordが置き換えられます。

  • StrictRequire: SSLRequireSSLまたはディレクティブに従ってアクセスを禁止する必要がある場合にアクセスを拒否します。StrictRequireを指定しないと、Satisfy anyディレクティブ設定がSSLRequireまたはSSLRequireSSLディレクティブをオーバーライドして、クライアントがホスト制約を渡した場合、または有効なユーザー名とパスワードを指定した場合に、アクセスが許可されてしまう可能性があります。

    このように、SSLRequireSSLまたはSSLRequireSSLOptions +StrictRequireと組み合せることで、mod_osslはあらゆる場合にSatisfy anyディレクティブをオーバーライドできます。

  • CompatEnvVars: Apache SSL 1.x、mod_ssl 2.0.x、Sioux 1.0およびStronghold 2.xとの後方互換性のために、廃止された環境変数をエクスポートします。これは、既存のCGIスクリプトに対する互換性を提供するために使用します。

  • OptRenegotiate: SSLのディレクティブがディレクトリ単位のコンテキストで使用されるときに、最適化されたSSL接続再ネゴシエーション処理を有効にします。

カテゴリ
構文 SSLOptions [+-] StdEnvVars | ExportCertData | FakeBasicAuth | StrictRequire | CompatEnvVars | OptRenegotiate
SSLOptions -StdEnvVars
デフォルト なし

F.3.11 SSLPassPhraseDialog

ウォレット・アクセス用のパスフレーズ・ダイアログのタイプです。mod_osslでは、ウォレットにアクセスするために管理者にパスフレーズの入力が要求されます。使用できる値は次のとおりです。

  • builtin: サーバー起動時に、mod_osslは各ウォレットのパスワードの入力を求めます。

  • exec:path/to/program - サーバー起動時に、mod_osslは各ウォレット用に構成されている外部プログラムをコールします。このプログラムは、servername:portnumberと、RSAまたはDSAの2つの引数を使用して起動されます。

カテゴリ
構文 SSLPassPhraseDialog builtin | exec
SSLPassPhraseDialog exec:/usr/local/sbin/pfilter
デフォルト builtin

F.3.12 SSLProtocol

mod_osslがサーバー環境を設定するときに使用するSSLプロトコルを指定しますクライアントは、指定されたプロトコルのいずれかでのみ接続できます。使用できる値は次のとおりです。

  • TLSv1

  • TLSv1.1

  • TLSv1.2

  • All

スペース区切りリストで複数の値を指定できます。SSLProtocol用の構文で、"-"および"+"記号には次の意味があります。

  • + : プロトコルをリストに追加します

  • - : プロトコルをリストから削除します

表F-2に、TLSv1、TLSv1.1およびTLSv1.2プロトコルで使用可能な暗号を示します。

現在のリリースでは、All+TLSv1 +TLSv1.1 +TLSv1.2 (SSLv2およびSSLv3は出荷時は無効です)として定義されます。


注意:

SSLProtocolディレクティブの構文は、値としてTLSv1を使用するか、またはnzos_Version_1_0構文を使用することができます(またはTLSv1.1およびnzos_Version_1_1、あるいはTLSv1.2およびnzos_Version_1_2)。

Oracle Fusion Middleware Controlを使用している場合、セキュリティはnzos*構文を使用して構成されます。どちらのオプションもTLS 1.0プロトコル・バージョンを表しています。nzos_Version_1_0構文はTLS1.0のOracle表現であり、TLSv1はオープン・ソース表現です。Oracle HTTP Serverでは構成ファイルでSSLプロトコルを表現するのにどちらの方法もサポートされます。


カテゴリ
構文 SSLProtocol [+-] TLSv1 | TLSv1.1 | TLSv1.2 | All
SSLProtocol +TLSv1 +TLSv1 +TLSv1.1
デフォルト ALL

F.3.13 SSLProxyCipherSuite

プロキシがSSLハンドシェイク時に使用できるSSL暗号スイートを指定します。このディレクティブでは、コロンで区切られた暗号指定文字列を使用して暗号スイートを識別します。表F-1に、必要な暗号スイートを記述するためにこの文字列で使用できるタグを示します。SSLCipherSuiteには次の値を使用できます。

  • none: リストに暗号を追加します。

  • +: リストに暗号を追加し、リスト内の正しい位置に配置します。

  • -: リストから暗号を削除します(後で追加できます)。

  • !: リストから暗号を永続的に削除します。

タグは、暗号指定文字列を構成する接頭辞と結合されます。SSLProxyCipherSuiteディレクティブはSSLCipherSuiteディレクティブと同じタグを使用します。サポートされているスイート・タグのリストについては、表F-1を参照してください。

カテゴリ
SSLProxyCipherSuite ALL:!MD5

この例では、MD5強度暗号を除くすべての暗号が指定されています。

構文 SSLProxyCipherSuite cipher-spec
デフォルト
ALL:!ADH:+HIGH:+MEDIUM

SSLProxyCipherSuiteディレクティブはSSLCipherSuiteディレクティブと同じ暗号スイートを使用します。Oracle Advanced Security 12.1.3でサポートされている暗号スイートのリストについては、表F-2を参照してください。

F.3.14 SSLProxyEngine

プロキシのSSL/TLSプロトコル・エンジンを有効または無効にします。SSLProxyEngineは<VirtualHost>セクションの中で使用し、特定の仮想ホストでのプロキシの使用に対してSSL/TLSを有効にします。デフォルトでは、SSL/TLSプロトコル・エンジンは、メイン・サーバーとすべての構成済仮想ホストの両方でプロキシに対して無効になっています。

SSLProxyEngineは、(ProxyディレクティブまたはProxyRequestディレクティブを使用した)フォワード・プロキシとして動作する仮想ホストに含めることはできません。プロキシSSL/TLSリクエストに対してフォワード・プロキシ・サーバーを有効化する際に、SSLProxyEngineは必須ではありません。

カテゴリ
構文 SSLProxyEngine ON | OFF
SSLProxyEngine on
デフォルト Disable

F.3.15 SSLProxyProtocol

mod_osslがサーバー環境でプロキシ接続を設定するときに使用するSSLプロトコルを指定します。プロキシは、指定されたプロトコルのいずれかでのみ接続できます。使用できる値は次のとおりです。

  • TLSv1

  • TLSv1.1

  • TLSv1.2

  • All

スペース区切りリストで複数の値を指定できます。SSLProxyProtocolの構文で、"-"および"+"記号の意味は次のとおりです。

  • + : リストにプロトコルを追加

  • - : リストからプロトコルを削除

現在のリリースでは、All+TLSv1 +TLSv1.1 +TLSv1.2 (SSLv2およびSSLv3は出荷時は無効です)として定義されます。


注意:

SSLProxyProtocolディレクティブの構文は、値としてTLSv1を使用するか、またはnzos_Version_1_0構文を使用することができます(またはTLSv1.1およびnzos_Version_1_1、あるいはTLSv1.2およびnzos_Version_1_2)。

Oracle Fusion Middleware Controlを使用している場合、セキュリティはnzos*構文を使用して構成されます。どちらのオプションもTLS 1.0プロトコル・バージョンを表しています。nzos_Version_1_0構文はTLS1.0のOracle表現であり、TLSv1はオープン・ソース表現です。Oracle HTTP Serverでは構成ファイルでSSLプロトコルを表現するのにどちらの方法もサポートされます。


カテゴリ
構文 SSLProxyProtocol [+-] TLSv1 | TLSv1.1 | TLSv1.2 | All
SSLProxyProtocol +TLSv1 +TLSv1 +TLSv1.1
デフォルト ALL

F.3.16 SSLProxyWallet

プロキシ接続が使用する必要のある、WRLを使用してウォレットの場所を指定(ファイルパスとして指定)します。

カテゴリ
構文 SSLProxyWallet file:path to wallet
SSLProxyWallet "${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/proxy"
デフォルト なし

F.3.17 SSLRequire

任意の複合ブール式がTRUEでないかぎり、アクセスを拒否します。

カテゴリ
構文 SSLRequire expression (「式の理解」を参照)
SSLRequire word ">=" word |word "ge" word
デフォルト なし

式の理解

expressionは、次の構文と一致する必要があります(BNF構文表記として示してあります)。

expr ::= "true" | "false"
"!" expr
expr "&&" expr
expr "||" expr
"(" expr ")"

comp ::=word "==" word | word "eq" word
word "!=" word |word "ne" word
word "<" word |word "lt" word
word "<=" word |word "le" word
word ">" word |word "gt" word
word ">=" word |word "ge" word
word "=~" regex
word "!~" regex
wordlist ::= word
wordlist "," word

word ::= digit
cstring
variable
function

digit ::= [0-9]+

cstring ::= "..."

variable ::= "%{varname}"

表F-3表F-4に、標準変数とSSL変数を示します。これらの値はvarnameの有効値です。

function ::= funcname "(" funcargs ")"

funcnameには、次の関数を使用できます。

file(filename)

file関数は文字列引数(ファイル名)を1つ取り、そのファイルの内容に拡張します。これは、正規表現に照らしてファイルの内容を評価する場合に役立ちます。

表F-3に、SSLRequirevarnameの標準変数を示します。

表F-3 SSLRequireのvarnameの標準変数

標準変数 標準変数 標準変数

HTTP_USER_AGENT

PATH_INFO

AUTH_TYPE

HTTP_REFERER

QUERY_STRING

SERVER_SOFTWARE

HTTP_COOKIE

REMOTE_HOST

API_VERSION

HTTP_FORWARDED

REMOTE_IDENT

TIME_YEAR

HTTP_HOST

IS_SUBREQ

TIME_MON

HTTP_PROXY_CONNECTION

DOCUMENT_ROOT

TIME_DAY

HTTP_ACCEPT

SERVER_ADMIN

TIME_HOUR

HTTP:headername

SERVER_NAME

TIME_MIN

THE_REQUEST

SERVER_PORT

TIME_SEC

REQUEST_METHOD

SERVER_PROTOCOL

TIME_WDAY

REQUEST_SCHEME

REMOTE_ADDR

TIME

REQUEST_URI

REMOTE_USER

ENV:variablename

REQUEST_FILENAME

 


 



表F-4に、SSLRequireのvarnameのSSL変数を示します。

表F-4 SSLRequireのvarnameのSSL変数

SSL変数 SSL変数 SSL変数

HTTPS

SSL_PROTOCOL

SSL_CIPHER_ALGKEYSIZE

SSL_CIPHER

SSL_CIPHER_EXPORT

SSL_VERSION_INTERFACE

SSL_CIPHER_USEKEYSIZE

SSL_VERSION_LIBRARY

SSL_SESSION_ID

SSL_CLIENT_V_END

SSL_CLIENT_M_SERIAL

SSL_CLIENT_V_START

SSL_CLIENT_S_DN_ST

SSL_CLIENT_S_DN

SSL_CLIENT_S_DN_C

SSL_CLIENT_S_DN_CN

SSL_CLIENT_S_DN_O

SSL_CLIENT_S_DN_OU

SSL_CLIENT_S_DN_G

SSL_CLIENT_S_DN_T

SSL_CLIENT_S_DN_I

SSL_CLIENT_S_DN_UID

SSL_CLIENT_S_DN_S

SSL_CLIENT_S_DN_D

SSL_CLIENT_I_DN_C

SSL_CLIENT_S_DN_Email

SSL_CLIENT_I_DN

SSL_CLIENT_I_DN_O

SSL_CLIENT_I_DN_ST

SSL_CLIENT_I_DN_L

SSL_CLIENT_I_DN_T

SSL_CLIENT_I_DN_OU

SSL_CLIENT_I_DN_CN

SSL_CLIENT_I_DN_S

SSL_CLIENT_I_DN_I

SSL_CLIENT_I_DN_G

SSL_CLIENT_I_DN_Email

SSL_CLIENT_I_DN_D

SSL_CLIENT_I_DN_UID

SSL_CLIENT_CERT

SSL_CLIENT_CERT_CHAIN_n

SSL_CLIENT_ROOT_CERT

SSL_CLIENT_VERIFY

SSL_CLIENT_M_VERSION

SSL_SERVER_M_VERSION

SSL_SERVER_V_START

SSL_SERVER_V_END

SSL_SERVER_M_SERIAL

SSL_SERVER_S_DN_C

SSL_SERVERT_S_DN_ST

SSL_SERVER_S_DN

SSL_SERVER_S_DN_OU

SSL_SERVER_S_DN_CN

SSL_SERVER_S_DN_O

SSL_SERVER_S_DN_I

SSL_SERVER_S_DN_G

SSL_SERVER_S_DN_T

SSL_SERVER_S_DN_D

SSL_SERVER_S_DN_UID

SSL_SERVER_S_DN_S

SSL_SERVER_I_DN

SSL_SERVER_I_DN_C

SSL_SERVER_S_DN_Email

SSL_SERVER_I_DN_L

SSL_SERVER_I_DN_O

SSL_SERVER_I_DN_ST

SSL_SERVER_I_DN_CN

SSSL_SERVER_I_DN_T

SSL_SERVER_I_DN_OU

SSL_SERVER_I_DN_G

SSL_SERVER_I_DN_I

 



F.3.18 SSLRequireSSL

SSLを使用していないクライアントに対してアクセスを拒否します。構成エラーにより、セキュリティがぜい弱になる可能性があるSSL対応の仮想ホストまたはディレクトリの完全保護に役立つディレクティブです。

カテゴリ
構文 SSLRequireSSL
SSLRequireSSL
デフォルト なし

F.3.19 SSLSessionCache

グローバル・セッションまたはプロセス間セッションのセッション・キャッシュ・ストレージ・タイプを指定します。キャッシュは、リクエストのパラレル処理を高速化するオプションの方法を提供します。使用できる値は次のとおりです。

  • dc:UNIX:/path/to/socket: distcache分散セッション・キャッシング・ライブラリを使用します。distcacheアドレス構文を使用して、使用するサーバーまたはプロキシの場所を引数で指定する必要があります。たとえば、UNIX:/path/to/socketではUNIXドメイン・ソケットを指定(通常はローカルのdc_client proxy)し、IP:server.example.com:9001ではIPアドレスを指定します。

  • none: グローバルまたはプロセス間セッション・キャッシュを無効にします。機能に対する影響はありませんが、パフォーマンスに大きな差が出ます。

  • nonenotnull: グローバルおよびプロセス間セッション・キャッシュを無効にします。ただし、OpenSSLにnullではないセッションIDを強制的に送信させて、それを必要としているバグの発生しているクライアントに対応します。

  • shmcb:/path/to/datafile[bytes]: 高パフォーマンスのShared Memory Cyclic Buffer (SHMCB)セッション・キャッシュを使用して、サーバー・プロセスのローカルSSLメモリー・キャッシュと同期化します。shmcbのパフォーマンスの方が、shmhtに比べて、すべての環境で均一です。注意: このshm設定では、ローカル・ディスクの/path/to/datafileの下にログ・ファイルは作成されません。

  • shmht:/path/to/datafile[bytes]: RAM内の共有メモリー・セグメントの中で、高パフォーマンス・ハッシュ表を使用します(bytesはおおよそのサイズを指定)。この表は、/path/to/datafileにより設定されます。このハッシュ表は、サーバー・プロセスのローカルSSLメモリー・キャッシュと同期化します。注意: このshm設定では、ローカル・ディスクの/path/to/datafileの下にログ・ファイルは作成されません。

カテゴリ
構文 SSLSessionCache dc:UNIX:/path/to/socket | none | nonenotnull | shmcb:/path/to/datafile[bytes] | shmht: /path/to/datafile[bytes]
SSLSessionCache "shmcb:${ORACLE_INSTANCE}/servers/${COMPONENT_NAME}/logs/ssl_scache(512000)"
デフォルト SSLSessionCache none

F.3.20 SSLSessionCacheTimeout

セッション・キャッシュ内でSSLセッションの有効期限が満了になるまでの秒数を指定します。

カテゴリ
構文 SSLSessionCacheTimeout seconds
SSLSessionCacheTimeout 120
デフォルト 300

F.3.21 SSLVerifyClient

接続時にクライアントが証明書を提示する必要があるかどうかを指定します。使用できる値は次のとおりです。

  • none: クライアント証明書は不要です。

  • optional: クライアントは有効な証明書を提示できます。

  • require: クライアントは有効な証明書を提示する必要があります。

カテゴリ
構文 SSLVerifyClient none | optional | require
SSLVerifyClient optional
デフォルト なし


注意:

mod_sslに含まれているレベルoptional_no_ca(クライアントは有効な証明書を提示できるが、証明書が検証可能である必要はない)は、mod_osslではサポートされていません。

F.3.22 SSLWallet

WRLを使用してウォレットの場所を指定します。ファイルパスとして指定されます。

カテゴリ
構文 SSLWallet file:path to wallet
SSLWallet "${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/default"
デフォルト なし

F.4 mod_plsqlモジュール


注意:

Oracle HTTP Server 12c (12.1.3)では、mod_plsqlは非推奨となっています。

次の各項で、mod_plsql構成パラメータについて説明します。

F.4.1 plsql.conf

plsql.confファイルでは、次のパラメータを使用します。

F.4.1.1 PlsqlDMSEnable

mod_plsqlモジュールのDynamic Monitoring Service (DMS)を有効にします。

カテゴリ
構文 PlsqlDMSEnable On | Off
PlsqlDMSEnable On
デフォルト On

F.4.1.2 PlsqlLogEnable

mod_plsqlモジュールのデバッグ・レベル・ログを有効にします。デバッグ・レベル・ログは、デバッグ専用に使用されます。

ロギングが有効な場合、Oracle HTTP Serverログ・ファイルは、通常、PlsqlCacheDirectory DOMAIN_HOME/servers/componentName/ディレクトリ内に作成されます。ただし、最終的な場所はPlsqlLogDirectory内に指定された場所によって決まります。

このパラメータは、Oracleサポート・サービスよりmod_plsqlモジュール問題のデバッグ指示がないかぎり、Offに設定しておきます。

mod_plsqlモジュールの内部処理の詳細を表示する場合は、このディレクティブをOnに設定します。これによって、mod_plsqlモジュールは処理されるすべてのリクエストのロギングを開始します。ログ・ファイルは、PlsqlLogDirectoryディレクティブで指定された場所に生成されます。

カテゴリ
構文 PlsqlLogEnable On | Off
PlsqlLogEnable Off
デフォルト Off

F.4.1.3 PlsqlLogDirectory

デバッグ・レベル・ログが書き出されるディレクトリを指定します。

ロギングが有効なときにログ・ファイルが生成される場所のディレクトリ名を設定します。このディレクトリの場所について混乱が生じないように、絶対パスの使用をお薦めします。

UNIXでは、httpd子プロセスの所有者がこのディレクトリに対する書込み権限を持っている必要があります。

カテゴリ
構文 PlsqlLogDirectory directory
PlsqlLogDirectory "${ORACLE_INSTANCE}/servers/${COMPONENT_NAME}/logs"
デフォルト なし

F.4.1.4 PlsqlIdleSessionCleanupInterval

アイドル・データベース・セッションがmod_plsqlモジュールによりクローズされてクリーンアップされるまでの時間(分数)を指定します。

このディレクティブは、mod_plsqlモジュール内でデータベース接続とセッションの接続プーリングとともに使用されます。セッションがある一定の期間使用されないと、そのセッションはクローズされて解放されます。これは、使用されていないセッションをクリーンアップし、データベース側でメモリーが解放されるようにするためです。

この時間を小さい値に設定すると、使用されていないデータベース・セッションのクリーンアップが高速になります。ただし、極端に小さい値に設定すると、mod_plsqlモジュール内の接続プーリングが提供するパフォーマンスに悪影響を及ぼすことがあります。

オープンされているデータベース・セッションの数が重要でない場合は、最大のパフォーマンスが得られるように、このパラメータの値を大きくすることができます。その場合、アクセス頻度が高く、セッション・クリーンアップ間隔に達することがないサイトについては、プーリングされたデータベース・セッションが確実に定期的にリサイクルされるように、DAD構成パラメータPlsqlMaxRequestsPerSessionを調整できます。

ほとんどのインストールでは、デフォルト値で十分です。

カテゴリ
構文 PlsqlIdleSessionCleanupInterval number
PlsqlIdleSessionCleanupInterval 10
デフォルト 15(分)

F.4.2 dads.conf

dads.confファイルには、PL/SQLのデータベース・アクセス・ディスクリプタの構成パラメータが含まれています。(ファイルの場所については表F-1を参照してください。)DADは、mod_plsqlモジュールがデータベース・サーバーに接続してHTTPリクエストを実行する方法を指定する値のセットです。

dads.confファイルでは、次のパラメータを使用します。

F.4.2.1 PlsqlAfterProcedure

リクエストされたプロシージャのコール後に起動するプロシージャを指定します。これにより、リクエストされたプロシージャがコールされた後にフック・ポイントを置くことができます。これは、リクエストされたプロシージャ内の問題のデバッグ中に、SQLトレース/SQLプロファイルを実行する場合に役立ちます。また、各プロシージャの実行後に特定のコールを確実に行う必要がある場合にも役立ちます。

カテゴリ
構文 PlsqlAfterProcedure string
PlsqlAfterProcedure portal.mypkg.myafterproc
デフォルト なし


注意:

このパラメータは、デバッグ目的にのみ使用してください。また、このパラメータを使用すると、SQLトレース/SQLプロファイルを停止できます。

F.4.2.2 PlsqlAlwaysDescribeProcedure

mod_plsqlモジュールでプロシージャを実行する前に記述する必要があるかどうかを指定します。このパラメータをOnに設定すると、mod_plsqlモジュールではプロシージャを起動する前に常に記述します。それ以外の場合は、mod_plsqlモジュールが内部的な経験則によりパラメータ・タイプを不正に解析した場合にのみ、プロシージャを記述します。

カテゴリ
構文 PlsqlAlwaysDescribeProcedure On | Off
PlsqlAlwaysDescribeProcedure On
デフォルト Off


注意:

このパラメータは、デバッグ目的にのみ使用してください。

F.4.2.3 PlsqlAuthenticationMode

DAD経由でアクセスできるように、使用する認証モードを指定します。PlsqlAuthenticationModeに対して指定できる値は、BasicSingleSignOnGlobalOwaCustomOwaPerPackageOwaです。

カテゴリ
構文 PlsqlAuthenticationMode Basic | SingleSignOn | GlobalOwa | CustomOwa | PerPackageOwa
PlsqlAuthenticationMode CustomOwa
デフォルト Basic

  • Basicはデフォルトのモードであり、PlsqlDatabaseUsernamePlsqlDatabasePasswordにユーザー名とパスワードが指定されていない場合に、それらを求めるかどうかを決定します。WebDB 2.xアプリケーションにはこの設定が必要です。DADでBasic認証を使用しない場合は、DAD構成に有効なユーザー名とパスワードを含める必要があります。

  • SingleSignOnは、シングル・サインオン・サーバーを使用することを指定します。これは、Oracle9iAS Portalを使用するDADに必要です。前述のとおり、指定されたユーザー名とパスワードは、シングル・サインオン・サーバーからのものである必要があります。

  • GlobalOwaCustomOwaおよびPerPackageOwaは、ごく少数のPL/SQLアプリケーションによってのみ使用されます。カスタム認証を使用すると、データベース・レベルではなくアプリケーション自体でユーザーを認証できます。

    認証は、ユーザー記述の認証ファンクションをコールすることで実行されます。カスタム認証では、DADに保存されている静的ユーザー名/パスワードを使用します。動的ユーザー名/パスワード認証と組み合せることはできません。カスタム認証を有効にするには、PlsqlAuthenticationModeの認証のレベルを設定し、認可機能を実装します。

次の点にも注意する必要があります。

  • DADでBasic認証を使用しない場合は、DAD構成に有効なユーザー名とパスワードを含める必要があります。Basicモードで動的認証を実行する場合は、DADのusernameおよびpasswordパラメータを省略できます。

  • SingleSignOnモードがサポートされるのは、Oracle Fusion Middlewareのリリースのみで、Oracle PortalおよびOracle Single Sign-Onで使用されます。ほとんどの顧客アプリケーションでは、Basic認証を使用します。カスタム認証モード(GlobalOwa、CustomOwaおよびPerPackageOwa)を使用するPL/SQLアプリケーションは、ごく少数です。

F.4.2.4 PlsqlBeforeProcedure

リクエストされたプロシージャのコール前に起動するプロシージャを指定します。これにより、リクエストされたプロシージャがコールされる前にフック・ポイントを置くことができます。これは、リクエストされたプロシージャ内の問題のデバッグ中に、SQLトレース/SQLプロファイルを実行する場合に役立ちます。また、各プロシージャの実行前に特定のコールを確実に行う必要がある場合にも役立ちます。

カテゴリ
構文 PlsqlBeforeProcedure string
PlsqlBeforeProcedure portal.mypkg.mybeforeproc
デフォルト なし


注意:

このパラメータは、デバッグ目的にのみ使用してください。また、このパラメータを使用すると、SQLトレース/SQLプロファイルを起動できます。

F.4.2.5 PlsqlBindBucketLengths


注意:

この構成プロパティが変更されることはほとんどないため、たいていの場合はシステムのデフォルトで間に合います。

コレクション・バインド内の要素数のバインド中に使用する丸めサイズを指定します。PL/SQL文の実行中は、Oracle Databaseにより共有SQL領域内でPL/SQL文のキャッシュがメンテナンスされ、同じ文が再び実行される場合はキャッシュされた文が再利用されます。Oracleの一致条件では、文のテキストが同一で、バインド変数のデータ型が一致する必要があります。文字列の型が一致するには正確なバイト・サイズを指定する必要があり、コレクション・バインドの場合もコレクション内の要素数が重要になります。mod_plsqlモジュールでは文が動的にバインドされるため、共有キャッシュのヒット率は低く、ほぼ重複する値で満杯になって、共有領域でラッチの競合が発生する傾向があります。このパラメータでは、バインド長を最も近いレベルにバケット化して、このような影響を軽減します。

すべての数値は昇順で指定する必要があります。最後に指定したサイズに続くバケット・サイズは、最後のサイズの2倍とみなされます。

カテゴリ
構文 PlsqlBindBucketLengths number multiline
PlsqlBindBucketLengths 4

PlsqlBindBucketLengths 25

PlsqlBindBucketLengths 125

デフォルト 4,20,100,400

  • このパラメータが関連するのは、配列パラメータを持つプロシージャを使用し、可変個のパラメータをプロシージャに渡す場合のみです。

  • ほとんどのPL/SQLアプリケーションの場合は、デフォルトで十分です。

  • このパラメータの変更が必要かどうかを調べるには、SQL領域内でSQL文のバージョン番号をチェックします。

  • より大きい構成値の後は、mod_plsqlが必要に応じて最後の値を2倍にすることによって、さらに大きな値のバケット・サイズの自動生成を開始します。したがって、400の次のバケット値は800、その次は1600、のように続いていきます。

  • 問題を軽減するために、パラメータの受渡しを柔軟にすることを考慮してください。

F.4.2.6 PlsqlBindBucketWidths


注意:

この構成プロパティが変更されることはほとんどないため、たいていの場合はシステムのデフォルトで間に合います。

コレクション・バインド内の要素数のバインド中に使用する丸めサイズを指定します。PL/SQL文の実行中は、Oracle Databaseにより共有SQL領域内でPL/SQL文のキャッシュがメンテナンスされ、同じ文が再び実行される場合はキャッシュされた文が再利用されます。Oracleの一致条件では、文のテキストが同一で、バインド変数のデータ型が一致する必要があります。文字列の型が一致するには正確なバイト・サイズを指定する必要があり、コレクション・バインドの場合もコレクション内の要素数が重要になります。mod_plsqlモジュールでは文が動的にバインドされるため、共有キャッシュのヒット率は低く、ほぼ重複する値で満杯になって、共有領域でラッチの競合が発生する傾向があります。このパラメータでは、バインド幅を最も近いレベルにバケット化して、このような影響を軽減します。

すべての数値は昇順で指定する必要があります。最後に指定したサイズに続くバケット・サイズは、最後のサイズの2倍とみなされます。

最後のバケット幅は4000以下にする必要があります。これは、配列のバインド幅を4000以下にするというOCIの制限によるものです。

カテゴリ
構文 PlsqlBindBucketWidths number multiline
PlsqlBindBucketWidths 40

PlsqlBindBucketWidths 400

PlsqlBindBucketWidths 2000

デフォルト 32,128,1450,2048,4000

  • このパラメータが関連するのは、配列パラメータを持つプロシージャを使用し、可変個のパラメータをプロシージャに渡す場合のみです。

  • ほとんどのPL/SQLアプリケーションの場合は、デフォルトで十分です。

  • このパラメータの変更が必要かどうかを調べるには、SQL領域内でSQL文のバージョン番号をチェックします。

  • より大きい構成値の後は、mod_plsqlが必要に応じて最後の値を2倍にすることによって、さらに大きな値のバケット・サイズの自動生成を開始します。したがって、400の次のバケット値は800、その次は1600、のように続いていきます。

  • 問題を軽減するために、パラメータの受渡しを柔軟にすることを考慮してください。

F.4.2.7 PlsqlCGIEnvironmentList

PL/SQLプロシージャに渡される環境変数のデフォルト・セットに、CGI環境変数のオーバーライドおよび追加を実行するように指定します。これは、追加、オーバーライドまたは削除する名前/値ペアの複数行からなるディレクティブです。1つのディレクティブに指定できる環境変数は1つのみです。

変数名を指定して、Oracle HTTP Server環境からCGI環境変数を追加できます。CGI環境変数を削除するには、空白に設定します。独自の名前/値ペアを追加するには、myname=myvalue構文を使用します。

カテゴリ
構文 PlsqlCGIEnvironmentList string multiline
デフォルト なし
  • Oracle HTTP Server環境から新しい環境変数を追加するには、次のように設定します。

    PlsqlCGIEnvironmentList DOCUMENT_ROOT

  • 環境変数を削除するには、次のように設定します。

    PlsqlCGIEnvironmentList MYENVAR2=

  • Oracle HTTP Server環境からオーバーライドするには、次のように設定します。

    PlsqlCGIEnvironmentList REQUEST_PROTOCOL=HTTPS

  • 独自の環境変数を追加するには、次のように設定します。

    PlsqlCGIEnvironmentList MY_VARNAME=MY_VALUE


  • ここで追加した環境変数は、ファンクションowa_util.get_cgi_envを介してPL/SQLアプリケーションで使用できます。

F.4.2.8 PlsqlConnectionTimeout

mod_plsqlモジュールの接続プールをテストするためのタイムアウトをミリ秒単位で指定します。

カテゴリ
構文 PlsqlConnectionTimeout number
PlsqlConnectionTimeout 5000
デフォルト 10000 (ミリ秒)

PlsqlConnectionValidationAutomaticまたはAlwaysValidateに設定されていると、mod_plsqlモジュールはプーリングされたデータベース接続をテストしようとします。このパラメータは、mod_plsqlモジュールが接続は使用できないと判断する前に、テスト・リクエストの完了を待機する最大時間を指定します。

F.4.2.9 PlsqlConnectionValidation

mod_plsqlモジュールが接続プールで終了済接続を検出するために使用するメカニズムを指定します。


注意:

この構成プロパティが変更されることはほとんどないため、たいていの場合はシステムのデフォルトで間に合います。

パフォーマンス上の理由で、mod_plsqlモジュールはデータベース接続をプーリングします。データベース・インスタンスが停止し、mod_plsqlモジュールがそのインスタンスに対する接続プールを保持していた場合、プーリングされた各データベース接続は、次回リクエストの処理に使用される際にエラーとなります。これは、あるノードが停止しても、他のデータベース処理を実行しているノードではリクエストを正常に処理できる、Oracle RACなどの高可用性の構成で問題となります。mod_plsqlモジュールでは、データベース・ノードの停止による障害を検出した後に自己修正するためのメカニズムを提供しています。この自己修正メカニズムは、PlsqlConnectionValidationパラメータによって制御されます。

次に、PlsqlConnectionValidationの有効な値を示します。

  • Automatic: mod_plsqlモジュールは、障害(インスタンスの障害)の検出前に作成され、プーリングされたすべてのデータベース接続をテストします。

  • ThrowAwayOnFailure: mod_plsqlモジュールは、障害(インスタンスの障害)の検出前に作成され、プーリングされたすべてのデータベース接続を放棄します。

  • AlwaysValidate: mod_plsqlモジュールは、リクエストの発行前に作成され、プーリングされたすべてのデータベース接続を常にテストします。このオプションは、各リクエストのパフォーマンス・オーバーヘッドと関連しているため、注意して使用してください。

  • NeverValidate: mod_plsqlモジュールは、プーリングされたデータベース接続を一切pingしません。

カテゴリ
構文 PlsqlConnectionValidation Automatic | ThrowAwayOnFailure | AlwaysValidate | NeverValidate
PlsqlConnectionValidation ThrowAwayOnFailure
デフォルト Automatic

mod_plsqlモジュールでは、次のいずれかのエラーが発生すると、データベースは停止していると判断します。

  • 00443 — バックグラウンド・プロセス<string>が起動しませんでした

  • 00444 — バックグラウンド・プロセス<string>の起動中に障害が発生しました。

  • 00445 — バックグラウンド・プロセスが<x>秒後に起動しませんでした。

  • 00447 — バックグラウンド・プロセスに致命的なエラーが発生しました。

  • 00448 — バックグラウンド・プロセスが正常終了しました。

  • 00449 — バックグラウンド・プロセス<string>がエラーで予期せず終了しました

  • 00470 — LGWRプロセスはエラーで終了しました。

  • 00471 — DBWRプロセスはエラーで終了しました。

  • 00472 — PMONプロセスはエラーで終了しました。

  • 00473 — ARCHプロセスはエラーで終了しました。

  • 00474 — SMONプロセスはエラーで終了しました。

  • 00475 — TRWRプロセスはエラーで終了しました。

  • 00476 — RECOプロセスはエラーで終了しました。

  • 00480 — LCK*プロセスはエラーで終了しました。

  • 00481 — LMONプロセスはエラーで終了しました。

  • 00482 — LMD*プロセスはエラーで終了しました。

  • 00484 — LMS*プロセスはエラーで終了しました

  • 00485 — DIAGプロセスはエラーで終了しました

  • 01014 — Oracleのシャットダウン処理中です。

  • 01033 — Oracleの初期化またはシャットダウン中です。

  • 01034 — Oracleは使用できません。

  • 01041 — 内部エラーが発生しました。hostdefエクステンションが存在しません。

  • 01077 — バックグラウンド・プロセス初期化に失敗しました

  • 01089 — 即時シャットダウン処理中 - 操作はできません

  • 01090 — シャットダウン処理中 - 接続はできません

  • 01091 — 強制起動時にエラーが発生しました。

  • 01092 — Oracleインスタンスが終了しました。強制的に切断されます

  • 03106 — 致命的な2タスク通信プロトコル・エラーが発生しました

  • 03113 — 通信チャネルでend-of-fileが検出されました

  • 03114 — Oracleに接続されていません。

  • 12570 — TNS: パケット・リーダーに障害が発生しました。

  • 12571 — TNS: パケット・ライターに障害が発生しました

F.4.2.10 PlsqlDatabaseConnectString

Oracle Databaseへの接続を指定します。

カテゴリ
構文 PlsqlDatabaseConnectString string {ServiceNameFormat | SIDFormat | TNSFormat | NetServiceNameFormat}

stringパラメータは、2番目の引数に応じて次のように変化します。

  • 2番目の引数がServiceNameFormatの場合、stringHOST:PORT:SERVICE_NAMEになります。ここで、HOSTはデータベースを実行中のホスト名、PORTはTNSリスナーがリスニングしているポート番号、SERVICE_NAMEはデータベース・サービス名です。

    IPv6アドレスを指定するには、[IPv6_ADDRESS]:PORT:SERVICE_NAMEという書式を使用します。

  • 2番目の引数がSIDFormatの場合、stringHOST:PORT:SIDになります。ここで、HOSTはデータベースを実行中のホスト名、PORTはTNSリスナーがリスニングしているポート番号、SIDはデータベースSIDです。

    IPv6アドレスを指定するには、[IPv6_ADDRESS]:PORT:SIDという書式を使用します。

  • 2番目の引数がTNSFormatの場合、stringは、tnspingなどのOracle Net ServicesユーティリティとSQL*Plusを使用して解決できる有効なTNS別名になります。

  • 2番目の引数がNetServiceNameFormatの場合、stringは、接続ディスクリプタに解決できる有効なネット・サービス名になります。接続ディスクリプタは、ネットワーク接続の宛先を特殊なフォーマットで記述したものです。接続記述子は、宛先サービスおよびネットワーク・ルート情報を含みます。

フォーマット引数を指定しない場合、mod_plsqlモジュールでは、stringがHOST:PORT:SID形式であるか、Oracle Net Servicesで解決可能であると想定します。この2つは、指定された文字列にコロンがあるかどうかにより区別されます。

新しいDADではSIDFormat構文を使用しないことをお薦めします。この構文は、後方互換性を保つためにのみ設けられています。新しく作成するDADには、新しいフォーマット引数を使用してください。

  • PlsqlDatabaseConnectString example.com:1521:myhost.iasdb.inst ServiceNameFormat
  • PlsqlDatabaseConnectString [2001:DB8:f1ff:f1ff]:1521:myhost.iasdb.inst ServiceNameFormat

  • PlsqlDatabaseConnectString example.com:1521:iasdb SIDFormat

  • PlsqlDatabaseConnectString [2001:DB8:ff1ff:f1ff]:1521:iasdb SIDFormat

  • PlsqlDatabaseConnectString myhost_tns TNSFormat

  • PlsqlDatabaseConnectString cn=oracle,cn=iasdb NetServiceNameFormat

  • PlsqlDatabaseConnectString (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=example.com)(Port= 1521))(CONNECT_DATA=(SID=iasdb))) TNSFormat

  • PlsqlDatabaseConnectString myhost_tns

  • PlsqlDatabaseConnectString example.com:1521:iasdb

デフォルト なし

  • データベースが同じOracleホームで稼働している場合、あるいは環境変数TWO_TASKが設定されている場合は、このパラメータを指定する必要はありません。

  • データベースが別々のOracleホームで稼働している場合、このパラメータは必須です。

  • データベースに接続できない場合は、次のことを確認します。

    • DADのユーザー名およびパスワード情報を確認します。

    • tnsping db_connect_stringおよび次のようなコマンドを実行することを確認します。

      sqlplus DADUsername/DADPassword@db_connect_string
      
    • TNS_ADMINが適切に構成されているかどうかを確認します。

    • HOST:PORT:SERVICE_NAME形式で正しく動作するかどうかを確認します。

    • TNSリスナーとデータベースが起動され実行されているかどうかを確認します。

    • このマシンからホストをpingできるかどうかを確認します。

  • mod_plsqlモジュールの観点からは、TNSFormatNetServiceNameFormatは類似しており、Oracle Net Servicesにより解決される接続記述子を意味します。TNSFormatが便宜上提供されているため、エンド・ユーザーはこれを使用して、名前解決がローカルのtnsnames.oraを介して行われることを示します。sqlnet.oraに構成されているLDAP参照を使用して解決が行われる場合は、NetServiceNameFormatフォーマット指定子の使用をお薦めします。

    高可用性をサポートするデータベース(たとえば、Oracle Real Application Clustersデータベースなど)の場合は、ネット・サービス名の解決がLDAPを使用して行われるように、NetServiceNameFormatの使用をお薦めします。これにより、新規ノードまたは削除されたノードの情報を使用してOracle Internet Directoryを変更することで、mod_plsqlモジュール経由でアクセス可能なOracle RACノードを追加または削除できます。その場合は、データベース・リスナーのHOST:PORT情報をdads.confまたはローカルtnsnames.oraにハードコードしないことをお薦めします。

F.4.2.11 PlsqlDatabasePassword

データベースへのログインに使用するパスワードを指定します。

カテゴリ
構文 PlsqlDatabasePassword string
PlsqlDatabasePassword tiger
デフォルト なし

  • PlsqlAuthenticationModeをBasicに設定して動的認証を使用するDADの場合を除き、これは必須パラメータです。

  • SingleSignOn認証を使用するDADの場合、このパラメータではスキーマの所有者名を使用します。

DADパスワードを手動で構成変更した後に、ORACLE_HOME/binにあるdadTool.plスクリプトを実行して、DADパスワードを不明瞭化する必要があります。

DADパスワードを不明瞭化するには、次の手順を実行します。

  1. 必要に応じて、次のコマンドを使用して、ユーザーをOracleソフトウェアの所有者ユーザー(通常はoracle)に変更します。

    $ su - oracle
    
  2. 現行リリースのOracleホーム・ディレクトリへのパスを指定するようにORACLE_HOME環境変数を設定して、Perl実行可能ファイルおよびdadTool.plスクリプトの場所を含むディレクトリを含むようにPATH環境変数を設定します。

    Bourne、Bash、またはKornシェルの場合:

    $ ORACLE_HOME=new_ORACLE_HOME_path;export ORACLE_HOME
    $ PATH=ORACLE_HOME/bin:ORACLE_HOME/perl/bin:$PATH;export PATH
    

    Cまたはtcshシェルの場合:

    % setenv ORACLE_HOME new_ORACLE_HOME_PATH
    % setenv PATH ORACLE_HOME/bin:ORACLE_HOME/perl/bin:PATH
    

    Microsoft Windowsでは、PATHおよびPERL5LIB環境変数を設定します。

    set PATH=ORACLE_HOME\bin;ORACLE_HOME\perl\bin;%PATH%
    set PERL5LIB=ORACLE_HOME\perl\lib
    
  3. UNIXプラットフォームでは、共有ライブラリ・パス環境変数を設定します。

    ORACLE_HOME/libまたはlib32ディレクトリを共有ライブラリ・パスに含めます。表F-5に、各プラットフォームに対応するディレクトリおよび環境変数を示します。

    表F-5 共有ライブラリ・パスの環境変数

    プラットフォーム 環境変数 含めるディレクトリ

    AIXベース・システム

    LIBPATH

    ORACLE_HOME/lib

    HP-UX PA-RISC

    SHLIB_PATH

    ORACLE_HOME/lib

    Solarisオペレーティング・システム

    LD_LIBRARY_PATH

    ORACLE_HOME/lib32

    その他のUNIXプラットフォーム(Linux、HP Tru64 UNIXなど)

    LD_LIBRARY_PATH

    ORACLE_HOME/lib


    たとえば、HP-UX PA-RISCシステムの場合、次のようにORACLE_HOME/libディレクトリを含めるようにSHLIB_PATH環境変数を設定します。

    SHLIB_PATH=$ORACLE_HOME/lib:$SHLIB_PATH;export SHLIB_PATH
    
  4. ディレクトリを、Oracle HTTP Serverの現行リリースのbinディレクトリに変更します。

    cd $ORACLE_HOME/ohs/bin
    
  5. 次のPerlスクリプトを起動して、DADパスワードを不明瞭化します。

    perl dadTool.pl -f dadfilename
    

    dadfilenamedads.confのファイル名で、DADファイルへのフルパスが含まれます。

    例:

    perl dadTool.pl -f /u01/app/oracle/user_projects/domains/base_domain/config/fmwconfig/components/OHS/ohs1/mod_plsql/dads.conf
    

F.4.2.12 PlsqlDatabaseUserName

データベースへのログインに使用するユーザー名を指定します。

カテゴリ
構文 PlsqlDatabaseUsername string
PlsqlDatabaseUsername scott
デフォルト なし

  • PlsqlAuthenticationModeをBasicに設定して動的認証を使用するDADの場合を除き、これは必須パラメータです。

  • SingleSignOn認証を使用するDADの場合、このパラメータはスキーマの所有者名です。

F.4.2.13 PlsqlDefaultPage

URLに何も指定されていない場合にコールするデフォルトのプロシージャを指定します。

カテゴリ
構文 PlsqlDefaultPage string
PlsqlDefaultPage myschema.mypackage.home
デフォルト なし

Oracle HTTP Serverリライト規則を使用しても、この構成パラメータを設定した場合と同じ結果になります。

F.4.2.14 PlsqlDocumentPath

これは、ドキュメント表からのドキュメントのダウンロードを開始する、URL内の仮想パスです。たとえば、このパラメータをdocsに設定すると、次のURLによってこの形式のURLでドキュメントのダウンロード・プロセスが開始されます。

/pls/dad/docs
/pls/plsqlapp/docs
カテゴリ
構文 PlsqlDocumentPath string
PlsqlDocumentPath docs
デフォルト docs

ドキュメントのアップロードまたはダウンロードを実行しないアプリケーションの場合は、このパラメータを省略します。

F.4.2.15 PlsqlDocumentProcedure

ドキュメントのダウンロード開始時にコールするプロシージャを指定します。このプロシージャは、ダウンロード処理用にコールされます。

カテゴリ
構文 PlsqlDocumentProcedure string
PlsqlDocumentProcedure portal.wwdoc_process.process_download
デフォルト なし

ドキュメントのアップロードまたはダウンロードを実行しないアプリケーションの場合は、このパラメータを省略します。

F.4.2.16 PlsqlDocumentTablename

すべてのドキュメントのアップロード先となるデータベース内の表を指定します。

カテゴリ
構文 PlsqlDocumentTablename string
PlsqlDocumentTablename myschema.document_table
デフォルト なし

ドキュメントのアップロードまたはダウンロードを実行しないアプリケーションの場合は、このパラメータを省略します。

F.4.2.17 PlsqlErrorStyle

mod_plsqlエラーのエラー・レポート・モードを指定します。

カテゴリ
構文 PlsqlErrorStyle {ApacheStyle | ModplsqlStyle | DebugStyle}
  • ApacheStyle: mod_plsqlモジュールは発生したHTTPエラーをOracle HTTP Serverに示します。その後、Oracle HTTP Serverでエラー・ページが生成されます。これをOracle HTTP ServerのErrorDocumentディレクティブとともに使用すると、カスタマイズされたエラー・メッセージを生成できます。

  • ModplsqlStyle: mod_plsqlモジュールでエラー・ページが生成されます。通常、これは、発生したPL/SQLエラーと、PL/SQL例外スタック(存在する場合)を示す短いメッセージです。例:

    scott.foo PROCEDURE NOT FOUND
    
  • DebugStyle: このモードでは、ModplsqlStyleを指定した場合よりも詳細な情報が得られます。mod_plsqlモジュールによってURLとパラメータの詳細が提供され、サーバー構成情報も生成されます。このモードはデバッグ専用です。内部サーバー変数を表示するとセキュリティ上のリスクを伴うため、本番システムではこのモードを使用しないでください。

PlsqlErrorStyle ModplsqlStyle
デフォルト ApacheStyle

F.4.2.18 PlsqlExclusionList

ブラウザから直接実行することが禁じられているプロシージャ、パッケージまたはスキーマ名のパターンを指定します。これは複数行からなるディレクティブで、各パターンを個別の行に指定します。パターンには大/小文字の区別がなく、アスタリスク(*)などのワイルドカードを使用できます。ダイレクトURLアクセスが禁じられるデフォルト・パターンは、次のとおりです。

  • sys.*

  • dbms_*

  • utl_*

  • owa_util*

  • owa.*

  • htp.*

  • htf.*

  • wpg_docload.*

このディレクティブを#NONE#に設定すると、すべての保護が無効になります。この設定は、アクティブなサイトには推奨されないため、指定しないでください。この設定は、デバッグ目的の場合に使用可能です。

このパラメータがオーバーライドされても、デフォルトは有効です。つまり、除外されるパターンのリストにデフォルト・リストを明示的に追加する必要はありません。

カテゴリ
構文 PlsqlExclusionList {string | "#NONE#" multiline}
PlsqlExclusionList myschema.private.*

PlsqlExclusionList myschema.private1.*

これらは、次のいずれかを含むURLにアクセスできません。

sys.*dbms_*utl_*owa_util*owa.*htp.*htf.*wpg_docload.*myschema.private.*myschema.private1.*

PlsqlExclusionList "#NONE#"

これは、すべての保護が無効になります。この使用方法は、アクティブなサイトには推奨されません。

デフォルト sys.*

dbms_*

utl_*

owa_util*

owa.*

htp.*

htf.*

wpg_docload.*


  • mod_plsqlモジュールでは、このパラメータで指定したパターン以外に、次の特殊文字を含むプロシージャ名も使用できません。

    • タブ

    • 改行

    • 復帰

    • 一重引用符

    • 逆スラッシュ

    • 改ページ

    • 左カッコ

    • 右カッコ

    • スペース

    これは変更できません。

F.4.2.19 PlsqlFetchBufferSize

owa_util.get_pageまたはowa_util.get_page_rawを使用して、データベースからフェッチする内容のトリップごとの行数を指定します。

デフォルトで、mod_plsqlモジュールは各行が255バイトのレスポンス出力行を200行フェッチします。レスポンス・バイトがシングルバイトの場合、レスポンス・バッファは最大限まで移入され、1回のラウンドトリップに255*200=51000バイトをパックできます。マルチバイト・データを含むレスポンスの場合は、各行のバイトのパックが理想的にならない場合があり、ラウンドトリップごとに送信されるバイト数が少なくなります。アプリケーションで大きなページを頻繁に生成し、レスポンスが1回のラウンドトリップに収められない場合は、このパラメータを高めに設定することを考慮してください。mod_plsqlモジュールによるメモリー使用量は増加します。

カテゴリ
構文 PlsqlFetchBufferSize number
PlsqlFetchBufferSize 256
デフォルト 200

  • このパラメータは、パフォーマンスに問題がある場合にのみ変更してください。このパラメータの最小値は28ですが、それより小さくなることはほとんどありません。

  • このパラメータは、次の場合にのみ変更してください。

    • 平均的なレスポンス・ページが大きく、mod_plsqlモジュールがレスポンスをフェッチするためにデータベースへラウンドトリップする回数を減らす必要がある場合。

    • 使用中の文字セットがマルチバイトで、get_pageまたはget_page_rawで1行ごとにフェッチされるバイト数が少ないという問題に対処する必要がある場合。PL/SQL Web ToolKitでの計算は文字ベースであり、マルチバイト・キャラクタの場合、OWAパッケージでは文字の最小のバイト・サイズが想定されるため、各行のサイズが最大値まで変更されることはありません。

F.4.2.20 PlsqlInfoLogging

mod_plsqlモジュールが追加のパフォーマンス・ロギングを行うために使用するモードを指定します。

InfoDebugモード: より多くの情報がApacheのerror_logに記録されます。これは、Apacheのinfoロギング・レベルとともに使用されます。Apacheのロギング・レベルがこのレベル以上に設定されていない場合は、この設定が無視されます。

カテゴリ
構文 PlsqlInfoLogging InfoDebug
PlsqlInfoLogging InfoDebug
デフォルト

このロギング設定は、PL/SQLアプリケーションでの問題のデバッグに役立ちます。

F.4.2.21 PlsqlMaxRequestsPerSession

プーリングされたデータベース接続がクローズされて再オープンされる前に処理する必要のある最大リクエスト数を指定します。

カテゴリ
構文 PlsqlMaxRequestsPerSession number
PlsqlMaxRequestsPerSession 500
デフォルト 1000

  • このパラメータを使用すると、PL/SQLアプリケーションによる長期間のセッション再利用により発生する、メモリーとリソースの問題を軽減できます。

  • このパラメータは変更しないでください。ほとんどの場合は、デフォルトで十分です。

  • このパラメータを小さい値に設定すると、パフォーマンスが低下することがあります。使用頻度が低くパフォーマンスが問題にならないDADや、リクエスト数が限られているDADの場合は、小さい値に設定するとメリットが得られることがあります。

F.4.2.22 PlsqlNLSLanguage

このDADの変数NLS_LANGを指定します。このパラメータにより、環境変数NLS_LANGがオーバーライドされます。このパラメータを設定すると、PL/SQL Gatewayは指定されているNLS_LANGを使用してデータベースに接続します。接続後は、指定の言語と地域に切り替えるためにalter sessionコマンドが発行されます。中間層の文字セットがデータベースの文字セットと一致する場合、mod_plsqlモジュールによりセッション変更コールは発行されません。

カテゴリ
構文 PlsqlNLSLanguage string
PlsqlNLSLanguage America_America.UTF8
デフォルト なし

  • ほとんどのアプリケーションでは、PlsqlTransferModeがCHARに設定されています。これは、PlsqlNLSLanguage内のキャラクタ・セットがデータベースのキャラクタ・セットと一致する必要があることを意味します。ただし、データベースとmod_plsqlモジュールの文字セットがどちらも固定サイズで、幅が一致している場合は、文字セットが一致していなくてもかまいません。レスポンスの文字セットは、常にmod_plsqlモジュールの文字セットです。

  • PlsqlTransferModeがRAWに設定されている場合は、このパラメータを無視できます。

F.4.2.23 PlsqlPathAlias

プロシージャ・コールにマップする仮想パスの別名を指定します。これはアプリケーション固有です。このディレクティブは、PlsqlPathAliasProcedureと組み合せて使用します。

カテゴリ
構文 PlsqlPathAlias string
PlsqlPathAlias url
デフォルト なし

パスの別名を使用しないアプリケーションの場合は、このパラメータを省略できます。

F.4.2.24 PlsqlPathAliasProcedure

URLの仮想パスが、PlsqlPathAliasで構成されたパス別名と一致した場合にコールするプロシージャを指定します。

カテゴリ
構文 PlsqlPathAliasProcedure string
PlsqlPathAliasProcedure portal.wwpth_api_alias.process_download
デフォルト なし

パスの別名を使用しないアプリケーションの場合は、このパラメータを省略できます。

F.4.2.25 PlsqlRequestValidationFunction

アプリケーション定義のPL/SQLファンクションを指定します。このファンクションにより、リクエストされたプロシージャのこれ以上の処理を許可および禁止できます。このファンクションは、DADからの実行を禁止されたパッケージおよびプロシージャ・コールをブロック・アウトして、PL/SQLアプリケーションについて厳重なセキュリティを実装する場合に役立ちます。

このパラメータによって定義されるファンクションには、次のプロトタイプが必要です。

boolean function_name (procedure_name IN varchar2)

procedure_nameパラメータには、リクエストで実行しようとしているプロシージャの名前が含まれます。

たとえば、ブラウザからコールできるすべてのPL/SQLアプリケーション・プロシージャがパッケージmypkg内にある場合、このファンクションの実装は次のようなものになります。

boolean my_validation_check (procedure_name varchar2)
is
begin
  if (upper (procedure_name) like upper ('myschema.mypkg%')) then
    return TRUE
  else
    return FALSE
  end if;
end;
カテゴリ
構文 PlsqlRequestValidationFunction string
PlsqlRequestValidationFunction myschema.mypkg.my_validation_check
デフォルト なし

  • デフォルトでは、すでにmod_plsqlモジュールは、特定のスキーマおよびパッケージへのダイレクトURLアクセスを禁止しています。詳細は、「PlsqlExclusionList」を参照してください。

  • アプリケーションに属し、ブラウザからコールできるリクエストのみを許可するように、このファンクションを実装することをお薦めします。

  • このファンクションは、すべてのリクエストについてコールされるため、できるだけ最適化してください。たとえば、次のようにすることをお薦めします。

    • 前述の例と同じようにこのファンクションが実装されるように、PL/SQLパッケージに名前を付けます。

    • 実装で表参照を実行し、許可するパッケージおよびプロシージャを決定する場合、共有プールにカーソルを固定すると、パフォーマンスが改善されることがあります。

F.4.2.26 PlsqlSessionCookieName

PlsqlAuthenticationModeがSingleSignOnに設定されている場合、Cookie名を指定します。このパラメータがサポートされるのは、Oracle Fusion Middlewareのリリースのみで、Oracle PortalおよびOracleシングル・サインオンで使用されます。

カテゴリ
構文 PlsqlSessionCookieName cookie_name
PlsqlSessionCookieName mycookie
デフォルト DAD名と同じ

  • DADでSingleSignOn認証を使用しない場合は、このパラメータを省略できます。他のほとんどの場合は、セッションのCookie名を省略する必要があります(また、このパラメータはデフォルトで自動的にDAD名に設定されます)。

  • セッションのCookie名を指定する必要があるのは、分散Oracle Portal環境に参加する必要があるOracle Portalインスタンスについてのみです。これらのOracle Portalノードを、統合されたクラスタとしてシームレスに参加する必要がある場合は、すべての参加ノードのセッションCookie名が同じであることを確認してください。

  • 独立したOracle Portalノードでは、別のセッションCookie名を使用する必要があります。

F.4.2.27 PlsqlSessionStateManagement

各mod_plsqlリクエストの後に、パッケージとセッションの状態をクリーン・アップする方法を指定します。

  • StatelessWithResetPackageStateに設定すると、mod_plsqlモジュールは各mod_plsqlリクエストの後にdbms_session.reset_package_stateをコールします。これがデフォルトです。

  • StatelessWithPreservePackageStateに設定すると、mod_plsqlモジュールは各mod_plsqlリクエストの後にhtp.initをコールします。これにより、PL/SQL Web ToolKit内でセッション変数の状態がクリーンアップされます。PL/SQLアプリケーションは、そのアプリケーション固有のセッション状態のクリーンアップを行います。クリーンアップに失敗すると異常動作が発生し、リクエストは以前のリクエストで変更された状態の認識または操作を開始します。

  • StatelessWithFastResetPackageStateに設定すると、mod_plsqlモジュールは各mod_plsqlリクエストの後にdbms_session.modify_package_state(dbms_session.reinitialize)をコールします。このAPIはStatelessWithResetPackageStateモードより高速であり、一部のラッチ競合問題は回避されますが、このAPIが存在するのはリリース8.1.7.2以上のOracle Databaseのみです。このモードでは、メモリー使用量がデフォルト・モードよりやや多くなります。

カテゴリ
構文 PlsqlSessionStateManagement {StatelessWithResetPackageState | StatelessWithFastResetPackageState | StatelessWithPreservePackageState}
PlsqlSessionStateManagement StatelessWithPreservePackageState
デフォルト StatelessWithResetPackageState

  • 旧リリースの値stateful=noまたはstateful=STATELESS_RESETは、StatelessWithResetPackageStateに対応しています。

  • 旧リリースの値stateful=STATELESS_FAST_RESETは、StatelessWithFastResetPackageStateに対応しています。

  • 旧リリースの値stateful=STATELESS_PRESERVEは、StatelessWithPreservePackageStateに対応しています。

mod_plsqlモジュールでは、ステートフル・モードの操作はサポートされません。PL/SQLアプリケーションでステートフル動作を可能にするには、状態をCookieまたはデータベース(あるいはその両方)に保存します。

F.4.2.28 PlsqlTransferMode

データベースからのデータをmod_plsqlモジュールに送信するためのモードを指定します。ほとんどのアプリケーションでは、デフォルト値CHARを使用します。

カテゴリ
構文 PlsqlTransferMode {CHAR | RAW}
PlsqlTransferMode CHAR
デフォルト CHAR

このパラメータを変更する必要があるのは、同一のDADからのレスポンスを異なる文字セットで返送できるようにする場合のみです。このような場合にはCHARモードは使用できません。レスポンス・データが常にデータベースの文字セットからmod_plsqlの文字セットに変換されるためです。

F.4.2.29 PlsqlUploadAsLongRaw

デフォルトのBLOBデータ型を使用せずに、LONGRAWデータ型としてアップロードするファイルの拡張子を指定します。フィールドのファイル拡張子に複数行からなるディレクティブを指定することで、デフォルトをオーバーライドできます。このフィールドにアスタリスク(*)の値を指定すると、すべてのドキュメントがLONGRAW型としてアップロードされます。

カテゴリ
構文 PlsqlUploadAsLongRaw string multiline
PlsqlUploadAsLongRaw jpg

PlsqlUploadAsLongRaw gif

デフォルト なし

ドキュメントをアップロードまたはダウンロードしないアプリケーションの場合は、このパラメータを省略できます。

F.4.3 cache.conf

cache.confファイルには、mod_plsqlモジュールに実装されたファイル・システム・キャッシュ機能の構成の設定が含まれています。この構成ファイルが関係するのは、PL/SQLアプリケーションがOWA_CACHEパッケージを使用して、ファイル・システム内の動的生成コンテンツをキャッシュする場合のみです。

次のパラメータは、cache.confファイルで指定されます。

F.4.3.1 PlsqlCacheCleanupTime

キャッシュ・ストレージのクリーンアップの開始時刻を指定します。

この設定は、クリーンアップが発生する正確な日と時刻を定義します。頻度は日次、週次および月次に設定できます。

  • 頻度を日次で定義するには、キーワードEverydayを使用します。クリーンアップは毎日定義された時刻に始まります。たとえば、Everyday 2:00と指定すると、クリーンアップが毎日午前2時(現地時間)に発生します。

  • 頻度を週次で定義するには、曜日(SundayMondayTuesdayWednesdayThursdayFridaySaturday)を使用します。たとえば、Wednesday 15:30と指定すると、クリーンアップが毎週水曜日の午後3時30分(現地時間)に発生します。

  • 頻度を月次で定義するには、キーワードEverymonthを使用します。クリーンアップは月の最初の土曜日の定義された時刻に始まります。たとえば、Saturday Everymonth 23:00と指定すると、クリーンアップが毎月最初の土曜日の午後11時(現地時間)に発生します。

カテゴリ
構文 PlsqlCacheCleanupTime {Sunday-Saturday | Everyday | Everymonth} {hh:mm}
PlsqlCacheCleanupTime Monday 20:00
デフォルト Saturday 23:00

F.4.3.2 PlsqlCacheDirectory

mod_plsqlモジュールによってキャッシュ・ファイルが書き出されるディレクトリを指定します。このディレクトリは存在している必要があります。存在しない場合、Oracle HTTP Serverは起動しません。

UNIXでは、httpd子プロセスの所有者がこのディレクトリに対する書込み権限を持っている必要があります。

カテゴリ
構文 PlsqlCacheDirectory directory
PlsqlCacheDirectory "${ORACLE_INSTANCE}/servers/${COMPONENT_NAME}"
デフォルト なし

F.4.3.3 PlsqlCacheEnable

mod_plsqlのキャッシュを有効にします。

カテゴリ
構文 PlsqlCacheEnable {On | Off}
PlsqlCacheEnable On
デフォルト Off

アプリケーションでPL/SQL Web ToolkitのOWA_CACHEパッケージを使用しない場合は、キャッシュを無効にできます。そのような場合は、パフォーマンス上のメリットはほとんどありません。

F.4.3.4 PlsqlCacheMaxAge

キャッシュ済ファイルを、キャッシュ・メンテナンスのために削除されるまで、ファイル・システム・キャッシュに置くことができる最大期間(日数)を指定します。

この設定は、キャッシュ・システムに古いコンテンツが含まれないようにするためです。この設定により、古いキャッシュ・ファイルが削除され、新しいファイル用のスペースが作成されます。

カテゴリ
構文 PlsqlCacheMaxAge number
PlsqlCacheMaxAge 20
デフォルト 30 (日)

F.4.3.5 PlsqlCacheMaxSize

キャッシュ・ファイルの最大サイズを指定します。

この設定は、1つのファイルがキャッシュ全体を占有できないようにします。一般的には、この値は総キャッシュ・サイズ(PlsqlCacheTotalSizeで指定)の約1から3パーセントに設定することをお薦めします。

カテゴリ
構文 PlsqlCacheMaxSize number
PlsqlCacheMaxSize 1048576
デフォルト 1048576

F.4.3.6 PlsqlCacheTotalSize

キャッシュ・ディレクトリの合計サイズを指定します。デフォルトは20MBです。

この設定により、キャッシュで使用できる領域の量が制限されます。PL/SQLキャッシュとセッションCookieキャッシュがこのキャッシュ領域を共有します。この設定は厳密な制限ではありません。通常の処理中に、一時的にこの制限を超えることがあります。これは正常な動作です。

クリーンアップ・アルゴリズムでは、この設定を使用してキャッシュ・ファイルをどの程度削減するかを判断します。したがって、実際のスペース上限は、物理的なストレージの最大使用可能サイズです。

このパラメータは、次のように値としてバイト数を取ります。

  • 1MB=1048576バイト

  • 10MB=10485760バイト

カテゴリ
構文 PlsqlCacheTotalSize number
PlsqlCacheTotalSize 20971520
デフォルト 20971520 (バイト)