Symptom

 

When using PostURL() of the Inet object (passing in, url, http headers, port number and internet result object)

for certain long running

transactions that take over 30 seconds, sometimes PostURL() would return a -6.

 

Environment

PowerBuilder

Windows 7

Reproducing the Issue

Problem sometimes happens with long running transactions that can take over 30 seconds.

Cause

 

By setting the Wininet logging in the Event Viewer per

http://blogs.msdn.com/b/santhoshonline/archive/2010/07/08/howto-wininet-etw-logging-analytic-logging.aspx

it showed an event 'WININET_REQUEST_HEADER' posted at 11:30:03AM. The next event happened 30

seconds later with the WININET_HANDLE_CLOSED at 11:30:33AM.

PostURL will call api functions from the wininet.dll. PostURL will return -6 if the wininet's httpsendrequest() fails.

From the PowerBuilder online help on PostURL():

The PostURL function relies on wininet.dll to post a request and returns -1 when the posting time exceeds the

DLL timeout value. When you install Internet Explorer 7 or later, the default timeout value for this DLL is 30

seconds. Although it is possible to change the timeout value by configuring a ReceiveTimeOut registry key

under HKEY_CURRENT_USER\ SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings, this is not

recommended, since it can also affect the behavior of the Internet Explorer browser.

 

Resolution

***WARNING***:

The following resolution involves editing the registry. Using the Registry Editor incorrectly can cause serious problems.

Use the Registry Editor at your own risk. Refer to KBA 1323322 for more information.

The ReceiveTimout registry entry was added to HKEY_CURRENT_USER\

SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings in

the format listed in http://ie-support.blogspot.com/2011/02/internet-explorer-error-connection.html.

 

It was set to 90 seconds up from the 30 second default.

3
2