我正在使用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提出了不同的方法。 但是,对于我正在构建的应用程序类型,哪一个最好?另外,我是否需要一些如何在应用程序结束时释放应用程序模块?有必要吗?
答案 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。