RE: [PHP] Re: Understanding persistent connections with oci8



Hi again Richard,

Excellent points about the purpose of "persistent" connections and
"timeout". But let's get to your concluding statement:

"Each active "persistent" connection ties up valuable resources. The
cost/benefit ratio has to be examined carefully and tweaked under
real-world load in dev box tests to be sure you're doing something
sensible."

I agree and right now all there is in the way of tools for an
administrator to use within the PHP configuration is the number of
persistent connections per server and the timeout interval. These are a
bit crude as tools, but as the persistent_timeout now works it is
useless as a tool to tear down unneeded, expensive connections that are
no longer being used.

I would think in a customer site, that the customer database and
network administrators would be the ones making decisions or providing
the input on when to let persistent connections go unencumbered and when
to start cutting them down during what ever cycles of business they use.
Now obviously the oci8.persistent_timeout as it now implemented will be
of no help here at all. So the question here may be more of is the
oci8.persistent_timeout a possible tool with changes to use for this, or
should there be something, may outside of php used. And if the latter,
is there any reason to even have the oci8.persistent_timeout.

I need to spend some cycle talking to the php maintainers to see if we
can come to some understanding.

Thanks and regards, Jay

-----Original Message-----
From: Richard Lynch [mailto:ceo@xxxxxxxxx]
Sent: Thursday, October 12, 2006 1:37 PM
To: Bauer, Jay W
Cc: Roman Neuhauser; php-general@xxxxxxxxxxxxx; Mendonce, Kiran (STSD);
Nikiel, Carsten; Rai, Moni (GSE WTEC Cupertino); Rieslund, Mikael;
Bauer, Jay W
Subject: RE: [PHP] Re: Understanding persistent connections with oci8

On Thu, October 12, 2006 12:10 pm, Bauer, Jay W wrote:
Again if someone is using this oci8.persistent_timeout they are using

it because they want a way of controlling how long these connections
stay around.

Actually, that's an over-simplification of the purpose of "persistent"
and "timeout"

The purpose of "persistent" is to avoid spending CPU cycles tearing down
and building up complex data structures with large buffers, while
maintaining the security/integrity of any given user/pass should have 0
chance of accessing "persisted" (to coin a word) data that is not their
data.

The purpose of "timeout" is to tear down unused expensive connections if
they are not actively being used, or about to be used in 1 microsecond.

Once you understand this, the PHP behaviour makes perfect sense.

It is a very very very common mis-perception, and your customers are not
the first, and won't be the last, to complain that it's broken.

What I see as needed is clear documentation regarding how this
timeout works and what it does and under what circumstances a
persistent connection will terminate when the timeout is set to a time

other than -1, or infinite.

Put it in the User Contributed Notes. :-)

I don't see this as a major coding issue, simply one of documentation

and possibly implementing a small change which would actually
implement an action once the timeout occurred. Obviously this 10 sec
timeout being used is for testing to see the behavior, I would expect
that normally the time, if not -1 and infinite would be more along the

line of hours in the real world.

I have no idea what real world times are, but would never presume that
they'd be hours rather than 10 seconds...

Each active "persistent" connection ties up valuable resources. The
cost/benefit ratio has to be examined carefully and tweaked under
real-world load in dev box tests to be sure you're doing something
sensible.

--
Some people have a "gift" link here.
Know what I want?
I want you to buy a CD from some starving artist.
http://cdbaby.com/browse/from/lynch
Yeah, I get a buck. So?
.



Relevant Pages

  • RE: [PHP] Re: Understanding persistent connections with oci8
    ... to limit how long these connections hang around. ... these persistent connections and would have to hit the apache web server ... terminate after the timeout. ... minute and then make another round of the same php requests. ...
    (php.general)
  • Re: timout issues in cube processing SSAS 2005
    ... In BIDS double click on your data sourceand change parameter "Maximum Number of connections" to something smaller, ... All this will increase your processing time, buy you might avoid timeout. ... exec sp_configure @configname='remote query timeout ',@configvalue ... Analysis Services 2005 is on the same box as the SQL Server 2005 DB. ...
    (microsoft.public.sqlserver.olap)
  • Re: SQL2000 - Merge Replication - Timeout error
    ... The timeout is in your publisher and distributor server, ... We have merge replication running successfully between 2 SQL2000 boxes ... connections. ...
    (microsoft.public.sqlserver.replication)
  • Re: Async socket & active connections
    ... You could argue that blocking affects ... The "blocking = true" in the disconnect phase seems to solve the ... The second thing I noticed is that the cleanup procedure for 0 timeout ... 300K connections, enough to start worrying... ...
    (microsoft.public.dotnet.languages.csharp)
  • RE: [PHP] Re: Understanding persistent connections with oci8
    ... that's an over-simplification of the purpose of "persistent" ... The purpose of "timeout" is to tear down unused expensive connections ... if not -1 and infinite would be more along the line ...
    (php.general)