我们有一个ASP Classic 遗留Web应用程序,它托管在IIS中的Windows Server 2003中,连接在我们的数据库服务器中,这是 AS/400 。我们目前正在将数据库服务器从 v5r4m0 升级到 v6r1m0 ,因此我们在Web服务器中安装update以连接到新的数据库服务器并将所有连接字符串更改为正确的数据库服务器。
我们在ASP Classic网站上有这个代码:
set objConn2 = server.CreateObject("ADODB.Connection")
objConn2.open connStringGlobal
objConn2.BeginTrans
if rsCheck.eof then
objConn2.execute(InsertQuery)
objConn2.execute(InsertQueryRCDREF)
objConn2.execute(UpdateQuery)
end if
objConn2.CommitTrans
if err.number <> 0 then
session("errMsg") = "An error occured while processing your request. Please try again. <br><br>[Error Description : " & err.Description & "]<br><br>" & InsertQuery & "<br><br>" & UpdateQuery & "<br><br>" & InsertQueryRCDREF
objConn2.RollBackTrans
objConn2.close
set objConn2 = nothing
response.Redirect(request.ServerVariables("HTTP_REFERER"))
else
objConn2.close
set objConn2 = nothing
response.Redirect("default.asp?p=pending")
end if
但它在objConn2.BeginTrans
行引发错误:
尝试连接到系统时CWBZZ5008发生安全错误
这里发生的是连接被打开并且执行了objConn2.execute
的行,数据被插入到我们的数据库中,尽管它经历了回滚事务和关闭连接,并在UI中显示错误消息。
这是我们到目前为止所尝试的内容:
但我们仍然没有运气。该网站目前正在生产,由于此错误而停止生产,因此我们确实需要解决此问题,并且已经尝试解决此问题。我们真的需要帮助。
我们在同一服务器和ASP Classic中运行的其他站点连接到具有事务的同一数据库服务器工作正常,只有带有此代码的此站点才会引发错误。
答案 0 :(得分:0)
问题是因为从旧数据库服务器迁移到新数据库服务器的表还没有任何日志,因此在使用事务时会发生错误。
日志维护事务和数据库更改的审计跟踪。使用事务日志和数据库更改日志,事务日志记录每个事务的所有基本数据,包括数据值,事务时间和终端号码。数据库更改日志包含已由事务修改的记录副本之前和之后。 - wikipedia.org