文档解释
ORA-24073: cannot specify RETENTION_TIME on exception queue string.string
Cause: An attempt was made to create or alter an exception queue by specifying a non-zero RETENTION_TIME.
Action: Use the default RETENTION_TIME parameter value for exception queues.
ORA-24073: 由于不允许在异常队列上指定RETENTION_TIME,因此系统抛出此错误。
官方解释
ORA-24073:当试图在异常队列上设置RETAINTIME属性时,会出现ORA-24073:不能指定RETENTION_TIME的错误。这是由于异常队列的RETAINTIME属性是保留的,由实施者控制,因此只能在ENQUEUE管理器实例或数据库层面更改。
常见案例
在Oracle中,只有在数据库层显式更改了消息队列的保持时间后,才允许将其设置为异常队列。由于ORA-24073该错误,在尝试从客户端设置消息队列的消息保持时间时,会出现此错误。
一般处理方法及步骤
1.检查在Oracle中设置的消息队列中的保持时间是否与实际配置一致;
2.在Oracle中,必须在数据库层显式更改消息队列的保持时间,才允许将其设置为异常队列;
3.在此情况下,可以使用ALTER ENQUEUE_MANAGER、ALTER CONCURRENTQUEUE、ALTER CONCURRENTPROGRAM等语句来更改延迟时间;
4.重新启动数据库,运行消息队列,看看是否更新适当的消息队列选项;
5.在客户端重新设置消息队列的消息保持时间,确保不再发生ORA-24073错误。