Ошибка PHP при подключении к Oracle 10G R2 - PullRequest
1 голос
/ 18 апреля 2011

У меня есть этот код:

ociinternaldebug(1);


// try connecting to the database
 $conn = oci_new_connect('username', 'password', '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.1 )(PORT = 1521)) (CONNECT_DATA = (SID = dpsid)))');

// check for any errors
 if (!$conn)
 {
  $e = oci_error();
  print htmlentities($e['message']);
  exit;
 } 

// else there weren't any errors
 else
 {
  echo 'connected.';
 } 

и я получаю эту ошибку:

    OCI8 DEBUG: OCINlsEnvironmentVariableGet at (ext\oci8\oci8.c:1758) OCI8 DEBUG: OCIEnvNlsCreate at (ext\oci8\oci8.c:2708) OCI8 DEBUG: OCIHandleAlloc at (ext\oci8\oci8.c:2568) OCI8 DEBUG: OCIHandleAlloc at (ext\oci8\oci8.c:2580) OCI8 DEBUG: OCISessionPoolCreate at (ext\oci8\oci8.c:2598) OCI8 DEBUG: OCIAttrSet at (ext\oci8\oci8.c:2610) OCI8 DEBUG L1: create_spool: (0x1dde4f0) at (ext\oci8\oci8.c:2626) OCI8 DEBUG L1: using shared pool: (0x1dde4f0) at (ext\oci8\oci8.c:2904) OCI8 DEBUG: OCIHandleAlloc at (ext\oci8\oci8.c:2915) OCI8 DEBUG: OCIHandleAlloc at (ext\oci8\oci8.c:2925) OCI8 DEBUG: OCIAttrGet at (ext\oci8\oci8.c:2958) OCI8 DEBUG: OCIAttrGet at (ext\oci8\oci8.c:2959) OCI8 DEBUG L1: (numopen=0)(numbusy=0) at (ext\oci8\oci8.c:2961) OCI8 DEBUG: OCISessionGet at (ext\oci8\oci8.c:2972) OCI8 DEBUG: OCIErrorGet at (ext\oci8\oci8.c:1571) 
Warning: oci_new_connect() [function.oci-new-connect]: ORA-12170: TNS:Connect timeout occurred in C:\wamp\www\view\test.php on line 21
OCI8 DEBUG: OCIHandleFree at (ext\oci8\oci8.c:2150) OCI8 DEBUG: OCIHandleFree at (ext\oci8\oci8.c:2153) OCI8 DEBUG: OCIErrorGet at (ext\oci8\oci8.c:1571) ORA-12170: TNS:Connect timeout occurred

Я пытаюсь подключиться к базе данных удаленного Oracle, но получаю эту ошибкуне знаю почему

в чем проблема?

Ответы [ 2 ]

2 голосов
/ 18 апреля 2011

Проблема очевидна, таймаут sqlnet. Причина не всегда очевидна.

Начните с проверки подключения хоста: телнет 1.1.1.1 1521 Если вы видите пустой экран, а не сообщение об ошибке, ваше подключение к хосту в порядке. Если вы получили соединение отказано: ваш слушатель не работает, или, по крайней мере, не на указанном порту. если вы не получили никакого ответа, проверьте брандмауэр [ы].

если все в порядке, мы можем копать глубже.

0 голосов
/ 18 апреля 2011

Тайм-аут подключения указывает на то, что он не может достичь назначенного вами IP-адреса.

Это может быть потому, что:

  • Сервер, к которому вы подключаетесь, ограничен брандмауэром
  • IP-адрес и / или порт, который вы используете, неверен
  • Сам сервер в данный момент не работает.
...