• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 438
  • Last Modified:

Issue with Java Application performance on iSeries

I have a java application that run continuously in batch on an iSeries.  The application monitors a database and creates an XML document for the data in the database.  This application is hogging the cpu.  I need some advice on what I can do so the application isn't using as much CPU.  I have run the CRTJVAPGM over all class and jar files in the application's folder, setting the optimization to 30.  What else can be done?  

Thanks  
0
DebeG
Asked:
DebeG
  • 5
  • 2
1 Solution
 
Bryan ButlerCommented:
There are many things that could help.  If you are sure it is the application, then I'm betting you have an I/O issue.  Are you creating these xml files in the most efficient way?  Also, if there's any logging turned on, then that's more IO.  
0
 
Bryan ButlerCommented:
There are also static and dynamic code analyzers that might do the trick.
0
 
DebeGProgrammerAuthor Commented:
We do have logging turned on, but it is set to INFO.  The program runs multi threads.  I am not sure the issue is the application.  What about garbage collection?  When I submit the job that runs the java program, I just leave the garbage collection set to the defaults.  Would tweaking this value affect CPU usage?   Can you tell me more about static and dynamic code analyzers?

Thanks
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
Bryan ButlerCommented:
Well, I doubt garbage collection would cause the problem, but you can tweak it and maybe help some.  There is probably more than one issue, so tweak away.  If you're positive it's not I/O, which I guess you would know if you are creating a ton of logs, or something to that effect, then some analyzing sounds like the next step.  Although if you can turn all logging off, then I'd try it just to see the effect.  As far as anylyzers, the best is going to be an expert pair of eyes.  Many times they will be able to figure out what parts of code are the hogs.  Static anlyzers are not much on performance, but it couldn't hurt.  They basically look at the code and find as many issue as they can w/o running it. A dynamic anlyzer runs the software and would be the performance tool for this case.  They can check all the various things going on behind the seens and let you know where your issue is.  I worked support for a company that had a cool tool to do this.  It was called Identify and is now part of BMC.  It was only java as far as app servers, though, so it wouldn't be good in your case (or are you using app servers?).   I'll try to find some if you'd like.  A search for -  java "performance tools" analyzers OR analyze - found a Java Performance Tuning website and many others that look promising.
0
 
Bryan ButlerCommented:
Or an even better search for "java performance analyzers iseries" turned up a good IBM web site:

http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/rzamy/50/admin/prfref.htm
0
 
DebeGProgrammerAuthor Commented:
Thanks for that info, i will look into that website.  And that is a good idea to turn off the logging to see what kind of affect that has on performance.  I will try that this afternoon too.
0
 
Bryan ButlerCommented:
Great. Please let us know how it goes.
0

Featured Post

[Webinar] Cloud and Mobile-First Strategy

Maybe you’ve fully adopted the cloud since the beginning. Or maybe you started with on-prem resources but are pursuing a “cloud and mobile first” strategy. Getting to that end state has its challenges. Discover how to build out a 100% cloud and mobile IT strategy in this webinar.

  • 5
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now