Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我计划在 OLTP 应用程序中使用 Oracle AQ 异步通知功能。在高峰时段,它排队的消息数量可能会在一分钟内达到 1000 条。出队回调过程将处理消息并将条目插入到由消息类型确定的表中。
我担心的是,它生成的大量入队通知(每个通知依次调用的 PL/SQL 回调过程)是否会导致数据库争用?是否建议为此目的使用异步通知,或者我应该使用出队轮询过程,我可以在连续循环中一次将一条消息出队。
我的数据库版本是10gR2
非常感谢您的专家帮助!
对于入队的每条消息,ORACLE 后台进程通过创建调度程序作业来调用相关的回调过程。正如您期望在一分钟内收到 1000 条消息,如果您依赖回调过程,它会增加 ORACLE 后台进程的负载,并且还会创建许多一次性调度程序作业,同样,如果创建的并行调度程序作业的数量超过“job_queue_processes” " (ORACLE 参数)在您的数据库中配置的值延迟消息处理,相反,如果您选择使用 AQ 侦听器轮询出队,则单个作业可以处理入队到队列中的所有消息。