Link to home
Start Free TrialLog in
Avatar of sch3000
sch3000

asked on

Channel disconnected before an acknowledgement was received

Hi,

We are using Flex, Spring, BlazeDS in our project and getting below error if we try to click on any link after one hour.

Actual Result: Error message is prompt out.
“ failed to call the remote service !!![FaultEvent fault=[RPC Fault faultString="Channel disconnected" faultCode="Client.Error.DeliveryInDoubt" faultDetail="Channel disconnected before an acknowledgement was received"] messageId="98F7B030-0FE0-0B88-300C-EC422D055E21" type="fault" bubbles=false cancelable=true eventPhase=2]”

If I close the message box and continue to navigate to others by clicking on other links in project I am getting below error.

Actual Result: Error Message is prompt out (this message was same as what QA team log into QC)
failed to call the remote service !!![FaultEvent fault=[RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed error NetConnection.Call.Prohibited: undefined: url: 'http://mpo-dev.austin.hp.com/mpo/messagebroker/amf'"] messageId="97FE6493-8020-437E-8FC5-EC572FF06627" type="fault" bubbles=false cancelable=true eventPhase=2]
Avatar of dgofman
dgofman
Flag of United States of America image

You may setup invalid destination URL to your server.
Check configuration file WEB-INF\flex/services-config.xml under your deploy directory
Avatar of sch3000
sch3000

ASKER

hi dgofman,

The destination URL to the server looks fine.  As it just happened that after one hour idle to the app and start clicking the link again, this error will happened.

We suspecting that it is caused by our weblogic timeout setting, one hour.  The client then couldn't reach the server & hit this error.
Right, I ran same issue in the past.
So, usually we are using JSP page loading HTML that creates a session with server.
When you lanched Flex you will create a new session and after 30 minutes your JSP
session will expired, bcz none of request comes from JSP side.
To avoid this problem you should create JavaScript and create function for calling som erequest using AJAX.

for example:

function heartbeat (){
  http.send("http://localhost:8080/hello.jsp");
}

setStimeout(heartbeat, 1000 * 60 * 15); //set some request to JSP server after 15 minutes

The same can be happend opposite, if you are running Flash on the background and using JSP site your Flex Session will expired after 30 minutes (by default)
Avatar of sch3000

ASKER

so, the sample that you use (jsp page) is to keep the connection alive between client and server every 15 minutes, right?
Avatar of sch3000

ASKER

Since the weblogic session timeout is set to be one hour, I believe that the Flex session should set to one hour as well in order to perform some other action for example route to a page for login.

Not too sure whether anyone tried <timeout-minutes>60</timeout-minutes> before?
Doesn’t matter for how long you setup a timeout on the server. You customers can be frustrated if during working on the Flex Application (for example one hour) they will click on the JSP page and getting 500 Error. That reason why I recommend using JS function to keep alive session on JSP page or you can send request on send request in Flex. For example you will create static function “send” and before to send request to the Flex BlazeDS you will call your JS function using ExternalInterface.callback.
ASKER CERTIFIED SOLUTION
Avatar of sch3000
sch3000

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
This exactly what I explained in my answer 03/28/11 08:29 PM, ID: 35237982.
I will glad if you will close your question in correct manner.
Avatar of sch3000

ASKER

issue was with session timeout