Reply to OCI8 1.1 announce

Your name:

Reply:


Posted by Antony Dovgal on 09/07/05 19:05

Hi all,

Yesterday OCI8 extension have been updated in the PHP CVS (HEAD only).
This updated driver resolves a large amount of bug reports and adds
some improvements both functionality and performance, and much better
documentation (see here: http://php.net/oci8).

A lot of time has been invested in updating this driver including
help from Wez Furlong and the OCI team which gave a lot of feedback
on how to do things the best and most efficient way.

Version 1.1 is available through PECL (http://pecl.php.net).
It works with PHP 5 and PHP 4, so please go ahead and install it.
Feel free to send me feedback or open a bug report via bugs.php.net
if you find something.

This new version should be 100% compatible with the old one, so you
don't have to make any changes to your scripts to switch to the
new version.

To install it run this command:
pear install oci8-beta

Make sure that you have PHP built without oci8 enabled if
you're going to build the new oci8 as a shared extension.

The following is a list of many issues that were dealt with including
new functionality (such as statement caching and data prefetching):

Major changes:
--------------
- The connection handling algorithm was rewritten. That should add
stability and fix all non-reproducible crashes etc;
- The extension was refactored and divided into several files to
improve readability and to make it easier to maintain;
- Added support for statement caching;
- Added support for privileged connections using external credentials;
- Added new INI options to manage persistent connections;
- Fixed oci_close() to close connections correctly.

Fixed bugs:
-----------
#33915 - crash in _oci_close_session
#26393 - Segfault during request shutdown in _oci_close_session() (oci8.c:2443)

#32741 - hang on ociexecute() with collections (only with 10g, works with 9i)
#32325 - can't retrieve collection using OCI8
#33583 - Apache1.3.33 Segmentation fault with php5 & OCI_New_Collection

#32361 - connection oci_connect stay persist after process the php
#29013 - multiple logins cause handles become invalid
#28944 - OCITypeByName: OCI-21522 with two connections

Fixed by rewriting the connection handling

#32140 - NVARCHAR columns are truncated
#31042 - oci_fetch_* sets field value to false
#27156 - OCIFetchInto returns false as column value when column
contains >1 umlaut

Fixed by multiplying the buffer size by 3.

#33866 - OCIlogon do not returns conn resource for account with expired paswd
#33365 - logon fails when password expires

Fixed by adding the new oci_password_change() call syntax.

#33159 - DB-connect via webserver fails after DB-restart ORA-24327
#30808 - oci8 cannot connect after restarting DB
#30127 - lost oracle connection. need restart apache.
#29902 - oci8 doesn't disconnect sessions, overloads oracle server
#29779 - (the same issue with the Oracle server going offline)
#26829 - Killed Oracle Sessions openned with OCIPLogon()

Fixed by adding oci8.ping_interval option.

#32988 - ext/oci8: OCI doesn't support DB external authentication

Fixed by adding support of external credentials (turned off by default).

New features:
-------------
- Connections are now using private environment handles (this fixed a
lot of mysterious segfaults especially under high load)

-Implemented statement caching (if supported by the Oracle version).
Use oci8.statement_cache_size option to tune the cache size or turn
caching off.

- Persistent connections are checked for liveness. Use
oci8.ping_interval option to tune frequency of these checks.

- Implemented privileged connects using oci_connect()/ocilogon()
functions. Use oci8.privileged_connect option to turn it On/Off.

- oci_password_change() can be used to change password in case you
are not able to connect to the Oracle server. To do that call use
oci_password_change($dbname, $user, $old_password, $new_password) syntax.


New ini options:
----------------
- oci8.statement_cache_size Used to tune statement cache size or to
turn statement caching off (with -1). The default value is 20.

- oci8.ping_interval Used to tune the frequency of checks done on
persistent connections or to turn pings off (with -1). The default
value is 60, which means that a ping will be initiated on each call
to oci_pconnect() that takes place after the connection has been idle
for 60 seconds.

- oci8.max_persistent Used to specify the maximum number of
persistent connections per process. The default value is -1, which
means there is no limit.

- oci8.persistent_timeout
Used to specify the maximum length of time a persistent connection
will be held idle. The default value is -1, which means there is no limit.

- oci8.privileged_connect
Used to turn on/off ability to connect to Oracle server as
SYSDBA/SYSOPER using external credentials. The default value is Off.

- oci8.default_prefetch
Used to specify size of the buffer which is used when prefetching
statements. The default value is -1, which means the prefetching is off.
- oci8.old_oci_close_semantics
For BC reasons only. Enabling it means that oci_close() will do
nothing; the connection will not be closed until the end of the script.

--
Wbr,
Antony Dovgal

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация