• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

JIT Compiler.

 
Ranch Hand
Posts: 219
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello Rancher,
I am using Websphere AE version 4.0.4.
I noticed some interesting behaviour when using the JIT compiler setting in the application server.
There are some reasonably big XML documents that are parsed by the application. When the JIT Compiler is set on.. we have a lot of failures in the XML parsing and the server restarts many a time.
When I turn it off, then it parses Ok.
ofcourse, I have now turned it off to get the applicaiton running. But what is the difference? what does the app server do when it is turned on?
Any pointers?
Prasad.
 
Greenhorn
Posts: 18
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,
I don't have a direct answer to your question, but had a jit error when running my app on jakarta-tomcat and using jdk122. Check out the link below for IBM's explanation of jit.
http://www-1.ibm.com/servers/esdd/articles/porting_java/
Tien
 
Nagendra Prasad
Ranch Hand
Posts: 219
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks tien. That link was promising. I need to check a few more ideas that I got from that.. I might post again!
 
Ranch Hand
Posts: 59
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The JIT compiler is invoked when a determination is made that a method or a class is being called more than x number of times. The JIT compiler then pre-compiles the method, thus allowing better performance. If the JIT is turned off, then there is no pre-compilation.
Sometimes the JIT complier incorrectly compiles the code, thus leading to problems that you are experiencing. Are you getting any dr watason dumps or user dumps? Generally these files will help identify where the problem might be.
Another thing would be to first identify the method where the JIT compiler is failing. Once this is done, you can skip the compilation of just this method, rather than turning off the JIT compiler, thus not having to compromise on the performance of your application.
I have in the past worked extensively with IBM on two different occasions with regards to JIT compiler problems and have a learnt a lot from that. Feel free to shoot me any more questions you might have with regards to this issue.
Your best bet would be to open a PMR with IBM.
 
Nagendra Prasad
Ranch Hand
Posts: 219
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello Shalini,
Many thanks for your detailed reply.
We are running the application on unix and as such all we get is a core dump and the application server restarts.
I have spoken to IBM regarding this... and believe that it will be a while before I get a response from them as this is not a 'System Down' level of criticality. So, I am glad that you have offered your advice here.
I did read the bits abt the impact on performance and that is what was definitely worrying me.
I know for sure which method causes this error to crop up. It is always the same one. Here's a brief desc. of what the method does:
- parse an XML file.
- recursively call all the child nodes and create the DOM model and a java bean representation of all the elements.
We do this because of some specific needs in the application.
It is always in the parse method that it fails!
You mentioned a possibility of not enabling JIT just for this class? How can that be done?
Any details on this would be thankfully receieved ;-) .
many thanks for your reply.
best regards,
prasad.
 
Shalini Komarla
Ranch Hand
Posts: 59
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm glad I can help....don't loose heart. On both occasions I spent almost 2 months working back and forth with the JIT development team in Toronto to help them identify exactly where the problem was and to help them test the modified JIT compiler!!!
for your production environment you can work around this problem by setting the JITC_COMPILEOPT variable in the environment variable section through the admin console...
JITC_COMPILEOPT=SKIP{fully qualified class name}{method name}
This should have almost no impact on performance (skipping compilation of one method rarely affects performance) and is much better than using
JAVA_COMPILER=NONE.
Good Luck!
 
Nagendra Prasad
Ranch Hand
Posts: 219
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
wow... 2 months.. thats quite an effort to put in with the developement team at toronto. Hats off to you..
I am going to try these settings on our staging environment tmrw.
And all I can to you.. is a real big THANK YOU!
I shall keep you updated.
Best Regards,
Nags.
 
Nagendra Prasad
Ranch Hand
Posts: 219
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Shalini..
Just a note to say... those options worked. Got a detailed document from IBM reg. troubleshooting JIT problems.. it took a while for me to understand their language.. but I think I have achieved that middle ground where application run and performance seems ok.. and JIT only for those components which do not cause a crash..
thanks for your pointers!
best regards,
Prasad.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic