My Life As A Blog

Archive for the ‘Java’ Category

ActiveMQ version 5 is released

leave a comment »

I’ve written a few articles about ActiveMQ over the last few months.  Version 5 has just been released.  There’s more info on James Strachan’s blog here.


Written by remark

December 17, 2007 at 11:11 pm

Posted in Development, Java, Open Source, Software, Tools

Tagged with

The Service Bus

leave a comment »

In any reading or discussion about Service Oriented Architecture, it’s nearly impossible to avoid the concept of the Enterprise Service Bus.  First off, it has a great name – sounds like something Captain Kirk uses to get to work.  Secondly, it seems to be the Answer.  It connects everything together and routes and mediates and adapts and does other stuff like that.  In addition, some of these ESBs have automatic deployment and built-in development tools.

Of course, no-one can quite agree what an Enterprise Service Bus is.  Nicholas Allen, in a post about various definitions, notes:

“When I first read about ESBs in 2003, I didn’t expect to still be trying to understand them more than four years later. In comparison, there have been other technologies that in the same time frame were introduced, developed, matured, and obsolete.”

I’ve even read Enterprise Service Bus – which explains what an ESB could be in a java-centric way – and, yet, there’s this nagging doubt.  The first problem is the lack of consensus on what an ESB is or should be.  The second problem is the sheer scope of the included functionality.  I don’t like TVs that have integrated DVD players so I’m going to need some convincing that bundling the routing, transport, adapting, mediating, deployment and development into one piece of (often proprietary) software is a good idea.

Another problem with the ESB concept is the startling lack of ESBs in the .NET space.  There’s plenty in Javaland, but few, if any, in .NET.  At first, it’s easy to take this apparent gap as Microsoft missing something.  However, I’ve come to think that there may not be one in .NET because you don’t need one.  You do need transport.  You may need routing and mediating.  You might even need all the rest of the functionality of an ESB.  But you can get what you need and plug it together.  Doing so allows you to build as much infrastructure as you need when you need it, which means you can focus on delivering some useful software instead of an expensive infrastructure project.  There’s plenty of technologies you can use to implement this sort of approach (think WCF, MSMQ or JMS, BizTalk.)  There’s even guidance from Microsoft about building an ESB or you could look at Udi Dahan‘s NServiceBus project.

This modular approach has a lot to recommend it.  But it doesn’t have a cool name.  Now, if we can sort that out, it might just catch on.

Written by remark

October 1, 2007 at 10:54 pm

Posted in .NET, Architecture, c#, Design, Development, Java

Tagged with , , ,

The Orcas Express

leave a comment »

Having been unable to install Orcas Beta 2, I changed tack and tried the Express edition.  And you know what?  It worked.  I’d prefer to be able to install the Professional Edition, but I’ll take what I can get.  Just in time for Mix ’07 UK

Written by remark

September 10, 2007 at 10:29 pm

ActiveMQ and SQL Server

leave a comment »

At first, when I tried to use SQL Server (2000) with ActiveMQ there was an error. The error was:

Failed to acquire lock: Line 1: FOR UPDATE clause allowed only for DECLARE CURSOR.

I’m using the jtds jdbc driver. I attached a profiler and the SQL that SQL Server finds offensive is:


I searched through the Nabble forums for ActiveMQ and found the answer here. My jtds config looks like this:

<bean id="jtds-ds" class="net.sourceforge.jtds.jdbcx.JtdsDataSource">
	<property name="serverName" value="localhost"/>
	<property name="portNumber" value="1433"/>
	<property name="databaseName" value="databaseName"/>
	<property name="user" value="userName"/>
	<property name="password" value="password"/>

and my persistence adapter is configured like this:

    <journaledJDBC journalLogFiles="5" dataDirectory="../activemq-data" dataSource="#jtds-ds" useDatabaseLock="false"/>

The useDatabaseLock=False being the important bit.

All of which seems to work.

Written by remark

July 19, 2007 at 4:43 pm

InfoQ Article on JMS and Spring .NET

leave a comment »

There’s an article here on InfoQ about messaging with JMS and Spring .NET.  Although the example JMS used is Tibco EMS, you can easily substitute ActiveMQ.

Written by remark

July 1, 2007 at 10:44 am

wso2 podcast

leave a comment »

Here‘s a podcast that Dana Gardner did with Ron Schmelzer, senior analyst at ZapThink, and Paul Fremantle, co-founder and vice president of technology at wso2.   The transcript is here.

Written by remark

June 25, 2007 at 10:07 pm

wso2 ESB

leave a comment »

Having found Apache Synapse yesterday, I found wso2 ESB today.  It’s built on Synapse and includes a web front end for configuration and management.  The samples work and managing the ESB through the web front end is comfortable – no code required.  In a real world environment, I’d be nervous about configuring the ESB through the web front end – I favour some sort of release process with testing, provision for rollback to last known good configuration and so forth.  Since you can see the XML configuration, a controlled release process is possible.

Written by remark

June 23, 2007 at 7:27 pm