2008-12-18 24 views
20

Tengo una aplicación heredada de VB6 que heredé. El problema que estoy enfrentando es que me estoy haciendo el famosoORA-12638: Recuperación de credenciales fallida

ORA-12638: Credential retrieval failed 

mensaje de error cada vez que intenta conectarse a una de nuestras bases de datos Oracle. Sin embargo, puedo conectar bien desde SQLPlus y Toad. He buscado en Google en todo y todo el mundo parece decir que modificar su archivo sqlnet.ora a

SQLNET.AUTHENTICATION_SERVICES=(NONE) 

hizo el truco. Todavía tengo que encontrar a alguien con una solución alternativa. Así es como se ve mi cadena de conexión:

"PROVIDER=OraOLEDB.Oracle;DATA SOURCE=(DESCRIPTION = " & _ 
"(ADDRESS = (PROTOCOL = TCP)(HOST = server1) 
(PORT = 1521))" & _ 
"(ADDRESS = (PROTOCOL = TCP)(HOST = server2) 
(PORT = 1521))" & _ 
"(LOAD_BALANCE = yes) " & _ 
"(CONNECT_DATA = " & _ 
"(SERVER = DEDICATED) " & _ 
"(SERVICE_NAME = database_name_here) " & _ 
") " & _ 
"); " & _ 
"User Id=username_here;Password=password_here;" 

En cuanto a mi código VB, es bastante simple.

Private oracleDatabaseConnection As ADODB.Connection 

Set oracleDatabaseConnection = New ADODB.Connection 
oracleDatabaseConnection.Open oracleConnectionString 

¿Alguien tiene alguna idea?

Gracias. :)

Respuesta

4

Honestamente este es uno de esos errores que pueden ser causados ​​por muchos problemas de raíz diferentes.

Suponiendo que su servidor de base de datos es Windows, verifique su registro de eventos, tanto del sistema como de la aplicación. Puede encontrar algo allí que sea útil.

He encontrado este error en algunos casos porque la cuenta bajo la cual se ejecutaba el servicio de Oracle se bloqueó.

También me he encontrado en casos en los que nunca encontramos la explicación, pero siempre hemos podido aclarar el problema haciendo que el usuario bloquee y desbloquee su PC.

¿La aplicación VB se ejecuta en una máquina diferente a la del cliente que se puede conectar? Si es así, ¿es posible probar usando un programa cliente diferente en la misma máquina, o es posible probar la aplicación VB en su máquina?

+0

Acabo de encontrar el problema por primera vez y bloqueo/desbloqueo hizo el truco. Estaba trabajando con una máquina virtual de Windows XP que he reanudado desde el modo de hibernación. El host en el que se ejecutaba recientemente solicitó un cambio de contraseña, esa pudo haber sido la razón (aunque la VM usa una cuenta de usuario diferente en una red diferente (virtual). –

1

Si está ejecutando una aplicación web en IIS, parece que reiniciar IIS ayuda. Pero este es un tonto de un problema que no tiene mucho razonamiento detrás.

32

Sé que esto es un post muy antiguo, pero he encontrado una solución que ha funcionado para mí (Legacy aplicación VB6):

cambiar la siguiente entrada en el archivo sqlnet.ora:

Original Entry - SQLNET.AUTHENTICATION_SERVICES= (NTS) 

Modified Entry - SQLNET.AUTHENTICATION_SERVICES= (NONE) 

Aquí está un LINK a la solución

+1

SQLNET.AUTHENTICATION_SERVICES = (NINGUNO) funcionó como un amuleto –

+2

+1 Acabo de eliminar la línea 'SQLNET.AUTHENTICATION_SERVICES' del archivo y también funcionó. – Neolisk

+0

Obtuve ORA-01031: privilegios insuficientes después de configurar NINGUNO – cgalvao1993