There are several possibilities to analyze and troubleshoot GC issues. You can activate the gc log via Unified JVM logging(-Xlog:gc) to get a textual log output. This can be also set for detailed GC phases and to specific levels. The analysis can be done on the textual log file or with available open source tools....

In my last post, I covered a correctness bug in the fundamental Java profiling API AsyncGetCallTrace that I found just by chance. Now the question is: Could we find such bugs automatically? Potentially uncovering more bugs or being more confident in the absence of errors. I already wrote code to test the stability of the....

In this blog post I will explain how to connect SAP Analytics Cloud with AWS Redshift using SAP Cloud Connector and Cloud Agent. I have ordered and completed the information found on SAP Help Portal based on my personal experience with the intention of clarifying the doubts raised in this question. This is an Import Data connection, that....

Did you ever wonder whether JFR timestamps use the same time source as System.nanoTime? This is important when you have miscellaneous logging besides JFR events; otherwise, you could not match JFR events and your logging properly. We assume here that you use System.nanoTime and not less-suited timing information from System.currentTimeMillis. The journey into this started with a question on....

SAP’s own Java VM SapMachine comes with a handy monitoring tool you may not know: SapMachine Vitals. Think sysstat tools – pidstat, iostat, etc – plus JVM stats rolled into one and baked into our JVM for your convenience. Curious? After me. Our SapMachine Vitals give you a gap-less history of metrics: JVM-, process- and system-data, periodically sampled and buffered inside the....

Analyzing OOM-kills is no fun. You fly mostly blind, have no meaningful logs – your JVMs just keep disappearing. It can be highly frustrating work. If that sounds familiar, we may have something for you. OOM-kills mean sudden death. The JVM gets no warning, it just receives a SIGKILL from the kernel. Or its container....

Using async-profiler can be quite a hassle. First, you have to download the right archive from GitHub for your OS and architecture, then you have to unpack it and place it somewhere. Or you get it from your OS distribution, hoping that it is the current version. It gets worse if you want to embed it into....

Profilers are great tools in your toolbox, like debuggers, when solving problems with your Java application (I’ve been on a podcast on this topic recently). I’ll tell you some of their problems and a technique to cope with them in this blog post. There are many open-source profilers, most notably JFR/JMC, and async-profiler, that help....

This blog post tells the story of how we tackled a particular Java memory issue which caused our Cloud Foundry applications to crash. The issue itself might be rather special, but the principles and techniques we used can be applied in a broader context. The Problem We are running in SAP BTP Cloud Foundry, which....