Как мне проверить соединение с Oracle - PullRequest
3 голосов
/ 23 декабря 2008

Я пытаюсь подключиться к базе данных Oracle, которая в данный момент отключена. Когда он подключен к сети, это не проблема, но теперь, когда он отключен, моя программа зависает в строке $ connection = oci_connect () и время ожидания истекает. Как мне просто проверить соединение и выручить, если его там нет?

Ответы [ 4 ]

6 голосов
/ 23 декабря 2008

Попробуйте (укажите свой ip и порт):

if ( @fsockopen($db_ip,$db_port ) ) {
    //connect to database
} else {
    // didn't work
}
1 голос
/ 23 декабря 2008

Это дает вам как ручную ошибку, так и плюс вернет фактическую ошибку.

$connection = oci_connect() or die("Critical Error: Could not connect to database.\n\n". oci_error());

Убедитесь, что проверили это, так как, надеюсь, ошибка Oracle не делает ничего глупого, например, возвращает строку соединения (с вашим паролем БД), но я не подумаю, пока вы сами не убедитесь.

0 голосов
/ 23 декабря 2008

Вот что я делаю в ASP.NET

Dim OracleConn As New OracleConnection(YOUR CONNECTION STRING HERE)
        Try
            OracleConn.Open()
            OracleConn.Close()
        Catch ex As Exception
            Session("ErrorMessage") = "OracleConn: " & ex.Message
            Response.Redirect("AccessDenied.aspx")
        End Try

Это не обязательно означает, что БД находится в автономном режиме, но исключение произойдет, если соединение не может быть открыто

0 голосов
/ 23 декабря 2008

Вы можете выбрать нуль из двойного.

Хорошо, теперь я понимаю, о чем вы спрашиваете, я думаю.

Вы хотите знать, как определить, работает ли база данных, прежде чем подключиться к ней?

Вы можете использовать TNSPING для проверки работоспособности базы данных ... хорошо, возможно, это не на 100% точно, но это хороший показатель перейдите в командную строку и введите TNSPING и нажмите Enter. Итак, вы должны выяснить, как вызвать инструмент командной строки из PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...