What is TorqueBox?

TorqueBox is a Ruby application server built on JBoss AS7 and JRuby.
In addition to being one of the fastest Ruby servers
around, it supports Rack-based web frameworks, and
provides simple Ruby interfaces to standard JavaEE
services, including scheduled jobs, caching, messaging, and
services.

Highlights of major changes

The bundled JRuby version has been updated from 1.7.1 to 1.7.2.

RubyMine 5 will ship with TorqueBox graphical debugging
support. This has been tested with TorqueBox 2.2.0 and TorqueBox
2.3.0 but should work with earlier TorqueBox 2 versions.

Messaging Queues and Topics have a few more convenience methods. You
can get a list of all Queues and Topics deployed in the server as
well as pausing, resuming, counting, and clearing messages. See the
Queue and Topic RDocs for more details.

You can now easily change the HTTP port TorqueBox uses with a new
-p option to torquebox run. For example, torquebox run -p 3000

Distributed transactions (XA) are now disabled by default for
databases and message processors. There are some edge cases that new
TorqueBox users occasionally hit around our XA support and by
disabling it by default we hope to keep the new user experience as
smooth as possible.

TorqueBox should now work out of the box with the latest
activerecord-jdbc-adapter gems. They made a change in 1.2.5 that
broke some assumptions made by TorqueBox and this is now fixed.

TorqueBox should now work out of the box with the latest Rack
gems. Rack 1.4.3 also made a change that caused basic Rack
applications running in 1.9 mode (Sinatra and Rails applications
appear unaffected) to not work. In this case the issue was TorqueBox
not behaving exactly as specified in the Rack spec with regards to
the response body.

A bug was found that caused messages sent with a non-default
priority level and consumed by a message processor to get resent on
the next TorqueBox restart. This was a bug in our distributed
transactions code and has been fixed. Additionally, as mentioned
above, distributed transactions are disabled by default for message
processors now.

We've added a more complex example application to our Getting
Started Guide. Check out Chapter 3. Poorsmatic for
more details.

Upgrading from 2.2.0

No change is required in the AS7 configuration files to upgrade from
TorqueBox 2.2.0 to 2.3.0.

If you relied on distributed transactions in previous TorqueBox
versions, be sure to add an 'xa: true' entry to your appropriate
database.yml and torquebox.yml entries. See our transactions
documentation for more details.

The format of synchronous messages (ones sent via
publish_and_receive and receive_and_publish methods) has changed
slightly. Do not mix 2.3.0 with earlier TorqueBox versions in a
cluster if you use synchronous messaging.

Don't be a stranger!

As always, if you have any questions about or issues with TorqueBox, please get in touch.