Advertisement

03.27.2008 at 12:36PM PDT, ID: 23275348 | Points: 500
[x]
Attachment Details
xmlhttp , client hangs . Need to implement some kind of timeout.
Tags: xmlhttp, client hangs . Need to implement some kind of timeout.
I am using Microsoft.xmlhttp to send a request to the server. We have been seeing intermittent problems where we client locks up or hangs because of network issues. I am looking for some kind of timeout that I can use at client side script. Note that Iam using synchronous call.
Any ideas?

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
function SendData(method,url,data,ErrHow,Format)
{
var http = new ActiveXObject("Microsoft.XMLHTTP");
var ResultXML;
var e;
    
http.open(method, url, false);
http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http.setRequestHeader("Content-Length", data.length);
try {
	http.send(data);
	if(Format == 0) {
		return http.responseText;
	} else {
		return http.responseBody;
	}
} catch(e) {
	return CreateError(e.number, e, ErrHow);
}
}
Start your free trial to view this solution
Related Solutions: xmlhttp timeout issue
Question Stats
Zone: Web Development
Question Asked By: svinodkumar
Question Asked On: 03.27.2008
Participating Experts: 1
Points: 500
Views: 0
Translate:
Loading Advertisement...
The Asker has requested that this question be deleted.
If you object to this action, you have until 5/16/2008 to post a comment describing your objection. This will generate a request in Community Support for Moderator review. If no Expert objects, this question will be deleted.
 
03.27.2008 at 01:45PM PDT, ID: 21225574

Rank: Wizard

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.27.2008 at 02:41PM PDT, ID: 21226048

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.27.2008 at 02:55PM PDT, ID: 21226159

Rank: Wizard

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.27.2008 at 02:57PM PDT, ID: 21226185

Rank: Wizard

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.27.2008 at 03:06PM PDT, ID: 21226249

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.27.2008 at 04:03PM PDT, ID: 21226617

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.27.2008 at 08:17PM PDT, ID: 21227758

Rank: Wizard

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.27.2008 at 09:10PM PDT, ID: 21227963

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
04.16.2008 at 12:45PM PDT, ID: 21371289

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
04.22.2008 at 10:49AM PDT, ID: 21413643

Rank: Wizard

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
04.22.2008 at 10:53AM PDT, ID: 21413684

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
04.24.2008 at 05:24PM PDT, ID: 21436282

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
 
Loading Advertisement...
Microsoft
  • Internet Protocols
  • Applications
  • Development
  • OS
  • Hardware
  • Windows Security
Apple
  • Operating Systems
  • Hardware
  • Programming
  • Networking
  • Software
Internet
  • Search Engines
  • File Sharing
  • WebTrends / Stats
  • Spy / Ad Blockers
  • Web Browsers
  • New Net Users
  • Web Development
  • Chat / IM
  • Anti Spam
  • Web Servers
  • Anti-Virus
  • Email Clients
Gamers
  • Tips
  • Online / MMORPG
  • Puzzle
  • Emulators
  • Action / Adventure
  • Role Playing
  • Consoles
  • Game Programming
  • Strategy
  • Sports
  • Misc
  • Computer Games
Digital Living
  • Hardware
  • New Net Users
  • New Users
  • Software
  • Digital Music
  • Gaming World
  • Home Security
  • Apple
  • Networking Hardware
Virus & Spyware
  • Vulnerabilities
  • IDS
  • Encryption
  • Anti-Virus
  • Operating Systems Security
  • Software Firewalls
  • WebApplications
  • Cell Phones
  • Operating Systems
  • Internet
  • Hardware Firewalls
Hardware
  • Handhelds / PDAs
  • Displays / Monitors
  • Components
  • Networking Hardware
  • Peripherals
  • Laptops/Notebooks
  • Storage
  • Servers
  • Desktops
  • New Users
  • Misc
  • Apple
Software
  • System Utilities
  • Industry Specific
  • Network Management
  • Photos / Graphics
  • Page Layout
  • VMWare
  • Misc
  • Web Development
  • OS
  • CYGWIN
  • Voice Recognition
  • Message Queue
  • Quality Assurance
  • Security
  • Firewalls
  • MultiMedia Applications
  • Development
  • Database
  • Office / Productivity
  • Business Management
  • OS/2 Apps
  • Server Software
  • Internet / Email
ITPro
  • OS
  • Storage
  • Encryption
  • Operating Systems Security
  • Apple Hardware
  • Laptops & Notebooks
  • Servers
  • Networking Hardware
  • Peripherals
  • Devices
  • Displays / Monitors
  • WebTrends / Stats
  • Search Engines
  • Firewalls
  • WebApplications
  • IDS
  • Vulnerabilities
  • Email Clients
  • File Sharing
  • Spy / Ad Blockers
  • Web Browsers
  • Web Servers
  • Networking
  • Anti-Virus
  • Chat / IM
  • Anti Spam
Developer
  • Web Servers
  • Web Browsers
  • Game Programming
  • Dev Tools
  • Industry Specific
  • Office / Productivity
  • Database
  • CYGWIN
  • Web Development
  • Search Engines
  • File Sharing
  • WebTrends / Stats
  • Programming
  • Content Management
  • Application Servers
  • Protocols
Storage
  • Removable Backup Media
  • Storage Technology
  • Servers
  • Grid
  • Remote Access
  • Backup / Restore
  • Misc
  • Hard Drives
OS
  • Miscellaneous
  • Security
  • Development
  • Linux
  • VMWare
  • MainFrame OS
  • Unix
  • Apple
  • OS / 2
  • AS / 400
  • BeOS
  • Microsoft
  • VMS / OpenVMS
Database
  • Oracle
  • Miscellaneous
  • MySQL
  • Software
  • Sybase
  • Contact Management
  • PostgreSQL
  • Data Manipulation
  • Clarion
  • InterSystems Cache
  • Siebel
  • MUMPS
  • OLAP
  • SQLBase
  • SAS
  • GIS & GPS
  • 4GL
  • Berkeley DB
  • DB2
  • Informix
  • Interbase / Firebird
  • FoxPro
  • Reporting
  • LDAP
  • Filemaker Pro
  • MS SQL Server
  • dBase
  • MS Access
Security
  • Misc
  • Web Browsers
  • Software Firewalls
  • Operating Systems Security
  • File Sharing
  • Spy / Ad Blockers
  • Vulnerabilities
  • WebApplications
  • IDS
  • Anti-Virus
  • Encryption
  • Anti Spam
  • Email Clients
  • VPN
  • Chat / IM
Programming
  • Editors IDEs
  • Installation
  • Handhelds / PDAs
  • Multimedia Programming
  • System / Kernel
  • Algorithms
  • Game
  • Signal Processing
  • Project Management
  • Open Source
  • Database
  • Misc
  • Languages
  • Processor Platforms
  • Theory
Web Development
  • Scripting
  • Blogs
  • Web Servers
  • Software
  • Search Engines
  • Web Graphics
  • Images
  • Internet Marketing
  • Images and Photos
  • Components
  • Document Imaging
  • Web Languages/Standards
  • Illustration
  • WebApplications
  • Fonts
  • WebTrends / Stats
  • Authoring
  • Digital Camera Software
  • Miscellaneous
Networking
  • Protocols
  • Apple Networking
  • Network Management
  • Message Queue
  • Application Servers
  • Content Management
  • File Servers
  • Email Servers
  • Misc
  • Java Editors & IDEs
  • Wireless
  • Networking Hardware
  • Backup / Restore
  • System Utilities
  • ISPs & Hosting
  • Web Servers
  • Storage Technology
  • Removable Backup Media
  • Servers
  • Broadband
  • Grid
  • OS / 2
  • Novell Netware
  • Unix Networking
  • Windows Networking
  • Security
  • Telecommunications
  • Operating Systems
  • Linux Networking
Other
  • Community Advisor
  • Lounge
  • Community Support
  • New Net Users
  • Philosophy / Religion
  • Math / Science
  • Miscellaneous
  • URLs
  • Expert Lounge
  • Politics
  • Puzzles / Riddles
Community Support
  • Suggestions
  • New to EE
  • New Topics
  • Community Advisor
  • CleanUp
  • Announcements
  • General
  • Feedback
  • Input
  • EE Bugs
 
The Asker has requested that this question be deleted.
If you object to this action, you have until 5/16/2008 to post a comment describing your objection. This will generate a request in Community Support for Moderator review. If no Expert objects, this question will be deleted.
 
03.27.2008 at 01:45PM PDT, ID: 21225574

Rank: Wizard

Try the code below:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
function SendData(method,url,data,ErrHow,Format)
{
	var http = new ActiveXObject("Microsoft.XMLHTTP");
	var ResultXML;
	var e;
     http.onreadystatechange=function(){ 
		if(http.readyState==4)
		{
			if( Format==0 )
				processIt(http.responseText)
			else
				processIt(http.responseBody)
		}
	}
	http.open(method, url, true);
	http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	http.setRequestHeader("Content-Length", data.length);
	try 
	{
		http.send(data);
	}
	catch(e) 
	{
		return CreateError(e.number, e, ErrHow);
	}
}
function processIt(data)
{
	alert(data);
}
Open in New Window
 
03.27.2008 at 02:41PM PDT, ID: 21226048
This is asynchronous way of communicating to server, which MAY not work for me. If there is any way that my function "SendData" can return message to caller then this will be helpful. Basically the function
function processIt(data)
{
      alert(data);
}
 can it do something like, returning the data to orginal caller?

Also to mention, Iam using this asp code as a communication layer between my ActiveX client and web-server.
I have ActiveX client application which raises events and goes to ASP, and ASP contacts server to get or send data.
 
03.27.2008 at 02:55PM PDT, ID: 21226159

Rank: Wizard

OK. Try this:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
var http=null;
function SendData(method,url,data,ErrHow,Format)
{
http = new ActiveXObject("Microsoft.XMLHTTP");
var ResultXML;
var e;
    
http.open(method, url, false);
http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http.setRequestHeader("Content-Length", data.length);
try {
	setTimeout("killIt()",5000);
	http.send(data);
	if(Format == 0) {
		return http.responseText;
	} else {
		return http.responseBody;
	}
} catch(e) {
	return CreateError(e.number, e, ErrHow);
}
}
 
function killIt()
{
http.abort();
http=null;
}
Open in New Window
 
03.27.2008 at 02:57PM PDT, ID: 21226185

Rank: Wizard

NOTE: this:
setTimeout("killIt()",5000);
is intended to kill the current request 5 seconds after the request is sent. Since you are using synchronous calls, you cannot put that statement after http.send(data);

You can change from 5 seconds to whatever suits your needs. Notice that the argument is in milliseconds, so if you wanted to wait 15 secs.  you would need 15000 instead.
 
03.27.2008 at 03:06PM PDT, ID: 21226249
GREAT!!!
It worked in my system without any issues, need to try with actual scenario where it locks up the client.

Also, changed the function a little bit:
function killIt()
{
      if (http != null) {
            http.abort();
            http=null;
      }
}

Change: checking for null in KillIt function, as I was getting an error on lower left corner of borwser "http is null"
 
03.27.2008 at 04:03PM PDT, ID: 21226617
Is there a way to clear timer, as i may get the response before timer runs , so will need to clear the timer

Will following code work?
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
var http;
var timedOut;
function SendData(method,url,data,ErrHow,Format)
{
     http = new ActiveXObject("Microsoft.XMLHTTP");
     var ResultXML;
     var e;
     var timerID;
                
     http.open(method, url, false);
     http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     http.setRequestHeader("Content-Length", data.length);
     try {
          timedOut = false;
          timerID = setTimeout("killIt()",15000);
          http.send(data);
          if(Format == 0) {
               return http.responseText;
          } else {
               return http.responseBody;
          }
          clearTimeout(timerID);
     } catch(e) {
          if (timedOut) {
               return CreateError(-1,'HTTP Request Timed Out',ErrHow);
          } else {
               clearTimeout(timerID);
               return CreateError(e.number, e, ErrHow);
          }
     }
}
 
function killIt()
{
     if (http != null) {http.abort();}
     timedOut = true;
}
Open in New Window
 
03.27.2008 at 08:17PM PDT, ID: 21227758

Rank: Wizard

>>if (http != null)
Good catch!

>>Will following code work?
Yes! The only thing I would do different is move the cleatTimeout() immediately after http.send(data);
since it is a synchronous request. Also, it's good practice to always initialize your variable to some known value. That way you are less likely to run into unexpected result (like 'undefined' values).
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
var http=null;
var timedOut=false;
function SendData(method,url,data,ErrHow,Format)
{
     http = new ActiveXObject("Microsoft.XMLHTTP");
     var ResultXML;
     var e;
     var timerID;
                
     http.open(method, url, false);
     http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     http.setRequestHeader("Content-Length", data.length);
     try {
          timedOut = false;
          timerID = setTimeout("killIt()",15000);
          http.send(data);
          clearTimeout(timerID);
          if(Format == 0) {
               return http.responseText;
          } else {
               return http.responseBody;
          }
     } catch(e) {
          if (timedOut) {
               return CreateError(-1,'HTTP Request Timed Out',ErrHow);
          } else {
               clearTimeout(timerID);
               return CreateError(e.number, e, ErrHow);
          }
     }
}
 
function killIt()
{
     if (http != null) {http.abort();}
     timedOut = true;
}
Open in New Window
 
03.27.2008 at 09:10PM PDT, ID: 21227963
Thanks hielo.
Let me try out in actual "buggy" network and update you with my results.
 
04.16.2008 at 12:45PM PDT, ID: 21371289
Hi ,
Came to know that this solution won't work because Java Scripts are not multithreaded. Can you please comment on this.Thanks.
 
04.22.2008 at 10:49AM PDT, ID: 21413643

Rank: Wizard

>>Came to know that this solution won't work because Java Scripts are not multithreaded
OK. So? What behaviour are you seeing and what behaviour do you want? I know javascript is not multithreaded but that does not tell me what's the nature of your problem.
 
04.22.2008 at 10:53AM PDT, ID: 21413684
I use VB Client side ActiveX control. I raiseevent in vb code which goes to ASP script and there I make contact with weberver. The script that I showed , Iam able to open a connection but because of network issues the send request never gets completed. This is because it is waiting for responsed from server, and we loose some packets when serve is repsonding, so client waits and waits and waits.......till eternity :-)  This is what I want to stop. Client should time out.
 
04.24.2008 at 05:24PM PDT, ID: 21436282
Hielo, do u have any comments to add for this?
 
 
20080236-EE-VQP-29 / EE_QW_Related_20080208