RE: [PHP-WIN] Concurrency issue on session file on harddisk
| From: | Eric Colinet | Date: | Thu, 14 Feb 2008 09:48:20 +0000 |
| Subject: | RE: [PHP-WIN] Concurrency issue on session file on harddisk | ||
| Groups: | php.windows | ||
| Request: | Send a blank email to php-windows+get-28788@lists.php.net to get a copy of this message | ||
Hi,
To quickly solve your problem, can't you just load a dummy HTML page (without the PHP extension
if possible) in each frame that display nothing but "please wait..." and reload itself
with a meta-refresh tag at different interval (say 1, 2 and 3 seconds)?
For the "real" problem, you should triple-check the rights on the D:\PHPTemp directory for
the IIS user (is it on of the owner?). Also check that your D: is a local FAT32 or NTFS volume.
To experiment, you could check that using the PHP's flock function works as expected.
Eric
-----Message d'origine-----
De : Stephan Weiher [mailto:stephan@fa-weiher.de]
Envoyé : mercredi 13 février 2008 13:04
À : php-windows@lists.php.net
Objet : Re: [PHP-WIN] Concurrency issue on session file on harddisk
This was one of our first tries to solve the problem. Since session_start()
is called in the index.php containing the frameset declaration, php.exe
accesses the session file from both frames BEFORE processing any code out of
it. So a delay contruct will only be processed when session file access is
done :(
Greetings
Stephan Weiher
""Michael Southworth"" <mikesouthworth@gmail.com> schrieb im Newsbeitrag
news:cbda40880802120650w3c87f1edy116647496d7b438a@mail.gmail.com...
>I should preface this by saying it has been a while since I have used php
> extensively, but my suggestion would be to try putting in a delay at the
> beginning of your PHPfile, before the session_start() command (or
> whichever
> method you choose to begin your session). As far as I can recall, the
> session needs to be initialized before any output is sent to the browser,
> but this does not mean you cannot execute a php code delay before you
> start
> the session. This may give you enough time for the other PHP request to
> complete, freeing up the required file.
>
> A potentially more robust, but equally untested option, would be to check
> the file itself before initializing the session. The session_id will be
> available in the super variables or via session_id(). Since the file names
> for a given session are based predictably on this id, you could
> potentially
> try to do a read access on the file. If this fails, poll and try again or
> timeout and fail gracefully. I am not very familiar with how the
> permissions
> on this would play out though.
>
> Those are two suggestions I could think of, hope that helps,
> -Michael Southworth
>
> On Feb 13, 2008 8:15 AM, Stephan Weiher <stephan@fa-weiher.de> wrote:
>
>> Thanks for the answer but this won't help us anyway. We cannot enable
>> javascript on any computer in the company's network to make this issue
>> going
>> away. I'll need a way to delay the requests for one of the two frames
>> (defined in the frameset) for a tiny amount of time to prevent two
>> php.exe
>> instances from accessing the session file at the same time. But I don't
>> know
>> how to do so. Javascript is no option for us and as far as I know HTML
>> has
>> no such mechanism. So I need another way. Perhaps sth. that delays the
>> call
>> of php.exe - but I/O must work on this way :)
>>
>> Greetings
>> Stephan Weiher
>>
>>
>>
>> ""Jacob Kruger"" <jacobk@cknet.co.za> schrieb im Newsbeitrag
>> news:004501c86ce6$9da6a080$6401a8c0@JacobK...
>> >A 'corny' workaround might be to get something like the nav frame in
>> >fact
>> >to
>> > then load the main frame using something like JavaScript - just a
>> > thought -
>> > since it would in fact first have rendered before the main frame was
>> > loaded.
>> >
>> > You could then also put something like a 'waiting...' notice/string in
>> the
>> > main frame in case one or two people's machines in fact rendered/loaded
>> > the
>> > two frames in the wrong order.
>> >
>> > Stay well
>> >
>> > Jacob Kruger
>> > Blind Biker
>> > Skype: BlindZA
>> > '...Fate had broken his body, but not his spirit...'
>> >
>> > ----- Original Message -----
>> > From: "Stephan Weiher" <
>> > stephan@fa-weiher.de>
>> > To: <
>> > php-windows@lists.php.net>
>> > Sent: Tuesday, February 12, 2008 12:06 PM
>> > Subject: [PHP-WIN] Concurrency issue on session file on harddisk
>>
>> --
>> PHP Windows Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>>
>
--
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php