I recently upgraded from Talend Open Studio for Big Data 6.4 to Talend [...] 7.0. When I now try to build the same jobs (created with Talend 6.4), that I was able to build with 6.4, I get the following error:
org.talend.commons.exception.PersistenceException: org.talend.designer.runprocess.ProcessorException: Job compile errors At least job "BD_LPSJ0011_SAP_ESB_StredaX_PERGAMON_Hadoop" has a compile errors, please fix and export again. Error Line: 25 Detail Message: The import routines.Numeric cannot be resolved There may be some other errors caused by JVM compatibility. Make sure your JVM setup is similar to the studio.
As the error message suggests, I have checked by Java configuration. It is exactly the same as in Talend 6.4:
I have checked the code view and, indeed, the error at the import stage is highlighted:
I have attached the full error stack.
No idea where to start. Does anyone have an idea where to look into or a solution?
btw: some other jobs can be built.
Thanks in advance!
Interesting behaviour: When I build the job for "all systems", the error occurs. When I build it only for unix systems, the job is built just fine.
Although my problem is solved, I still want to know what could cause this kind of behaviour? Any ideas?
Thanks in advance!
Did you create a user routine in your job?
Have you tried to right-click on your user routine in the Repository and select "Edit Routine Libraries"?
Does this issue repro on all your jobs or a specific job?
The problem indeed does replicate on all jobs. I will do further testing when I have a little bit more time. For the moment the best solution I have is to build the job only for Unix systems.
Thanks for your help!
We will appreciate it a lot if you could post your testing result on forum.
Unfortunately, I have had no time to do further research on this. I will let you know once I get to it, sorry.
I have done a bit of fiddling around. A was not able to reproduce the error in any way. It just orrurs from time to time.
1. Open Talend
2. Open Job design
3. Right-click on job --> build job
4. Set shell start script to "all"
--> error occurs. When I now try to build the job, it is always doomed to fail, no matter what settings I make.
5. Close Talend
6. Open Talend
7. Open Job design
8. Right-click on job --> build job
9. Set start shell script to "unix"
--> everything fine.
I will investigate further when I get to it again...
Thanks for your inputs and sharing it with us.
I have the same issue when i try to build a job involving Oracle database. Any suggestions on resolving the issue?
Unfortunately not. It appears to be very difficult to track down the problem since it is not really reproducable. As mentioned earlier, what helped was:
1. Open the job
2. Build the job for only one specific OS
It has worked several times for me with "UNIX" settings, but if you want to build the job for other operating systems, I cannot guarantee that it will build fine :/
I just had this issue with Open Studio for Data Integration v7.0.1 and have now resolved it.
My issue was:
- I wanted to test Talend, so downloaded a new version of 7.0.1
- I started up the corporate VPN tunnel and logged into the corporate sandbox - I don't think there is a route from the sandbox out to Talend online
- When I created _any_ job (even a blank one) I got the "routines.Numeric' error
My resolution was:
- I restarted the whole machine
- WITHOUT stating up the VPN, I started up Teland
- I ran one of the test jobs - it worked
...am a noob, but it looks like Talend couldn't fetch something online that it needed because of the VPN and then it wouldn't try again to get it until I had restarted it
I wanted to share my experience with Talend 7.0.1.
I also faced very same issue "The import routines.TalendDataGenerator cannot be resolved".
I have enterprise version of Talend so I reached out to support and surprisingly nobody from talend professional support is able to resolve the issue.
Temporary Resolution: The only thing i could do is restart the Talend multiple times until issue is resolved. This is very much frustrating but that's what i am doing.
If anybody has any other resolution for this issue, Please help out.
Thanks for the info! Meanwhile I was able to reproduce this by launching another instance of Talend before I start the Talend 7.1 instance.
Some jobs simply don't work for me in Talend 7.0 or 7.1, so I decided to create some kind of legacy-workspace in Talend 6.4. When I startup my machine freshly and start Talend 7.1, everything works fine. When I run Talend 6.4 before I start Talend 7.1, I get the mentioned error.
I guess Talend is writing something somewhere globally...
Do you maybe also run into this behaviour because you started another java application i.e. Talend or Eclipse beforehand?
You are absolutely right, This is the exactly what has happened to me. I see the pattern now. This is what I have done:
1. I restarted my machine and launched Talend 7.0 => Job ran fine.
2. I closed Talend 7.0 and re-launched it => Job ran fine.
3. I closed Talend 7.0 and launched Talend 6.2 and then launched Talend 7.0 => Job fails with mentioned error.
It should work independently and must not fail due to another java application i.e. Talend or Eclipse opened beforehand.
I am working with profession support on this issue, I will post more details as soon as i have any update on this.
Thanks for the help.
That behavior is probably because when you run Talend v7.0, the Java classloader loads the classes it needs for v7.0 into memory e.g. it might load : class java.foo.bar found in library SomeJavaLibrary_0.8.9.jar. The java classloader keeps those classes in memory and reuses them when applications want to use the same class again. When you close v7.0 Talend and open up the v6.x Talend, the classloader starts serving up the classes to the v6.x application fetching the already-loaded classes from its memory where it has them and loading them new from libraries when it doesn't. If the v6.x application requires the same class as v7.0 has used, then the classloader serves the v6.x application with the copy from its memory e.g. class java.foo.bar loaded from SomeJavaLibrary_0.8.9.jar. BUT if the v6.x application was compiled in an environment where class java.foo.bar was derived from a different library then the code doesn't run e.g. SomeOtherJavaLibrary_0.2.5.
Restarting the machine obviously clears out cached classes. There might be some other way to do it e.g. maybe there is a command-line param that you can pass to java.exe ?
Thanks for your explanation, It makes complete sense in the context of issue what i am facing with Talend 7.0
I went ahead and tried couple of scenarios to test the behavior of Talend 6.2 Vs 7.0
1. When I launch Talend 6.2 with 7.0 opened beforehand
Result: My job never fails in 6.2.
2. When I launch Talend 7.0 with 6.2 opened beforehand
Result: My job always fails in 7.0
Watch the recorded webinar!
Introduction to Talend Open Studio for Data Integration.
Test drive Talend's enterprise products.
Practical steps to developing your data integration strategy.