3

問題:

Jitterbit を使用して、クライアントの Lawson (Oracle) データベースから Salesforce へのアップサートを試みています。デフォルトのポートで Oracle [JDBC] ドライバーを使用しています。クライアントのネットワーク内のマシン上の Windows Server 2008 で Jitterbit Agent を実行しており、サーバーが Lawson データベースに接続できることをクライアントから保証されています (100% 確実ではありません)。Jitterbit Studio 内から Oracle データベースへの接続を開始しようとすると (Studio は Windows Server から実行されているのではなく、ローカル マシンから実行されています)、次のように拒否されます。

Listener refused the connection with the following error:
ORA-12504, TNS:listener was not given the SID in CONNECT_DATA

誰かが助けてくれることを望んでいる質問は、リスナーにSIDが欠けているのは正確には何ですか? 私は、listener.ora の基本的なレベルと、リスナーがデータベースへの着信接続を許可するために SID 情報を提供する必要がある方法に精通しています。

エラーの SID は次のものを参照していますか?

  • ローソンデータベース?(私の理解では、ここで言及されているリスナーは、Lawson データベースのサーバーに座っているリスナーであるため、これはありそうにないようです)
  • エージェントが置かれているマシン (Windows Server 2008)?
  • それとも、Jitterbit Studio を実行しているローカル マシンでしょうか?

クライアントから listener.ora と tnsnames.ora を取得するのを待っています。誰かが自分の経験からルート ブロックのアイデアを持っているかどうかを確認したかっただけです。

役立つ場合のスタック トレース:

Details: oracle.net.ns.NetException - Listener refused the connection with the following error:
ORA-12504, TNS:listener was not given the SID in CONNECT_DATA

    at org.jitterbit.integration.client.ui.interchange.locatable.actions.TestConnectionResultDisplayer.showResult(TestConnectionResultDisplayer.java:62)
    at org.jitterbit.integration.client.ui.interchange.locatable.actions.TestConnectionJob.runImpl(TestConnectionJob.java:55)
    at org.jitterbit.application.ui.job.UiJob$2.run(UiJob.java:509)
    at org.jitterbit.application.worker.DefaultApplicationWorker$RunnableWrapper.run(DefaultApplicationWorker.java:105)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

接続パラメーターが提供される場所のスクリーンショット:

ここに画像の説明を入力

tnsnames.ora:

PSILSFD1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.33.22.224)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PSILSFD1)
    )
  )

リスナー.ora:

# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = psidevdba01)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle
4

1 に答える 1

4

Jitterbitのサポート ページには次のものが含まれます。

Oracle JDBC ドライバーを使用してソースまたはターゲットを構成する
- 新しいソースを作成し、名前を付けます。
- [タイプ] ドロップダウンから、[データベース] を選択します。
- [選択...] をクリックして、Oracle ドライバを見つけます。JDBC チェックボックスが選択されていることを確認します。最近ドライバーをインストールした場合は、ドライバー リストを更新する必要がある場合があります。
- Oracle サーバーの構成方法によっては、サーバー名、ログイン、およびパスワード (およびサーバーが非標準ポートで実行されている場合はポート) を入力するだけでよい場合があります。ただし、ほとんどの場合、接続文字列を手動で作成する必要があります。以下を参照してください。
...

強調を加えて。これらの指示に従っているようですが、サービス名を指定する場所がないため、手動でセットアップする必要があります。

手動接続文字列を使用するには、[オプション] セクションを展開し、[手動で接続文字列を構築する] をオンにします。接続文字列を入力し、変換をテストします。

tnsnames.ora の内容に基づいて、接続文字列は次のようになります。

jdbc:oracle:thin:@//10.33.22.224:1521/PSILSFD1
于 2015-07-14T18:38:47.197 に答える