Re: Oracle ping
"Martin J. Evans" <[email protected]>
| Newsgroups | gmane.comp.lang.perl.modules.dbi.sybase.devel |
|---|---|
| Organization | Easysoft Limited |
| Message-ID | <[email protected]> |
On 05/11/12 15:35, Charles Jardine wrote: > On 05/11/12 02:47, Greg Sabino Mullane wrote: > > >>> Also by the time an application does execute some SQL, the the >>> connection/node/server/network could have dropped and so the application >>> 'will have to check & recover from write failures at that point anyway." >> >> This is a bit of a red herring. You could say that about any database action, >> anytime ever. I personally think a simple select is better than relying >> on a low-level library call, as it does a more complete end-to-end check >> that is almost certainly closer to what the caller is going to use the >> connection for. > > I rather strongly disagree. It is possible to do useful work over a connection > in situations when a 'simple select' is not possible. My production > Oracle database is protected by a physical standby database. This > database is, in Oracle terms, mounted but not open. A user with the SYSADMIN > privilege can connect to the database. It is possible use virtual views to > monitor the database and ALTER SYSTEM commands to change its state. However > it is not possible to select from any table. SELECT 1 FROM DUAL will fail. > > I would like to see $dbh->ping to continue to return a true values in cases > like this. > Just to reiterate what I eventually said. I don't want ping changed in DBD::Oracle. All I was saying is you should only read anything useful into ping returning false and not true unless your only purpose is like Oracle's OCIPing which checks your connection is still there (although not usable for some things). I believe the connection caching only does anything when ping returns false. Like Charles, I also have database systems where the users who log in have no select access at all - in fact all you can do is call some procedures in a few packages (no select, no insert, update, delete, you cannot even seen any schema). A ping implemented as "select xx" is useless to me (not that I rely on it any way). Martin -- Martin J. Evans Easysoft Limited http://www.easysoft.com