Newsgroups: php.general,php.internals,php.pecl.dev Path: news.php.net Xref: news.php.net php.general:221975 php.internals:18696 php.pecl.dev:2874 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 89303 invoked by uid 1010); 7 Sep 2005 16:35:20 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 89288 invoked from network); 7 Sep 2005 16:35:20 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 7 Sep 2005 16:35:20 -0000 X-Host-Fingerprint: 80.74.107.235 mail.zend.com Linux 2.5 (sometimes 2.4) (4) Received: from ([80.74.107.235:50597] helo=mail.zend.com) by pb1.pair.com (ecelerity 2.0 beta r(6323M)) with SMTP id 77/5E-23233-5EF0F134 for ; Wed, 07 Sep 2005 12:05:59 -0400 Received: (qmail 9151 invoked from network); 7 Sep 2005 16:05:53 -0000 Received: from internal.zend.office (HELO ?127.0.0.1?) (10.1.1.1) by internal.zend.office with SMTP; 7 Sep 2005 16:05:53 -0000 Message-ID: <431F0FD9.4080903@zend.com> Date: Wed, 07 Sep 2005 20:05:45 +0400 User-Agent: Mozilla Thunderbird 1.0.6 (X11/20050715) X-Accept-Language: en-us, en MIME-Version: 1.0 To: php-dev , pecl-dev@lists.php.net, php-general@lists.php.net Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit Subject: OCI8 1.1 announce From: antony@zend.com (Antony Dovgal) 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