我计划在OLTP application.The中使用Oracle异步通知功能,在高峰时间内,它队列中的消息数量可能会在一分钟内增加到1000条。去队列回调过程将处理消息并将一个条目插入到由消息类型决定的表中。
我担心的是,它生成的大量的队列通知(对每个通知依次调用的PL/SQL回调过程)是否会导致数据库争用?是否应该为此目的使用异步通知,还是应该使用去队列轮询过程,以便在连续循环中一次排出一条消息。
我的数据库版本是10 gR2。
非常感谢您的专家帮助!!
发布于 2014-04-05 18:44:45
对于进入队列的每个消息,ORACLE后台进程通过创建调度器作业来调用相关的回调过程。由于您希望立即处理1000条消息--如果您依赖于回调过程--它会增加ORACLE后台进程的负载,并且还会创建那些一次性调度程序作业,同样,如果创建的no.of并行调度程序作业大于数据库中配置的延迟消息处理的"job_queue_processes“(ORACLE参数)值,相反,如果您选择使用AQ侦听器进行轮询去队列,那么单个作业可以处理队列中的所有消息。
https://stackoverflow.com/questions/22856274
复制相似问题