• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

NotesSession и внешний сервис (на tomcat)

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Всем привет.
Есть сервис на tomcat.
Сервис обращается в Lotus через Notes.jar.
Соответственно сессии, базы, виды и т.д. Все эти объекты статические с целью, чтоб не плодить лишние объекты и сессии.
Какое-то время все работает нормально, но через 2-3 часа сессия обрывается (что собственно логично ) и при обращении к любому объекту получаю ошибку
NotesException: Object no longer exists on server
Все логично. Увеличивать время жизни сессии на сервере не вариант.
Есть мысль пересоздать сессию при обрыве, но вот как поймать этот момент - не пойму
вот такой вариант не работает. Объект вроде как и null, но проверку не проходит
Java:
public class LotusConnection {
        private static Session session = null;

        //..............................
        if( LotusConnection.session == null ) {
            // code
        }
        //..............................
}
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 958
610
BIT
291
Все эти объекты статические с целью, чтоб не плодить лишние объекты и сессии.
такой метод работы с доминой чреват проблемами
и второй момент - зачем вовсе делать все через натив? (в части задач вполне подойдет DAS)
Не добавляет устойчивости
Улетевшая сессия инвадидирует все объекты от неё и как следствие - все статики накроются (их придется пересоздавать), т.о. "плодить объекты" - правильный путь
 
  • Нравится
Реакции: alexas1

swyatogor

Green Team
24.02.2014
593
24
BIT
0
Код:
import lotus.domino.NotesException;
try {
//тут код для использования сессии
} catch (NotesException e) {
// если e.id = нет сессии - то както это дело обработать.. 
            System.out.println(e.id + " | " + e.text);
            e.printStackTrace();
        }
или так не прокатывает?)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!