connection = (php_oci_connection *)le->ptr;
if (connection->used_this_request) {
+ if ((PG(connection_status) & PHP_CONNECTION_TIMEOUT)) {
+ /* call OCIBreak() on timeout to avoid appearance of deadlocked persistent connections */
+ connection->errcode = PHP_OCI_CALL(OCIBreak, (connection->svc, connection->err));
+ if (connection->errcode != OCI_SUCCESS) {
+ php_oci_error(connection->err, connection->errcode TSRMLS_CC);
+ PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
+ /* OCIBreak() failed. delete the connection */
+ return 1;
+ }
+ }
+
if (connection->descriptors) {
zend_hash_destroy(connection->descriptors);
efree(connection->descriptors);