in reply to Persistant data with Mason

If you're using your own handler.pl, you could just define whatever constants you need as globals there.

If you don't like any of these suggestions, you should contact [id://autarch]. He's one of Mason's authors.

Replies are listed 'Best First'.
Re^2: Persistant data with Mason
by martell (Hermit) on Feb 11, 2005 at 20:09 UTC

    I may be wrong, but I think this is not true. Anything you define as global in your handler.pl is global for the apache child and not for all apache childs together. They remain independent. You still need to pas by the cache method suggested by 'bpphillips' to exchange information between the processes.

    I thinks that's why 'crenz' also says:

    "anything placed in a %once block in Mason seems to be executed for each request"

    In his test environment, each request done sometimes done by the same child, sometimes by another. That's way he sees sometimes the correct behaviour, but mostly the faulty one due the low charge of his server (each time a fresh apache child!).

    Mason guarantees that everything placed in a %once block is only executed once for the apache child. In this way you can setup all necessary connections and initializations (DB, Init files, ...) for each of the apache childs.

        I see, this explains your comment. However you're method doesn't let you write something to the shared memory if I read it wel. (or is possible in another way?)

        I use in my development always a shared cache. I create it in a %once block in a syshandler like described in the mason manuals. Didn't know you could do it also via the handler.pl script. So I learn new things... :)