[SalesForce] Jitterbit – ORA-12504, TNS:listener was not given the SID in CONNECT_DATA

We're attempting to do upserts to Salesforce from a Lawson (Oracle) database, 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 which should be able to connect to the Lawson database. However, when we try to initiate a connection to the Oracle database from within Jitterbit Studio, 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?

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)

Best Answer

For anyone that stumbles across this, the issue was resolved by constructing a connection string manually - although Jitterbit constructs one behind the scenes based on the parameters provided (driver, server name, service name), the support page notes:

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.

To create a connection string, you expand the Options section (on the form where you supply the database parameters) and check "Construct connection string manually". The string we used took the form:

jdbc:oracle:thin:@//*insert server name*:*insert port*/*insert service name*
Related Topic