Production install (RoR + Oracle + IIS)


Although an expert developer for IBM systems (iSeries) I am VERY new
to RoR and somehow to the PC development world as well and not
familiar AT ALL with PC configurations, etc. (in my regular job good
ol’ IBM takes care of all that and I just need to code). So forgive me
if any of the following sounds stupid, it probably is. Just get a
laugh at my expense and try to answer between roll and roll on the

I am developing a very simple application (1 main table and some other
ones used for drop downs and data verification) for an intranet with
just a few users. I have spent countless hours finding information/
documentation on using Oracle and IIS with RoR. Got helpful links that
helped me through some problems but install time is approaching and
since configuration is not my strength I would like to know if there
is a kind soul that would be willing to shed some light on this type
of configuration and some other questions. Here they are:

  1. Do I need Mongrel, Mongrel clustering, both (supposing they are
    different things) or none by using IIS?
  2. Could I run Apache and IIS at the same time and use Apache for my
    RoR application and forget IIS? If yes, would that cause any problems
    to existing code using IIS and also how can I direct the requests to
    the appropriate server without having to type the port number in the
  3. The table I’m working with has an ID column that is NOT numeric and
    IT IS primary key. Has anybody tried in the model self.primary_key =
    “id”? If yes, does that make RoR ignore all the ID stuff it does
    behind the scenes or does it say “mmm… trying to be smarter than
    me?” and still does its magic?

Now, if you can stop laughing I would appreciate some feedback and any
other type of helpful information on the subject.

Thanks a lot.

Maybe someone else can clarify if I’m incorrect here, but you should
be able to just do it similarly to deploying with Apache/Mongrel.
Install and config Mongrel as a service and have IIS proxy to Mongrel.

Whether or not you need mongrel cluster depends on how many concurrent
requests you need to process. Rails is not thread safe and therefore
you would need to deploy multiple Mongrels to achieve concurrency.
more info @

You may want to buy this book and read through it before going too

Thanks for the comment. This actually gives me the opportunity to ask
something else. Apparently there will be just a handful of people
using this application at any given time. Can I just use Webrick then
since the traffic is going to be so low? What would happen if 2 users
try to concurrently access the application at the same exact moment?
Will the requests be queued or will one of them fail?


I believe the answer is that if webrick is so busy w/user #1 that it
can’t come back to user #2 with some response before the browser tires
of waiting, they’d get an error. Now, browsers are patient (more so
than users :wink: but if you have functions like file uploads that can take
long periods of time, you may get complaints.

But don’t take my word for that–wait for someone more knowlegeable to

That said–you should at least download mongrel (gem install mongrel).
It’s faster than webrick, and you can install it as a service very
easily (see the link John gave below).

My tentative plan for my app is to set a single mongrel listening on
port 80 on a spare windows box, and wait to see if one of my 2 users
comes to punch me in the back of the head. :wink:



Thanks for the tip. I have found numerous links and some information
about this book during my research but nothing seems to indicate that
it will address the particularities of the installation I need to work
on (IIS and Oracle). For what I have read it deals mainly with
‘mainstream’ installations. I have not had time to check the book at
the store yet but I am planning on getting it done as soon as I can.


Thanks Roy.

I already talked to the users and the reason why I asked about Webrick
is that there will be only 4 or 5 users at any given time using this
application and the whole thing is so simple that the server should
take just miliseconds to execute. The only thing it will do that will
use some time is to access a few tables to generate drop downs and at
the end write a record to the Oracle table. Very simple stuff.

Thanks for your comments.