Technical Articles
Basic start-up troubleshooting JAVA – the logical sequel!
After writing Basic start-up troubleshooting – the logical sequence! I promised to deliver a Java version of it. It has taken rather a long time but I finally put together my attempt to describe the basic flow of a Java System startup and the possible areas where problems can occur.
This is not by any means perfect but I like to believe it gives a decent overview of the process.
Database Starts
As on ABAP the first step is to check and start the database. No dedicated developer trace is created in the work directory as the database has its own logs. If the database does not start correctly it should be visible within seconds and errors will be available within the DB logs.
Developer traces: Refer to your DB logs.
Startup
JSTART is called next, it takes the role of the Java instance controller which analyzes its configuration and initializes SAP signal handling and opens the control port.
There is very rarely an issue with the initial load of JSTART. If for some reason this fails you most likely have a problem with your instance profile.
Developer traces: dev_jstart
Offline Deployment
The Java instance controller reads the instance definition and creates a child process that initializes JVM and starts the OFFLINE DEPLOYMENT program which performs the deployment steps in the Java database.
In the ‘business as usual’ scenario this is very unlikely to end up in an error. These days most deployments are done automaticaly using SUM, the traces will be filled when the instance is stopped and started during the SUM deployment phase.
Developer traces: dev_deployment, std_deployment.out and jvm_deployment.out
Bootstrap
BOOTSTRAP synchronizes the binary data in the Java database with the local file system.
This is where you will most likely find issues during your system startup. Errors during this phase are common and usually caused by issues in one of the following areas;
1. Problems at DB Level
There is a large number of reasons for this to fail going from DB availability to problems with listeners and DB user authentication.
Bootstrap Stops Due to Database Problems – Configuration of SAP NetWeaver – SAP Library
2. Problems at the File System Level
Problems with environmental variables, file permissions, file availability, mounts, etc…
Bootstrap Stops Due to File System Problems – Configuration of SAP NetWeaver – SAP Library
3. Problems at the Configuration Level
Java VM settings configured incorrectly, usually related to memory allocation.
Bootstrap Stops Due to Configuration Problems – Configuration of SAP NetWeaver – SAP Library
Developer traces:dev_bootstrap, std_bootstrap.out and jvm_bootstrap.out
Internet Communication Manager (ICM)
The Java instance controller starts the processes for infrastructure nodes – the most important in my opinion is ICM; ICM handles the HTTP request directed to the AS JAVA system.
If there is an issue with ICM you’ll see an error on screen while calling the java standard URL. http://<host>.<fqdn>:<port> you will also find the details on the ICM developer trace.
Developer traces: dev_icm
Server Node
When all infrastructure processes are started, the Java instance controller starts the processes for the server nodes.
Finally, your Java system is running and if there was an issue with any request dealt with by this server node you will find information about it on the developer trace.
Developer traces: dev_server0, std_server0.out and jvm_server0.out
Hope this is a good basic explanation of where to start when troubleshooting a Java Startup problem!
As a reference I have taken the freedom to borrow this lovely chart from SAP Help to ilustrate my case
(Image Source: Startup, Operation and Shutdown of an AS Java Instance – Administration – SAP Library)
Love to hear your comments,
I am drinking my cup of java now 🙂
Enjoy
good blog, very good picture! This one is in my bookmarks now.
Hi Juan
Very Nice Explanation and the picture is really very helpful for visualization.
Regards
Anurag
Thanks!
Excelent blog, clear information. Thanks for sharing it.
Thanks Juan for the excellent blog!!!
With Regards
Ashutosh Chaturvedi
Thanks Ashutosh
Thanks Juan,
Clear explanation
Regards
kaushik G
Great blog Juan!!!
Thanks,
Asad Zafer
Hello Juan
It would have been even more awesome if you can explain briefly some of the process here:
Java offline deployment: What is being deployed here? How is the flow of deployment? SAP NetWeaver Java DB started already and i am not clear on the flow of this process. what is being read and where java components are being deployed? on NW DB? Aren’t the components already deployed? Can you please elaborate on this process?
Java Bootstrap – What part of the file system and DB are synchronized? I know for fact no repository objects are synched, and how is the flow of synchronization? from DB to file vs from file to DB?
Thanks a lot. I really appreciate if you can help clear these points
Really awesome, the explanation of AS java startup sequence. Please update more topics.
Thanks & Regards,
Arjun Peddagopi