.getcurrentrow(DCIteratorBinding)一小时后返回null [英] .getcurrentrow (DCIteratorBinding) is returning null after an hour

查看:70
本文介绍了.getcurrentrow(DCIteratorBinding)一小时后返回null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是ADF(EJB/JPA而非业务组件)的新手,当用户使用在jdeveloper"12.2.1.2.0"上开发的新应用程序时,经过一个小时的活动,系统失去了当前记录.注意,丢失的对象是父对象.

I am new in ADF (EJB/JPA not Business Component), when the user is using our new app developed on jdeveloper "12.2.1.2.0", after an hour of activity, system is loosing the current record. To note that the object lost is the parent object.

我尝试更改会话超时(知道它将影响不活动时间).

I tried to change the session-timeout (knowing that it will affect the inactivity time).

public List<SelectItem> getSProvMasterSelectItemList(){
   List<SelectItem> sProvMasterSelectItemList = new ArrayList<SelectItem>();
   DCIteratorBinding lBinding = ADFUtils.findIterator("pByIdIterator");/*After 1 hour I am able to get lBinding is not null*/ 
   Row pRow = lBinding.getCurrentRow();/*But lBinding.getCurrentRow() is null*/
   DCDataRow objRow = (DCDataRow) pRow;
   Prov prov = (Prov) objRow.getDataProvider();
   if (!StringUtils.isEmpty(prov)){
      String code = prov.getCode(); 
      if (StringUtils.isEmpty(code)){
         return sProvMasterSelectItemList;
      }else{
         List<Lov> mProvList = getSessionEJBBean().getProvFindMasterProv(code);
         sProvMasterSelectItemList.add(new SelectItem(null," "));
         for (Lov pMaster:mProvList) {
            sProvMasterSelectItemList.add(new SelectItem(pMaster.getId(),pMaster.getDescription()));
                }
      }
   }
return sProvMasterSelectItemList ;
}

我希望能够随时读取当前记录,特别是它是主块,并且一条记录可用.

I expect to be able to read the current record at any time, specially that it is the master block, and one record is available.

推荐答案

这看起来像是应用程序模块配置错误的经典问题.

This look like a classic issue of misconfigured Application Module.

原因::您的应用程序模块正在超时,并在正式的adfc-config超时值之前释放它的事务.

Cause : Your application module is timing out and releasing it's transaction before the official adfc-config timeout value.

要修复: 转到包含此VO的应用程序模块>配置>编辑默认设置> 修改空闲实例超时,使其与adf会话超时相同(也需要花费时间来验证其他配置)

To Fix : Go to the application module containing this VO > Configuration > Edit the default > Modify Idle Instance Timeout to be the same as your adf session timeout (Take time to validate the other configuration aswell)

这篇关于.getcurrentrow(DCIteratorBinding)一小时后返回null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆