Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Aim: Running a DI-Job on a Talend Runtime Server (Talend MDM Platform 6.1.1, Ubuntu Server, called Execution Server)
Approache:
1. Creating an job in Talend Studio (Talend MDM Platform 6.1.1.20151214_1327, Windows 7), that imports an CSV file into a MySQL 5.7 database.
2. Job runs in studio local and remote on the Execution Server, based on defined context groups, successfully.
3. Creating an Execution Task within TAC (Talend MDM Platform 6.1.1, Sun Solaris 10) Job Conductor.
3.a Loading the job and context from SVN into the Execution Task.
3.b Connecting the Execution Task with the Execution Server.
4. Generation of job on TAC Server successfully.
5. Deployment of the job from TAC Server to Execution Server runs fine.
6. Running the job on the Execution Server generates the following error message (Case 1😞
...
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
...
Analysis:
A. Importing the job within step 3a from an exported job-zipfile (Talend Studio function 'Build Job') and running the job after deployment is working fine (Case 2).
B. Generated classpath link within job shell script:
Case 1:
#!/bin/sh
cd `dirname $0`
ROOT_PATH=`pwd`
/export/home/jdk1.8.0_73/bin/java -Xms256M -Xmx1024M -cp:
...
/export/home/Talend-Runtime-V6.1.1/./TalendJobServersFiles/repository/<generated_job_name>/<job_name>/../lib/mysql-connector-java-5.1.30-bin.jar
...
--pid=<pid> --client_host=<host> --log4jLevel=Trace
Case 2:
#!/bin/sh
cd `dirname $0`
ROOT_PATH=`pwd`
/export/home/jdk1.8.0_73/bin/java -Xms256M -Xmx1024M -cp:
...
/export/home/Talend-Runtime-V6.1.1/./TalendJobServersFiles/repository/<generated_job_name>/<job_name>/../../../cache/lib/<generated_number_4_mysql.jar>/mysql-connector-java-5.1.30-bin.jar
...
--pid=<pid> --client_host=<host> --log4jLevel=Trace
C. Generated stuff:
Case 1:
Directory "/export/home/Talend-Runtime-V6.1.1/TalendJobServersFiles/repository/<generated_job_name>/lib/" is missing.
Other referenced JAR files within the shell scripts for both cases are generated properly.
For example: "talendcsv.jar" has been properly generated in directory "/export/home/Talend-Runtime-V6.1.1/TalendJobServersFiles/cache/lib/<generated_number_4_talendcsvjar>/talendcsv.jar".
Case 2:
File "mysql-connector-java-5.1.30-bin.jar" is stored within the generated directory "/export/home/Talend-Runtime-V6.1.1/TalendJobServersFiles/cache/lib/<generated_number_4_mysql.jar>/".
----------------------------------
Legend:
<>: Placeholder for the values, I don't want to show here 😉
...: some content
----------------------------------
Any ideas to correct that behavior?