Groups | Blog | Home
all groups > inetserver asp components > march 2004 >

inetserver asp components : ASP, COM+ and simultaneous pages



s.witage NO[at]SPAM talk21.com
3/12/2004 7:14:12 AM
I have a web application that allows client browsers on an intranet
(using IE6 SP1) to use an ASP page hosted in IIS 5 (Windows 2000 SP2),
to connect to VB6 ActiveX DLL components hosted in COM+.

The entry web page uses client-side javascript to open up 4 more
browser windows simultaneously on the client machine, and each of
these accesses the same ASP page which in turn instantiates the same
component. The component is configured with an Activation Type of
'Server application' in COM+, and the single class in the component
has Transaction Support set to 'Required'.

For some reason, at any one time only two of these newly opened up web
pages (i.e. in two of the four newly opened browser windows) appears
to run on the server from a SINGLE client machine - I have noticed
this by using the ASP Requests Executing performance counter and the
Component Services statistics (the Status view in Component Services).

When I try to use two client machines for the same test, again with
each machine using the page that opens up 4 more browser windows (8 in
total), it would appear that only 2 connections from EACH machine area
allowed at one one time, i.e. 4 in total.

Has anyone else encountered this behaviour? Is there a setting I am
overlooking that will allow me to increase this limit? Is this limit
being imposed by IIS or COM+?

Martin
3/12/2004 3:47:45 PM
I doubt if it's COM+. We have an ISAPI application which regularly opens
10+ instances of the same COM+ component, stress testing I've seen 20+
instances open. You can set an upper limit on a COM+ component if you have
pooling enabled, but the default size is v large and if you haven't changed
it yourself then it wont be that.

Some things to check which might help you locate the problem

1. Examine the IIS Log file, is the server receiving 4 requests from the
client - if not then for some reason the Javascript on the client is failing
to send the request.

2. Run MS IIS Stress Tester (nickname Homer). Record a script where a you
request a single instance of the ASP page (so just simulate one popup window
instead of all 4). Then run the recorded script with say 20-30 threads.
This should simultaneously hit the server with 20-30 requests for the same
page. Watch the COM+ component in Component services MMC and you should see
many instances of it being loaded into memory, this will prove that the COM+
component can indeed handle multiple instance calls and indeed prove that
IIS can handle 20-30 simultaneous requests..

I don't know for definiate but I suspect that the client request is not
reaching the ASP provider on the server... The IIS log file will tell you.

Sorry I cant be more help
Martin.



[quoted text, click to view]

s.witage NO[at]SPAM talk21.com
3/15/2004 3:09:10 AM
Many thanks for your reply.

I have to agree with you that after further investigation, it would
appear not to be an issue with COM+, but rather one with Internet
Explorer (6 SP1), and specifically with the client-side Jscript
window.open() method.

I tried manually opening up 4 separate IE windows, and navigating to
the same URL in each of them simultaneously - everything seemed to
work as expected, and I could see 4 ASP pages executing simultaneously
using Performance Monitor, and 4 objects instantiated in the Component
Services' Status view for the relevant Application.

However, when I do exactly the same thing but using window.open() to
open up the new browser windows, only two connections to the web
server seem to be made at any one time (i.e. only 2 ASP pages execute
concurrently), with the two remaining windows connecting after the two
initial windows have finished.

Has anyone seen this behaviour before?

I will probably try posting to an IE newsgroup as well.

[quoted text, click to view]
Adrian Forbes [ASP MVP]
3/26/2004 1:53:19 AM
You can only have two concurrent connections to a server using TCP/IP. Go
to a web site with 4 big images and you'll see they d/l two at a time. Or
right-click and Save As three files from a server and you'll notice that the
third will only open the Save As dialogue when one of the other connections
has successfully downloaded.

Not sure if this is a feature of TCP/IP under Windows or IE using HTTP over
TCP/IP, but that is how it is. It might be configurable through the
registry but the limit is there to stop one client hogging all the resources
on the target server.

[quoted text, click to view]

Adrian Forbes [ASP MVP]
3/26/2004 1:54:40 AM
Given that added to my other answer IE is blocking connections to the same
site to a max of two per browser instance. What if you set to open windows
in a new process under IE?

[quoted text, click to view]

s.witage NO[at]SPAM talk21.com
3/27/2004 7:38:56 AM
Thanks for your input.

I found out what the problem was after placing this query on other
newsgroups, and it is indeed related to a limit on the number of
concurrent connections to any one site. In fact, this behaviour is
apparently stipulated by the HTTP 1.1 protocol and not IE, and the
stipulation is that only 2 concurrent connections should be made by a
browser session to a single server.

You can override it by hacking the registry, but it is not
recommended, not least for the reason that it would be breaking the
standards.

[quoted text, click to view]
AddThis Social Bookmark Button