web-dev-qa-db-ja.com

Oracle.ManagedDataAccess OracleInternal.NotificationServices.ONSException

Oracleへのデータベースアクセスには、「Oracle.ManagedDataAccess」ODP.NETドライバを使用します。

接続文字列を使用してデータベースに接続する場合:

Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=10.40.40.38)(Port=1521)))(CONNECT_DATA=(SERVICE_NAME=D3T))); User Id=test; Password=test'

内部エラーメッセージ:

OracleInternal.NotificationServices.ONSException **:ONS:接続を開いた後、ノードリストが構成されていません。

コード:

string connect = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=10.40.40.38)(Port=1521)))(CONNECT_DATA=(SERVICE_NAME=D3T))); User Id=test; Password=test";
OracleConnection connection = new OracleConnection(connect);
connection.Open();

データベースへの接続は正常に機能しています。しかし、構成の内部的な問題は何ですか?

11
J. Deing

このリンクは役に立ちました: https://www.databaseusers.com/article/6046913/ONS%3A+No+node+lists+were+configured

基本的に、次のようにONSを構成するか、LoadBalancingとHAEventsを無効にする必要があります。

Oracle.ManagedDataAccess.Client.OracleConfiguration.LoadBalancing = false;
Oracle.ManagedDataAccess.Client.OracleConfiguration.HAEvents = false;
3
Jacob Peterson

ジェイコブ・ピーターソンに感謝します。

ただし、C#コードで上記の設定が見つからない場合は、以下のように構成を構成してください。 「ブロックがすでに存在する場合は設定を追加する」

<Oracle.manageddataaccess.client>
    <version number="*">
      <settings>
        <setting name="LoadBalancing" value="false" />
        <setting name="HAEvents" value="false" />
      </settings>      
    </version>   
  </Oracle.manageddataaccess.client>
0