Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re: Tomcat, CGI scripts and DBI connection persistence

by Perlbotics (Canon)
on Oct 29, 2011 at 20:06 UTC ( #934642=note: print w/replies, xml ) Need Help??

in reply to Tomcat, CGI scripts and DBI connection persistence

FCGI could solve your problem with the persistent DB connection, however AFAIK Tomcat does not support FCGI out of the box. Though there seems to be a working JFastCGI servlet... (never tried it myself).

Another idea would be to emulate FCGI by creating a daemon that implements your service and interfaces with a stub CGI script, e.g. by means of (domain-)sockets? Thus, the daemon maintains a permanent connection to the DB and handles request forwarded from the CGI stub.

client <-(HTTP)-> Tomcat <-(CGI)-> CGI-stub <-(IPC)-> Daemon <-DBI +-> DB
Very awkward and probably not much faster than simply re-connecting to the DB... Maybe it's easier to stay with Tomcat and write a servlet (Java) or stay with the Perl (F)CGI script and use a Perl based HTTP server (e.g. Starman, Twiggy, HTTP::Server::*)? Perhaps you can have two servers running (Tomcat and Perl-HTTP-server) and edit the CGI URIs, so CGI calls get routed to the Perl HTTP server?

Very awkward again... I would negotiate with customer or boss again to get rid of this artificial limitation. Why spend time and energy circumventing a problem that could be solved better the traditional way?


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://934642]
[Discipulus]: good morning Corion!
[Corion]: I spent parts of yesterday digging into Filter::Simple to make it not change the line numbers of unfiltered code, but I think I need regex help (which will come in a SoPW I guess). I tried @lines = /((?:"...."|[^" \n]+)\n)/gs, but that matched on...
[Corion]: ... foo "\0\0\0\n" bar\n by matching the first \n instead of matching the four-bytes-in- double-quotes part
[Corion]: ... and I still don't understand why ;)
[Corion]: This is because Filter::Simple does some string-trickery, replacing all string literals with "quoted packed numbers"
[Corion]: I fear this might be a bug in the RE engine, but if it is a bug, even fixing won't help me because I need Filter::Simple for Filter::signatures , which provides signatures as a backwards compatibility feature for Perl <5.22 - and these ...
[Corion]: ... won't get a fix anyway ;) My plan B is to encode the string placeholders avoiding \r and \n

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (10)
As of 2017-01-23 08:04 GMT
Find Nodes?
    Voting Booth?
    Do you watch meteor showers?

    Results (191 votes). Check out past polls.