1. ホーム
  2. oracle

[解決済み] ORA-12638: クレデンシャルの検索に失敗しました。

2022-02-28 14:18:04

質問

VB6のレガシーアプリケーションを受け継いでいます。私が直面している問題は、私は悪名高いを取得することです。

ORA-12638: Credential retrieval failed

というエラーメッセージが表示されます。SQLPlusやToadからは問題なく接続できるのですが。ググってみると、みんなsqlnet.oraファイルを変更して

SQLNET.AUTHENTICATION_SERVICES=(NONE)

がうまくいきました。別の解決策を持つ人はまだ見つかっていません。以下は、私の接続文字列の例です。

"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;"

私のVBコードとしては、非常にシンプルなものです。

Private oracleDatabaseConnection As ADODB.Connection

Set oracleDatabaseConnection = New ADODB.Connection
oracleDatabaseConnection.Open oracleConnectionString

どなたかお分かりになる方はいらっしゃいますか?

ありがとうございます :)

解決方法は?

正直なところ、このエラーは、さまざまな根本的な問題が原因で発生する可能性があるエラーの1つです。

データベースサーバーがWindowsであることを前提に、システムおよびアプリケーションのイベントログを確認してください。 何か役に立つことが見つかるかもしれません。

Oracleのサービスを実行しているアカウントがロックされたために、このエラーに遭遇することがあります。

また、原因がわからないケースもありますが、ユーザーにPCのロックと解除をしてもらうことで、必ず問題をクリアすることができました。

VBアプリケーションは、接続可能なクライアントとは別のマシンで実行されていますか? もしそうなら、同じマシン上で別のクライアント・プログラムを使ってテストすることは可能ですか -- あるいは、あなたのマシンでVBアプリケーションを試すことは可能ですか?