Wow. Spawning a new child process for every time you want to run a max-10-second interaction with your database?

That sounds like the type of thing that motivated the creation of mod_perl and thus probably not something you want to do much from mod_perl.

That module's documentation does link to an alternative, DBI's docs on Canceling Operations. But it is also correct to note that doing this will likely cause stability problems. We do it but we have to implement seppuku code whereby the process can usually recognize when it has lost its mind (because all DBI calls fail after that point -- which requires the processes in the layer above to know how to retry requests) and to kill itself when that happens.

We also ask the database to timeout requests and that doesn't appear to introduce instability but it also appears to not always work (queries certainly sometimes run quite a bit longer than the specified maximum time-out). This, of course, varies based on how well such time-outs are supported by your particular database.

So, yeah, it is a mess.

- tye        


In reply to Re^2: how to timeout an operation under mod_perl (fork?!) by tye
in thread how to timeout an operation under mod_perl by diego_de_lima

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.