Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello
I am using free-edition Talend DI 6.4.1
I am aware that this version on Talend can call C#.Net methods via tDotNetInstantiate and tDotNetRow
The example I see in the Components Guide for tDotNetInstantiate and tDotNetRow refers to using .Net Framework and requires VC++ redistributable.
I have a number of questions:
1. I can not find JANET-WIN64.dll anywhere. I have several versions of VC++ redistributable installed (up to VC 2017) and searched the C: for this DLL.
It does not exist in system32 either. The documentation says it is inside VC++.
2. Does Talend 6.4.1 only support calling C#.Net for Framework ? Can I call classes/methods for .Net Core 2.0+ ?
thanks!
I solved it.
To help others:
I used Windows Dependency Walker utility to analyse janet-win64.dll and it showed that it currently uses VC++ 2010 64-bit redistributable.
This fixed the problem.
So the Talend error message is completely wrong.
If new version of janet-win64.dll uses more recent VC++ then it needs to be installed.
There is nothing I could see in Talend documentation about it.
Found this one with help from Microsoft VC++ forums:
http://www.talendforge.org/wiki/doku.php?id=doc:dotnet
FWIW - it is very disappointing that Talend documentation has so many basic errors in it.
I managed to get it working in Dev PC but when I deploy it on Prod Server then I get error:
janet-win64.dll: %1 is not a valid Win32 application
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Windows\System32\janet-win64.dll: %1 is not a valid Win32 application
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 org.talend.net.Object.loadLibrary(Object.java:201)
at org.talend.net.Object.<clinit>(Object.java:164)
at testdotnet.testdotnetcsharp_0_1.testdotnetcsharp.tDotNETInstantiate_1Process(testdotnetcsharp.java:377)
at testdotnet.testdotnetcsharp_0_1.testdotnetcsharp.runJobInTOS(testdotnetcsharp.java:1324)
at testdotnet.testdotnetcsharp_0_1.testdotnetcsharp.main(testdotnetcsharp.java:1173)
Sadly it does not tell me which exe/dll on Windows is the problem.
Can anyone help me debug this error ?
The wiki article does not cover deployment issues.
Could this error be due to a problem with Visual C++ redistributable version?
What version of VC++ redistributable is needed for Talend 6.4.1 ?
I have several of them installed in DEV but not all are installed in Prod.
Thank you.
I solved it.
To help others:
I used Windows Dependency Walker utility to analyse janet-win64.dll and it showed that it currently uses VC++ 2010 64-bit redistributable.
This fixed the problem.
So the Talend error message is completely wrong.
If new version of janet-win64.dll uses more recent VC++ then it needs to be installed.
There is nothing I could see in Talend documentation about it.
Hi,
I am getting the same issue, even I have installed VC++ 2015 redistributable package in my machine and copied janet-win64.dll in 'C:/Windows/System32/' still getting the below exceptions.
Please help.
[statistics] connecting to socket on port 4063
[statistics] connected
System.ArgumentNullException: Value cannot be null.
Parameter name: type
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at Java_org_talend_net_Object_createInstanceLib(JNIEnv_* env, _jobject* _this, _jstring* className, _jobject* jAssembly, _jobjectArray* params, _jobjectArray* types)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (0xe0434352), pid=8768, tid=0x0000000000003c3c
#
# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C [KERNELBASE.dll+0x3a388]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Talend\TOS_DI-Win32-20180411_1414-V7.0.1\hs_err_pid8768.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Regards
Bhupinder
Hi @bhu,
did you solve your issue? I have exactly the same issue. After copying the dll's into the java-bin directory, I receive the following error:
System.ArgumentNullException: Value cannot be null. Parameter name: type at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstance(Type type, Object[] args) at Java_org_talend_net_Object_createInstanceLib(JNIEnv_* env, _jobject* _this, _jstring* className, _jobject* jAssembly, _jobjectArray* params, _jobjectArray* types) # # A fatal error has been detected by the Java Runtime Environment:
Any help would be really much appreciated!
Tobias