oracle resource6,ORA-30006: resource busy; acquire with WAIT timeout expired

Hi,

I'm running an Oracle Database 11g Release 11.1.0.6.0 - 64bit Production With the Real Application Clusters option on a RedHat 5.

I'm managing a part of a database developed by a former colleague and I have a doubt on how to manage a problem I'm experiencin now.

I've a table T_EVENT with this active trigger:

create or replace TRIGGER tra_device_live

AFTER INSERT ON T_EVENT FOR EACH ROW

DECLARE

date_live_last_ DATE;

id_gprs_ NUMBER;

id_gprs_last_live_ NUMBER;

BEGIN

BEGIN

SELECT id_user

INTO id_gprs_

FROM t_data

WHERE id_data = :new.id_data

AND id_type_communication = 1;

EXCEPTION

WHEN NO_DATA_FOUND THEN

id_gprs_ := NULL;

END;

SELECT date_live_last, id_gprs_last_live

INTO date_live_last_, id_gprs_last_live_

FROM t_device

WHERE id_device = :new.id_device

FOR UPDATE WAIT 4;

UPDATE t_device

SET date_live_last = SYSDATE,

id_gprs_last_live = id_gprs_

WHERE id_device = :new.id_device;

EXCEPTION

WHEN NO_DATA_FOUND THEN

NULL;

END;

I'm not completely confident with the FOR UPDATE WAIT statement, how does it work?

The problem I'm experiencing now is:

"ORA-30006: resource busy; acquire with WAIT timeout expired

ORA-06512: at "TRA_DEVICE_LIVE", line 17

ORA-04088: error during execution of trigger 'TRA_DEVICE_LIVE'"

while inserting e new data into T_EVENT. I've this problem just for a specific id_device.

Others records are updating without any problem.

How can I detect the problem?

How can I solve it and, more important, avoid it?

Thanks in advance!

Samuel

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值