[FX.php List] Server is busy...please try again

Jonathan Schwartz jschwartz at exit445.com
Tue Nov 9 07:02:37 MST 2010


Hi ggt,

Well, I 'll take a busy message over a browser timeout. ;-)  First 
goal is to avoid the browser taking control and timing out. In this 
event, the FMP server doesn't know something went wrong and unless 
the end user is persistent and/or saavy, the web session is 
incomplete. What I do want is to keep control and offer the user a 
next step...and perhaps record the problem to a log or such.  Can't 
do that if the browser times out.  Right? (I'm asking...not telling).

The idea of using javascript/AJAX is just what I was thinking as one 
of the solutions.  With this method the browser is under the control 
of Javacsript which can detect the imminent timeout, abort the query 
and offer the user some choices while logging the problem to another 
server.

So...anyone have any code to offer that will get me on this path?  ;-)

Jonathan



At 12:56 PM +0100 11/9/10, Gjermund Gusland Thorsen wrote:
>My suggestions have mainly been about avoiding having to put the
>message "busy" on display, but if you really want it, please use ajax,
>the simplest way to do it is to make a loading display, so that it
>says "Loading ..." while it loads, and if it times out... make it turn
>into an error.
>
>ggt
>
>2010/11/9 Gjermund Gusland Thorsen <ggt667 at gmail.com>:
>>  FYI
>>
>>  I have added FX.php on facebook:
>>  http://www.facebook.com/pages/FXphp-Filemaker-Xml-parser/130583853636446
>>
>>  The latest version of FX.php in the trunk of the SVN at
>>  http://sf.net/projects/fxphp/ has FMFOpenQuery and SetCustomPrimaryKey
>>
>>  ggt
>>
>>  2010/11/9 Gjermund Gusland Thorsen <ggt667 at gmail.com>:
>>>  This is one of the reasons that I have added prepublishing to FX.php
>>>  to let developers pre-publish XML and still use FX.php
>>>
>>>  Example
>>>  ---
>>>  <?php
>>>  $q = new FX( '../xml/news.xml', '', $dataSourceType );
>>>  $q->FMFOpenQuery();
>>>  $q->SetCustomPrimaryKey( 'pid' );
>>>  $r = $q->FMFind( true, 'object', false );
>>>  print_r( $r );
>>>  ?>
>>>  ---
>>>  This way news, and some other often-looked-at, seldom-updated, data
>>>  can be prepublished, notice ../xml/ it's not published in the web
>>>  area, but next to it.
>>>
>>>  ggt
>>>
>>>  2010/11/9 Jonathan Schwartz <jschwartz at exit445.com>:
>>>>  Thanks for the reply.
>>>>
>>>>  Let me be a little more clear...I WANT the message to display, 
>>>>both alerting
>>>>  the customer that there was a problem, and giving them the option to try
>>>>  again or come back later. Either of these is better than a 
>>>>browser timeout.
>>>>
>>>>  Jonathan
>>>>
>>>>  At 11:47 AM +1100 11/9/10, Tim 'Webko' Booth wrote:
>>>>>
>>>>>  Dear Jonathan;
>>>>>
>>>>>>  Hi folks.
>>>>>>
>>>>>>  "Server is busy...please try again".
>>>>>>
>>>>>>  You might see this message on a sophisticated airlines reservation web
>>>>>>  site, but not if a Filemaker web server is too busy or has a 
>>>>>>problem. The
>>>>>>  browser just times out.  This can be a real problem if a multi-step
>>>>>>  operation fails to finish before the time out.
>>>>>>
>>>>>>  I need to install a fix for this eventuality for one client. My plan is
>>>>>>  to set a flag in an existing customer record before starting 
>>>>>>the operation
>>>>>>  and then resetting the flag upon completion. Any flags that remain set
>>>>>>  indicate a potential problem. This is possible when you are editing an
>>>>>>  existing record.  I am going to do that straight away.
>>>>>>
>>>>>>  NOTE: We have learned (the hard way) that the answer is *not* 
>>>>>>to increase
>>>>>>  the browser expiration time. When there is a web server 
>>>>>>problem, the last
>>>>>>  thing you want to do is stack up queries that don't expire.  This *will*
>>>>>>  crash the web server if it hasn't already done so.
>>>>>>
>>>>>>  But back to the "Server is busy...please try again" option....
>>>>>>
>>>>>>  Would this involve having one server talking to a second 
>>>>>>server where the
>>>>>>  first server can return the friendly message before the 
>>>>>>browser times out?
>>>>>>   Or, is this a job for javascript?  Has anyone done this 
>>>>>>before? I'm sure
>>>>>>  that it is commonplace in many industries, but is not in my 
>>>>>>bag of tricks
>  >>>>> yet.
>>>>>
>>>>>  The problem is that XML engine is single-threaded, as far as I know.
>>>>>
>>>>>  On a multi-connection database (like mySQL) you can check how many
>>>>>  connections, and then redirect to a Busy page if it's over a 
>>>>>certain number
>>>>>  [1]...
>>>>>
>>>>>  When there is only one connection, then a long request will clog it for
>>>>>  all the requests after as well.
>>>>>
>>>>>  I can't think of a way to test easily without being part of the issue, as
>>>>>  it would then be another request, stuck behind the long-running 
>>>>>one... Happy
>>>>>  to see if anyone else has an idea about accomplishing this.
>>>>>
>>>>>  Cheers
>>>>>
>>>>>  Webko
>>>>>
>>>>>  [1] the main reason our heaviest use systems are hybrid FM/mySQL, so we
>>>>>  can do something with excess requests - and mySQL can handle a *lot* more
>>>>>  requests in a given time period.
>>>>>  _______________________________________________
>>>>>  FX.php_List mailing list
>>>>>  FX.php_List at mail.iviking.org
>>>>>  http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>
>>>>
>>>>  --
>>>>  Jonathan Schwartz
>>>>  Exit 445 Group
>>>>  jonathan at exit445.com
>>>>  http://www.exit445.com
>>>>  415-370-5011
>>>>  _______________________________________________
>>>>  FX.php_List mailing list
>>>>  FX.php_List at mail.iviking.org
>>>>  http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>
>>>
>>
>_______________________________________________
>FX.php_List mailing list
>FX.php_List at mail.iviking.org
>http://www.iviking.org/mailman/listinfo/fx.php_list


-- 
Jonathan Schwartz
Exit 445 Group
jonathan at exit445.com
http://www.exit445.com
415-370-5011


More information about the FX.php_List mailing list