1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358
|
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 297028 $ -->
<section xml:id="oci8.configuration" xmlns="http://docbook.org/ns/docbook">
&reftitle.runtime;
&extension.runtime;
<para>
<table>
<title>OCI8 Configuration Options</title>
<tgroup cols="4">
<thead>
<row>
<entry>Name</entry>
<entry>Default</entry>
<entry>Changeable</entry>
<entry>Changelog</entry>
</row>
</thead>
<tbody>
<row>
<entry>oci8.connection_class</entry>
<entry>""</entry>
<entry>PHP_INI_ALL</entry>
<entry>Available since PHP 5.3 (PECL OCI8 1.3).</entry>
</row>
<row>
<entry>oci8.default_prefetch</entry>
<entry>"100"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PHP 5.1.2 (PECL OCI8 1.1).</entry>
</row>
<row>
<entry>oci8.events</entry>
<entry>Off</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PHP 5.3 (PECL OCI8 1.3).</entry>
</row>
<row>
<entry>oci8.max_persistent</entry>
<entry>"-1"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PHP 5.1.2 (PECL OCI8 1.1).</entry>
</row>
<row>
<entry>oci8.old_oci_close_semantics</entry>
<entry>Off</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PHP 5.1.2 (PECL OCI8 1.1).</entry>
</row>
<row>
<entry>oci8.persistent_timeout</entry>
<entry>"-1"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PHP 5.1.2 (PECL OCI8 1.1).</entry>
</row>
<row>
<entry>oci8.ping_interval</entry>
<entry>"60"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PHP 5.1.2 (PECL OCI8 1.1).</entry>
</row>
<row>
<entry>oci8.privileged_connect</entry>
<entry>Off</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PHP 5.1.2 (PECL OCI8 1.1).</entry>
</row>
<row>
<entry>oci8.statement_cache_size</entry>
<entry>"20"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PHP 5.1.2 (PECL OCI8 1.1).</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>
This user defined text is used by Oracle 11g Database
Resident Connection Pooling (DRCP) connections to
sub-partition the connection pool. It allows OCI8 persistent
connections from an application to reuse database sessions
from a previous PHP script, giving better scalability. When
an application uses a database pooled process previously used
with a different connection class, the session settings such
as the default Oracle date format are reset. This prevents
accidental sharing of information between different
applications.
</para>
<para>
The value can be set at runtime
with <function>ini_set</function> prior to connecting.
</para>
<para>
To use DRCP, OCI8 must be linked with Oracle 11g libraries
and the database must be Oracle 11g. The connection pool
must be enabled in the database,
the <literal>oci8.connection_class</literal> should be set to
the same string for all web servers running the same
application, and the OCI8 connection string must specify to
use a pooled server.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.oci8.default-prefetch">
<term>
<parameter>oci8.default_prefetch</parameter>
<type>int</type>
</term>
<listitem>
<para>
This option sets the default number of extra rows that will
be fetched and cached automatically whenever a low-level
request for data from the database is made. Setting a value
of <literal>0</literal> turns off prefetching.
</para>
<para>
The prefetch value does not alter the number of rows that
functions like <function>oci_fetch_array</function> return to
the user; the prefetching and caching of rows is handled
internally in OCI8.
</para>
<para>
The value can be set per-statement
with <function>oci_set_prefetch</function> prior to statement
execution.
</para>
<para>
In PHP 5.3 (PECL OCI8 1.3.4) the default value was increased
from <literal>10</literal> to <literal>100</literal>.
</para>
<para>
In PHP 5.3.2 (PECL OCI8 1.4) the minimum value settable was
reduced from <literal>1</literal> to <literal>0</literal>,
allowing prefetching to be turned off.
</para>
<note>
<simpara>
A larger prefetch can result in improved performance, at the
cost of some increased memory usage. For queries that return
large amounts of data, the performance benefit can be
significant.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.oci8.events">
<term>
<parameter>oci8.events</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Using <literal>On</literal> allows PHP to be notified of
database Fast Application Notification (FAN) events.
</para>
<para>
Without FAN, when a database instance or machine node fails
unexpectedly, PHP applications may be blocked waiting for a
database response until a TCP timeout expires. With FAN
events, PHP applications are quickly notified of failures
that affect their established database connections. The OCI8
extension will clean up unusable connections in the
persistent connection cache.
</para>
<para>
When using <literal>On</literal>, the database must also be
configured to post FAN events.
</para>
<para>
FAN support is available when OCI8 is linked with Oracle
10gR2 (or later) libraries and connected to Oracle Database
10gR2 (or later).
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.oci8.max-persistent">
<term>
<parameter>oci8.max_persistent</parameter>
<type>int</type>
</term>
<listitem>
<para>
The maximum number of persistent OCI8 connections per PHP
process. Setting this option to -1 means that there is no
limit.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.oci8.old-oci-close-semantics">
<term>
<parameter>oci8.old_oci_close_semantics</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
This option controls <function>oci_close</function> behaviour.
Enabling it means that <function>oci_close</function> will do
nothing; the connection will not be
closed until the end of the script. This is for backward
compatibility only. If you find that you need to enable this
setting, you are <emphasis>strongly encouraged</emphasis> to
adjust the <function>oci_close</function> calls in your
application instead of enabling this option.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.oci8.persistent-timeout">
<term>
<parameter>oci8.persistent_timeout</parameter>
<type>int</type>
</term>
<listitem>
<para>
The maximum number of seconds that a PHP process is allowed
to keep an idle persistent connection open. Setting this
option to -1 means that idle persistent connections will be
retained until the PHP process terminates or the connection
is explicitly closed with <function>oci_close</function>.
</para>
<note>
<simpara>
In PHP, the expiry of idle resources is not alarm-based. It
occurs when PHP finishes processing a script and checks the
last-used timestamp of resources. Hence there is a paradox
that idle connections can only be closed when there is some
activity (though not necessarily OCI8 related) in the PHP
process. The introduction of Database Resident Connection
Pooling (DRCP) in Oracle 11g resolves the memory and
resource issues that <literal>oci8.max_persistent</literal>
and <literal>oci8.persistent_timeout</literal> previously
attempted to overcome.
</simpara>
</note>
<note>
<simpara>
In PHP 5.3 (PECL OCI8 1.3), persistent connections can be
closed with <function>oci_close</function>.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.oci8.ping-interval">
<term>
<parameter>oci8.ping_interval</parameter>
<type>int</type>
</term>
<listitem>
<para>
The number of seconds that must pass before issuing a ping
during <function>oci_pconnect</function>. A ping ensures
that the database connection is valid. When set to 0,
persistent connections will be pinged every
time <function>oci_pconnect</function> is called. To disable
pings completely, set this option to -1.
</para>
<note>
<simpara>
Disabling pings allows <function>oci_pconnect</function> to
operate at the highest efficiency, but PHP may not be able
to detect unusable connections, such as caused by network
dropout, or if the Oracle database has gone down since PHP
connected, until the connection is used later in the
script. Consult the
<function>oci_pconnect</function> documentation for more information.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.oci8.privileged-connect">
<term>
<parameter>oci8.privileged_connect</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
This option allows connections to use the privileged external
credentials
<constant>OCI_SYSOPER</constant> or <constant>OCI_SYSDBA</constant>.
</para>
<note>
<simpara>
Seting this <literal>On</literal> can allow scripts on web
servers running with the appropriate OS user privileges to
connect as privileged database users without requiring a
database password. This can be a security risk.
</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>
This option enables statement caching, and specifies how many
statements to cache. To disable statement caching just set
this option to 0.
</para>
<para>
Statement caching removes the need to transmit the statement
text to the database and removes the need to transmit any
meta data about the statement back to PHP. This can
significantly improve overall system performance in
applications which reuse statements during the lifetime of a
connection. Some extra database "cursors" may be
held open under the assumption that statements will be
reused.
</para>
<para>
Set this value to the size of the working set of statements
used by your application. Setting too small a value can cause
statements to be flushed from the cache before they are
reused.
</para>
<para>
This option is of most use with persistent connections.
</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
-->
|