As an example turn on log4j debug on an application based on third party code (String framework) yields these detailed logs and you can see precisely where the time goes
09:37:55,750  INFO I00100a:25 - =====> I00100 starts...
09:37:55,859 INFO SqlBuilderFactory:66 - Created sql builder AS400/iSeries sql builder 09:37:56,250 DEBUG JdbcTemplate:299 - Executing SQL query [SELECT T01."EMP#",T01."LASTNAME",T01."FIRSTNAME",T01."ACTIVE",T02."DATE",T02."INCTYPE",T02."EMPSPRVR",T02."SHIFT",T02."COWORKER",T02."INFO" FROM MRCJAVALIB."EMPLOYEE" T01 left outer join MRCJAVALIB."INCIDENT" T02 ON T01."EMP#"=T02."EMP#" ORDER BY T01.EMP# ASC fetch first 11 rows only] 09:37:56,250 DEBUG DataSourceUtils:106 - Fetching JDBC Connection from DataSource 09:37:57,437 DEBUG DataSourceUtils:272 - Returning JDBC Connection to DataSource 09:37:57,468 DEBUG JdbcTemplate:299 - Executing SQL query [SELECT COUNT(*) FROM 09:37:58,625 INFO MrcLastRun:110 - Updated mrc dct with sql=UPDATE MRCJAVALIB.MRCDCT14 SET DATLST=101706,TIMESR=28 WHERE RETRN=100
09:37:58,640  INFO I00100a:137 -   -----> I00100 ends.


If you and/or your third party software use a log facility (I think most
software do) such as log4j you can turn on debug mode and inspect the log’s timestamp and see where the time goes

Easier said than done, especially for big systems. Also, as a rule, requires
some instrumentation to be included in the application being tested.
Otherwise, only servlet/enterprise bean-level information would be available
- personally, I find that insufficient. In any case, I certainly did not
mean that type of 3rd party software.

Lo ________________________________________________________

Misys Banking Systems
Key West / Windsor Road / Slough / SL1 2DW

T +44 (0)1753 708 053 M +44 (0)7903 181 030 raikovl1@xxxxxxxxx ________________________________________________________________

This email and any attachments have been scanned for known viruses using
multiple scanners. We believe that this email and any attachments are virus
free, however the recipient must take full responsibility for virus
checking. This email message is intended for the named recipient only. It
may be privileged and/or confidential. If you are not the intended named
recipient of this email then you should not copy it or use it for any
purpose, nor disclose its contents to any other person. You should contact
Misys Banking Systems so that we can take appropriate action at no cost to
yourself. <>

-----Original Message-----
From: Bruce Jin [mailto:brucej@xxxxxxxxxxxxxxxxxxxx]
Sent: 17 October 2006 14:39
To: Java Programming on and around the iSeries / AS400
Subject: Re: Optimizing Native Java

If you and/or your third party software use a log facility (I think most software do) such as log4j you can turn on debug mode and inspect the log’s timestamp and see where the time goes


Raikov, Leonid wrote:
The most important thing is to understand where the time goes. Situations
when there are no bottlenecks and every class contributes to poor
performance in equal measure are pretty rare. What you need is to a)
understand what threads are primarily involved in productive work and then
b) draw a chart describing what each of these thereads is busy doing (e.g.
50% of the time spent waiting for JDBC queries and 50% of the time doing
processing). You can hardly achieve this without Java performance analysis
tools for System i. IBM Job Watcher is what immediately springs to mind,
JW data is not easy to analyse, to say the least. There are other tools,
some of them pretty good, but none of them in the Open Source domain, as
as I know.
As for the magic button, there is none, I'm afraid. I would be suprised if
memory alone could make you happy. That is, unless you're running your JVM
in a 50MB pool.
-----Original Message-----
From: albartell
To: 'Java Programming on and around the iSeries / AS400'
Sent: 10/16/06 4:12 PM
Subject: Optimizing Native Java

Hi All,
I am just completing a project where I wrote a Java proxy of sorts and
were a bunch of third party jar files involved in the mix. To make a
story short we are not satisfied with the performance we are getting out
the Java processes on the iSeries (note the Java is running in it's own
listening to a data queue - only one JVM startup).  We have run the
CRTJVAPGM against all .class and .jar files involved and are wondering
there any other mechanisms to look at concerning getting more speed on
Java end?
Obviously one solution would be to throw more memory at it, but is there
way to section off the memory so this Java process gets sole use of it
(similar to how you can do the same for Websphere Application Server)?
Any other idea's? Aaron Bartell
New Tool! - RPG Chart Engine - visit
<>  for more info.

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.