couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Hammond <>
Subject Re: Windows service
Date Sun, 15 Nov 2009 01:15:28 GMT
On 13/11/2009 8:22 PM, Juhani Ränkimies wrote:
> On Thu, Nov 12, 2009 at 7:11 PM, Brunjes, Lee (lmb7s)
> <>  wrote:
>> I wanted to discuss two things
>>         first is any one else doing something similar?
> Yes.
>>         And second would adding a .net dependency to things be a bad idea in the
long term.

I think it would be undesirable in this case for a number of reasons:

* The windows service API is native and not particularly complex.  .NET 
adds a layer of complexity for no good reason.  People hacking on 
couchdb itself must currently have some understanding of C (as it is 
already used) but may not be familiar with whatever language is used for 
the service impl.

* It adds a build-time dependency; additional compilers must be 
available and presumably hacked into the autoconf support.  The target 
.NET version may need to be installed on the developer's box, 
potentially making "buildbot" installations more difficult.

* It add a runtime dependency; there are no existing requirements for 
.NET and presumably the installer would need to either bundle and 
install the .NET runtime, or accept a limitation in the Windows versions 
it works on.

Which isn't to say I'm anti-.NET - I'd have the same reservations about 
building the service support around Python which (a) would be much 
easier than either .NET or custom C, and (b) I'm intimately familiar 
with :) or anything else which isn't erlang or C(++) :)

> I don't know, but erlang comes with a tool for installing a windows service.

Yay - this is obviously the killer reason.  I'd seen vague references to 
this, but this is the first time I've seen a concrete example.

> erts-5.7.3\bin\erlsrv.exe add CouchDBProd -i couchdbprod -w
> D:\couch_service\prod\bin -ar "-sasl errlog_type error -s couch"
> sc.exe config couchdbprod obj= .\\imaginarycouchdbuser password=
> evenmoreimaginarypasswordforcouchdbuser

That's cool - I imagine there is also a way to configure for the 
LocalSystem user, meaning a password needn't be specified, meaning the 
installation process is fairly easy.  I'll play a little more with this...



View raw message