mirror of
https://github.com/php/doc-ja.git
synced 2026-03-24 07:02:08 +01:00
385 lines
17 KiB
XML
385 lines
17 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: satoruyoshida Status: ready -->
|
|
<!-- CREDITS: shimooka,mumumu -->
|
|
<section xml:id="oci8.configuration" xmlns="http://docbook.org/ns/docbook">
|
|
&reftitle.runtime;
|
|
&extension.runtime;
|
|
<para>
|
|
<table>
|
|
<title>OCI8 設定オプション</title>
|
|
<tgroup cols="4">
|
|
<thead>
|
|
<row>
|
|
<entry>&Name;</entry>
|
|
<entry>&Default;</entry>
|
|
<entry>&Changeable;</entry>
|
|
<entry>&Changelog;</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody xml:id="oci8.configuration.list">
|
|
<row>
|
|
<entry><link linkend="ini.oci8.connection-class">oci8.connection_class</link></entry>
|
|
<entry>""</entry>
|
|
<entry><constant>INI_ALL</constant></entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><link linkend="ini.oci8.default-prefetch">oci8.default_prefetch</link></entry>
|
|
<entry>"100"</entry>
|
|
<entry><constant>INI_SYSTEM</constant></entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><link linkend="ini.oci8.events">oci8.events</link></entry>
|
|
<entry>Off</entry>
|
|
<entry><constant>INI_SYSTEM</constant></entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><link linkend="ini.oci8.max-persistent">oci8.max_persistent</link></entry>
|
|
<entry>"-1"</entry>
|
|
<entry><constant>INI_SYSTEM</constant></entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><link linkend="ini.oci8.old-oci-close-semantics">oci8.old_oci_close_semantics</link></entry>
|
|
<entry>Off</entry>
|
|
<entry><constant>INI_SYSTEM</constant></entry>
|
|
<entry>PHP 8.1.0 以降は非推奨。</entry>
|
|
</row>
|
|
<row>
|
|
<entry><link linkend="ini.oci8.persistent-timeout">oci8.persistent_timeout</link></entry>
|
|
<entry>"-1"</entry>
|
|
<entry><constant>INI_SYSTEM</constant></entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><link linkend="ini.oci8.ping-interval">oci8.ping_interval</link></entry>
|
|
<entry>"60"</entry>
|
|
<entry><constant>INI_SYSTEM</constant></entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><link linkend="ini.oci8.prefetch-lob-size">oci8.prefetch_lob_size</link></entry>
|
|
<entry>"0"</entry>
|
|
<entry><constant>INI_ALL</constant></entry>
|
|
<entry>PECL OCI8 3.2 以降で利用可能</entry>
|
|
</row>
|
|
<row>
|
|
<entry><link linkend="ini.oci8.privileged-connect">oci8.privileged_connect</link></entry>
|
|
<entry>Off</entry>
|
|
<entry><constant>INI_SYSTEM</constant></entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><link linkend="ini.oci8.statement-cache-size">oci8.statement_cache_size</link></entry>
|
|
<entry>"20"</entry>
|
|
<entry><constant>INI_SYSTEM</constant></entry>
|
|
<entry></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
|
|
&ini.descriptions.title;
|
|
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry xml:id="ini.oci8.connection-class">
|
|
<term>
|
|
<parameter>oci8.connection_class</parameter>
|
|
<type>string</type>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
このユーザー定義テキストは、接続プールの下位区画への Oracle
|
|
データベース常駐接続プーリング (DRCP) 接続によって使用されます。
|
|
これにより、DRCP コネクションプールのサブパーティショニングが可能になり、
|
|
アプリケーションによる OCI8 持続的接続で、
|
|
前の PHP スクリプト由来のデータベース・セッションを再利用できます。
|
|
その結果、より良い拡張性が得られます。
|
|
異なる接続クラスで以前に使用された処理をプールしたデータベースをアプリケーションで使用する際に、
|
|
既定の Oracle 日付フォーマットのようなセッション設定はリセットされます。
|
|
これにより、異なるアプリケーションの間で情報を思いがけずに共有することを防ぎます。
|
|
</para>
|
|
<para>
|
|
接続する前に、 <function>ini_set</function> で実行時に
|
|
値を設定できます。
|
|
</para>
|
|
<para>
|
|
DRCP を使用するには、 OCI8 は Oracle 11<emphasis>g</emphasis> (またはそれ以降の) ライブラリとリンクされ、
|
|
データベースは Oracle 11<emphasis>g</emphasis> (またはそれ以降)でなければいけません。
|
|
接続プールはデータベース内で有効にしなければいけません。
|
|
<literal>oci8.connection_class</literal> は、
|
|
同一のアプリケーションを稼動する web サーバーの全てで同じ文字列を設定しなければいけません。
|
|
そして、 OCI8 接続文字列 はプールされたサーバーを使用することを指定しなければいけません。
|
|
アプリケーションは持続的接続を使うべきです。
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ini.oci8.default-prefetch">
|
|
<term>
|
|
<parameter>oci8.default_prefetch</parameter>
|
|
<type>int</type>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
このオプションは、データベースからのデータに対する低レベルの
|
|
要求が作成されたときにいつでも自動的にフェッチされ、キャッシュ
|
|
されるデフォルトの追加行数を設定します。
|
|
プリフェッチを無効にするには、値を <literal>0</literal> に
|
|
設定します。
|
|
</para>
|
|
<para>
|
|
プリフェッチ値は、 <function>oci_fetch_array</function>
|
|
のような関数がユーザーに返す行数を変えません。
|
|
行のプリフェッチ及びキャッシングは OCI8 の内部で取り扱われます。
|
|
</para>
|
|
<para>
|
|
その値は、ステートメント実行の前に <function>oci_set_prefetch</function>
|
|
でステートメントごとに設定できます。
|
|
</para>
|
|
<para>
|
|
Oracle Database 12<emphasis>c</emphasis> (またはそれ以降)では、PHP で設定したプリフェッチの値を
|
|
Oracle のクライアント設定ファイル <literal>oraaccess.xml</literal> で上書きできます。
|
|
詳細は、Oracle のドキュメントを参照ください。
|
|
</para>
|
|
<note>
|
|
<simpara>
|
|
プリフェッチをより大きくすると、メモリ使用量の増加と引き替えに
|
|
パフォーマンスの改善につながります。
|
|
大量のデータを返す照会に対しては、パフォーマンスの利点は重要な意義を持てます。
|
|
</simpara>
|
|
</note>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ini.oci8.events">
|
|
<term>
|
|
<parameter>oci8.events</parameter>
|
|
<type>bool</type>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
<literal>On</literal> を使うと、 PHP でデータベースの
|
|
Fast Application Notification (FAN) イベントが通知されます。
|
|
</para>
|
|
<para>
|
|
FAN 無しでは、データベース・インスタンスやマシン・ノードが予期せず故障した際、
|
|
PHP アプリケーションは、 TCP タイムアウトの満期になるまでデータペースのレスポンスを待って
|
|
ブロックされてしまうかもしれません。
|
|
FAN イベントにより、確立したデータベース接続に影響する故障が
|
|
PHP アプリケーションに素早く通知されます。
|
|
OCI8 拡張モジュールでは、
|
|
持続的接続キャッシュ内の利用されていない接続をクリーンアップします。
|
|
</para>
|
|
<para>
|
|
<literal>On</literal> を使う際は、 FAN イベントをポストするように
|
|
データベースも構成しなければいけません。
|
|
</para>
|
|
<para>
|
|
FAN サポートは、 OCI8 が Oracle 10<emphasis>g</emphasis>R2 以降のライブラリとリンクされ、
|
|
Oracle データベース 10<emphasis>g</emphasis>R2 以降に接続する場合に利用できます。
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ini.oci8.max-persistent">
|
|
<term>
|
|
<parameter>oci8.max_persistent</parameter>
|
|
<type>int</type>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
PHP プロセスあたりの持続的な OCI8 接続の最大値を指定します。
|
|
このオプションを -1 に設定することは、制限なしを意味します。
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ini.oci8.old-oci-close-semantics">
|
|
<term>
|
|
<parameter>oci8.old_oci_close_semantics</parameter>
|
|
<type>bool</type>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
このオプションは <function>oci_close</function>
|
|
の動作を制御します。有効にすると、<function>oci_close</function>
|
|
は何も行いません。接続はスクリプトの終了まで閉じられません。
|
|
これは後方互換性のためのみに存在しています。
|
|
この設定を有効にする必要があると判明した場合、
|
|
このオプションを有効にする代わりに、
|
|
アプリケーションで <function>oci_close</function> を調整することが
|
|
<emphasis>強く推奨</emphasis>されます。
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ini.oci8.persistent-timeout">
|
|
<term>
|
|
<parameter>oci8.persistent_timeout</parameter>
|
|
<type>int</type>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
アイドル状態の持続的接続を PHP プロセスが開いたままにする最大秒数
|
|
を指定します。
|
|
このオプションを -1 に設定すると、 PHP 処理が終了するか、または
|
|
接続が <function>oci_close</function> で明示的に終了されるまで、
|
|
アイドル状態の持続的接続が保持されます。
|
|
</para>
|
|
<note>
|
|
<simpara>
|
|
PHP では、アイドル状態のリソースの消滅は、警報ベースではありません。
|
|
PHP がスクリプト処理を終了して、リソースの最終使用タイムスタンプをチェックする際に発生します。
|
|
そのため、 (OCI8 関係に限らず) PHP 処理内で何らかの活動がある場合にのみ、
|
|
アイドル状態の接続が閉じられるというパラドックスがあります。
|
|
PHP のプロセスが複数ある場合は、
|
|
それぞれを個別にアクティブにしないと
|
|
アイドル状態のリソースを消すことができません。
|
|
Oracle 11<emphasis>g</emphasis> でデータベース常駐接続プーリング (DRCP) が導入されたことにより、
|
|
<literal>oci8.max_persistent</literal> や <literal>oci8.persistent_timeout</literal>
|
|
が以前に克服しようとしたメモリ及びリソースの問題が解決されます。
|
|
</simpara>
|
|
</note>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ini.oci8.ping-interval">
|
|
<term>
|
|
<parameter>oci8.ping_interval</parameter>
|
|
<type>int</type>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
<function>oci_pconnect</function> の間、ping
|
|
を発行するまでに経過させる秒数を指定します。
|
|
ping はデータベース接続が有効か確認します。
|
|
0 に設定した場合、持続的接続は <function>oci_pconnect</function> が
|
|
呼び出される度に ping を発行します。
|
|
ping を完全に無効にするためには、このオプションを -1 に設定します。
|
|
</para>
|
|
<note>
|
|
<simpara>
|
|
ping を無効にすることにより <function>oci_pconnect</function>
|
|
は最高の効率で処理できますが、ネットワークの脱落や
|
|
PHP が接続した後に Oracle データベースがダウンした場合、
|
|
その後のスクリプトで接続が使われるまで
|
|
利用できない接続を PHP は検出できないでしょう。
|
|
詳細な情報は <function>oci_pconnect</function> を参照ください。
|
|
</simpara>
|
|
</note>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ini.oci8.prefetch-lob-size">
|
|
<term>
|
|
<parameter>oci8.prefetch_lob_size</parameter>
|
|
<type>int</type>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
これは、LOB データの内部バッファに影響するチューニングパラメータです。
|
|
この値を増やすと、PHP とデータベース間の小さな LOB
|
|
データの読み書きに掛かる時間が減り、パフォーマンスが向上します。
|
|
メモリ使用量も変化します。
|
|
</para>
|
|
<para>
|
|
この値は、OCILob のインスタンスが返す LOB や、
|
|
<constant>OCI_RETURN_LOBS</constant> を使って返される
|
|
LOB に影響します。
|
|
</para>
|
|
<para>
|
|
この値は、ステートメントを実行する前に、
|
|
<function>oci_set_prefetch_lob</function> を使ってステートメント単位で設定できます。
|
|
</para>
|
|
<note>
|
|
<simpara>
|
|
Oracle Database 12.2 以降で利用可能です。
|
|
</simpara>
|
|
</note>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ini.oci8.privileged-connect">
|
|
<term>
|
|
<parameter>oci8.privileged_connect</parameter>
|
|
<type>bool</type>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
このオプションにより特権のある外部の信用
|
|
(<constant>OCI_SYSOPER</constant>, <constant>OCI_SYSDBA</constant>)
|
|
を利用して接続できます。
|
|
</para>
|
|
<note>
|
|
<simpara>
|
|
これを <literal>On</literal> に設定することにより、
|
|
適切な OS ユーザー権限で稼動している Web サーバー上のスクリプトで
|
|
データベースのパスワードを必要とせずに、
|
|
特権を持つデータベース・ユーザーとして接続できます。
|
|
これはセキュリティーのリスクになりえます。
|
|
</simpara>
|
|
</note>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ini.oci8.statement-cache-size">
|
|
<term>
|
|
<parameter>oci8.statement_cache_size</parameter>
|
|
<type>int</type>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
このオプションはステートメントキャッシュを有効にします。
|
|
また、キャッシュするステートメントの数を指定します。
|
|
ステートメントキャッシュを無効にする場合、このオプションを 0
|
|
に設定してください。
|
|
</para>
|
|
<para>
|
|
ステートメントキャッシングにより、
|
|
ステートメント・テキストをデータベースに渡したり、
|
|
ステートメントに関するあらゆるメタデータを PHP に戻したりする必要性がなくなります。
|
|
これにより、接続の有効期間中、ステートメントを再利用するアプリケーションで、
|
|
全体的なシステム・パフォーマンスを大幅に向上させられます。
|
|
一部の特別なデータベース "カーソル" では、
|
|
ステートメントが再利用されるであろうという仮定の下に、
|
|
開いたまま保たれるかもしれません。
|
|
</para>
|
|
<para>
|
|
アプリケーションで使用されるステートメントのワーキングセットのサイズに
|
|
この値を設定します。小さすぎる値を設定すると、
|
|
それらが再利用される前にキャッシュからステートメントがフラッシュされる結果になります。
|
|
</para>
|
|
<para>
|
|
このオプションは、持続的接続の利用の多くの場合に役立ちます。
|
|
</para>
|
|
<para>
|
|
Oracle Database 12<emphasis>c</emphasis> (またはそれ以降) では、
|
|
この値はOracle クライアントの <literal>oraaccess.xml</literal> で自動的に設定されます。
|
|
詳細は、Oracle のドキュメントを参照ください。
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</section>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|
|
|
|
|