Glassfish deployment - question about runtimes

My Jruby app is deployed on glassfish which calls external java routines
(matlab). Simultaneous requests seem to be blocked and the requests are
queued.

I had expected glassfish to create a new runtime for each request and
are fulfilled asynchronously. Is this a valid assumption? Do I have to
do something explicit to make glassfish create runtimes?

Here’s what I’ve tried:

  1. edit glassfish.yml and increase jruby-runtime-pool: initial:3 min:3
    max:5
  2. uncomment config.threadsafe! (environment.rb)
  3. Create 3 instances of glassfish on different ports, use apache to
    reverse proxy, and it amounts to 1 user per server which doesn’t seem
    right, but works.

Thanks for your help!
James