获取在线Web服务应用程序的应用程序模块的最佳实践

时间:2014-04-29 12:53:40

标签: java web-services oracle11g oracle-adf

我正在使用Jdeveloper 11.1.1.7.0.构建应用程序此应用程序将根据应用程序中指定的时间间隔由scheduler运行。此应用程序的主要目的是使用Online Web Services进行在线交易。

在应用程序中,我从数据库中获取数据。为了做到这一点,我必须定义应用程序模块并使用它来获取view objects。以前,当应用程序位于10g时(迁移到11g之前),开发人员使用以下方式创建应用程序模块:

ApplicationModule appMod= Configuration.createRootApplicationModule("somePackge","someAppNameLocal"); 

最后他发布如下:

Configuration.releaseRootApplicationModule(appMod, false);  

问题是: 获取应用模块的最佳做法是什么?

此博客:Oracle Apps (ADF/OAF/iModules): Different ways of getting Handle to AM from Backing Bean提出了不同的方法。 但是,对于我正在构建的应用程序类型,哪一个最好?另外,我是否需要一些如何在应用程序结束时释放应用程序模块?有必要吗?

1 个答案:

答案 0 :(得分:2)

您现在遵循的方法 WOULD 是最好的方法。 我在我的应用程序中一直使用它,它在生产中工作正常。 我和你的用例相同。

但您需要使用

发布根应用程序模块
Configuration.releaseRootApplicationModule(appMod, true);

不是

Configuration.releaseRootApplicationModule(appMod, false);

原因:http://www.jobinesh.com/2011/12/some-tips-on-application-module-usage.html

我是否需要一些如何在应用程序结束时发布应用程序模块?有必要吗?

这是必要的。

调用createRootApplicationModule()将使用连接池中的连接,如果未正确释放,则由于连接不可用,应用程序可能会在某个时间点崩溃。

我建议关注这篇文章:http://andrejusb.blogspot.in/2013/03/optimizing-long-running-adf-operations.html 并为您的计划程序创建一个AM。