Re: Concurrency issue on session file on harddisk

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

 



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
>
>

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

  Powered by Linux