Thursday, October 29, 2009

IBM WebSphere JPA 2.0 Open Alpha

The WebSphere JPA team is proud to announce the availability of the IBM WebSphere Application Server V7 Java Persistence API (JPA) 2.0 Open Alpha. Details can be found here...

This JPA 2.0 Open Alpha is based off the Public Final Draft #2 of the JPA 2.0 specification, which can be found here...

If you are looking for something a bit more readable that highlights the new JPA 2.0 features, you could also reference the following two articles...

Since the WebSphere JPA solution is built on top of the Apache OpenJPA project, you can always follow our progress via these URLs...


Monday, October 26, 2009

Cannot start a new UOW. A LocalTransactionContainment is already active with work

I found out recently that one of the most common search terms used by people who end up at this blog is:
"Cannot start a new UOW. A LocalTransactionContainment is already active with work."

I thought it might be a good idea to write here about why you could come across this message and what you can do about it.

The most likely place you'd see this is in the text of an IllegalStateException thrown from UserTransaction.begin().

Let's have a look at the message and see what it could mean.

The UOW mentioned in the first part of the message is the unit of work you're trying to begin. In the case where the exception is thrown from UserTransaction.begin(), this is saying that it has not been possible to start the UserTransaction.

The second part of the message is the reason the UOW could not be started. LocalTransactionContainment (LTC) is the mechanism used in WebSphere Application Server to handle the unspecified transaction context defined in the EJB specification. You can read about LTC in the WebSphere infocenter here.

In a nutshell, LTC provides a way for an application deployer to specify how transacted work can be automatically completed when it's performed outside of a global transaction. For example LTC can be used to automatically commit all the work done on JDBC connections used outside of a global transaction. The important thing to bear in mind is that pretty much whenever there is no global transaction context on a thread, WebSphere Application Server will have established an LTC.

Our error message is saying that some transacted work (e.g. using a JDBC connection) has been performed and has not yet been committed or rolled back at the time that UserTransaction.begin() is called. The LTC established before UserTransaction.begin() is called is said to be active with work under these circumstances and it is illegal to start a new UOW until that work is completed.

Assuming the intention really is to have the work done outside of the global transaction, the solution to the problem is to explicity commit or roll back the transacted work before the call to UserTransaction.begin().

Wednesday, October 21, 2009

Speaking at RTP WUG Next Week

If you're in the Raleigh/Durham area come to hear about the XML Feature Pack at the RTP WebSphere User's Group (WUG) on Tuesday. I'll be speaking through dinner to talk about what XPath 2.0, XSLT 2.0, and XQuery 1.0 bring to the table for JEE programmers, what features are in the XML Feature Pack Beta and how to get started. After that there will be a hands on session with WebSphere sMash.

Ryan Boyles from the WebSphere sMash team wrote up a great article that tells you how to get registered and maps to the location, etc here. Hope to see all my "local" people there.

Tuesday, October 20, 2009

WebSphere Application Server 7.0 Administration Guide

I recently had the opportunity to review the recently published WebSphere Application Server 7.0 Administration Guide from Packt Publishing and thought I would share my opinions on this book. In the spirit of full disclosure, I was provided a copy of the book to review at no cost to myself.

This book is a great introduction to the world of WebSphere Application Server for people that are new to J2EE and/or WebSphere Application. In fact, I am recommending this book to all of the new developers, testers, and documentation specialists that work with me. The book does an excellent job of describing how to perform a number of the different tasks that a WebSphere Administrator will face. The book is filled with plenty of examples, sample code, and visuals.

The author does a nice job of describing the different activities from product installation to fixpack and patch installation, application deployment, securing the WebSphere environment, and managing the WebSphere configuration. The reader is introduced to the different administration tools - the WebSphere Admin Console, wsadmin, Tivoli Performance Viewer, and the administrative utilities (dumpNameSpace, manageProfiles, etc...) - as well as messaging and the new Admin Agent. Additionally, this book introduces customers to the idea of automation as a part of the WebSphere Application Server administrative process, something I feel is extremely valuable to WebSphere customers.

If you are an extremely experienced WebSphere Application Server administrator who is just looking for the very technical details of new version 7.0 features only, this is not the book for you but it might be a good book to share with your colleagues that do not have the knowledge and experience you do.

I found it to be an enjoyable read with useful information but not so technical that I felt like I was reading a specification. All in all, I recommend this as a great book to get users started with WebSphere Application Server.

David Brauneis
Chief Architect, Rational Automation Framework for WebSphere

Saturday, October 17, 2009

WebSphere Application Server V7.0 New Features

I've noticed that alot of folks are coming to this blog looking for a high level overview of WebSphere Application Server V7.0 (searching for things like websphere 7 features, websphere v7) and finding somewhat related articles, but never a quick overview of the major new functional areas. So, on the first birthday of V7.0, here is a quick overview.

Our themes for the release were Simplification for Developers, Intelligent Management, High Performance Foundation for SOA, and Innovation that Matters.

Simplification for Developers

V7.0 supports the important new standards for JDK 6.0 including JDBC 4.0, Java EE 5, EJB 3.0 and JPA, Web Services, new SIP RFC's, messaging, and Portlets (JSR 286). While many of these annotation driven ease of use enhancements have been available for some time as V6.1 feature packs, V7.0 ships all of the Java EE 5 standard fully certified. The ease of use comes from two things. First, annotations allow you to easily configure EJB's and web services within the application code. Second, most configuration is defaulted which means you only have to configure exceptional cases. Rational Application Developer (RAD) Assembly and Deploy tooling comes in the box which is a subset of RAD for WebSphere which is first class tooling for all of these new features.

Intelligent Management

In addition to the existing WAS 6.1 management infrastructure, WAS 7.0 adds two new topology options via Administrative Agent and Flexible Management. An administrative agent allows management of multiple standalone application servers on the same machine reducing runtime footprint and start-up cost of administration. Flexible management supports the Job Manager which can handle asynchronous administration job queuing across multiple WebSphere cells which allows scaling to very large and complex environments especially geographically distributed environments. WAS V7.0 introduces the concept of Business Level Applications (BLA) which defines multi-component applications allowing administration of applications that have a scope larger than a single war or ear. Also included is the Centralized Install Manager (CIM) which allows centralized installation of fix packs, refresh packs, and interim fixes from the deployment manager to all nodes in the cell. Update Installer and Install Factory where also updated.

High Performance Foundation for SOA

I have blogged about the performance improvements in general, on web services, on EJB 3.0/JPA, and 64-bit. With runtime provisioning based on OSGi, we also now start components selectively helping with start-up time and footprint. Our Dynacache engine has been updated and is explained here. Security is always important in the foundation and with V7.0 -- you'll see more fine grained security domains, security auditing, and a DMZ hardened proxy. We also continue to protect investments in WAS with supporting mixed older versions of the application server across a cell providing support for applications running on version of Java EE as old as 1.2.

Innovation that Matters

We continue to innovate beyond V7.0 through the use of feature packs. Feature packs allow you to absorb innovative enhancements before the next version of the application server. Web 2.0 (through the Web 2.0 Feature Pack) support includes Web 2.0 to SOA connectivity, Ajax messaging and the Ajax development toolkit. Service Component Architecture - SCA (through the SCA Feature Pack) support includes service composition and service deployment/assembly that allow binding existing web, EJB, and native SCA services into a composite SOA application. Communication Enabled Applications - CEA (through the CEA Feature Pack) allows you to add access communication services without expertise in communication technologies - such as web widgets for Click to Call and Call Notifications. XML applications (through the XML Feature Pack Beta) that use XPath 2.0, XSLT 2.0, and XQuery 1.0 allow you to unleash the power of declarative XML data programming and improve the functionality/ease of use over XPath 1.0 and XSLT 1.0.

Want to try WebSphere Application Server V7.0 as a developer for free? If so, go here and download it today.

It's hard to cover such a large release in a short blog entry. I'm sure I missed some major features. If you spot one, let me know and I'll update this post.

Friday, October 16, 2009

SIP/Converged Apps and WebSphere eXtreme Scale Performance Papers

Last week we published two performance papers that talk about the great performance we have demonstrated on two interesting features of WebSphere.

First, the SIP and HTTP Converged Services Performance using the WebSphere Application Server paper talks about the performance of a sample web voice mail application. The paper talks about how we support not only the functionality required for such applications, but also performance that is measured to be "carrier grade". This paper is a very good example of how SIP and HTTP traffic can be handled in our converged web container to provide for communication enabled applications.

Second, the Scalable Caching in a Java Enterprise Environment with WebSphere eXtreme Scale paper talks about the performance of an application that uses our JPA persistence API's along with WebSphere eXtreme Scale to provide in-line caching between a typical web application and the back end database. It shows how, with minimal application updates, you can decrease the load on your back end databases while allowing your front end application to scale in an elastic fashion.

You can find both on our WebSphere Application Server performance site. Have a look and if you have any questions -- let me know and I can get them answered.

Monday, October 12, 2009

In the news .. SPEC SOA benchmark effort

I wanted to shared some press coverage of the effort I mentioned back in September.

The original SPEC press release press release talked about how the work group was looking for participation, what the initial focus was on, and the unique challenges of producing a SOA benchmark.

In coverage by SearchSOA and TechTarget, the working group has been asked very interesting questions. The SearchSOA article talks about how SPEC is a good organization to take on the challenge of a SOA benchmark given its past track record in JEE middleware benchmarking and talks about the challenges of benchmarking typical implications of a service oriented architectures. The TechWorld article talks adds discussion of how the benchmark is focused on some core aspects of SOA but will likely grow over time and discusses how the benchmark will need to consider both IT and business requirements on typical SOA applications.

Also, the effort has been covered by TheServerSide and InfoQ.

As mentioned in the original press release, if your organization can contribute to the effort, contact

Also, kind of fun to see your quotes translated into various languages - Japanese, German for example. I do think this level of coverage indicates the value this benchmark will deliver to both technical and business communities.

Thursday, October 8, 2009

Update on JPA 2.0 and Apache OpenJPA

Developerworks just posted an article from Kevin Sutter, our lead for Java persistence, on JPA 2.0 and the work at Apache on OpenJPA. Click here to learn about the new features that are coming in JPA 2.0 and get an early preview via early access drivers at Apache here.

Friday, October 2, 2009

XML-In-Practice Day #2 Summary

Keynote - XML and Web 3.0 - Mills David

This keynote was presented in a very interesting style. Very visual, very content packed. Not only did he talk about Web 3.0 - the semantic web, he talked about Web 4.0 and work that he believed was already being done to support it. For Web 4.0, he defined it as ubiquitous (image of computer implanted in back of skull) where everything (not just everyone) is connected and has some level of intelligence. For Web 3.0, he talked about representing the meaning of content and using that meaning to improve the way we work with the web to make the internet more relevant, usable, and enjoyable. A basic example is today, we may expose the contents of a database to the web without giving away the schema. If we instead exposed both the content and the schema, computers could find ways to link this data to another similar web repository or service and create new value based on what the data meant.

The eXtensible Business Reporting Language, XBRL - Evan Lenz

This session started with an excellent overview of XBRL (a XML usage required for US financial reporting by the SEC), then showed the issues, and then proposed a new approach.

Among the issues he cited:

a) all concepts are global (no namespaces, no hierarchy) which meant (as shown in one real world example that required 12,000 concepts) there would be no way to work with the data except in tools, no adhoc queries, and names of concepts ended up being on average 49 characters in length (hierarchy being built into the name).

b) the use of schemas and XLink really required too much plumbing for little value.

c) high noise to signal ratio meaning that with the linkages being so verbose and separate, it becomes very hard to work with XBRL without tools (not human readable, not ad hoc queriable).

In general his proposal was to use XML to represent the structure of reports. Even though XBRL is based upon many XML concepts, Evan suggested the use of XML, currently, for XBRL is incidental.

Work Flows, Standards, and Innovations Panel

Along with two other vendors, I participated in this panel. I again demonstrated the WebSphere XML Feature Pack (mostly this time focusing on XSLT 2.0). I went over some slides that show Rational tooling for XML, XSD, DTD, XPath 1.0 and XSLT 2.0 including editors, validators, wizards, debuggers, executors, etc. I then showed a live demo of some future Rational Application Developer work we're considering in the XML space.

Tools from NIST Created to Support the Development of XML-Based Content Standards Through the Application of Naming and Design Rules (NDR) - KC Morris

This presentation showed a very interesting demo of tools NIST has created to validate schemas and instance documents. This validation is centered on rules defined by an organization that ensure all applications of XML technology use consistent naming and definition patterns for data and metadata. My guess is it might have flagged XBRL instances as in error (if the format wasn't required by the SEC). Also of interest was that there were rules for OAGi BOD which is heavily used in automotive manufacturing.

The use of XML in the Irish Government's eCabinent Initiative - Michael Boses

This presentation talked about moving the old process for distributing data across the Irish government (large volumes of paper delivered by military personnel) to electronic form stored in an XML content repository and accessed through personalized portals. In the end, they showed the tablet PC's built into the cabinet table meaning that all the way to the top, there was the ability to stay entirely digital. Some interesting points where a) even though XML (DITA) made this possible, they avoided talking in XML terms in implementing the project as XML is totally behind the scenes and doesn't "sell" - instead they just used terms of like "smart documents" and b) they piloted the program with stakeholders to work out the bugs and purposely avoided turning the solution live until it was totally ready (they for a few months used electronic right up to the main cabinet meeting and then printed the documents for the meeting). Also, they avoided XML being seen by the users by using XSLT to web and Quark's tool for editing of XML content in Microsoft Word.

XML Tools Summit

As somewhat of an extension of the panel done earlier in the day, this was a session to have all participants catalog what tools they are using in the XML space, what tools they need but can't find, and exchange information with each other about what tools work well. This tools summit will be carried forward after the conference online as IDEAlliance hopes to create an "Angie's list of tools". It was very interesting to see how many tools people used (I counted over 30) and how critical these tools are to the publishing, standards, data scenarios.