Inconsistent Load Times and Delays

E

Erik Noren

I have a large project which includes many views (around 20) and contains
event handles on every drop down list. The schema is also very large. The
project is deployed in a well-managed intranet environment containing
desktops and laptops that are all very similar in architecture and resources.

The problem I am encountering is inconsistent load times between systems.
The project is published to different servers (a production and a test
server) whose configurations are identical except for the versions of
in-house software on those systems.

Generally, users will only use the version published to production. However,
some users notice upon opening the project (and has been verified personally)
that the project takes upwards of 5 minutes to load despite the fact that the
system is sitting idle for 80% of that time (no network, CPU, memory or disk
activity at all.)

The same user can pull down the published version on the Test server
(published just after Production's publish without any code alteration at
all. The only step involved is re-signing the project and starting the new
publish) and open the project in just around 1 minute. Altering a minor
aspect of the project and re-signing and re-publishing has the same effect.
The production version is slow and the test version is not (though, again,
they are the same version just published to two different servers.) The minor
changes are reflected in both projects verifying that updates are taking
place for both projects.

Most users experience no problems with either version, a couple seem to hang
with Production's version and not Test's version while another user had a
problem with Test's version but not Production's! (Now that there is a
production version and being a user, they have no need to use Test anymore so
I am unsure if the delays are still present using the Test server's version.)

The project is published via a share to the servers. The URI for the project
is the respective intranet addresses for the two servers, pointing to the
project. The updates do happen properly so this is not an accessibility
issue. I've also tried substituting the IP address instead of the server's
name but this has no effect (as I assumed it wouldn't given the DNS caching
performed by most systems.)

From a configuration standpoint, the servers are identical as are the
projects as they are published. The same version is published to both servers
but with different URIs for accessing the two versions. The same signing
certificate is used when publishing the projects. The delay only affects a
few people (so far, we're on limited deployment/test but we're being pushed
to go live very heavily which will bring the number of users from less than a
dozen to several hundred.)

What I don't understand is what the difference is when publishing to the
different servers. Why is this particular machine taking so long to load a
version from box A but not from box B when they are the same version? The
network topology is such that both servers are 2 hops away (a common 1st hop
and the 2nd hop being the different servers.) The latency is too low to even
measure.

I am aware of all the advice about cutting schema complexity, removing
handles, etc. but our performance has not increased by removing handlers
which are necessary to satisfy a client requirement (but can be replaced in
the new version by the combobox control - waiting patiently for this.) The
majority of the 5 minute delay is spent idle.

One last piece of info: Ethereal was run in the background while loading the
project from one of the servers. There appears to be very little traffic
happening and the traffic that is traveling is timely. There don't seem to be
any data/network delays at all. Again, this is all on a well-managed intranet.

Any thoughts would be appreciated.
 
B

Ben Walters

Erik,
I had the same issue a while back with a form I created, essentially I had a
form with around 230 fields and each field had an event hanlder. My form took
around 10 min to load (not nice at all)

I did a bit of searching on the net and found that a mapping between fields
and evend handlers was maintained in the forms .xsf file. Hence each time the
form loaded it was attempting to map each field to it's respective event.

I found creating one global event hanlder and then maintaining a big switch
statement increatsed by load time greatly. The code looked something like this

[InfoPathEventHandler(MatchPath="/Root",EventType=InfoPathEventType.OnAfterChange)]
public void Global_OnAfterChange(DataDOMEvent e)
{
try
{
switch(e.Parent.nodeName.ToString())
{
case "Node1":
{
<Event Code>
}
break;
catch(Exception ex)
{
}
}
}

if you need more info let me know if not I hope this helps
Cheers
Ben Walters
 
E

Erik Noren

I appreciate your response but it doesn't really address my actual problem.
The load time is fine when published to one server but much, much longer when
published to another server. The server configs are identical.

My problem isn't the normal load time, it's the load time DIFFERENCE I
exeprience when opening the project from different servers. From one server,
it loads fine. From the other, the production server, it takes much longer.
There is a 5 minute load time from the production server, most of which is
spent idling.

It is this difference that I'm trying to solve. I need everyone to pull from
the production server and use the test server for, well, testing. Some people
have problems with projects published to production and not test. It's the
same project published to both with the URI altered.

So really, the project is capable of loading on a specific machine in a
reasonable amount of time. This is not what I'm trying to fix.

It defies logic. It boggles minds. It defines reality in ways that shouldn't
be possible. I'm just looking for a clue as to why this is happening or how
it can be fixed/avoided/warded off.
 
E

Erik Noren

I think I may have solved the problem at last.

Infopath seems to cache bits of information about projects which I didn't
expect. I noticed that the project continued to try to update from an IP
address I had specified at one point but later changed back to a URL (which
resolved to the same system anyway.)

I opened Infopath and deleted our specific project from the templates,
deleted the project from the system and closed Infopath, opened it again,
closed it one more time before downloading the project template again and
opening it directly. For some reason, this seemed to solve the problem on one
system but the other continued to experience delays until it was taken off
network and rebooted. Now it's opening as expected again.

It could be coincidence but it seems to be working.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top