简体   繁体   中英

Jitterbit - “ORA-12504, TNS:listener was not given the SID in CONNECT_DATA”

Issue:

We're attempting to do upserts to Salesforce from a Lawson (Oracle) database for a client, using Jitterbit. We are using the Oracle [JDBC] driver on the default port. We have the Jitterbit Agent running on Windows Server 2008 on a machine inside the client's network, and we are assured by the client (but not 100% certain) that the server can connect to the Lawson database. When we try to initiate a connection to the Oracle database from within Jitterbit Studio (Studio is NOT running from the Windows Server, we're running it from a local machine) we're refused with:

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

The question I'm hoping someone can help with is - what exactly is the listener lacking the SID for? I'm familiar on a basic level with listener.ora and how SID information needs to be provided for the listener to allow incoming connections to the database.

Does the SID in the error refer to:

  • the Lawson database? (this seems unlikely, as my understanding is that the listener referred to here is the listener sitting on the server for the Lawson database)
  • the machine that the Agent is sitting on (the Windows Server 2008)?
  • or the local machine that we're running Jitterbit Studio from?

I'm waiting to get listener.ora and tnsnames.ora from the client, I just wanted to see if anyone had an idea of the root block from their own experience.

Stack trace, in case it's helpful:

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)

Screenshot of where connection parameters are supplied:

在此处输入图片说明

tnsnames.ora:

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

listener.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

The Jitterbit support pages include:

Configure a source or target with the Oracle JDBC driver
- Create a new source and give it a name.
- From the Type drop-down, select Database.
- Click Select... and locate the Oracle driver. Make sure the JDBC check-box is selected. You may have to refresh the driver list if you recently installed the driver.
- Depending on how the Oracle server is configured you may just have to enter the Server Name, Login and Password (and port if the server runs on a non-standard port). However, in most cases you will have to construct the connection string manually , see below.
...

with emphasis added. You seem to have followed those instructions, but since there is nowhere to supply the service name, you'll need to do the manual setup:

To use a manual connection string, expand the Options section and check "Construct connection string manually". Type in the connection string and test the transformation.

Based on what is in your tnsnames.ora, the connection string will be:

jdbc:oracle:thin:@//10.33.22.224:1521/PSILSFD1

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM