Приложение на основе EJB JPA выбрасывает NPE ровно через 1 час 10 минут - PullRequest
0 голосов
/ 24 сентября 2019

После мониторинга поведения ADF с использованием EJB JPA мы заметили, что каждые 1 час и 10 минут обновляется ровно итератор, что вызывает исключение нулевого указателя в функции getcurrentrow (DCIteratorBinding).но как мы можем избежать обновления итератора (ps: мы попробовали тайм-аут сеанса).

если я использую эту функцию из sessionbean, она будет отлично работать с таблицей и формой в моем представлении JSFF

    /** <code>select o from Person o</code> */
    @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
    public List<Person> getPersonFindAll() {
        return em.createNamedQuery("Person.findAll", 
    Person.class).getResultList();
    }    /** <code>select o from Person o</code> */
    @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
    public List<Person> getPersonFindAll() {
        return em.createNamedQuery("Person.findAll", 
    Person.class).getResultList();
    }

, но если я использую эту функцию без таблицы в моем представлении JSFF, она вызовет ее снова через 1 час 10 минут, что приведет к потере измененной и несохраненной работы, которую пользователь сделал

            public Person getPersonById() {
                Person person = new Person();
                ADFContext adfCtx = ADFContext.getCurrent();
                Map pageFlowScope = adfCtx.getPageFlowScope();
                Object idObj = pageFlowScope.get("id");
                System.out.println(" getPersonById !!!!!!!!!!!!!!!! id = "+idObj);
                String id  = (String) idObj;
                    person = em.find(Person.class, id);
                return person;
            }

1 Ответ

0 голосов
/ 24 сентября 2019

Это похоже на классическую проблему неправильно настроенного прикладного модуля.

Причина : Ваш прикладной модуль истекает и завершает свою транзакцию до официального значения тайм-аута adfc-config.

Исправить : Перейти к модулю приложения, содержащему этот VO> Конфигурация> Изменить значение по умолчанию> Изменить время ожидания простоя , чтобы оно совпадало с временем ожидания сеанса ADF (Найдите время, чтобыпроверьте другую конфигурацию, а также)

...