On Fri, Dec 3, 2010 at 10:41 AM, Lee Jenkins <[email protected]> wrote: > On 12/1/2010 12:44 PM, Marcos Douglas wrote: >> >> On Wed, Dec 1, 2010 at 2:07 PM, Joost van der Sluis<[email protected]> wrote: >>> >>> On Wed, 2010-12-01 at 17:05 +0100, [email protected] wrote: >>>> >>>> On Wed, 1 Dec 2010, Joost van der Sluis wrote: >>>> >>>>> On Wed, 2010-12-01 at 15:51 +0100, [email protected] wrote: >>>>>> >>>>>> On Wed, 1 Dec 2010, Joost van der Sluis wrote: >>> >>>>> Also check this: >>>>> http://www.fastcgi.com/drupal/node/6?q=node/22#S4.1 >>>>> >>>>> The FastCGI process should return how many connection and requests it >>>>> can handle. I'm not sure anymore if FastCGI of fpc can handle muliple >>>>> requests at a time. (It could, but some parts ahve been changed) >>>> >>>> It never could. >>>> There is 1 connection, and all requests go through this connection. >>> >>> Yes, but this was about requests. One connection can be used for >>> multiple requests. Each package contain an identifier for which request >>> it is, so multiple request can be handled. >> >> I've made ISAPI apps a long time ago... with Delphi. >> One connection can be used for multiples requests, in ISAPI, but all >> access to RDBMS were protected (TCriticalSection). >> How would be with FastCGI and FPC? >> > > In my experience, connection pooling is most common. Below is a pooling > class I copied from the pooling class in tiOPF, but using TObject instead of > the TtiObject base class with some extra features that I needed without a > dependency on tiOPF. > > http://pastebin.com/xQ3nNpHj > > Basically I do this: > > var > lDM: TDataModule; > begin > > lDM := gGlobalPool.Lock; > try > // Get your code on > finally; > gGlobalPool.UnLock(lDM); > end; > > end; > > The pool can contain any TObject so I frequently use it to pool other > resources than database connections. The tiOPOF implementation is pretty > sweet (why I copied it) and so the TObject version also uses a watch thread > to destroy older, unused object to save memory, etc to maintain the number > of connections, etc.
That is exactly I used, in my ISAPI apps, but without threads and pool, just TCriticalSection (the apps were used local net). Marcos Douglas -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
