Эта проблема может иметь дело с очень специфическим Domino версией (см ниже), так что я начинаю с некоторыми техническими деталями:XPages попадающий из бокового кэша сервера
Сервера в вопросе виртуализированной Windows 2008 R2 64bit машина. Domino релиз
IBM Domino (г) сервера (64 бит) (Release 9.0.1FP4 HF70 для Windows/64)
Патч последней безопасности виртуальной машины Java (9.0.1.4 от 20150724) установлен ,
Я могу ошибаться, но я чувствую, что проблема началась после того, как мы установили последние патчи (FP4 HF70 и JVM):
Об одном XPage У меня есть очень простая кнопка типа «Обновить» просто вызывая частичное обновление на xp:panel
(id="pnMainContainer"
), окружающее большую часть моей страницы. Среди других компонентов есть панель с вкладками внутри pnMainContainer
. После загрузки страницы открывается первая из трех вкладок.
Предполагая, что у меня есть третья вкладка открыта, обычно, если я нажму кнопку «Обновить», вкладка № 3 останется открытой, и ее содержимое будет обновлено, как ожидалось.
Иногда, однако, после того, как я оставил страницу открытой на несколько минут (не могу сказать, как долго, может быть, где-то около получаса), обновление, очевидно, возвращается в исходное состояние, показывая первую вкладку вместо тот, который был открыт раньше, и опустошающий все редактируемые поля, которые были заполнены раньше.
Когда это произойдет, я вижу следующее предупреждение появляется на консоли:
HTTP JVM: ВНИМАНИЕ: CLFAD #### W: данные состояния не доступен для/ , потому что Моей страницы никакого контроля дерево не было найдено в кэш.
Я знаю этот поста здесь: Xpages document changing document mode?, и хотя я не использую Xagents в моем приложении я попытался установить мою страницу viewState
свойства nostate
. Это, по-видимому, не помогло решить проблему.
Еще одна деталь, которая может быть полезна, заключается в том, что на рассматриваемой странице используется управляемый интерфейс, связанный с viewScope.
Любые идеи, что может быть причиной этого, и - более того - как изменить это поведение?
Update 2015-09-10: следующие @ предложения Павла ниже я установить тайм-аута сеанса моего приложения 120 минут прошлой ночью (xsp.session.timeout=120
). Сегодня утром я снова попробовал: загрузил страницу, о которой идет речь, и пусть она сидит там около. 45 минут. По прошествии этого времени нажмите кнопку частичного обновления. Результат: страница перезагружается в исходное состояние, а на консоли сервера отображается то же предупреждение, что и вчера.
Для полной полноты здесь используется весь компонент xsp моего приложения.как сейчас:
xsp.error.page.default=true
xsp.library.depends=com.ibm.xsp.extlib.library
xsp.resources.aggregate=true
xsp.theme=oneuiv3.0.2
xsp.session.timeout=120
xsp.application.timeout=120
xsp.persistence.mode=basic
Возможно, есть что-то такое, что может вызвать такое поведение?
Some more details:
сделал еще несколько тестов и обнаружил следующие детали:
- с указанными выше xsp.properties кэширования выглядит стабильной долгое время, пока я позволяю страницы просто сидеть там
- как только я сделаю какие-либо корректировки на моей странице или в связанных кодах (SSJS libs, управляемые компоненты или сама страница), кеш должен быть перестроен по мере потери состояния моей страницы (даже через несколько секунд). Неважно, независимо от того, включена ли функция «Build automatically» в Designer или нет.
- Пробовал постоянство страницы настройки с
xsp.persistence.mode=basic
доxsp.persistence.mode=file
. Это приводит к «java.io.NotSerializableException», как только я открываю вкладку №3, которая использует внутренние свойства управляемой панели, которая зарегистрирована на уровне viewScope - Построено очень простое приложение на том же сервере, несколько частичных кнопок refesh: результат заключается в том, что состояние страницы никогда не теряется для страниц из этого тестового приложения.
Пока кеш теряется только при обновлении дизайна, мне все равно. Но я боюсь, что это может обостриться, если многие пользователи начинают получать доступ к страницам.
Что-нибудь еще, что я мог бы сделать для повышения производительности?
«viewState =" nostate "в основном menans ...": Я действительно не ожидал, что это поможет, но я думал, что, по крайней мере, попытаюсь ... - Вы, должно быть, правильно, потому что он «упал», как если бы произошел тайм-аут; - в отношении «Тайм-аута сеанса Xpages»: вы r IGHT. мы уже пробовали «keepSessionAlive», но безрезультатно; Но где бы я установил это значение? Это в xsp.properties >> timeout section >> session timeout? –
Вы можете установить его там для указания на уровне приложения или на сервере для всех приложений на этом сервере. (На уровне сервера у вас также может быть файл xsp.properties, хотя я не могу вспомнить, не проверив, где он хранится) –
no prob, я думаю, я знаю, где это ... еще я найду его. Большое спасибо (как всегда) –