So you’ve dumped 150 GiB of JVM heap, now what?

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...)

Découverte : Java Cloud Service Workshop


Marcus Lagergren 20 years of Java In Review

We know each other since some years now. And I am very very pleased to see, that we finally could make it happen to have him speaking at JavaLand as a Keynoter. And what would be better for a JVM veteran than talking about this years anniversary: Happy Birthday Java!
Thank you Marcus, for taking the time!

I am looking forward to a beer or two at JavaLand! Follow his rumblings about dynamic languages on (more...)

Java 8 and Spring 4

On March 27, 2014, the Spring community was happy to announce the Spring Framework 4.0.3. The reason why is that it was the first release of the Spring Framework with Java 8 support. Since then, the Spring team worked very hard to provide major updates for the Spring Framework to be even more supportive towards Java 8. As of September 4, 2014, the Spring Framework 4.1 has arrived with even more support towards the Java (more...)

Sonatype Nexus: Retrieving artifacts using the REST API or Apache Ivy

Sonatype Nexus is an often used artifact repository. In a previous blog post I have shown an example how Maven can be used to assemble and release artifacts to Nexus. In this blog post I will describe two ways how artifacts can be fetched from the Nexus repository; by using the REST API and by using Apache Ivy.

ArtifactsFromNexus

The Nexus API

Sonatype has done a great job at providing an extensive well documented REST API. (more...)

Binary search – is it still most optimal?

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.

On my job, I'm (more...)

Moving My Beers From Couchbase to MongoDB

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

Oracle SOA Suite 12c: Multithreaded instance purging with the Java API

Let’s tackle a single topic at a time in this blog post ;) SOA Suite 12c provides a Java API to perform operations on the SOA infrastructure and things running there such as composites and instances. There are several blog posts available on how to do this in SOA Suite 10g and 11g. However since 12c is relatively new, I decided to try if I could easily access the Java API in 12c and if the (more...)

Popular Programming Languages

First of all, Happy New Years!

IEEE Spectrum published a ranking of the most popular programming languages. Computational journalist Nick Diakopoulos wrote the article. While it may surprise some, I wasn’t surprised to find SQL in the top ten.

07dataflow-1403643424680Nick weighted and combined 12 metrics from 10 sources (including IEEE Xplore, Google, and GitHub) to rank the most popular programming languages.

  • Compiled programming languages (Java [#1], C [#2], C++ [#3], C# [#4], Objective-C [#16])
  • Interpreted (more...)

JDeveloper Debugging Tips (Watchpoints & Beep)

In a previous blog post I talked about scoping breakpoints for debugging purposes, next to scoping breakpoints JDeveloper has more interesting debugging features to offer.

I created a simple example to show both the watchpoint as well as the beep functionality. To illustrate this, I created a page with an inputText and a button, both bound to a backingBean. 

This  is the jsf code:
 



The code from the bean is also pretty straight forward:
    (more...)

But that’s impossible, or finding out that the JIT has broken your code.

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...)

Oracle Event Processing 12c: java errors when deploying a new OEP project

Sometimes when you create a new OEP project in JDeveloper 12c and you deploy it for the first time, you might get a list of java errors. They might look a bit like this:


Exception in thread "SpringOsgiExtenderThread-118" org.springframework.beans.Fat
alBeanException: Error in context lifecycle initialization; nested exception is
com.bea.wlevs.ede.api.ConfigurationException:
Invalid statement: "select S.properties as properties,
>>cast<<@java(S.javaContent, com.oracle.oep.FraudCheckRequest.class).getOrde
rNumber() as orderNumber,
cast@java(S.javaContent, com.oracle.oep.FraudCheckRequest.class).getEmail()
as email,
cast@java(S.javaContent, com.oracle.oep.FraudCheckRequest.class).getTotalAmo
unt() as totalAmount
from ednInputChannel as S"
Description: Invalid call to function or constructor: cast
Cause: Probable causes are: Probable causes are: There is no symbol named com, o
r Attribute name com is invalid for STREAM or RELATION or VIEW., or Types com.or
acle.oep.FraudCheckRequest.class and com.oracle.oep.FraudCheckRequest not found
when referencing constructor or static method.., or Error while handling member
access to complex type. Constructor cast of type cast not found. or Probable cau
ses are: Probable causes are: There is no symbol named com, or Attribute name co
m is invalid for STREAM or RELATION or VIEW., or Types com.oracle.oep.FraudCheck
Request.class and com.oracle.oep.FraudCheckRequest not found when referencing co
nstructor or static method.., or Error while handling member access to complex t
ype. Constructor cast of type cast not found...
Action: Verify function or constructor for complex type exists, is not ambiguous
, and has the correct number of parameters.
at com.bea.wlevs.spring.ApplicationContextLifecycle.onApplicationEvent(A
pplicationContextLifecycle.java:146)
at org.springframework.context.event.SimpleApplicationEventMulticaster.m
ulticastEvent(SimpleApplicationEventMulticaster.java:97)
at org.springframework.context.support.AbstractApplicationContext.publis
hEvent(AbstractApplicationContext.java:324)
at org.springframework.context.support.AbstractApplicationContext.finish
Refresh(AbstractApplicationContext.java:929)
at org.springframework.osgi.context.support.AbstractOsgiBundleApplicatio
nContext.finishRefresh(AbstractOsgiBundleApplicationContext.java:235)
at org.springframework.osgi.context.support.AbstractDelegatedExecutionAp
plicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:358)
at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCus
tomTCCL(PrivilegedUtils.java:85)
at org.springframework.osgi.context.support.AbstractDelegatedExecutionAp
plicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.ja
va:320)
at org.springframework.osgi.extender.internal.dependencies.startup.Depen
dencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterAp
plicationContextExecutor.java:136)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.bea.wlevs.ede.api.ConfigurationException:
Invalid statement: "select S.properties as properties,
>>cast<<@java(S.javaContent, com.oracle.oep.FraudCheckRequest.class).getOrde
rNumber() as orderNumber,
cast@java(S.javaContent, com.oracle.oep.FraudCheckRequest.class).getEmail()
as email,
cast@java(S.javaContent, com.oracle.oep.FraudCheckRequest.class).getTotalAmo
unt() as totalAmount
from ednInputChannel as S"
Description: Invalid call to function or constructor: cast
Cause: Probable causes are: Probable causes are: There is no symbol named com, o
r Attribute name com is invalid for STREAM or RELATION or VIEW., or Types com.or
acle.oep.FraudCheckRequest.class and com.oracle.oep.FraudCheckRequest not found
when referencing constructor or static method.., or Error while handling member
access to complex type. Constructor cast of type cast not found. or Probable cau
ses are: Probable causes are: There is no symbol named com, or Attribute name co
m is invalid for STREAM or RELATION or VIEW., or Types com.oracle.oep.FraudCheck
Request.class and com.oracle.oep.FraudCheckRequest not found when referencing co
nstructor or static method.., or Error while handling member access to complex t
ype. Constructor cast of type cast not found...
Action: Verify function or constructor for complex type exists, is not ambiguous
, and has the correct number of parameters.
at com.oracle.cep.processor.cql.impl.CQLProcessorImpl.prepare(CQLProcess
orImpl.java:1141)
at com.oracle.cep.processor.cql.impl.CQLProcessorImpl.afterConfiguration
Active(CQLProcessorImpl.java:2788)
at com.bea.wlevs.spring.ActivationBeanPostProcessor.postProcessAfterCont
extInitialization(ActivationBeanPostProcessor.java:20)
at com.bea.wlevs.spring.DeferredBeanPostProcessor.afterConfigurationActi
ve(DeferredBeanPostProcessor.java:27)
at com.bea.wlevs.spring.ApplicationContextLifecycle.onApplicationEvent(A
pplicationContextLifecycle.java:113)
... 9 more

The solution to this is very simple.
Go back to JDeveloper, right-click on the project name and select Rebuild. Afterwards deploy again and the errors will be gone.

This has something to do with the java files not registering correctly in the project. Rebuilding the project will force those java files to be included correctly.

Exciting things happening in Coherence…

I hope everyone is attending/watching JavaOne 2014 tomorrow.   There’s a sneak preview of some cool next generation Coherence with Java 8 in the Java One Technical Keynote

Follow @JavaOneConf and @pinocchiocode to find out more…


Oracle SOA Suite 12c tips – Tuning the SOA infrastructure thread pool

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...)

Open Source as religion – when the Bazaar becomes a Cathedral

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

Message Correlation using JMS

Last year I created a few OSB services with the asynchronous request response message exchange pattern. OSB does not support this out of the box, since OSB is in fact synchronous in nature. Although OSB supports the WS-Addressing namespaces, you need to set the WS-Addressing elements programmatically.

Since OSB is synchronous the request and response flows in the Asynchronous Request/Response pattern are completely seperated implemented from eachother. That means that in the response flow you (more...)

Share your source between projects

Normally we pack functionality into libraries and use this library to share the functionality. However, during development of several JDeveloper Extensions our goal was to have one shared java source between our JDeveloper 11g and JDeveloper 12c extension.
Off course we wanted the ability to easily develop, test, debug and run the extension, but we also want to share the java code to introduce reusability.

We accomplished this, by creating a separated ‘coresrc’ folder and (more...)

Java Cookbook 3rd Edition

Java is a programming language and computing platform. There are lots of applications and websites have used it. About latest Java version, Java 8. Oracle announced Java 8 on March 25, 2014. I mention a book title - Java CookbookJava Cookbook by  Ian F. Darwin and this book covers Java 8.
 It isn't a book for someone who is new (Readers should know a bit about syntax to write Java) in Java, but It is (more...)

The next big wave of IT is Software Development

I can smell a change coming, the last few years have seen cloud and SaaS on the rise and seen a fragmentation in application development (thanks in a large part to the appalling stewardship of Java) and a real focus of budgets around BI and 'vanilla' package approaches.  Now this is a good thing, both because I jumped out of the Java boat onto the BI boat a few years ago but also because its

Software Development Wave 4: back to the package

The end of the next Software Development wave will be when Software development against 'eats itself' as it did with with technologies like Hadoop showing a new value in information, with platforms like SFDC showing new pre-build services, where people like GoodData have turned BI into SaaS.  So we will see the same evolution again and a new generation of commoditisation which drives