JCA, Distributed, Transactional Collections, ...in 2 Minutes And 363 kB

Hazelcast is a small library (363 kb, version 1.5RC1), which comes with distributed, transactional collections and a Java EE JCA (shipped with the zip!). The connector is only needed in Java EE environments to transparently propagate e.g. EJB transactions to hazelcast (outbound transactions).

To install you have only to download, extract and start the sample application (run.bat - it worked perfectly in my case). This should take less than 2 minutes. The installation of the JCA connector is even easier - just drop the hazelcast-ra.rar file into e.g. [glassfish]/domains/domain1/autodeploy/ (I tested the installation only with GF v2).

The screencast (12 min) explains the concurrent, transactional access to distributed collections - well done.

I looked at Hazelcast last year - I liked the ease of use and the quality of the screencast, but not so impressed by the unclear licensing. It was free but not open - and without clear licensing. Shortly after I complained about this fact (no idea whether opensourcing of this library was actually my fault :-)), it changed, now it is a Google Code project with Apache license and so interesting for commercial projects. I guess good support is available as well - at least the main committer answered the question about licensing immediately in my case.

Hazelcast is an interesting foundation for creation of clusters, grids - or "Cloud Computing" :-).


Did you try the JCA module? If so, which version? In the open source version, the ra.xml is wrong and the connector source does not seem to do anything useful. :-(

Posted by Thomas on February 10, 2009 at 01:05 AM CET #

Hi Thomas,

"Did you try the JCA module?"

yes, with GF v2ur2.

"If so, which version?"

Last year, around november :-)

"In the open source version, the ra.xml is wrong.."

GF complained about the license tag - but it was only a warning.

"...does not seem to do anything useful..."

...except propagating transactions to the Hazelcast framework :-),

thanks for your feedback!,


Posted by Adam Bien on February 12, 2009 at 10:20 PM CET #

Ah, ok. Got it. Sick little bastards. :-)
Not exactly the way the JCA spec was intended to be used. It makes it impossible to have multiple collection "spaces" in one jvm instance.
I just imagine what interesting results you will get, if you deploy a couple of applications that unintentionally share the same map name. Fun.
As an admin, I would probably disallow the use of this library. :-)

Posted by Thomas on February 13, 2009 at 06:09 AM CET #

Hi Thomas,

With JCA adapter, Hazelcast is simply attaching to container's transaction. Hazelcast supports only LocalTransactions so no XA implementation in the code. What makes you say that the code doesn't do much? What else should it do that it doesn't?

Can you please also explain why you think that it is not the way JCA spec was intented to be used?

"I just imagine what interesting results you will get, if you deploy a couple of applications that unintentionally share the same map name."

You can get interesting results if you unintentionally share other stuff in life too :) With Hazelcast's grouping feature you might find a way to not share.

I will be happy to hear your suggestions or feedback to improve Hazelcast. oztalip at gmail dot com.


Posted by Talip Ozturk on March 16, 2009 at 03:18 AM CET #

Post a Comment:
  • HTML Syntax: NOT allowed
...the last 150 posts
...the last 10 comments