Re: Concurrency issue on session file on harddisk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx> schrieb im Newsbeitrag 
news:cbda40880802120650w3c87f1edy116647496d7b438a@xxxxxxxxxxxxxxxxx
>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@xxxxxxxxxxxx> 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@xxxxxxxxxxx> schrieb im Newsbeitrag
>> news:004501c86ce6$9da6a080$6401a8c0@xxxxxxxxx
>> >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@xxxxxxxxxxxx>
>> > To: <
>> > php-windows@xxxxxxxxxxxxx>
>> > Sent: Tuesday, February 12, 2008 12:06 PM
>> > Subject:  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


[Index of Archives]     [PHP Home]     [PHP Users]     [PHP Database Programming]     [PHP Install]     [Kernel Newbies]     [Yosemite Forum]     [PHP Books]

  Powered by Linux