从数据库调用外部处理过程的方法
Oracle9i数据库的最大优点之一,从系统的观点来看它完全不只是一个被动的信息库。通过内建的PL/SQL和Java语言以及调用外部程序的功能,Oracle9i数据库能够启动并且完成各种处理任务。
然而,很多时候更需要完全在数据库之外运行一个处理过程。例如,若过程需要巨大的库来支持,那就要以多线程方式工作或访问由应用程序服务器提供的资源。或许你也想在另一台电脑上运行处理过程,那么你就不会占用全部数据库机器上的CPU的时间。
在本专栏中,我要讨论用于在数据库外面启动处理过程的两种流行的方法,并给出工作示例应用程序代码的概要来展示这些处理方法。
示例应用程序源于一个现实世界当中需要在数据库与应用程序服务器之间进行复杂交互的应用程序。下面是示例应用程序中描述的三种处理方案:
从PL/SQL调用一个HTTP来激活一个Java Servlet。
使用高级排队(AQ)功能来激活一个消息驱动的bean (MDB)。
使用AQ将数据库中的变化通知Java客户端应用程序。
图 1 即为该示例应用程序中的这些方案。