Re: [PHP-DB] database connection timeout

2005-03-24 Thread Martin Norland
Juffermans, Jos wrote:
Hi,
[snip]
Hello, again.
I'm afraid phrasing a question multiple ways over a course of days tends 
not to have much success.  In an effort to avoid populating google with 
just the question, I will give to you what I would try.

( please note the irony of this  now. )
I'm trying to connect to an Oracle database (using ocilogon) which is in a
different country and connected to our serverfarm via a VPN (the database
has no public access). Unfortunately the VPN or the database is not always
available. In those cases I will present the visitor with a page explaining
that the service is unavailable.
[snip]
Is it that it's not always available, or that it needs time to 'come 
back up'.  You may want to try running some random low-traffic 
application over it to make sure it remains running.  Some simple SNMP 
protocol or even simpler just connect to a remote GKrellM.  Heck, a ssh 
connection with top running would do - just something that is constantly 
transmitting a trickle of data.

My problem is that ocilogon takes a long time to return control if the
connection cannot be established - often even more than 30 seconds. I've
learned that if a connection can be established it'll happen in only a few
seconds (usually within 1 second) and am convinced that if the connection is
not established in eg 5 seconds, there is no point in waiting another eg 30
seconds. How can I tell ocilogon to timeout after eg 5 seconds (like you can
with fsockopen)?
[snip]
I can't claim whether or not it will work since I don't have an Oracle 
server handy, so I will merely name functions and talk a bunch.

Essentially, you want ocilogon (complex network function to login to a 
networked Oracle [in this case] server) to timeout just like fsockopen 
(fairly simple function to open a socket, including network resources). 
 My suggestion is to try connecting using fsockopen, with the timeout. 
 If it successfully connects - chances are, the majority of the time, 
your ocilogon that follows will work as well.

Unfortunately, the stream_set_* functions rely on a valid stream 
resource, so they won't work with ocilogon (if there was any chance they 
would).  That would have been a nice route to go otherwise.

Another dirty little trick you might use is running the ocilogon in a 
separate script and making use of set_time_limit() to make sure it 
doesn't run too long.  Just be sure not to set_time_limit() for your 
whole set of scripts, unless you really want them to abort after the 5 
or 10 second limit you're setting ocilogon (unlikely).

cheers,
--
- Martin Norland, Sys Admin / Database / Web Developer, International 
Outreach x3257
The opinion(s) contained within this email do not necessarily represent 
those of St. Jude Children's Research Hospital.

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


RE: [PHP-DB] database connection timeout

2005-03-24 Thread Juffermans, Jos
Hi,

Martin Norland wrote:

MN I'm afraid phrasing a question multiple ways over a course of days tends

MN not to have much success.  In an effort to avoid populating google with 
MN just the question, I will give to you what I would try.
I understand your point but since I wasn't getting any response and never
received a confirmation email from the system telling me that my email
account had been verified, I wasn't sure that the original post was actually
sent to the community. Oddly enough I got an email from the system this
morning asking me to verify my email address - again :s

Anyway, at least this time it triggered a response ;)

MN Is it that it's not always available, or that it needs time to 'come 
MN back up'.  You may want to try running some random low-traffic 
MN application over it to make sure it remains running.  Some simple SNMP 
MN protocol or even simpler just connect to a remote GKrellM.  Heck, a ssh 
MN connection with top running would do - just something that is constantly

MN transmitting a trickle of data.
The VPN connection is not always available. I'm afraid I don't have much
control over the VPN myself and I believe only the Oracle port has been
opened in this VPN.

MN Essentially, you want ocilogon (complex network function to login to a 
MN networked Oracle [in this case] server) to timeout just like fsockopen 
MN (fairly simple function to open a socket, including network resources). 
MN   My suggestion is to try connecting using fsockopen, with the timeout. 
MN   If it successfully connects - chances are, the majority of the time, 
MN your ocilogon that follows will work as well.
That's a good idea, I'll try to connect to the Oracle port thru fsockopen.

MN Another dirty little trick you might use is running the ocilogon in a 
MN separate script and making use of set_time_limit() to make sure it 
MN doesn't run too long.  Just be sure not to set_time_limit() for your 
MN whole set of scripts, unless you really want them to abort after the 5 
MN or 10 second limit you're setting ocilogon (unlikely).
I'm not sure if I can set the time limit (safemode...) but are you saying
that set_time_limit only affects the script that you include and not the
caller script?

I'll try the fsockopen connection test on the oracle port. Thanks for your
help.

Rgds,
Jos

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] database connection timeout

2005-03-24 Thread Martin Norland
Juffermans, Jos wrote:
I understand your point but since I wasn't getting any response and never
received a confirmation email from the system telling me that my email
account had been verified, I wasn't sure that the original post was actually
sent to the community. Oddly enough I got an email from the system this
morning asking me to verify my email address - again :s
Fair enough, I've been on that boat before. :)
The VPN connection is not always available. I'm afraid I don't have much
control over the VPN myself and I believe only the Oracle port has been
opened in this VPN.
You might want to contact whoever manages the VPN - it sure sounds like 
it needs to always be up!

MN Essentially, you want ocilogon (complex network function to login to a 
MN networked Oracle [in this case] server) to timeout just like fsockopen 
MN (fairly simple function to open a socket, including network resources). 
MN   My suggestion is to try connecting using fsockopen, with the timeout. 
MN   If it successfully connects - chances are, the majority of the time, 
MN your ocilogon that follows will work as well.
That's a good idea, I'll try to connect to the Oracle port thru fsockopen.
Let us on the list know how/whether or not this works, It's definitely 
worth having some info on.

MN Another dirty little trick you might use is running the ocilogon in a 
MN separate script and making use of set_time_limit() to make sure it 
MN doesn't run too long.  Just be sure not to set_time_limit() for your 
MN whole set of scripts, unless you really want them to abort after the 5 
MN or 10 second limit you're setting ocilogon (unlikely).
I'm not sure if I can set the time limit (safemode...) but are you saying
that set_time_limit only affects the script that you include and not the
caller script?
No no no - include() should be the same as if you just placed the code 
right where the include is, so it would apply it to the whole script.
You'll have to call out separately and make it another process,  and 
exec or something - a small script whose sole intention is to determine 
if the VPN is up.  exec() or the likes - like I said - dirty trick/hack. 
 The idea is to just have it return 0 or 1 [actually, depending on how 
the time limit works, it may not return anything if it ends 
prematurely].  Definitely try the fsockopen bit first, and give it a few 
go's if it's not working.

I'll try the fsockopen connection test on the oracle port. Thanks for your
help.
Welcome to the list!
cheers,
--
- Martin Norland, Sys Admin / Database / Web Developer, International 
Outreach x3257
The opinion(s) contained within this email do not necessarily represent 
those of St. Jude Children's Research Hospital.

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php