We are running a website on 3 W2K servers running IIS 5.0 as the webservers
and using a server running under Windows Server 2003 for the database
servers. All of our ASP pages are written using VBScript and we use COM
objects written in VB for our business logic.
One of our pages was written using a transaction. The page started with
@Transaction = Required. Basically a form posts to the page, the page
retrieves info from the form, it then uses one COM object to update a couple
SQL Server tables in one of our database, then it uses another COM object to
write a record to a text file in a Share on the database server, it then uses
a 3rd COM object to update some tables in a second database. Once it
completes these steps, it executes ObjectContext.CommitTransaction then
redirects the user to a different page.
This page has been working well for us for a few years. Then about 3 1/2
weeks ago, we changed our the database server to Windows Server 2003, it was
previously another W2K box. Since then this page hangs. I threw in some
debug statements that write to a text file on one of the webservers and I
found that every single one of the statements prior to
ObjectContext.CommitTransaction is executing but I never get past it. It
appears that since the transaction is never committed that the objects
created by the page are remaining and never getting cleaned up. Eventually
this hangs the whole server.
Since the problem started happening after we upgraded the database server to
Windows 2003, I'm wondering if anyone has ever heard of issues using ASP
Transactions when writing to text files on Windows 2003 servers from a W2K
server?
I removed the transaction from the page and it seems to work fine. I'm just
wondering if maybe there is another way so we can keep the transaction.
Thanks,
Evan Nelson
Here's a shortened version of the ASP page. When I commented out the lines
that I've put *** in front of the page seems to work.
***<% @Transaction = Required %>
<% Option Explicit
On Error Resume Next
** All the DIM statements are omitted
'Retrieve the registration information
lngConsultantID = Request.QueryString("ConsultantID")
lngChildren = Request.Form("children")
** Several Request.Form statements are omitted
'Save the registration information in the consultant tables
Set objConsultant = Server.CreateObject("Consult.Consultant")
objConsultant.Initialize(lngConsultantID)
strUserName = objConsultant.GetNewUserID
** Several lines that set properties on the object are omitted
objConsultant.UpdateStatus = 0
objConsultant.Update
** The next line actually makes an email account on a third party server - I
have verified that it has been created.
strErrorID = objConsultant.CreateMyEmail(strMyEmailAddress)
objConsultant.Release
Set objConsultant = Nothing
err.Clear
'Write out the registration information in the registration transfer file
** This is the COM object that is writing to the text file on the Database
server disk
share - I am seeing the record in the text file
** NOTE: If I commented out these lines the problem also went away.
Set objDataStore = Server.CreateObject("DataStore.DataWrite")
objDataStore.FileWrite CLng(lngConsultantID)
** The previous method call has more arguments that I have omitted
Set objDataStore = Nothing
err.Clear
' Build a WST Profile now that consultant has registered.
Set objWConsultant = Server.CreateObject("PHWebSalesTools.clsConsultant ")
blnIsValid = True
blnIsValid = objWConsultant.ReBuildWSTProfile( CLng(lngConsultantID),
vntConsultantData )
vntConsultantData = ""
blnIsValid = objWConsultant.isValidConsultant(strUserName,
Request.Form("password"), "", vntConsultantData)
Set objWConsultant = Nothing
err.Clear
If blnIsValid Then
strFullName = ( Trim(vntConsultantData(FIRST_NAME,0)) & " " &
Trim(vntConsultantData(LAST_NAME,0)) )
**Several lines that retrieve info from the vntConsultant are removed
' Create a Session and load default information
Set objSession = Server.CreateObject("PHWebSalesTools.clsSession")
strErrorID = objSession.CreateSession(lngConsultantID, strLanguageID,
vntSessionID)
strErrorID = objSession.preLoadConsultantData(vntSessionID, lngConsultantID)
** Several lines that set more properties of objSession have been
omitted Set objSession = Nothing
err.Clear
End If
ObjectContext.SetComplete
strResponse = ("registerok.asp?sessionid=" & vntSessionID)
Response.Redirect strResponse
%> 1 1831
I have not heard of this, but the security model is changed in Windows 2003.
I would have one of the network admins research the security aspects, as this
sounds like your issue.
I am not understanding the transaction wrapping code that writes text files,
however. Is this the method you are using to store data, or merely another
step in the process of storing data?
Without seeing the code, I cannot suggest other potential optimizations.
--
Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA
***************************
Think Outside the Box!
***************************
"Evan Nelson" wrote: We are running a website on 3 W2K servers running IIS 5.0 as the webservers and using a server running under Windows Server 2003 for the database servers. All of our ASP pages are written using VBScript and we use COM objects written in VB for our business logic.
One of our pages was written using a transaction. The page started with @Transaction = Required. Basically a form posts to the page, the page retrieves info from the form, it then uses one COM object to update a couple SQL Server tables in one of our database, then it uses another COM object to write a record to a text file in a Share on the database server, it then uses a 3rd COM object to update some tables in a second database. Once it completes these steps, it executes ObjectContext.CommitTransaction then redirects the user to a different page.
This page has been working well for us for a few years. Then about 3 1/2 weeks ago, we changed our the database server to Windows Server 2003, it was previously another W2K box. Since then this page hangs. I threw in some debug statements that write to a text file on one of the webservers and I found that every single one of the statements prior to ObjectContext.CommitTransaction is executing but I never get past it. It appears that since the transaction is never committed that the objects created by the page are remaining and never getting cleaned up. Eventually this hangs the whole server.
Since the problem started happening after we upgraded the database server to Windows 2003, I'm wondering if anyone has ever heard of issues using ASP Transactions when writing to text files on Windows 2003 servers from a W2K server?
I removed the transaction from the page and it seems to work fine. I'm just wondering if maybe there is another way so we can keep the transaction.
Thanks,
Evan Nelson
Here's a shortened version of the ASP page. When I commented out the lines that I've put *** in front of the page seems to work.
***<% @Transaction = Required %> <% Option Explicit On Error Resume Next ** All the DIM statements are omitted 'Retrieve the registration information lngConsultantID = Request.QueryString("ConsultantID") lngChildren = Request.Form("children") ** Several Request.Form statements are omitted 'Save the registration information in the consultant tables Set objConsultant = Server.CreateObject("Consult.Consultant") objConsultant.Initialize(lngConsultantID) strUserName = objConsultant.GetNewUserID ** Several lines that set properties on the object are omitted objConsultant.UpdateStatus = 0 objConsultant.Update ** The next line actually makes an email account on a third party server - I have verified that it has been created. strErrorID = objConsultant.CreateMyEmail(strMyEmailAddress) objConsultant.Release Set objConsultant = Nothing err.Clear
'Write out the registration information in the registration transfer file ** This is the COM object that is writing to the text file on the Database server disk share - I am seeing the record in the text file ** NOTE: If I commented out these lines the problem also went away. Set objDataStore = Server.CreateObject("DataStore.DataWrite") objDataStore.FileWrite CLng(lngConsultantID) ** The previous method call has more arguments that I have omitted Set objDataStore = Nothing err.Clear ' Build a WST Profile now that consultant has registered. Set objWConsultant = Server.CreateObject("PHWebSalesTools.clsConsultant ") blnIsValid = True blnIsValid = objWConsultant.ReBuildWSTProfile( CLng(lngConsultantID), vntConsultantData ) vntConsultantData = "" blnIsValid = objWConsultant.isValidConsultant(strUserName, Request.Form("password"), "", vntConsultantData) Set objWConsultant = Nothing err.Clear
If blnIsValid Then strFullName = ( Trim(vntConsultantData(FIRST_NAME,0)) & " " & Trim(vntConsultantData(LAST_NAME,0)) ) **Several lines that retrieve info from the vntConsultant are removed
' Create a Session and load default information Set objSession = Server.CreateObject("PHWebSalesTools.clsSession") strErrorID = objSession.CreateSession(lngConsultantID, strLanguageID, vntSessionID) strErrorID = objSession.preLoadConsultantData(vntSessionID, lngConsultantID) ** Several lines that set more properties of objSession have been omitted Set objSession = Nothing err.Clear End If ObjectContext.SetComplete strResponse = ("registerok.asp?sessionid=" & vntSessionID) Response.Redirect strResponse %> This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Richard Maher |
last post by:
Hi,
I am seeking the help of volunteers to test some software that I've
developed which facilitates distributed two-phase commit transactions,
encompassing any resource manager (e.g. SQL/Server...
|
by: Iain Mcleod |
last post by:
I wish to do a series of inserts on a sql server database in the context of
a transaction. The inserts will be done as a series of stored procedure
calls. I wish to be able to rollback any...
|
by: Mike P |
last post by:
I've been using C# transactions for a while and had no problems with
them. Using try catch blocks I can trap basically all possible errors
and rollback all necessary data.
Over the last few...
|
by: psb |
last post by:
about a year ago, I was head deep in vb6/com+ hell. THEN, I started doing
asp.net development and went the opposite direction by only putting
transactions in the stored procs. Unfortunately, I...
|
by: John Wells |
last post by:
On this page: http://www.compiere.org/technology/independence.html, the
project leader of Compiere (a popular ERP package) states that the move to
Postgres failed because of lack of support of...
|
by: Allan Ebdrup |
last post by:
I'm using dotNet 2.0 and VS2005, I would like to have some code call several
webservices that I have written that insert data into a DB (MSSQL 2000)
inside a transaction. So that I can rollback if...
|
by: RAM |
last post by:
Hello,
(Sorry for my English...)
I am learning .NET 2.0 (C#, ASP.NET, ADO.NET etc.).
I need to write a database application (SQL Server) consisting of a number
of database transactions (like...
|
by: RAM |
last post by:
Hello,
(Sorry for my English...)
I am learning .NET 2.0 (C#, ASP.NET, ADO.NET etc.).
I need to write a database application (SQL Server) consisting of a number
of database transactions (like...
|
by: Rami |
last post by:
I have some requirement for an automated payment system. The system has
four machines setup as follows:
1- Two machines have a clustered database.
2- Two machines have a .net business logic...
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new...
| |