/
ini.xml
406 lines (401 loc) · 15.3 KB
/
ini.xml
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
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<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 xml:id="oci8.configuration.list">
<row>
<entry><link linkend="ini.oci8.connection-class">oci8.connection_class</link></entry>
<entry>""</entry>
<entry>PHP_INI_ALL</entry>
<entry>Available since PECL OCI8 1.3.</entry>
</row>
<row>
<entry><link linkend="ini.oci8.default-prefetch">oci8.default_prefetch</link></entry>
<entry>"100"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PECL OCI8 1.1.</entry>
</row>
<row>
<entry><link linkend="ini.oci8.events">oci8.events</link></entry>
<entry>Off</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PECL OCI8 1.3.</entry>
</row>
<row>
<entry><link linkend="ini.oci8.max-persistent">oci8.max_persistent</link></entry>
<entry>"-1"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PECL OCI8 1.1.</entry>
</row>
<row>
<entry><link linkend="ini.oci8.old-oci-close-semantics">oci8.old_oci_close_semantics</link></entry>
<entry>Off</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PECL OCI8 1.1. Deprecated as of PHP 8.1.0.</entry>
</row>
<row>
<entry><link linkend="ini.oci8.persistent-timeout">oci8.persistent_timeout</link></entry>
<entry>"-1"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PECL OCI8 1.1.</entry>
</row>
<row>
<entry><link linkend="ini.oci8.ping-interval">oci8.ping_interval</link></entry>
<entry>"60"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PECL OCI8 1.1.</entry>
</row>
<row>
<entry><link linkend="ini.oci8.prefetch-lob-size">oci8.prefetch_lob_size</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PECL OCI8 3.2.</entry>
</row>
<row>
<entry><link linkend="ini.oci8.privileged-connect">oci8.privileged_connect</link></entry>
<entry>Off</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PECL OCI8 1.1.</entry>
</row>
<row>
<entry><link linkend="ini.oci8.statement-cache-size">oci8.statement_cache_size</link></entry>
<entry>"20"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since 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 should always be set when using Oracle Database
Resident Connection Pooling (DRCP). It allows sub-partitioning of the
DRCP connection pool, allowing 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 11<emphasis>g</emphasis>
(or later) libraries and the database must be Oracle
11<emphasis>g</emphasis> (or later). The DRCP 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. The application should use persistent connections.
</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>
<para>
When using Oracle Database 12<emphasis>c</emphasis> (or later), the prefetch
value set by PHP can be overridden by Oracle's
client <literal>oraaccess.xml</literal> configuration file. Refer
to Oracle documentation for more detail.
</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>bool</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
10<emphasis>g</emphasis>R2 (or later) libraries and connected to Oracle Database
10<emphasis>g</emphasis>R2 (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>bool</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. If there is more than one PHP process then each
must individually be activated in order to trigger expiry of
its idle resources. The introduction of Database Resident
Connection Pooling (DRCP) in Oracle 11<emphasis>g</emphasis> 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.prefetch-lob-size">
<term>
<parameter>oci8.prefetch_lob_size</parameter>
<type>int</type>
</term>
<listitem>
<para>
This is a tuning parameter affecting internal buffering of LOB data.
Increasing this value can improve the performance of fetching smaller
LOBs by reducing round-trips between PHP and the database. Memory
usage will change.
</para>
<para>
The value affects LOBs returned as OCI-Lob instances and also those
returned using <constant>OCI_RETURN_LOBS</constant>.
</para>
<para>
The value can be set per-statement
with <function>oci_set_prefetch_lob</function> prior to statement
execution.
</para>
<note>
<simpara>
Use with Oracle Database 12.2 or later.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.oci8.privileged-connect">
<term>
<parameter>oci8.privileged_connect</parameter>
<type>bool</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>
<para>
When using Oracle Database 12<emphasis>c</emphasis> (or later), this
value can be overridden and automatically tuned by Oracle's
client <literal>oraaccess.xml</literal> file. Refer to
Oracle documentation for more detail.
</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
-->