How can I improve the startup performance of Java applications on the AS/400?
We have an application that connects to an external system. However, this takes so long to start up on the AS/400, that it always fails to connect first time.
The communication is performed by an open source tool (Quickfix/J) which uses Apache Mina to perform the underlying socket communications. The socket is opened, but it then takes 10-15 seconds to send the first message. The external server seems to close the socket if nothing happens within 5 seconds - hence the initial failure. Thereafter it is much quicker.
I believe this is to do with the class loading and JIT that is making the first attempt so slow.
If I run the exact same java application on a PC, then this occurs in approximately 1 second. I have tested this by placing a TCP trace tool in between the java application and the server. If I add in a manual delay on the PC (just for testing) then I can see it receiving the same reject.
The startup performance occurs on all our java applications (not just with this tool). However, it is particularly causing a problem with this one.
Any help appreciated.
I believe the system is a power 8 server (relatively new and otherwise fairly quick). OS level is on V7R1. Java used is JDK 8 (64-bit).
GF Financial Markets (UK) Limited is a limited company registered in England and Wales with registered number 01242631 and VAT registered number 174 4017 21. Our registered office is 1 Broadgate London EC2M 2QS GF Financial Markets (UK) Limited is authorised and regulated by the Financial Conduct Authority.
> for further details. This message is intended solely for the intended recipient. If you are not the intended recipient please notify us immediately by return email and destroy all copies of this message. If you are not the intended recipient you must not copy, disclose, forward or otherwise use the information contained in this message. See http://www.gffm.com/legal-and-regulatory/legal-notices
email for further information