Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#772 closed defect (fixed)

WMS provider hangs for 2 minutes for unavailable request

Reported by: ChristineBao Owned by: Christine Bao
Priority: major Milestone: 3.6.0
Component: FDO API Version: 3.6.0
Severity: 3 Keywords:
Cc: External ID: 1408450

Description

Reported from Autodesk Customer: He uses MapGuide to connect to WMS server and create maps. Sometimes the WMS server is not stable, it can deals with GetCapabilities request, but cannot respond to GetMap request. The customer complains that the map will hands up for minutes if WMS is offline, and he wants quicker return in this case.

Attachments (1)

FDO_WMSTimeout.patch (6.6 KB ) - added by ChristineBao 13 years ago.

Download all attachments as: .zip

Change History (6)

comment:1 by ChristineBao, 13 years ago

Tech Assessment WMS blocks for return from server till 2 minutes timeout. FdoOwsDelegate.cpp shows:

    FdoPtr<FdoOwsHttpHandler> httpHandler = FdoOwsHttpHandler::Create(mbUrl, bGet, mbRequestString, mbUserName, mbPasswd, mbProxyHost, mbProxyPort, mbProxyUserName, mbProxyPassword);
        
    // Here we use 2 mins as the default value for "connection" timeout.
    httpHandler->SetConnectionTimeout (60 * 2);

    // The Perform call won't return util beginning receiving http content.
    // If there are any connection related problems, exceptions
    // thrown out here
    httpHandler->Perform();

The hard-coded timeout value should be pulled outside so that user can configure it according to their needs. FDO connection has a capability SupportsTimeout(), and Get/SetConnectionTimeout(). So they can be used to config the time out value for WMS provider.

by ChristineBao, 13 years ago

Attachment: FDO_WMSTimeout.patch added

comment:2 by ChristineBao, 13 years ago

Attach http://trac.osgeo.org/fdo/attachment/ticket/772/FDO_WMSTimeout.patch for review.

Some note:

  1. The default timeout value for OWS is 120 seconds. If user does not set ConnectionTimeout, the default value is still 120 seconds.
  2. Currently no provider supports timeout, so after the fixing only WMS provider is affected and can use ConnectionTimeout.

comment:4 by ChristineBao, 13 years ago

Resolution: fixed
Status: newclosed

Submit r6219 in trunk to fix this ticket.

comment:5 by ChristineBao, 13 years ago

Submit r6340 to integrate the fix to Reeses SP2.

Note: See TracTickets for help on using tickets.