Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
Locked
0

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

Community Beginner ,
Aug 08, 2010 Aug 08, 2010

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

TOPICS
Performance issues
11.5K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 08, 2010 Aug 08, 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

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Aug 09, 2010 Aug 09, 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

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 09, 2010 Aug 09, 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

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 09, 2010 Aug 09, 2010

Chris,

I can't seem to publish to the 1.5.3 namespace - I keep getting the verify

error described below. Is there something I'm doing wrong?

Jeff

On Mon, Aug 9, 2010 at 8:39 PM, Jeffrey Battershall

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Aug 10, 2010 Aug 10, 2010

Overlaying the Flex 4.1 SDK with an AIR 1.5.3 SDK should get the job done...unless we missed something along the way. I think there was an issue with the TLF component not versioning very well around the AIR 2.0 namespace - could that be the cause of the issue you are seeing?

Chris Thilgen

AIR Engineering

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 10, 2010 Aug 10, 2010

Chris,

The error I'm seeing is consistent with needing to have the namespace set to

2.0.

Flex 4.1 SDK comes with AIR 2.0 bundled, right? My app is written in Flex 4

- can Flex 4 SDK play nice with AIR SDK 1.5.3? If I do an overlay on Flex

4.1 - does that completely replace AIR 2.0?

Jeff

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Aug 10, 2010 Aug 10, 2010

You should not need to overlay the old AIR SDK to get this to work - changing the namespace should be sufficient.

Here is what I did on my end:

1. Download "Flex 4.1 Update"

http://opensource.adobe.com/wiki/display/flexsdk/download?build=4.1.0.16076&pkgtype=1

Extract to "C:\Program Files\Adobe\Adobe Flash Builder 4\sdks\4.1.0.16076-AIR-2"

2. Download "AIR 2.0 SDK"

http://www.adobe.com/cfusion/entitlement/index.cfm?e=airsdk

Extract and overlay "C:\Program Files\Adobe\Adobe Flash Builder 4\sdks\4.1.0.16076-AIR-2"

3. Create new project in Flex Builder 4 - select the 4.1.0.16076-AIR-2 SDK in the compiler options.

4. Change the application namespace to 1.5.3 in the app descriptor.

5. Clean project - republish - run.

Works for me...can you confirm a clean project works in your setup?

As I mentioned before, there was a versioning issue that came up with using the TLF text component in the AIR 2 timeframe (when created in either Flash Professional or Flash Builder) - so if it is not that - perhaps there is another incompatibility we need to investigate.

Thanks,

Chris Thilgen
AIR Engineering

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 10, 2010 Aug 10, 2010

Hi Chris,

I can create a project using the 1.5.3 namespace/Flex 4.1 without issue but

in my application (which has a lot of UI elements) there's conflict

with VerifyError: Error #1014: Class IIMEClient could not be found. I

haven't been able to track down which component is at issue. What ever

component that requires that interface isn't backward compatible with the

1.5.3 namespace.

I hope the original issue is getting the attention it deserves - this is

getting darned frustrating.

Jeff

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Aug 10, 2010 Aug 10, 2010

Both of the issues you are experiencing are Flex SDK issues - and the best way to get the Flex team to take a look at this is to log it in their bugbase: http://bugs.adobe.com/flex/

Chris Thilgen

AIR Engineering

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 11, 2010 Aug 11, 2010

Thanks Chris,

The item is in JIRA already but has a wrong severity and is the wrong SDK

version and is listed as a minor enhancement when in fact is affecting

systems in production as we speak.

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

<https://bugs.adobe.com/jira/browse/SDK-22016>It is also in there as a Flash

Player bug:

https://bugs.adobe.com/jira/browse/FP-4934

I'm frankly confused about this - Is it an AIR bug, or an SDK bug? In any

case, can we get this escalated? Working around the problem would involve a

substantial re-architecturing of my RPC layer and functionality.

Jeff

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Aug 11, 2010 Aug 11, 2010

Moved discussion to the Problems & Bugs forum

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Aug 11, 2010 Aug 11, 2010

Jeff

Well since I am on the AIR team I am going to say that this is obviously a Flex bug.

But seriously - I think the real issue that needs to be addressed is the inability to publish AIR 1.5.3 applications using the Flex 4 SDK.

Speaking of that, have you considered publishing your application using the 3.5 version of the Flex SDK and using the AIR 1.5.3 namespace?

That would probably work.

I have forwarded this thread to the Flex Team internally - but since they use the JIRA bugbase for everything - I suggest you add some notes to the issues you are aware of - and possible add a new issue about the inability to target AIR 1.5 in the Flex 4.1 SDK.

Chris Thilgen

AIR Engineering

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 11, 2010 Aug 11, 2010

Chris,

The project is Flex 4 - can't back down to Flex 3.5.  I'm using Spark extensively. What about extending RemoteObject and overriding the necessary internal logic so the time out works properly?

Jeff

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Aug 11, 2010 Aug 11, 2010

You could do that - or if you are feeling particularily adventurous - the Flex SDK is opensource and you can download and tweak it as you see fit:

http://opensource.adobe.com/wiki/display/flexsdk/Get+Source+Code

Heck you can even submit code to the SDK if you like.

http://opensource.adobe.com/wiki/display/flexsdk/Submitting+a+Patch

Chris Thilgen

AIR Engineering

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 14, 2010 Aug 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.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 16, 2010 Aug 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

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Aug 16, 2010 Aug 16, 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?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Aug 18, 2010 Aug 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

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Aug 19, 2010 Aug 19, 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

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Oct 27, 2010 Oct 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

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Sep 23, 2011 Sep 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 ?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Sep 23, 2011 Sep 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

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Sep 24, 2011 Sep 24, 2011

I am using eclipse with Flex Builder plugin.I have pointed eclipse to use my sdk (3.4.0.9271) which is updated with 2.7 AIR SDK. If I use 1.5 namespace,that timeout IO error doesnt occur.But if I use 2.0 namespace that issue occuring.Also,I am not able to change my namespace to 2.7 since it gives an error

     ' invalid application descriptor: versionNumber must have a non-empty value.'  .What is the issue here ? So please provide me a solution for fixing this timeout issue and Why am I not able to give 2.7 namespace ?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Sep 24, 2011 Sep 24, 2011

The error is saying that you are missing versionNumber, which was added since 2.0. (I think it was 2.5)

So stop using version (if you are), and switch to versionNumber...which can only be numeric, so it's different from how version functioned.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines