Службы Java перестают работать, когда пользователь выходит из системы

Некоторые предпосылки:

У меня есть четыре приложения, которые запускаются как службы на компьютере под управлением Windows XP, два из которых – Java-приложения. Все четыре приложения первоначально предназначались для запуска с сервера Linux, и к ним подключались три компьютера под управлением Windows XP, но требования клиентов означали перенос этих приложений на Windows, чтобы все можно было запускать с одной машины.

Проблема:

Поскольку мы не хотели радикально изменить что-либо в нашем коде, чтобы запускать приложения в качестве сервисов, мы использовали instsrv.exe и srvany.exe для установки и запуска приложений. Это отлично подходит для двух приложений c ++, и по большей части приложения Java работают нормально. Однако, когда пользователь выходит из системы, приложения Java останавливаются. Фактические службы все еще запущены, потому что java.exe (или javaw.exe , не имеет значения, который) все еще работает, но он больше не запускает приложение. Что касается менеджера служб, все работает нормально, и поэтому он не перезапускает службу, как должен. Обратите внимание, что основной пользователь использует ограниченную учетную запись и, следовательно, не может перезапустить службы вручную.

Материал, который мы рассмотрели / попробовали:

srvany.exe. Был выбран в первую очередь потому, что он бесплатный (как в пиве) для использования и относительно легко настраивается. Мы также рассмотрели srvstart.exe , но я считаю, что это srvstart.exe ту же проблему. Есть две посвященные оболочки Java-сервиса, которые мы изучали, но были исключены из рассмотрения из-за условий лицензирования и / или сложности их настройки. Обратите внимание, что YAJSW не рассматривался первоначально и, если позволяет время, может быть протестирован.

Проблема, похоже, не существует в Windows 7, но поскольку нашему клиенту требуется Windows XP, это не вариант.

Я также попытался разрешить взаимодействие с рабочим столом для двух java-приложений, но это не решает проблему при использовании javaw.exe и показывает окно командной строки при использовании java.exe , что крайне нежелательно, даже если оно действительно разрешает проблема. До сих пор наша мера пресечения заключалась в том, чтобы сообщить клиенту не выходить из учетной записи, а использовать только пользователя коммутатора.

Есть ли что-то еще, что мне не хватает или нужно попробовать? Это также чувствительно к времени, поскольку, как только эти устройства выходят за дверь, может быть очень сложно реализовать исправление на месте.

One Solution collect form web for “Службы Java перестают работать, когда пользователь выходит из системы”

Вам нужно добавить флаг -Xrs в вашу командную строку java.exe, чтобы исключить JVM при выходе из машины XP. Проблема не возникает в Windows 7 (или Vista / Server 2008), поскольку «Изоляция сеанса 0» запрещает пользователям входить в систему (и, таким образом, отключается) Session 0, место, где выполняются службы.

Однако будьте осторожны – если ваше приложение java ловит события выключения, они могут не срабатывать, как ожидалось, когда вы используете флаг -Xrs. Это проблема для вас?

  • Как играть в MP3-файлы на вход микрофона
  • Программа для анализа времени запуска
  • Можно ли определить, какая версия Windows XP поставляется с лицензионным ключом?
  • Управление объемами различных программ
  • Нет устройств воспроизведения в Windows XP
  • Изменить левую ссылку в диалоговом окне «Сохранить как» для DropBox?
  • Можете ли вы сопоставить ключ продукта Windows XP с выпуском пакета обновления?
  • 4 ГБ установленного Ram-XP говорит 3,23 ГБ
  • Где в реестре хранит Windows, с какой программой открывается определенные типы файлов?
  • Беспроводная сеть перестает работать в XP до повторного подключения
  • (Ы) Невосприимчивость в Google Chrome
  • Как отключить функцию «непрочитанных сообщений» на экране входа Windows XP?
  • Interesting Posts

    У кого лучшая производительность Две жесткие диски объемом 2 ГБ или один 4 ГБ ОЗУ?

    Должен ли я всегда использовать параллельный stream, когда это возможно?

    Обновить данные в fragmentе ViewPager

    Удаление элемента из массива (Java)

    Конкретный браузер для определенных ссылок

    OneNote – экспортировать все разделы в блокнот в Word? Или другой метод для такого же результата

    Настройка локальной сети удаленного доступа за несколькими маршрутизаторами?

    Есть ли команда DOS (cmd.exe из Win7) для извлечения флэш-накопителя?

    Как просмотреть расширения Explorer и отключить их?

    Назначение пользовательских расширений для выделения синтаксиса языка в Notepad ++

    Как resize изображения C #

    Ошибка: соответствие целевой команды обработки « » не допускается

    Использование ffmpeg для копирования метаданных из одного файла в другой

    Альтернатива PuTTY Connection Manager?

    Создатель транскрипции ИЛИ Речь в текст

    Давайте будем гением компьютера.