Typemock: Past, Present and Future
Eli Lopian of Typemock answers a few questions on Typemock origins and where Typemock is headed.
Tracking change and innovation in the enterprise software development community
Posted by Ryan Slobojan on Nov 15, 2007 11:00 AM
Atomikos TransactionsEssentials, a Java-based transaction manager, just released version 3.2. InfoQ spoke with Atomikos CTO Guy Pardon to learn more about this release, and also about TransactionsEssentials and third-party transaction managers in general.
Pardon described the major features of TransactionsEssentials:
Pardon also mentioned that Atomikos ExtremeTransactions was based upon TransactionsEssentials, and builds upon it by adding support for non-XA, compensation-based transactions and providing graphical administrative control panels for use in servlet containers. Atomikos also offers subscription-based support services, and a subscription grants access to the extra features in ExtremeTransactions.
When asked why one would want an external transaction manager, Pardon replied:
Let me turn the question around: why would you want an appserver?
Basically, the appserver has one big major productivity problem (besides being an old dinosaur): you have to deploy a packaged archive. This means that whatever you test before deployment is not complete. This also means that during deployment the risk that something goes wrong is high. This is a huge productivity problem IMHO.
Pardon also went on to say that, in many cases, an application server may not be the best solution for an application - he gave SOA/ESB endpoints as an example, stating that asynchronous JMS message handling and processing via JDBC could be done in a much more lightweight and scalable manner.
When asked about future releases of TransactionsEssentials, Pardon described greater JDBC and JMS connection pooling, OSGi support and JMX transaction administration as major features planned for version 3.3. Pardon also stated that adding JMX for the JDBC data sources and JMS connectors was a goal for version 4.0.
Service Quality and Validation eKit
Evolutionary Design through Agile Development Podcast
Gamma's Jazz platform's first implementation: Rational Team Concert (Trial Download)
JProbe Freeware – Eclipse Plugin for efficient memory analysis and diagnosis
FWIW, here's how to configure TransactionEssentials with Spring and Hibernate.
The Atomikos wiki has extra information here: http://wiki.atomikos.org/bin/view.pl/Main/HibernateIntegration
We use WeblogicJtaTransactionManager in our applications, but for out-of-container testing that involves JPA entities, XA datasource, JTA etc we rely on Atomikos. It requires no changes to the application other than injecting the Atomikos transaction manager and wrapped datasource. We had some problems during test execution (see [1]), but those were solved by putting
Thanks to Atomikos we can run all functionality tests from main() with same result as in target appserver. So far (about 6 months) I didn't observed any differences and my development turnaround time has decreased greatly.
Atomikos is pretty nice. Now all that's left is for the PostgreSQL and MySQL people to get on the ball and fully support XA resources. They both support "most" of XA, and when you read about the limitations they sound minor, but in my experience you somehow always end up running into them. PostgreSQL Limitations MySQL Limitations
I can say first hand that Atomikos is the way to go if you are looking for out-of-container XA-capable JTA transactions. I burned an entire weekend a while ago trying to get JOTM to do anything useful, but had absolutely no luck (but certainly less hair). I then downloaded Atomikos and had it working in less than 30 minutes (I have no doubt others could do it faster). When I say working, I was able to get it to successfully rollback changes committed to one database after the commit to the second database failed, which is the fundamental value proposition of XA transactions. Given that Atomikos is open source, what is not to like? I just hope I can save someone else the weekend. Kiss JOTM goodbye.
I will say that the appserver bashing is not necessary. There are times when an appserver is appropriate, and there are times when it isn't. The statement that it is an old dinosaur is just as dated as the object of the comparison. Appservers, like JBoss 5 and Glassfish V2, are just as fast to start as "lightweight" containers. I recommend Atomikos, but I won't discredit the tremendous capabilities of an appserver. You will know when it is the right time to use one over the other. Let your judgement guide you. Don't just boycott because someone told you to (e.g. the Monkeys, Bananas, and Water-spray Experiment).
The above URL has been moved to: wiki.atomikos.org/Documentation/HibernateInt...
Hi,
A quick follow-up: we (Atomikos) have just released version 3.3 hinted at in the above news post - with mostly the JDBC innovations (new pools and data sources, improved performance) and log4j support. The JMX and JMS features have been planned for the next major release: 3.4...
Guy
Eli Lopian of Typemock answers a few questions on Typemock origins and where Typemock is headed.
Scott Ambler talks about actual data resulting from surveys made during 2006-2008, showing how Agile is perceived and implemented within organizations.
From QCon 2008, Daniel Moth presents on using Visual Studio 2008 and .NET 3.5 to create compelling rich Windows applications.
Joshua Kerievsky, founder of Industrial Logic, talks about Industrial Extreme Programming which extends XP by including practices dealing with management, customers and developers.
Amazon Web Services (AWS) Evangelist Jeff Barr discusses SimpleDB, S3, EC2, SQS, cloud computing, how different Amazon services interact, origins of AWS, AWS globalization and the March AWS outage.
Cloud services have helped bring virtualization to the forefront. Its full power however, also includes other benefits such as high availability, disaster recovery, and rapid provisioning.
John Lam talks about his path to dynamic languages, some of the problems of making IronRuby run fast, and how the DLR helps with implementing languages.
VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.
9 comments
Reply