Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Connect 2026! Turn data into bold moves, April 13 -15: Learn More!
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

UnsatisfiedLinkError: SAP component - TOS

Hello,
I am getting below error when i run the job in talend studio:
statistics] connecting to socket on port 4072
connected
java.lang.UnsatisfiedLinkError: C:\Windows\System32\sapjco3.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at

i have correct dll from sap at system 32 bit folder, tried talend 32bit and 64 bit both on my 64 bit windows machine.
please suggest
Labels (4)
19 Replies
Anonymous
Not applicable
Author

Hi,
Which talend product build version are you using? What's your jdk version? 64bit?
Best regards
Sabrina
Anonymous
Not applicable
Author

Hi
I am trying with Talend Open Studio for ESB 5.2.3.r105372.
My windows client is using Windows 7, Service Pack 1, 64bit machine.
I am using 64bit JDK; JDK version is: 1.7.0_25
Currently, I have installed sapjco3.jar into Talend and I could see them in the installed modules. And copied sapjco3.dll into system32 folder.
I am getting below error when I run my job from Talend Open studio:
---------------------------------------------------------------------------------------------------------------------------------
Starting job sapDemo at 14:47 02/09/2013.

connecting to socket on port 3510
connected
java.lang.UnsatisfiedLinkError: C:\Windows\System32\sapjco3.dll: Can't load IA 64-bit .dll on a AMD 64-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(Unknown Source)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.sap.conn.jco.rt.DefaultJCoRuntime.loadLibrary(DefaultJCoRuntime.java:493)
at com.sap.conn.jco.rt.DefaultJCoRuntime.registerNativeMethods(DefaultJCoRuntime.java:361)
at com.sap.conn.jco.rt.JCoRuntime.registerNatives(JCoRuntime.java:1190)
at com.sap.conn.rfc.driver.CpicDriver.<clinit>(CpicDriver.java:954)
at com.sap.conn.rfc.engine.DefaultRfcRuntime.getVersion(DefaultRfcRuntime.java:36)
at com.sap.conn.rfc.api.RfcApi.RfcGetVersion(RfcApi.java:238)
at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:216)
at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:79)
disconnected
at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
at com.sap.conn.jco.rt.RuntimeEnvironment.<init>(RuntimeEnvironment.java:43)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.sap.conn.jco.ext.Environment.getInstance(Environment.java:155)
at com.sap.conn.jco.ext.Environment.registerDestinationDataProvider(Environment.java:259)
at demo1.sapdemo_0_1.sapDemo.tSAPConnection_1Process(sapDemo.java:320)
at demo1.sapdemo_0_1.sapDemo.runJobInTOS(sapDemo.java:634)
at demo1.sapdemo_0_1.sapDemo.main(sapDemo.java:502)
Exception in thread "main" java.lang.ExceptionInInitializerError: Error getting the version of the native layer: java.lang.UnsatisfiedLinkError: C:\Windows\System32\sapjco3.dll: Can't load IA 64-bit .dll on a AMD 64-bit platform
at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:228)
at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:79)
at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
at com.sap.conn.jco.rt.RuntimeEnvironment.<init>(RuntimeEnvironment.java:43)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.sap.conn.jco.ext.Environment.getInstance(Environment.java:155)
at com.sap.conn.jco.ext.Environment.registerDestinationDataProvider(Environment.java:259)
at demo1.sapdemo_0_1.sapDemo.tSAPConnection_1Process(sapDemo.java:320)
at demo1.sapdemo_0_1.sapDemo.runJobInTOS(sapDemo.java:634)
at demo1.sapdemo_0_1.sapDemo.main(sapDemo.java:502)
Job sapDemo ended at 14:47 02/09/2013.
---------------------------------------------------------------------------------------------------------------------------------
Appreciate quick suggestions.
Thanks, Ram
Anonymous
Not applicable
Author

Hi,
java.lang.UnsatisfiedLinkError: C:\Windows\System32\sapjco3.dll: Can't load IA 64-bit .dll on a AMD 64-bit platform

It seems that sapjco3.dll file is only complied in 32 bit OS, so it can't load in 64-bit jvm platform.
Actually,jdk provide two kinds of jvm platform (32bit and 64bit),the default jvm be used in 64 OS is 64bit. If you want to load 32bit dll file in Talend Studio in 64 OS,you can add a argument ("-d32") in job configuration,if argument "-d32" is added ,job will run in 32bit jvm.(Refer to attachment).
Let me know if it is OK with you.
Best regards
Sabrina
0683p000009MB41.png
Anonymous
Not applicable
Author

Hi
It means, i have to change the following: (assuming i am using 32 bit dll file)
1. download and Install 32 bit JDK/JVM
2. Change JVM to 32 bit JVM from Talend Studio--->Preferences-->Java-->Installed JREs-->(check) 32bit JVM
3. add an argument ("-d32") in job configuration
4. copy the dll file into "C:\Windows\SysWOW64\" folder (Edited)
I will give a try now.
Thanks, Ram
Anonymous
Not applicable
Author

Hi
I have executed the above mentioned steps. Below is the error message i see in Console.
-----------------------------------------------------------------
Starting job sapJobTest at 14:45 03/09/2013.

Error: This Java instance does not support a 32-bit JVM.
Please install the desired version.
Job sapJobTest ended at 14:45 03/09/2013.
-------------------------------------------------------------------
It is very surprising to see this error. I have actually downloaded jdk-7u25-windows-i586.exe from Oracle (earlier Sun) site for windows. To my understanding x86 or i586 represents 32bit whereas x64 represents 64bit.
What could be the issue here?
.......Ram
Anonymous
Not applicable
Author

When i have read the error message, i have interpreted like this:
The JVM configured is 32bit JVM -- this is what i wanted
but this is not supported by "this java instance" - which means the java instance used by Talend!!?!!
So, when i looked into Talend Studio Root directory, i found this -->TOS_ESB-win32-x86.exe -- i assume this is meant to be run in 32bit windows machine
I have run this and checked all the configuration done earlier. The argument added to job was missing. hence, added the argument (-d32) again and executed the job. Then i got this below error:
--------------------------------------------------------------------------------------------------------
Starting job sapJobTest at 15:24 03/09/2013.

connecting to socket on port 4075
connected
java.lang.UnsatisfiedLinkError: C:\Windows\System32\sapjco3.dll: Can't load IA 64-bit .dll on a IA 32-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(Unknown Source)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.sap.conn.jco.rt.DefaultJCoRuntime.loadLibrary(DefaultJCoRuntime.java:493)
at com.sap.conn.jco.rt.DefaultJCoRuntime.registerNativeMethods(DefaultJCoRuntime.java:361)
at com.sap.conn.jco.rt.JCoRuntime.registerNatives(JCoRuntime.java:1190)
at com.sap.conn.rfc.driver.CpicDriver.<clinit>(CpicDriver.java:954)
at com.sap.conn.rfc.engine.DefaultRfcRuntime.getVersion(DefaultRfcRuntime.java:36)
at com.sap.conn.rfc.api.RfcApi.RfcGetVersion(RfcApi.java:238)
at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:216)
at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:79)
disconnected
at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
at com.sap.conn.jco.rt.RuntimeEnvironment.<init>(RuntimeEnvironment.java:43)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.sap.conn.jco.ext.Environment.getInstance(Environment.java:155)
at com.sap.conn.jco.ext.Environment.registerDestinationDataProvider(Environment.java:259)
at esbdemos.sapjobtest_0_1.sapJobTest.tSAPConnection_1Process(sapJobTest.java:331)
at esbdemos.sapjobtest_0_1.sapJobTest.runJobInTOS(sapJobTest.java:1078)
at esbdemos.sapjobtest_0_1.sapJobTest.main(sapJobTest.java:946)
Exception in thread "main" java.lang.ExceptionInInitializerError: Error getting the version of the native layer: java.lang.UnsatisfiedLinkError: C:\Windows\System32\sapjco3.dll: Can't load IA 64-bit .dll on a IA 32-bit platform
at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:228)
at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:79)
at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
at com.sap.conn.jco.rt.RuntimeEnvironment.<init>(RuntimeEnvironment.java:43)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.sap.conn.jco.ext.Environment.getInstance(Environment.java:155)
at com.sap.conn.jco.ext.Environment.registerDestinationDataProvider(Environment.java:259)
at esbdemos.sapjobtest_0_1.sapJobTest.tSAPConnection_1Process(sapJobTest.java:331)
at esbdemos.sapjobtest_0_1.sapJobTest.runJobInTOS(sapJobTest.java:1078)
at esbdemos.sapjobtest_0_1.sapJobTest.main(sapJobTest.java:946)
Job sapJobTest ended at 15:24 03/09/2013.
----------------------------------------------------------------------------------
Now, this confuses me. If it is 64bit dll, it should have successfully run with the 64bit JVM and dll file from system32 folder should have worked but it did not work. Again, it is not working for 32 bit JVM also.
What could be the issue here?
........Ram
Anonymous
Not applicable
Author

Hi,
So, when i looked into Talend Studio Root directory, i found this -->TOS_ESB-win32-x86.exe -- i assume this is meant to be run in 32bit windows machine
I have run this and checked all the configuration done earlier. The argument added to job was missing. hence, added the argument (-d32) again and executed the job. Then i got this below error:

TOS_ESB-win32-x86.exe is run in 32bit windows machine. But don't add the argument (-d32) again in 32 bit studio.
Check your current java version.
Best regards
Sabrina
0683p000009MB3s.png
Anonymous
Not applicable
Author

Hi
Thanks for your replies.
JVM running on my laptop is 64bit only. But I configured Talend to use 32bit JVM by selecting from installed JREs.
I have a planned travel tonight, on a customer assignment. I will start this again on Tuesday (next week) and will reply to this thread.
.......Ram
Anonymous
Not applicable
Author

Hi Sabrina
As you suggested I have removed the -d32 option and executed the job. Below is the error I see:
--------------------------------------------------------------------------------------------------------------------------------
Starting job wividus at 17:44 10/09/2013.

connecting to socket on port 3970
connected
java.lang.UnsatisfiedLinkError: C:\Windows\System32\sapjco3.dll: Can't load IA 64-bit .dll on a IA 32-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(Unknown Source)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.sap.conn.jco.rt.DefaultJCoRuntime.loadLibrary(DefaultJCoRuntime.java:493)
at com.sap.conn.jco.rt.DefaultJCoRuntime.registerNativeMethods(DefaultJCoRuntime.java:361)
at com.sap.conn.jco.rt.JCoRuntime.registerNatives(JCoRuntime.java:1190)
at com.sap.conn.rfc.driver.CpicDriver.<clinit>(CpicDriver.java:954)
at com.sap.conn.rfc.engine.DefaultRfcRuntime.getVersion(DefaultRfcRuntime.java:36)
at com.sap.conn.rfc.api.RfcApi.RfcGetVersion(RfcApi.java:238)
at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:216)
at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:79)
disconnected
at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
at com.sap.conn.jco.rt.RuntimeEnvironment.<init>(RuntimeEnvironment.java:43)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.sap.conn.jco.ext.Environment.getInstance(Environment.java:155)
at com.sap.conn.jco.ext.Environment.registerDestinationDataProvider(Environment.java:259)
at esbdemos.wividus_0_1.wividus.tSAPConnection_1Process(wividus.java:299)
at esbdemos.wividus_0_1.wividus.runJobInTOS(wividus.java:526)
at esbdemos.wividus_0_1.wividus.main(wividus.java:394)
Exception in thread "main" java.lang.ExceptionInInitializerError: Error getting the version of the native layer: java.lang.UnsatisfiedLinkError: C:\Windows\System32\sapjco3.dll: Can't load IA 64-bit .dll on a IA 32-bit platform
at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:228)
at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:79)
at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
at com.sap.conn.jco.rt.RuntimeEnvironment.<init>(RuntimeEnvironment.java:43)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.sap.conn.jco.ext.Environment.getInstance(Environment.java:155)
at com.sap.conn.jco.ext.Environment.registerDestinationDataProvider(Environment.java:259)
at esbdemos.wividus_0_1.wividus.tSAPConnection_1Process(wividus.java:299)
at esbdemos.wividus_0_1.wividus.runJobInTOS(wividus.java:526)
at esbdemos.wividus_0_1.wividus.main(wividus.java:394)
Job wividus ended at 17:44 10/09/2013.
--------------------------------------------------------------------------------------------------------------------------------
My configurations are:
JDK in Talend Studio (from Installed JREs) - C:\ProgramFiles\Java32Bit\JDK1.7.0_25
Copied .dll file into C:\Windows\SysWOW64
Executed "TOS_ESB-win32-x86.exe"

.....Ram