問題タブ [tnsnames]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - マネージド ODP.NET を使用しているときに、C# から LDAP にクエリを実行して Oracle TNS ホスト名を解決するにはどうすればよいですか?
Oracleフォーラムの助けを借りて自分で答えることができた以前の質問に加えて、以前の問題に続く別の問題があります(背景として提供されています)。
接続文字列を取得するために、C# コードから直接 LDAP にクエリを実行して、Oracle TNS ホスト名の LDAP ルックアップを実行したいと考えています。これは通常tnsnames.oraに保存され、私の組織では ( ldap.ora経由で) LDAP を使用して、Active Directory を使用して LDAP サーバーからホスト名を解決しています。
ただし、以前に言及したOracleフォーラムの返信で指摘されたリリースノートに記載されているように、LDAPをサポートしていないC#アプリケーションでODP.NET、Managed Driver Beta(Oracle.ManagedDataAccess.dll )を使用しています。これが、C# から LDAP を直接クエリしたい理由です。
ここでDirectoryEntry
andを使用してこれを行う方法を見つけましたが、 へDirectorySearcher
のパラメーターとして何を入れればよいかわかりませんDirectorySearcher
。次の形式のldap.oraにアクセスできます。
# LDAP.ORA 構成
# Oracle 構成ツールによって生成されます。
DEFAULT_ADMIN_CONTEXT = "dc=xx,dc=mycompany,dc=com"
DIRECTORY_SERVERS = (ldap_server1.mycompany.com:389:636,ldap_server2.mycompany.com:389:636, ...) DIRECTORY_SERVER_TYPE = OID
しかし、これを C# コードで LDAP クエリを設定するにはどうすればよいでしょうか?
database - Oracle 11g r2 インストール エラー - ORA-00119: システム パラメータ LOCAL_LISTENER の指定が無効です
64 ビット マシンに Oracle 11g R2 データベース サーバーをインストールした後も、このエラーが発生し続けます。
起動に失敗しました: ORA-00119: システム パラメータ LOCAL_LISTENER の指定が無効です
ORA-00132: 構文エラーまたは未解決のネットワーク名'LISTENER_ORLL'です。助けてください。
インスタンスに接続できないため、spfile を変更することさえできません。データベースが起動していないため、spfile から pfile を作成する方法がありません。
tnsnames.ora エントリ
listener.ora エントリ
oracle - ODP.NET 2.111 と ODP.NET 4.112 を同じマシンにインストールし、両方が同じデータベース サーバーを指すようにする方法
問題は、ODP.NET 2.111 と ODP.NET 4.112 を同じマシンに並べてインストールし、両方が tnsnames.ora を使用して同じデータベース サーバーを指すようにする方法です。
Oracle 11.1.0 に基づくレガシー システムをサポートする必要があります。システムは ODP.NET 2.111 を使用して Oracle に接続しています。次の場所に 2 つのクライアントがインストールされています。
C:\oracle\product\11.1.0\client_1
C:\oracle\product\11.1.0\client_2
両方の tnsnames.ora は次のようなものです。
システムは上記の設定を使用して稼働しています。新しいバージョンの Oracle.DataAccess.Dll (4.112) を使用する必要がある EntityFramework に基づく新しいシステムを開発する必要があります。
レガシーシステムの機能を損なわずに新しいクライアントをインストールして、両方が並行して動作できるようにするにはどうすればよいか疑問に思っていました。
注: 以前のクライアントに新しい ODP.NET をインストールしようとしたところ、次の接続文字列を使用してデータベースに接続できました。
DATA SOURCE=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=zzzzz1)(PORT=zzzzz2)))(CONNECT_DATA=(SERVICE_NAME=zzz3_SERVICE)));ユーザーID=\"zzzz4\";パスワード=\"zzzz5\";
1- ODP.NET のアップグレードにより Oracle に接続できなくなるため、レガシー システムが壊れる 2- 接続文字列が非常に奇妙に見えるため、これは望ましくありません。
助けていただければ幸いです。
ありがとう、エイディン
c# - C#でtnsnamesなしで接続しようとするとTNSリスナーエラーが発生する
TNS 名を使用せずに Oracle DB に接続しようとしていますが、次のエラーが発生し続けます: {"ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA"}
「TNS Names」ファイルの内容は次のとおりです。
perl - DBI のエラー ORA-12154 -> Solaris 10 で Oracle Instant Client を使用して Oracle データベースに接続する
私はこの問題について 2 日間、頭を悩ませてきました。
Oracle データベースと連携するための perl スクリプトを取得しようとしています。アプリケーションをデプロイしたい新しいサーバーがあります。このスクリプトは以前は機能していました。
これまでに行ったことは次のとおりです。
私の tnsnames.ora ファイルを Instantclient/network/admin に置きました:
私の Perl スクリプトは次のようになります。
このスクリプトは、次の出力を生成します。
私の tnsnames.ora ファイルには、次のエントリが含まれています。
この tnsnames.ora ファイルは動作中のマシンからコピーされたものなので、動作すると確信しています。
奇妙なことに、tnsnames.ora ファイルを使用せずにコードに接続できますが、使用しようとすると壊れます。
助言がありますか?
c# - Oracle.DataAccess が動作するのに、Oracle.ManagedDataAccess が動作しないのはなぜですか?
いくつかのマシンで発生している問題のトラブルシューティングに使用する非常に単純なアプリケーションを開発していますが、そこまで到達する前に、CPU アーキテクチャの違いや Oracle データベース ライブラリなど、いくつかの問題に遭遇しました。
にリストされているデータベース サーバーをディレクトリtnsnames.ora
に配置しています。C:\oracle\11g\network\admin
このサーバーを tnsping すると、目的の応答が得られます。Oracle.DataAccess.Client を使用して次のコードでこのサーバーに接続するように C# プログラムをコーディングすると、動作します。
ただし、Oracle.DataAccess は、それが実行されるシステムのアーキテクチャに依存しています。アーキテクチャに依存しない別のライブラリ Oracle.ManagedDataAccess があることがわかりました。このライブラリを使用すると、サーバーに接続できなくなります。アンORA-12545: Network Transport: Unable to resolve connect hostname
が投げられます。
これはなぜですか?これら 2 つのライブラリの違いは、これまで読んだ内容に基づいているため、これは問題ではないはずです。
追加情報:
- %ORACLE_HOME% と %TNS_ADMIN% は定義されていません (tnsping と Oracle.DataAccess が機能することに注意してください)。
- PATH が
C:\oracle\11g\BIN
定義されています。 tnsnames.ora
私のマシンにはファイルが1つしかありません
tnsnames.ora を .exe ファイルと同じ場所に移動すると、機能します。Oracle.DataAccess はディレクトリ内の tnsnames.ora を検出C:\oracle\11g\network\admin
できるのに、Oracle.ManagedAccess は検出できないのはなぜですか?