概述
问题描述:在执行一个自定义开发的程序的时候,出现shortdump。
错误如下:
Runtime Errors: DBIF_RSQL_SQL_ERROR
Exception : CX_SY_OPEN_SQL_DB
类别 Installation Errors
运行时错误 DBIF_RSQL_SQL_ERROR
异常 CX_SY_OPEN_SQL_DB
日期和时间 06/05/2015 17:04:32
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
|短文本 |
| SQL error "-289" occurred while accessing table "YBALNC". |
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
|发生了什么? |
| Database error text: "SQL0289N Unable to allocate new pages in table space |
| "BNR#STABI". SQLSTATE=57011 row=1". |
----------------------------------------------------------------------------------------------------
报错原因:(可能的原因)
-
deadlock
-
数据库对sql缓存大小的问题
解决dump的办法:
1、可以加上捕获异常的代码
DATA: o_cx_root TYPE REF TO cx_root.
DATA: v_erroTYPE string.
START-OF-SELECTION.
TRY.
* modify.....
CATCHcx_root INTO o_cx_root.
v_erro =o_cx_root->get_text( ).
ENDTRY.
2、最终找到这个错误的报错原因是死锁,程序里面有一条在loop循环中逐条upadte数据库表的语句,但在更新之前并未对所以的条目进行加锁,但同时多人对同一条记录操作时候可能会照成死锁。最终通过对所有条目进行加锁得以解决。
参考资料:
ST22、SM12、notes:659946、600513
最后
以上就是善良小土豆为你收集整理的【short dump】DBIF_RSQL_SQL_ERROR的全部内容,希望文章能够帮你解决【short dump】DBIF_RSQL_SQL_ERROR所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复