#22986 [Opn]: Unhappily 'conection cache' handling

From: Date: Mon, 19 May 2003 03:31:02 +0000
Subject: #22986 [Opn]: Unhappily 'conection cache' handling
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-39922@lists.php.net to get a copy of this message
 ID:               22986
 Updated by:       kalowsky@php.net
 Reported By:      ray at unreal64 dot net
 Status:           Open
 Bug Type:         Feature/Change Request
 Operating System: Windows NT4.0
-PHP Version:      4CVS-2003-03-31 (stable)
+PHP Version:      PHP v4.x
 New Comment:

Updating the verison since this effects ALL PHP4 installations. 
Hopefully this won't be the case with 5 if I can get things done :)


Previous Comments:
------------------------------------------------------------------------

[2003-05-18 22:30:15] kalowsky@php.net

Yes yes, this is on my TODO list.  In fact it's kind of working
already, I just haven't commited any code.  Moving this from a bug to a
feature request, because it's not really a bug.

You are correct though that you can change the password/user to get
around this, but an even easier solution is to change the cursor type. 


------------------------------------------------------------------------

[2003-04-24 01:16:59] ray at unreal64 dot net

I didn't try binaries, but I looked on current sources and checked
changes on ODBC files.

I didn't find anything in php_odbc.c (odbc_do_connect) which solves
cache problem. I expected adding connection 'flag' or
'odbc_connect_nocache' or something. 

Still there is 'connection' handling which setups hash array and ALWAYS
search array and reuse connections. It causes problems with
transactions and more physical connections.

Let me know, if I missed something :)

R.

------------------------------------------------------------------------

[2003-04-23 04:20:50] sniper@php.net

Please try using this CVS snapshot:

  http://snaps.php.net/php4-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-STABLE-latest.zip



------------------------------------------------------------------------

[2003-03-31 11:57:46] why at email dot address dot com

Pgsql solves this trouble by 'connection flags' and
PGSQL_CONNECT_FORCE_NEW.

------------------------------------------------------------------------

[2003-03-31 11:51:22] ray at unreal64 dot net

Hi !

ODBC function "odbc_do_connect" caches connection. It setup
"hashed_details" variable and tries to reuse physical DB connection if
new PHP connection is being created.

It brings BIG problem while creating more complicated things. Imagine,
you have some long server side action over database running in
transaction (allready get point ? :) Thin client need to show procedure
progress. Details are not important, but client 'shows' progress bar.
So, inside 'big' server side action, need to be updated 'progress'
table which is used by another HTTP request to show real progress to
user (action can take tenths seconds).

So, if I need to open 2 separate connections, I am in the trouble.
Ofcourse, the same user, the same password, the same cursor type. I
think it is ugly to create separate user do to this :) [even it is
temporary solcution ofcourse]

So, I suggest to add parameter to PHP's odbc_connect/pconnect -
something like "I am not soo stupid as I look and I really need 2
connections" or add 'flag' to 'cursor type' (and declare this last
parameter as 'connection flags' rather 'cursor type') - something like
SQL_FLG_NO_CONN_CACHE.

Would be nice feature :) If it is 'someway' possible, please, let me
know. I didn't find how.

Thank you,
Have a niceday
Ray

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=22986&edit=1



Thread (11 messages)

« previous php.bugs (#39922) next »