W
Wolfgang Kaml
Hello All,
I have been working on this for almost a week now and I haven't anything up
my sleeves anymore that I could test in addition or change....
Since I am not sure, if this is a Windows 2003 Server or ADO or ODBC issue,
I am posting this on all of the three newsgroups.
That's the setup:
Windows 2003 Server with IIS and ASP.NET actiavted
Access 2002 mdb file (and yes, proper rights are set on TMP paths and path,
where mdb file is located)
ASP.Net web server component that will query and update the Access DB in the
functionality of a web counter
The problem is, that after the first call of the web site with the web
counter component, the refresh will take about 8-9 seconds. Doesn't matter
if I close the IE or just hit the refresh.
From what I can observe is, that after the start of the IIS web server no
w3wp.exe process is running. As soon as I open the aspx web site with the
..Net built counter component, a w3wp.exe process is being instantiated and
the calls to the Access DB are made. Since the w3wp.exe process has to
start, the inital display of the web page takes about 1-2 seconds and
everything works fine. I can see a .tmp file being created in the TMP
directory and a .ldb file being created in the path of the .mdb file for a
brief moment. Then they disappear. The w3wp.exe process stays. Then, if I
hit refresh or close and reopen the web site, nothing seems to happen for
8-9 seconds and then the page displays without any errors. The difference
is, that the .tmp file and the .ldb file are also sitting in the
corresponding paths for a while longer, but both disappear again.
Since I have been doing quiet a bit of trouble shooting already, here is
some detailed info as of what happens during the inital call of the web
site, and during subsequent calls:
Output of current second and millisecond of the machine during initial call,
when no w3wp.exe process existed yet:
58:343 objCounterDBConnection = New OdbcConnection
58:359 objCounterDBCommand = New OdbcCommand
58:359 objCounterDBConnection.Open()
58:390 objCounterDbRdr = objCounterDBCommand.ExecuteReader
58:562 objCounterDbRdr.Read
58:562 objCounterDbRdr.Close()
58:578 objCounterDBConnection.Close()
58:625 preparing insert
58:640 objCounterDBConnection.Open()
58:640 objCounterDBCommand.ExecuteNonQuery()
58:640 objCounterDBConnection.Close()
58:687 objCounterDBConnection & objCounterDBCommand.Dispose()
58:687 finished
Output of current second and millisecond of the machine during subsequent
call, when existing w3wp.exe process apparently take the job:
10:359 objCounterDBConnection = New OdbcConnection
10:359 objCounterDBCommand = New OdbcCommand
10:359 objCounterDBConnection.Open()
10:375 objCounterDbRdr = objCounterDBCommand.ExecuteReader
19:140 objCounterDbRdr.Read
19:140 objCounterDbRdr.Close()
19:140 objCounterDBConnection.Close()
19:187 preparing insert
19:187 objCounterDBConnection.Open()
19:187 objCounterDBCommand.ExecuteNonQuery()
19:187 objCounterDBConnection.Close()
19:234 objCounterDBConnection & objCounterDBCommand.Dispose()
19:234 finished
As you can see, during a subsequent call, the ExecuteReader takes close to 9
seconds before it returns the OdbcDataReader object.
WHY????
This is not an update and hence has nothing to do with lazy propagation
issues as far as I can tell what I have seen on different posts.
Also, this problem occurs only on the Windows 2003 Server, not the Windows
2000 Server.
What is the issue here? - the initial w3wp.exe process is being run under
the NETWORK SERVICE account and I have given that account proper permissions
to perform the job. That is being verified in my opinion by the fact, that
the first run of the component works fine.
To me this is an absolute issue of Windows 2003 Server and/or ODBC on
Windows 2003 Server.
Is it ODBC, is it the Windows 2003 server? I have no clue.
Your help on that would be really appreciated and I can post the sources if
necessary if somebody else would like to try that out. I'm almost 99.99%
certain that this is a true Windows 2003 Server or ODBC issue that I am just
about ready to open a call with Microsoft on that.
The source is clean as it could be and I have double checked with quiet a
few examples on MSDN and other Tech articels on that.
Yesterday I had the IIS and application part completly removed from the
server, everything cleaned up and started all over with the install. Exact
same results. No other pocesses are running on that machine at all. It's
clean as it could be. So I am really stumbling on that.
Please help!
Thank you,
Wolfgang
I have been working on this for almost a week now and I haven't anything up
my sleeves anymore that I could test in addition or change....
Since I am not sure, if this is a Windows 2003 Server or ADO or ODBC issue,
I am posting this on all of the three newsgroups.
That's the setup:
Windows 2003 Server with IIS and ASP.NET actiavted
Access 2002 mdb file (and yes, proper rights are set on TMP paths and path,
where mdb file is located)
ASP.Net web server component that will query and update the Access DB in the
functionality of a web counter
The problem is, that after the first call of the web site with the web
counter component, the refresh will take about 8-9 seconds. Doesn't matter
if I close the IE or just hit the refresh.
From what I can observe is, that after the start of the IIS web server no
w3wp.exe process is running. As soon as I open the aspx web site with the
..Net built counter component, a w3wp.exe process is being instantiated and
the calls to the Access DB are made. Since the w3wp.exe process has to
start, the inital display of the web page takes about 1-2 seconds and
everything works fine. I can see a .tmp file being created in the TMP
directory and a .ldb file being created in the path of the .mdb file for a
brief moment. Then they disappear. The w3wp.exe process stays. Then, if I
hit refresh or close and reopen the web site, nothing seems to happen for
8-9 seconds and then the page displays without any errors. The difference
is, that the .tmp file and the .ldb file are also sitting in the
corresponding paths for a while longer, but both disappear again.
Since I have been doing quiet a bit of trouble shooting already, here is
some detailed info as of what happens during the inital call of the web
site, and during subsequent calls:
Output of current second and millisecond of the machine during initial call,
when no w3wp.exe process existed yet:
58:343 objCounterDBConnection = New OdbcConnection
58:359 objCounterDBCommand = New OdbcCommand
58:359 objCounterDBConnection.Open()
58:390 objCounterDbRdr = objCounterDBCommand.ExecuteReader
58:562 objCounterDbRdr.Read
58:562 objCounterDbRdr.Close()
58:578 objCounterDBConnection.Close()
58:625 preparing insert
58:640 objCounterDBConnection.Open()
58:640 objCounterDBCommand.ExecuteNonQuery()
58:640 objCounterDBConnection.Close()
58:687 objCounterDBConnection & objCounterDBCommand.Dispose()
58:687 finished
Output of current second and millisecond of the machine during subsequent
call, when existing w3wp.exe process apparently take the job:
10:359 objCounterDBConnection = New OdbcConnection
10:359 objCounterDBCommand = New OdbcCommand
10:359 objCounterDBConnection.Open()
10:375 objCounterDbRdr = objCounterDBCommand.ExecuteReader
19:140 objCounterDbRdr.Read
19:140 objCounterDbRdr.Close()
19:140 objCounterDBConnection.Close()
19:187 preparing insert
19:187 objCounterDBConnection.Open()
19:187 objCounterDBCommand.ExecuteNonQuery()
19:187 objCounterDBConnection.Close()
19:234 objCounterDBConnection & objCounterDBCommand.Dispose()
19:234 finished
As you can see, during a subsequent call, the ExecuteReader takes close to 9
seconds before it returns the OdbcDataReader object.
WHY????
This is not an update and hence has nothing to do with lazy propagation
issues as far as I can tell what I have seen on different posts.
Also, this problem occurs only on the Windows 2003 Server, not the Windows
2000 Server.
What is the issue here? - the initial w3wp.exe process is being run under
the NETWORK SERVICE account and I have given that account proper permissions
to perform the job. That is being verified in my opinion by the fact, that
the first run of the component works fine.
To me this is an absolute issue of Windows 2003 Server and/or ODBC on
Windows 2003 Server.
Is it ODBC, is it the Windows 2003 server? I have no clue.
Your help on that would be really appreciated and I can post the sources if
necessary if somebody else would like to try that out. I'm almost 99.99%
certain that this is a true Windows 2003 Server or ODBC issue that I am just
about ready to open a call with Microsoft on that.
The source is clean as it could be and I have double checked with quiet a
few examples on MSDN and other Tech articels on that.
Yesterday I had the IIS and application part completly removed from the
server, everything cleaned up and started all over with the install. Exact
same results. No other pocesses are running on that machine at all. It's
clean as it could be. So I am really stumbling on that.
Please help!
Thank you,
Wolfgang