Skip to main content
Known Participant
August 8, 2010
Question

AIR RemoteObject timeout in Windows - Is There A Solution???

  • August 8, 2010
  • 5 replies
  • 11370 views

Essentially the issue is long running RemoteObject requests timeout on Windows and setting requestTimeOut on the remoteObject or setting URLRequestDefaults.idleTimeOut to a high number are ignored and the request times out after 30 seconds.

There's been quite a number of posts on this subject and at times the issue was reportedly addressed or worked around, but I'm still seeing this issue on Flex SDK 4.1 (AIR 2.02).  The request times out no matter what I do (on Windows).

A brute force approach would be to break down what I'm trying to retrieve into smaller chunks and assemble the results on the client, but that doesn't give complete confidence that some request may exceed 30 seconds when the servers are under load.

Any advice would be appreciated.

Here are a few posts/JIRA entries that reference the issue:

https://bugs.adobe.com/jira/browse/SDK-15403

https://bugs.adobe.com/jira/browse/SDK-22016

http://blogs.adobe.com/cantrell/2009/10/introducing_urlrequest_idletimeout.html

Thanks,

Jeff

This topic has been closed for replies.

5 replies

October 27, 2010

FWIW, I downloaded the AIR 2.5 runtime that was released yesterday (and also updated Flash Builder with the AIR 2.5 SDK) and happily confirm that this issue has been resolved; no more timeouts.

Thanks AIR team!

-Jose

Participating Frequently
September 23, 2011

Hi,

  I am using AIR SDK 2.7 version and my namespace in AIR application xml is 2.0 (<application xmlns="http://ns.adobe.com/air/application/2.0">) .

in my .actionScriptProperties,I have htmlPlayerVersion="10.0.0".

If I give 2.7 as namespace,it gives error.I am using FileReference.download method for downloading one file from the server.The same issue exists for me. After 30 seconds,IOError pops out which stops my download process.Did anyone find a solution for this ?

chris.campbell
Legend
September 23, 2011

It sounds like you might have run into an SDK overlay problem.  Are you using Flash Builder or Pro?  Would you mind trying to reinstall the SDK using the following instructions?

Flash Pro:

Document: Overlay AIR SDK | Flash Professional CS5.5

Video: Flash CS5.5: How to overlay AIR 2.7 SDK on Windows

Flash Builder:

Document: How to Overlay the AIR SDK for Use With the Flex SDK

Video: Adobe AIR SDK Windows Overylay Tutorial

Thanks,

Chris

August 18, 2010

I just ran into this bug (RemoteObject timeout after 30 seconds for AIR 2.0 application on Windows XP) this week and have tried many workarounds, all to no avail.  After discovering that it's a known bug in the SDK, I tried to vote for it in the referenced posts on bugs.adobe.com, but the system doesn't let me register as I haven't received a confirmation email after waiting for one day or resetting my password.  The sys admin link also doesn't list anyone to contact to resolve my registration issue.

Since the application I'm developing is severely hampered by this restriction (yes, I'm biased), I also think this bug should be given a higher priority.  I do, however, appreciate the time and effort allocated to this issue by Chris and Peter from Adobe.  Thanks, guys.

-Jose

August 20, 2010

There was a change introduced to the networking sub-system in AIR 2 which will cause RemoteObjects (which make use of NetConnection for their communication) to have a shorter idleTimeout on Windows when using the AIR 2.0 namespace (usually around 30 seconds but varies depending on which version of msinet.dll is installed).

We are working on a resolution for this issue to be included in the next release of the AIR Runtime.

Please refer to the following item in the Flex public bugbase for additional information:

https://bugs.adobe.com/jira/browse/SDK-22016

At this time, the only known workaround for RemoteObjects is to publish your AIR application with a namespace less than 2.0.

Chris Thilgen

AIR Engineering

Participating Frequently
August 17, 2010

RemoteObject requests usually do not happen via a URLRequest. By  default, RemoteObject uses AMF over HTTP using flash.net.NetConnection,  which is not the same as flash.net.URLRequest.

Chris, can you please confirm whether AIR's flash.net.NetConnection  implementation honors URLRequestDefaults.idleTimeout for AMF over  HTTP requests or whether there is an equivalent but separate mechanism?

Participant
August 14, 2010

Since my app is using some of the new 2.0 features, I can't publish it as a lower version =(

I must also say that the registry "workaround" doesn't seem to work, Windows clients still timeout (where MacOS clients are just fine).

This really seems like a serious bug, but doesn't seem to be taken seriously.

(I did "vote" for this...yet there are very few votes.)

So I guess the only real solution (until it's fixed) is to break-up any large request into many smaller ones.

Known Participant
August 16, 2010

Unfortunately it seems this isn't going to be addressed soon - it may be under the radar because it deals with a minority scenario - long running requests.  Some requests are going to take time - such as my use case where a large spreadsheet is being composited on the fly.  I can optimize all I want, but the reality is that it may well and probably could take longer than 30 seconds to execute, depending the source data from the database.  And then there are load conditions or during application bootstrap where the request could exceed 30 seconds.

I am working around it by using DataServices messaging and having the spreadsheet get generated in its own thread on the server and notify the application when it's complete.

I am able to get the workaround to work by setting the DWORD entry to a high decimal value but that won't cut it for external deployment.

Jeff

Known Participant
August 8, 2010

OK, so this is a Flash Player bug as described here:

http://bugs.adobe.com/jira/browse/FP-4934  Please take a moment and vote for this issue.

The workaround works but is obviously unacceptable for public deployment of an app.   I'm looking for another workaround that can control the behavior.

Is there ANYTHING that can be done at the framework level?

Jeff

August 9, 2010

One possible workaround - until the Flex SDK is updated - is to publish your AIR application using a pre 2.0 namespace in your application descriptor.

Using a 1.0, 1.1, or 1.5.x namespace will cause the old network timeout behavior to be used.

Hope this helps.

Chris Thilgen

AIR Engineering

Known Participant
August 10, 2010

Chris,

That's a good suggestion - I'm assuming I cannot compile the app using Flex

4.1 right? I'm getting "VerifyError: Error #1014: Class IIMEClient could not

be found.". I'd have to do it using Flex 4 with AIR 1.5.x as an overlay -

correct?

Jeff