Production install (RoR + Oracle + IIS)

Hi.

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 floor.

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 URL? 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.

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

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!

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. http://mongrel.rubyforge.org/wiki/Win32

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 @ http://mongrel.rubyforge.org/wiki/FAQ

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?

Thanks.

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 respond.

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:

Cheers,

-Roy

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.