It's the syndrome of the "new" guys thinking they can do better by changing things that have been working for ever.
Like the completely screwed up order of switching between applications using Alt-Tab on Windows 7.
Launch regedit and add this DWORD to get your sanity back:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\AltTabSettings=1
Hats off to Yancy's blog.
/Dimitris
Thoughts on Quarkus, WildFly, Red Hat/JBoss Technologies and Open Source Software Development. If an entry looks Greek to you, it probably is.
Friday, January 28, 2011
Thursday, January 27, 2011
JBoss AS 5 Performance Tuning - Book Review

The last couple of days I had the opportunity to review a copy of "JBoss AS5 Performance Tuning", by Francesco Marchioni, which is almost a sequel to a previous book of his on JBoss AS5 Development.
You can take a peek at the table of contents here.
I think the book does a great job at explaining the concepts and methodology behind performance tuning and introducing the tools of the trade required to get you going. It identifies the various places and hotspots where performance tuning makes sense, starting from the Operating System, up to the Java Virtual Machine, the application server and finally your own application.
Expect to find tuning tips for a wide spectrum of areas including:
- JVM tuning
- JBoss AS slimming
- Configuring logging, levels, format, sync vs. async
- Pool sizing (JNDI, EJB, ...), Caching
- JBoss Messaging & HornetQ tuning
- DB design tips, JDBC tuning, JPA Query/Entity Caching
- Clustering, JGroups, JBoss Cache
- Tomcat/JBossWeb configuration and fronting options (mod_jk, mod_proxy, mod_cluster)
- WebApp tuning, bare servlet vs. JSF vs. Richfaces
- ...and more
The author's suggestions are usually backed by evidence, i.e. trying the different configuration options and measuring the results. This is also a major takeaway from the book in that you may follow certain best practices but unless you make tuning a part of your development cycle, by establishing a baseline and continuously testing and measuring and improving, you are really left in the dark.
Some tuning tips might be surprising, like for example, just changing the logging format can speed up an application by 10%, the async logging appender could give you worse performance, or that the native jbossweb connectors do not perform well on windows.
What I really liked about this book:
- It's very practical and down to earth without much fluff.
- It includes useful sample tuning use cases, e.g. finding a memory leak.
- It covers the majority of areas where tuning can be applied.
- Summaries are very good and can be used as checklists.
Timing wise, it's a bit unfortunate the book was released at the same time JBoss AS 6.0 was released, but in practice, the book applies just fine to JBoss AS 6.x as it applies to JBoss AS 5.x and JBoss EAP 5.x. The only exception is Infinispan that replaced JBoss Cache, although the basic caching principles are the same. Maybe an addendum for Infinispan could sort this out.
To conclude, I'd recommend the book to whoever is interested in tuning his applications on top of JBoss AS and using the author's words:
"good performance is not accidental; it takes planing, expertise, and plenty of testing"Cheers
/Dimitris
Wednesday, January 26, 2011
JBoss AS 6.0 vs 7.0
A short interview of yours truly posted on jaxenter on the JBoss AS 6.0 release and the rationale behind the upcoming JBoss AS 7.0
If you haven't seen JBoss AS 6.0 yet, get it from here.
/Dimitris
If you haven't seen JBoss AS 6.0 yet, get it from here.
/Dimitris
Wednesday, January 05, 2011
Introducing the Brand New JBoss AS 6.0!
One and a half year after JBoss AS 5.1 and five milestone releases later and the final release of JBoss AS 6.0 is a reality!
Jason Green led the project for most of the time and produced the first four milestones, then Shelly McGowan took over with the goal to complete the release and achieve Java EE 6 Web Profile certification in order to deliver the goods to you. JBoss AS 6 was a great team effort and I certainly feel privileged to be working with such a great group of talented people.
You may read Shelly's announcement about the release here. Any time soon, the JBoss logo should appear in the Java EE compatible implementations page.
So what's included in JBoss AS 6.0, especially compared to AS 5.1?
To begin with, JBoss AS 6.0 is a Java EE 6 Web Profile implementation. Does this mean AS 6.0 implements only the Web Profile? Not really. JBoss AS 6.0 bundles almost all the technologies required by the full Java EE 6 spec, including the legacy stuff, like EJB2 and RMI/IIOP, however, we chose to certify only for the Web Profile at this stage due to resource constraints. (This is also a very good way to gather input and see how many people actually do care about EE6 full profile compliance, just scream in the forums!).
So naturally, JBoss AS 6.0 includes all the EE6 goodies like CDI/Weld 1.1, EJB 3.1 Lite&Embeddable, JPA 2/Hibernate 3.6, Bean Validation, Servlet 3, JSF 2.0, etc.), but also things like JAX-RS/RESTEasy 2.1, JMS 1.1/HornetQ 2.1.2, JAX-WS 2.2/JBossWS 3.4.1.
(For a definitive list of component versions, the source component-matrix/pom.xml is your friend).
Notable differences between 6.0 and AS 5.1 include the bundling of the Apache CXF stack as the default backend for JBossWS (compared to JBossWS Native) and the replacement of JBoss Messaging with the ultra-fast-next-generation HornetQ. The latter distributes also a native library, used as a bridge between HornetQ and linux libaio, for fast journal writes.
On the clustering front, the AS6 replication needs are now covered by the much promising Infinispan project replacing JBossCache, while mod_cluster support is included out-of-the-box, thus JBoss AS6 servers can dynamically discover and register to front-end apache httpd servers.
JBoss AS6 includes the latest in term of JBoss Microcontainer technologies and care has been taken to reduce the server footprint and the boot time. The consoles are lazily started upon first usage and overall the server should feel somewhat lighter than it's 5.1 counterpart (Hint: just wait to see how much lighter AS7 will feel like!).
For those 580,562 past downloaders and users of AS 5.1, JBoss AS 6.0 should provide an appealing upgrade path. I would also like to thank the community for been supportive all along with more than a quarter of a million downloads of AS6 while it was developed and many useful contributions, as Jaikiran pointed out in his post.
So give it a try and do let us know on the forums what do you think, we take your input quite seriously.
Enjoy the brand new JBoss AS 6!
/Dimitris
Jason Green led the project for most of the time and produced the first four milestones, then Shelly McGowan took over with the goal to complete the release and achieve Java EE 6 Web Profile certification in order to deliver the goods to you. JBoss AS 6 was a great team effort and I certainly feel privileged to be working with such a great group of talented people.
You may read Shelly's announcement about the release here. Any time soon, the JBoss logo should appear in the Java EE compatible implementations page.
So what's included in JBoss AS 6.0, especially compared to AS 5.1?
To begin with, JBoss AS 6.0 is a Java EE 6 Web Profile implementation. Does this mean AS 6.0 implements only the Web Profile? Not really. JBoss AS 6.0 bundles almost all the technologies required by the full Java EE 6 spec, including the legacy stuff, like EJB2 and RMI/IIOP, however, we chose to certify only for the Web Profile at this stage due to resource constraints. (This is also a very good way to gather input and see how many people actually do care about EE6 full profile compliance, just scream in the forums!).
So naturally, JBoss AS 6.0 includes all the EE6 goodies like CDI/Weld 1.1, EJB 3.1 Lite&Embeddable, JPA 2/Hibernate 3.6, Bean Validation, Servlet 3, JSF 2.0, etc.), but also things like JAX-RS/RESTEasy 2.1, JMS 1.1/HornetQ 2.1.2, JAX-WS 2.2/JBossWS 3.4.1.
(For a definitive list of component versions, the source component-matrix/pom.xml is your friend).
Notable differences between 6.0 and AS 5.1 include the bundling of the Apache CXF stack as the default backend for JBossWS (compared to JBossWS Native) and the replacement of JBoss Messaging with the ultra-fast-next-generation HornetQ. The latter distributes also a native library, used as a bridge between HornetQ and linux libaio, for fast journal writes.
On the clustering front, the AS6 replication needs are now covered by the much promising Infinispan project replacing JBossCache, while mod_cluster support is included out-of-the-box, thus JBoss AS6 servers can dynamically discover and register to front-end apache httpd servers.
JBoss AS6 includes the latest in term of JBoss Microcontainer technologies and care has been taken to reduce the server footprint and the boot time. The consoles are lazily started upon first usage and overall the server should feel somewhat lighter than it's 5.1 counterpart (Hint: just wait to see how much lighter AS7 will feel like!).
For those 580,562 past downloaders and users of AS 5.1, JBoss AS 6.0 should provide an appealing upgrade path. I would also like to thank the community for been supportive all along with more than a quarter of a million downloads of AS6 while it was developed and many useful contributions, as Jaikiran pointed out in his post.
So give it a try and do let us know on the forums what do you think, we take your input quite seriously.
Enjoy the brand new JBoss AS 6!
/Dimitris
Subscribe to:
Posts (Atom)