The next bug fix release in the TorqueBox 3 series, 3.0.2, is out! We expect this to be the last release in the 3.0.x line and work towards a 3.1.0 release next. It's likely 3.1.0 will also be mainly bug fixes, but we'll be bumping some important component versions to new major releases so a minor version bump on our part conveys the proper risk associated with the upcoming changes.
We'll continue to maintain the TorqueBox 3 line of releases while we continue parallel development on the all new next-generation TorqueBox that's been pushing the boundary on Ruby web application performance. Keep an eye on the 'rack-jruby' results on those benchmarks to see how we're progressing.
- Download TorqueBox 3.0.2 (ZIP)
- Download TorqueBox 3.0.2 (JBoss EAP overlay)
- Browse Getting Started Guide
- Browse HTML manual
- Browse JavaDocs
- Browse Gem RDocs
- Download PDF manual
- Download ePub manual
What is TorqueBox?
TorqueBox is a Ruby application server built on JBoss AS7 and JRuby. It supports Rack-based web frameworks and provides simple Ruby interfaces to standard enterprisey services, including scheduled jobs, caching, messaging, and services.
Highlights of changes in TorqueBox 3.0.2
Bundled JRuby updated from 1.7.8 to 1.7.10
Web performance improvements
Thanks to the performance work of Kevin Menard, we've fixed several bottlenecks for Rack applications. Specifically, we've removed some unnecessary synchronization in the request path which improves top-end throughput substantially for high-performance applications. He also noticed that our session store was creating a session for every user, even if that session was never used. We've fixed this to lazily create sessions as-needed. See TORQUE-1200 and TORQUE-1198 for more details.
Clustered session bug fixes
We've fixed several reported issues around clustered sessions where NullPointerExceptions were received on restart of a node in a cluster when the TorqueBox session store was in use. See TORQUE-1155 and TORQUE-1194 for more details.
Upgrading from 3.0.1
If you maintain your own XML config files, the only change we've made from 3.0.1 to 3.0.2 is to remove the default expiration for the web session cache - https://github.com/torquebox/torquebox/commit/514004758961a0bc981331ed74e71305b5bc5522. This fixes TORQUE-1155, TORQUE-1194, and TORQUE-1201. Otherwise, no changes are needed in applications or config files to upgrade.
Don't be a stranger!
As always, if you have any questions about or issues with TorqueBox, please get in touch.
Issues resolved since 3.0.1
- [TORQUE-1155] - Null Pointer Exception on Restart
- [TORQUE-1188] - Reproducable lockups with bounded pool
- [TORQUE-1189] - TorqueBox.fetch behaves inconsistently for built in DLQ / Expiry Queue
- [TORQUE-1193] - Upgrade to JRuby 1.7.10
- [TORQUE-1194] - NullPointerException in org.jboss.as.web.session.ClusteredSession.update() on failover
- [TORQUE-1195] - TorqueBox should have a security policy
- [TORQUE-1196] - Torquebox store throws errors when it receives NullSessionHash
- [TORQUE-1198] - Session store creates session if one doesn't exist on every request
- [TORQUE-1200] - Reduce locking in RackFilter#doFilter for shared pools
- [TORQUE-1201] - Increase default cache and clustered session eviction time