Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Community,
I had noticed in the past that the job server is not cleaning up the old logs and as such, have a scheduled Talend job that cleans up both the TAC server and Job server logs. Now I want to solve the issue and was hoping for some help. It appears the job server tries to automatically clean 3 locations:
Unfortunately these all fail every time it runs and the actual rolling jobserver.log file is filled with the same errors for those 3 locations:
2017-08-28 01:15:48,980 WARN FileDirCleaner - TempDataCleaner: 126 error(s) have occured when trying to clean the following file or directory 'C:\Talend\6.2.1\jobserver\agent\.\TalendJobServersFiles\archiveJobs', the first error is the following : java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils at org.talend.utils.files.FileDirCleaner.cleanFilesDirRecursively(FileDirCleaner.java:323) at org.talend.utils.files.FileDirCleaner.clean(FileDirCleaner.java:235) at org.talend.remote.jobserver.server.JobServerCleaner.clean(JobServerCleaner.java:83) at org.talend.utils.files.AbstractDataCleaner.cleanLoop(AbstractDataCleaner.java:79) at org.talend.utils.files.AbstractDataCleaner.access$000(AbstractDataCleaner.java:22) at org.talend.utils.files.AbstractDataCleaner$1.run(AbstractDataCleaner.java:59)
The job server runs as a windows service and the common-io-2.2.jar is in the agent\lib folder. I have no problems with anything else on the job server except, occasionally, my file triggers need to be recreated after a TAC reboot (not sure if this is a TAC issue or a job server issue). Anyone have any ideas?
Thanks,
Scott
I may have found the issue. In the wrapper.conf property file for the windows service, they have the wrong commons-io library in there:
#******************************************************************** # genConfig: further Properties generated by genConfig #******************************************************************** placeHolderSoGenPropsComeHere= wrapper.java.command = C:/Program Files/Java/jre1.8.0_111/bin/java.exe wrapper.java.additional.1 = -Dcom.sun.management.jmxremote wrapper.java.additional.2 = -Djava.library.path=./sigar-bin/lib wrapper.java.additional.3 = -Dtalend_props=C:\\Talend\\6.2.1\\jobserver\\agent\\conf\\TalendJobServer.properties wrapper.java.classpath.1 = ./ wrapper.java.classpath.2 = ./lib/log4j-1.2.15.jar wrapper.java.classpath.3 = ./lib/jmxremote_optional.jar wrapper.java.classpath.4 = ./lib/commons-io-1.3.2.jar wrapper.java.classpath.5 = ./sigar-bin/lib/sigar.jar wrapper.java.classpath.6 = ./lib/org.talend.libraries.jmx-6.2.1.jar wrapper.java.classpath.7 = ./lib/org.talend.monitoring-6.2.1.jar wrapper.java.classpath.8 = ./lib/org.talend.monitoring.server-6.2.1.jar wrapper.java.classpath.9 = ./lib/org.talend.remote.commons-6.2.1.jar wrapper.java.classpath.10 = ./lib/org.talend.remote.jobserver.commons-6.2.1.jar wrapper.java.classpath.11 = ./lib/org.talend.remote.jobserver.server-6.2.1.jar wrapper.java.classpath.12 = ./lib/org.talend.remote.server-6.2.1.jar wrapper.java.classpath.13 = ./lib/org.talend.utils-6.2.1.jar wrapper.java.classpath.14 = ./lib/org.talend.utils.minimal-6.2.1.jar
The version they package with the job server is common-io-2.2.
Instead of altering the the config file, I copied and renamed the current library to the version they have. I am hoping it will automatically pick it up so I don't have to restart the job server. That is not a big deal in the lesser environments, but PROD is running jobs all day every day, so hopefully this will work.
EDIT: It required a restart as I suspected, but the issue is resolved...
Thanks,
Scott
I may have found the issue. In the wrapper.conf property file for the windows service, they have the wrong commons-io library in there:
#******************************************************************** # genConfig: further Properties generated by genConfig #******************************************************************** placeHolderSoGenPropsComeHere= wrapper.java.command = C:/Program Files/Java/jre1.8.0_111/bin/java.exe wrapper.java.additional.1 = -Dcom.sun.management.jmxremote wrapper.java.additional.2 = -Djava.library.path=./sigar-bin/lib wrapper.java.additional.3 = -Dtalend_props=C:\\Talend\\6.2.1\\jobserver\\agent\\conf\\TalendJobServer.properties wrapper.java.classpath.1 = ./ wrapper.java.classpath.2 = ./lib/log4j-1.2.15.jar wrapper.java.classpath.3 = ./lib/jmxremote_optional.jar wrapper.java.classpath.4 = ./lib/commons-io-1.3.2.jar wrapper.java.classpath.5 = ./sigar-bin/lib/sigar.jar wrapper.java.classpath.6 = ./lib/org.talend.libraries.jmx-6.2.1.jar wrapper.java.classpath.7 = ./lib/org.talend.monitoring-6.2.1.jar wrapper.java.classpath.8 = ./lib/org.talend.monitoring.server-6.2.1.jar wrapper.java.classpath.9 = ./lib/org.talend.remote.commons-6.2.1.jar wrapper.java.classpath.10 = ./lib/org.talend.remote.jobserver.commons-6.2.1.jar wrapper.java.classpath.11 = ./lib/org.talend.remote.jobserver.server-6.2.1.jar wrapper.java.classpath.12 = ./lib/org.talend.remote.server-6.2.1.jar wrapper.java.classpath.13 = ./lib/org.talend.utils-6.2.1.jar wrapper.java.classpath.14 = ./lib/org.talend.utils.minimal-6.2.1.jar
The version they package with the job server is common-io-2.2.
Instead of altering the the config file, I copied and renamed the current library to the version they have. I am hoping it will automatically pick it up so I don't have to restart the job server. That is not a big deal in the lesser environments, but PROD is running jobs all day every day, so hopefully this will work.
EDIT: It required a restart as I suspected, but the issue is resolved...
Thanks,
Scott
Thanks for the post. Had seen this on our system as well but wasn't actively trying to fix. I found for ours that changing the line you highlight produced more errors but by adding the changed line as item 15 it solved the issue.
Glad you got it fixed Bill. I actually didn't end up changing the config file, just copied and renamed the library to match. I still haven't done TEST and PROD, so I am glad you pointed that out since I was going to modify the file. I think I'll just stick to copying and renaming the library.
Thanks,
Scott
Good post.