Changes between Version 4 and Version 5 of MapGuideRfc66


Ignore:
Timestamp:
Jun 25, 2009, 2:52:54 AM (15 years ago)
Author:
CXYS
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc66

    v4 v5  
    99||RFC Template Version||(1.0)||
    1010||Submission Date||(June 16, 2009)||
    11 ||Last Modified||(Christine Bao Tue Jun 16 02:22:17 2009)||
     11||Last Modified||(Christine Bao Thu Jun 25 02:22:17 2009)||
    1212||Author||(Christine Bao)||
    1313||RFC Status||(draft)||
     
    3737
    3838The possible solutions could be:[[BR]]
    39 1.      Implement a script which pings the servers periodically to keep the both sessions alive (from browser to web extension and from web extension to server). [[BR]]
    40 2.      Refine the code handling the "connection broken" exception to provide more friendly messages.
     391.      To avoid timeout (either from browser to web tier, or from web tier to MapGuide server), implement a script which pings the servers periodically to keep the both sessions alive. [[BR]]
     402.      Refine the code handling the exceptions like "connection broken" to provide more friendly messages.
     41
    4142
    4243== Implications ==
    4344
    44451.      Keep alive[[BR]]
    45 a.      Ajax viewer pings server periodically by calling “GetSiteVersion” (the most lightweight function).[[BR]]
    46 b.      Fusion viewer pings server periodically by calling Common.php which will refresh connection.[[BR]]
    47 2.      Refine “connection broken” exception handling[[BR]]
    48 Catch the exception and show a readable message.
     46   a.   Fusion already pings server periodically by calling "Common.php", so there is no plan to change Fusion's behavior.[[BR]]
     47   b.   Ajax viewer doesn’t ping server to keep-alive so far. If open an Ajax viewer and leave it open for a while more than the timeout interval, it can’t continue work. To keep Ajax viewer alive, the approach is:[[BR]]
     48     1).  Create a server API GetSessionTimeout(), return the timeout setting from server side. [[BR]]
     49     2).  Call GetSessionTimeout() from mainframe.templ periodically.[[BR]]
     50     User doesn’t need to set the time interval of pinging. It’s read from server timeout setting and divided by 5. User can turn the ping on/off by setting <EnablePingServer>=1/0 of basic web layout. [[BR]]
     51
     522.      Refine exception handling such as “connection broken”[[BR]]
     53   a.   Fusion does not handle exception message well. It shows long unreadable message when exception happens. For example if connection broken the error message is "FATAL: xml2json: invalid XML document: MgConnectionFailedException : http://127.0.0.1/mapguide2010/mapagent/mapagent.fcgi?version=1.0.0&locale=en&clientagent=Fusion%20Viewer&operation=QUERYMAPFEATURES&session=40d3e074-3ee5-102c-8000-005056c00008_en_7F0000010AFC0AFB0AFA&mapname=Sheboygan4a3b609791c82&geometry=POLYGON((-87.730254250931%2043.73763292302%2C%20-87.730254250931%2043.737069942268%2C%20-87.729691270179%2043.737069942268%2C%20-87.729691270179%2043.73763292302%2C%20-87.730254250931%2043.73763292302))&maxFeatures=1&persist=0&selectionVariant=INTERSECTS&layerNames=&layerAttributeFilter=5 type=0". This is no user-friendly. The error message should show exception message such as "Fussion error: Cannot establish connection".[[BR]]
     54   b.   Ajax viewer shows exception messages and they are user-friendly. No improvements needed for Ajax viewer.
    4955
    5056== Test Plan ==