Configuration Mid Server On ServiceNow Infrastructure

This blog provides a step-by-step guide to integrate and run custom Java applications in the ServiceNow MID Server infrastructure. It covers creating a ServiceNow application, setting up an Amazon EC2 instance, installing MID Server, adding a JAR file, and running the Java application. The guide emphasizes seamless communication and data exchange between ServiceNow and external entities.

‘top’ reporting accurate metrics within containers?

The command-line tool "top" provides real-time resource utilization reports, but may inaccurately reflect CPU usage within Docker containers. An experiment showed "top" reported 25% CPU utilization instead of 100%. To obtain accurate metrics in containers, alternative tools like Docker stats, cAdvisor, and yCrash should be utilized for improved monitoring.

Virtual Threads Performance in Spring Boot

This post examines configuring Virtual Threads in a Spring Boot application that calculates the Fibonacci sum for values starting from 10,000. Using JMeter, a load test with 1000 users reveals similar throughput and average response times for both virtual and native threads, highlighting virtual threads' advantage in lower thread usage without performance gain for CPU-intensive operations.

How to configure Virtual Threads in Spring Boot application

Spring Boot is a popular Java framework that allows developers to minimize boilerplate code and easily configure applications. By leveraging Virtual Threads, developers can enhance thread management without extensive rewrites. Configuration involves setting properties in application files and using the @ConditionalOnProperty annotation to toggle between Virtual and Native Threads seamlessly.

Spring RestTemplate to WebClient causes OutOfMemoryError

Spring Boot's migration from RestTemplate to WebClient enhances performance via concurrency and non-blocking I/O. However, it led to OutOfMemoryError due to insufficient direct buffer memory. By analyzing the application with yCrash and increasing the maximum direct memory size, the issue was resolved, allowing successful image uploads without crashes.

Java NIO – OutOfMemoryError

Java NIO allows high-performance non-blocking I/O, enhancing concurrency and efficiency. However, running a Spring Boot application with Java 11 led to frequent 'OutOfMemoryError' issues. Upgrading to Java 17 and increasing Direct Buffer Memory allocation improved performance, allowing for significantly more connections before errors occurred. Solutions include optimizing memory size or upgrading Java versions.

Diagnosing Deadlock in Boomi

The content outlines the process of optimizing Boomi performance, focusing on setting up a testing environment using a Boomi Atom on MacBook Pro. It highlights the challenges of performance issues, particularly thread deadlocks in Java applications. The use of tools like yCrash for diagnostics and monitoring is emphasized for identifying and resolving bottlenecks.

Optimizing the Capacity of a HashMap

This article discusses how to optimize memory allocation in HashMaps by understanding the differences between allocation and mapping capacity. It emphasizes the importance of choosing the correct initial capacity, ideally a power of two, to mitigate space overhead and prevent performance degradation. Several formulas for calculating proper capacity are reviewed.

Actions on OutOfMemoryErrors

OutOfMemoryErrors in applications occur when memory allocation fails. This article discusses effective practices for analyzing such errors, including automatic heap dumps and using JVM parameters. It highlights script usage for automatic actions upon encountering errors and emphasizes the importance of proactive monitoring and automated incident reporting to reduce application downtime.

Troubleshooting Java Spring Boot Deadlock

Spring Boot is a popular framework for developing Java web applications that often encounter thread deadlocks, halting performance. This blog discusses deadlock causes, examples, and troubleshooting techniques using the yCrash tool. Solutions include timeout locks, utilizing concurrency utilities, and avoiding nested locks to mitigate deadlock issues effectively.