Sometimes it just happens. You have a bloated Java application at your hand and it does not perform well. You may have built this application yourself or just got it as it is now. It doesn't matter, thing is - you do not have a slightest idea what is wrong here.
Java ecosystem have abundance of diagnostic tools (thank for interfaces exposed at JVM itself), but they are mostly focused on some specific narrow kinds (more...)
Earlier this month we began getting frequent email warnings from our EM12c server that some agents were experience read time outs. Then we saw that the emagent java process was using A LOT of CPU, regularly around 500% but sometimes as high as 800% as seen from "top". Restarting the agent did nothing.
I opened an SR with Oracle Support, where I was first instructed to apply a JDBC patch and then a PSU agent (more...)
Read this article on my new blog
Apache Drill allows users to explore any type of data using ANSI SQL. This is great, but Drill goes even further than that and allows you to create custom functions to extend the query engine. These custom functions have all the performance of any of the Drill primitive operations, but allowing that performance makes writing these functions a little trickier
I had a need to Ping a server to see if the server could get to it. I also tried to post to it. This code could be helpful for others, so I want to share it. A post should normally go through the Integration Broker, but I first developed it at a time when I had a product that was supposed to go on servers with diverse versions of Integration Broker.
I was looking at a bit of code was leaking class loaders when deployed to tomcat - so I wanted to quick rule out that a background Thread was holding onto the loader. Pain by eye, it is quite easy with a few unix commands to process the stack trace, filter for the lines that contain the thread name, filter for just the thread names and sort:
150 GiB worth of JVM heap dump is laying on hard drive and I need analyze specific problem detected in that process.
This is a dump of proprietary hybrid of in-memory RDBMS and CEP system, I'm responsible for. All data are stored in Java heap, so heap size of some installation is huge (400 GiB heap is largest to the date).
Problem of analyzing huge heap dumps were on my radar for some time, so (more...)
If you have a sorted collection of elements, how would you find index of specific value? "Binary search" is likely to be your answer. Algorithms theory is teaching us what binary search is most optimal algorithm for this task with log(N) complexity. Well, hash table can do better, if you need to find key by exact match. In many cases, though, you have reasons to have your collection sorted, not hashed.
See it on my new blog : here
Few days ago I have posted a joke on Twitter
Moving my Java from Couchbase to MongoDB pic.twitter.com/Wnn3pXfMGi
— Tugdual Grall (@tgrall) January 26, 2015
So I decided to move it from a simple picture to a real project. Let’s look at the two phases of this so called project:
Moving the data from Couchbase to MongoDB
Updating the application code to use
Every now and then you look at some code and think that it cannot be possibly be wrong. Once you have ruled out a simple programmer screw up / enemy action in code (Make sure you read Java Puzzlers or similar) or a concurrency issue (Read Java Concurrency or go on Dr Heniz excellent course) you should sit back and take a few days and then starting thinking about whether the JDK is indeed (more...)
One of the new capabilities of Oracle SOA Suite 12c is the ability to control the SOA infrastructure thread pools, except the resource pools for EDN and the adapters, with Oracle WebLogic Server work managers. Each partition will has its own work managers defined. This allows you to separate services in partitions and, to some extent, tune them separately based on for example specific SLA requirements.
Well, this blog posting is not about explaining the (more...)
The seminal book on Open Source development "Cathedral and the Bazaar" talks eloquently about the difference between commercial software development and open source development. In the past few years however there has been another shift, a shift where companies are actively releasing their technology into Open Source as a competitive differentiation. A claim of 'we are open' because the source
Recently I decided give that work some refreshing and today I'm publishing first HostSpot JVM options ref card covering generic GC options and CMS tuning. (G1 have got a plenty of tuning options during last (more...)
I got into more coding again lately and that is a good thing I think. I’m a believer of the German saying “Wer rastet, der rostet” or in English: A rolling stone gathers no moss! Java seems to be my main programming language since quite a while now. But believe (more...)