Oracle Reports has been around for a long time and future versions will most likely not be created (see here). Hence this is going to be my first and also last blog post on this product. Installing Reports is not an easy task. It requires several steps which are not well documented. This blog post contains a few pointers. The main source of inspiration is here.
Articles containing tips, tricks and nice to knows related to IT stuff I find interesting. Also serves as online memory.
Friday, February 15, 2019
Sunday, February 10, 2019
Minikube on Windows. Hyper-V vs Vagrant/VirtualBox
Kubernetes is a system for running and coordinating containerized applications across a cluster of machines. Minikube runs a single-node Kubernetes cluster and can be used for local development. In this blog post I'll compare 2 different ways to get a working Minikube environment on Windows based on experience with a workshop which we've created. One based on using Vagrant and VirtualBox (in which an Ubuntu environment is created) and one which uses Hyper-V (and an out of the box Minikube Linux distribution running on top). Do mind that many of the things in this blog post are a personal opinion.
Saturday, December 8, 2018
JVM performance: OpenJ9 uses least memory. GraalVM most. OpenJDK distributions differ.
In a previous blog post I created a setup to compare JVM performance of several JVMs. I received some valuable feedback on the measures I conducted and requests to add additional JVMs. In this second post I'll look at some more JVMs and I've added some measures like process memory usage and startup time. Also I've automated the test and reduced the complexity of the setup by removing haproxy and testing a single JVM at a time.
Labels:
adoptopenjdk,
graalvm,
heap,
JVM,
memory,
non-heap,
openj9,
oracle,
performance,
response times,
startup,
zulu
Friday, November 23, 2018
Comparing JVM performance; Zulu, OpenJDK, Oracle JDK, GraalVM CE
There are many different choices for a JVM for your Java application. Which would be the best to use? This depends on various factors. Performance being an important one. Solid performance research however is difficult. In this blog post I'll describe a setup I created to perform tests on different JVMs at the same time and show some interesting results! I also looked at the effect of resource isolation (assigning specific CPUs and memory to the process). This effect was negligible. My test application consisted of a reactive (non-blocking) Spring Boot REST application and I've used Prometheus to poll the JVMs and Grafana for visualization.
Below is an image of the used setup. Everything was running in Docker containers except SoapUI.
Below is an image of the used setup. Everything was running in Docker containers except SoapUI.
Labels:
actuator,
cpu,
docker,
docker-compose,
graalvm,
grafana,
load,
memory,
metrics,
openjdk,
oracle jdk,
oraclejdk,
performance,
prometheus,
resource constraints,
resource limits,
zulu
Thursday, November 1, 2018
Monitoring Spring Boot applications with Prometheus and Grafana
In order to compare the performance of different JDKs for reactive Spring Boot services, I made a setup in which a Spring Boot application is wrapped in a Docker container. This makes it easy to create different containers for different JDK's with the same Spring Boot application running in it. The Spring Boot application exposes metrics to Prometheus. Grafana can read these metrics and allows to make nice visualizations from it. This blog post describes the setup. A next post will show the results. You can download the code here (in the complete folder). To indicate how easy this is, getting this setup up and running and write this blog post took me less than 1.5 hours total. I did not have much prior knowledge on Prometheus and Grafana save for a single workshop at AMIS by Lucas Jellema.
Tuesday, October 30, 2018
Running Reactive Spring Boot on GraalVM in Docker
GraalVM is an open source polyglot VM which makes it easy to mix and match different languages such as Java, Javascript and R. It has the ability (with some restrictions) to compile code to native executables. This of course offers great performance benefits. Recently, GraalVM Docker files and images have become available. See here.
Since Spring Boot is a popular Java framework and reactive (non blocking) RESTful services/clients implemented in Spring Boot are also interesting to look at, I thought; lets combine those and produce a Docker image running a reactive Spring Boot application on GraalVM.
I've used and combined the following
Since Spring Boot is a popular Java framework and reactive (non blocking) RESTful services/clients implemented in Spring Boot are also interesting to look at, I thought; lets combine those and produce a Docker image running a reactive Spring Boot application on GraalVM.
I've used and combined the following
- Building a Reactive RESTful Web Service
- Spring Boot with Docker and Running Spring Boot in a Docker container on OpenJDK, Oracle JDK, Zulu on Alpine Linux, Oracle Linux, Ubuntu
- Oracle's GraalVM Docker images
- (my very own) Ubuntu Development VM (requires VirtualBox, Vagrant)
As a base I've used the code provided in the following Git repository here. In the 'complete' folder (the end result of the tutorial) is a sample Reactive RESTful Web Service and client.
Labels:
docker,
graalvm,
jdk,
llvm,
openjdk,
oracle jdk,
r,
reactive,
rest,
spring boot
Friday, October 26, 2018
Securing Oracle Service Bus REST services with OAuth2 (without using additional products)
OAuth2 is a popular authentication framework. As a service provider it is thus common to provide support for OAuth2. How can you do this on a plain WebLogic Server / Service Bus without having to install additional products (and possibly have to pay for licenses)? If you just want to implement and test the code, see this installation manual. If you want to know more about the implementation and choices made, read on!
Subscribe to:
Posts (Atom)






