ASE12.5.3 Error 1204错误的解决方法

Sybase ASE12.5.3ESD#7的错误日志文件中频繁报下面的错误信息:

Error 1204, Severity 17, State 2 occurred for User 'sa'. Client IP address is 'XXX.XXX.XXX.XXX'.
SQL Text: select xxxx from xxxxx where xxxxx

查询Sybase错误信息手册,Error 1204是由锁数量不够导致的。

Error 1204的错误信息内容应该为:

SQL Server has run out of LOCKS. Re-run your command when there are fewer active users, or contact a user with System Administrator (SA) role to reconfigure SQL Server with more LOCKS.

自ASE12.5.2后,数据库引擎向错误日志文件中记录Error1204时还记录一些额外的信息,比如:客户端IP地址,登录用户名以及执行的SQL语句。

我这次看到的错误日志文件中仅有一些额外信息,比如:for User 'sa'. Client IP address is 'XXX.XXX.XXX.XXX'. SQL Text: sql_clause,并没有显示SQL Server has run out of LOCKS.这一行信息。

验证一下是否锁数量不够导致的Error 1204?

1> sp_monitorconfig "number of locks"
2> go
Usage information at date and time: Oct 20 2011  3:31PM.
 
 Name                      Num_free    Num_active  Pct_act Max_Used  
         Num_Reuse  
 ------------------------- ----------- ----------- ------- -----------
         -----------
 number of locks                298531        1469   0.49       301452
                   0
(return status = 0)

曾经用过的最大锁数量301452已经超过配置的number of locks参数值300000了。

解决方法:

不管显示不显示run out of LOCKS信息,已经确定是锁数量不够。适当增大number of locks试试解决此错误。

sp_configure "number of locks",400000
go

将锁的数量加到40万。

PS:

关于Error 1204显示的错误信息内容,Targeted CR List for ASE 12.5.4 ESD #7中有一个bug id :468870 可能与之有关。

When printed in the error log, the message "Error 1204, Severity 17,State 1 occurred for User ' < user > '. Client IP address is ' < address > '" uses an inconsistent format making it difficult to search for within the error log.

这可能是我没在ASE12.5.3的错误日志文件中看到SQL Server has run out of LOCKS.类似信息的原因。

  • 本文链接地址:http://www.sybrepair.com/trouble-shooting-error-1204.htm
  • 本文为dbainfo个人原创,请在尊重作者劳动成果的前提下进行转载;
  • 转载务必注明原始出处 : Sybase数据库技术,数据库恢复专家
  • 对《ASE12.5.3 Error 1204错误的解决方法》有何疑问或见解,请在本文下方发表;
  • 对网站还有其他问题或建议,请提交在留言板,谢谢!
  • 目前还没有任何评论.
    :wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)