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

Announcements
Discover how organizations are unlocking new revenue streams: Watch here
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

The code of method is exceeding the 65535 bytes limit

Hi,
So I am needing to perform ETL on a file that is composed of 700+ fields. I created the schema for the file which is fine and I can read in the file, but the second I want to perform any transformations on the file, I get the following error:
Exception in thread "Thread-0" java.lang.Error: Unresolved compilation problem:
The code of method tFileInputPositional_2Process() is exceeding the 65535 bytes limit

Basically, the generated code exceeds 65535 bytes in length and that is a violation of java. Is there a reason the setup and reading of a file isn't decomposed into a separate function. That would easily resolve my issue.
How can I resolve this?
Thanks
Labels (3)
8 Replies
Anonymous
Not applicable
Author

Hello,
Can you post a bug on our bugtracker ?
Thanks for your support,
Anonymous
Not applicable
Author

Hi,
I want to know if there is a limit number of tRunJob, because I've created a job with 107 tRunJob and when it runs it's ok, if I add others tRunJob this error appears:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
connected
The code of method tRunJob_7Process() is exceeding the 65535 bytes limit
This is the log:
!ENTRY org.talend.libraries 4 0 2008-06-09 17:11:05.101
!MESSAGE ERROR: Accept timed out
!STACK 0
java.net.SocketTimeoutException: Accept timed out
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at org.talend.designer.runprocess.RunProcessContext$PerformanceMonitor.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Thanks a lot!
Anonymous
Not applicable
Author

This is a limitation a Java, you're right, you have too much tRunJob.
HTH,
Anonymous
Not applicable
Author

yes, this is a limitation in 32 bit JDK. you can try to use a 64bit JDK which I think the limit is set much higher.
(or perl!!!)
Anonymous
Not applicable
Author

The maximum method size is ALWAYS 64kb for both 32bit and 64bit java.
If all of you're 107 tRunJobs are connected with "OnSubJobOk" links-- you may be able to remove some of these links to force the code generator to use a different method for each non-dependent subjob.
If this dosnt work, you may be able to reduce the number of subjobs in a single job by adding wrapper jobs around it.
MASTER JOB launches CHILD JOB 1 (contains 54 subjobs) and CHILD_JOB_2 (contains 53 subjobs)
tweitzel
Contributor
Contributor

We are running into the problem with a table that has many (too many) fields and the SCD component. We cannot partition it. So we had to solve it with SQL - and were not able to use the much more convenient SCD component.
Since the maximum method size is always 64K, no matter if the JVM is 32bit or 64bit, Talend should think about how the code is generated. At least that's the part they have control over. Blaming it on the JVM is no help here.
Anonymous
Not applicable
Author

I was getting the exact same Java exception after editing a long-unedited and stable ETL job design. The error started after adding an additional tFileOutputExcel component. That is weird, particularly because the exception was about an input file not an output file.

 

I temporarily deactivated the new tFileOutputExcel flow and the job ran okay.

 

Out of curiosity I removed all tLogRow components in my job design and job ran as expected with no Java exception.

 

Here is a screenshot of the original exception for anyone interested:

0683p000009M5bU.jpg

Anonymous
Not applicable
Author

Getting this error too on a job I have been using for years.  The only change I made to the job was to switch from a MySQL db output to Redshift.  Unfortunately I can't delete that part of the job.