Как установить «MaxPermSize» для Atlassian Fisheye/Crucible, запущенных как служба на Win2k3?

Как установить «MaxPermSize» для Atlassian Fisheye/Crucible, запущенных как служба на Win2k3?

Я пытаюсь настроить Atlassian Fisheye/Crucible как сервис на Win 2K3 R2 уже две недели. Я постоянно получаю различные ошибки "java.lang.OutOfMemoryError: PermGen space", которые приводят к сбою Fisheye и заставляют меня перезапускать сервис.

Я следил запримерна сайте поддержки Atlassian для настройки MaxPermSize в оболочке сервиса. Однако, когда я проверяю SysInfo на страницах Fisheye Admin и в журнале отладки, я не вижу никаких подтверждений. Информация о Java Heap есть в обоих местах, поэтому я ожидаю, что настройка MaxPermSize будет отображаться в обоих местах.

Ошибка сохраняется, а служба поддержки Atlassian не оказала никакой помощи.

Я буду признателен за любую помощь.

решение1

Вы можете установить это в вашем файле Wrapper.conf. Вот мой файл конфигурации, и он отлично работает для меня, я использую его с Fisheye 2.6.3, работающим на Windows Server 2008 R2. Этот файл в основном идентичен образцу/конфигурации по умолчанию, с несколькими важными дополнениями, которые я прокомментирую в конце.

#**********************************************************************
# Свойства оболочки
#**********************************************************************
# Рабочий каталог
обертка.рабочая.дир=../../

# Java-приложение
wrapper.java.command=C:\Program Files\Java\jdk1.6.0_25\bin\java.exe

# Основной класс Java. Этот класс должен реализовывать интерфейс WrapperListener
# или гарантировать, что класс WrapperManager инициализирован. Helper
# классов предоставлены для этого. Смотрите раздел Интеграция
# документации для получения подробной информации.
wrapper.java.mainclass=com.cenqua.fisheye.FisheyeServiceWrapper

# Java Classpath (включая wrapper.jar) Добавьте элементы пути к классам как
# необходимо начинать с 1 (добавьте lib ПЕРВЫМ, чтобы конфигурация log4j загружалась первой)
wrapper.java.classpath.1=./fisheyeboot.jar
wrapper.java.classpath.2=wrapper/lib/*.jar

# Путь к библиотеке Java (расположение Wrapper.DLL или libwrapper.so)
wrapper.java.library.path.1=wrapper/lib
wrapper.java.library.path.2=lib/native/linux-i386
wrapper.java.library.path.3=lib/native/osx-ppc
wrapper.java.library.path.4=lib/native/solaris-sparc
wrapper.java.library.path.5=lib/native/win32-x86


# Дополнительные параметры Java
wrapper.java.additional.1=-сервер
wrapper.java.additional.2=-showversion
wrapper.java.additional.3=-Djava.awt.headless=true

# JDK 1.5 Дополнительные параметры для jmx
wrapper.java.additional.4=-Dcom.sun.management.jmxremote
wrapper.java.additional.5=-Dcom.sun.management.jmxremote.port=4242
wrapper.java.additional.6=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.7=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.8=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.9=-Dcom.sun.management.jmxremote.password.file=./wrapper/jmxremote.password
wrapper.java.additional.10=-Dwrapper.mbean.name="wrapper:type=Управление оберткой службы Java"
wrapper.java.additional.11=-Dfisheye.inst="C:\Atlassian\fecru-2.6.3\bin\.."
wrapper.java.additional.12=-XX:MaxPermSize=256m
обертка.java.additional.13=-Xrs
wrapper.java.additional.14=-Dfile.encoding=UTF-8


# Начальный размер кучи Java (в МБ)
обертка.java.initmemory=64

# Максимальный размер кучи Java (в МБ)
обертка.java.maxmemory=1024

# Параметры приложения. Добавляйте параметры по мере необходимости, начиная с 1
# Первый параметр приложения — это имя класса, основной
# метод должен быть вызван при запуске приложения. Класс
# за именем следует количество параметров, которые будут переданы его основному
# метод. Затем идут фактические параметры.

wrapper.app.parameter.1=com.cenqua.fisheye.FishEyeCtl
параметр.приложения.обертки.2=1
wrapper.app.parameter.3=start

# За параметрами запуска следует имя класса, основной
# метод должен быть вызван для остановки приложения. Имя класса остановки
# сопровождается флагом, который контролирует, должен ли Wrapper
# дождаться завершения всех потоков, не являющихся демонами, перед выходом из JVM.
# За флагом следует количество параметров, которые необходимо передать
# останавливаем основной метод класса. Наконец, идут фактические параметры.
wrapper.app.parameter.4=com.cenqua.fisheye.FishEyeCtl
обертка.приложения.параметр.5=истина
параметр.приложения.обертки.6=1
wrapper.app.parameter.7=стоп

#**********************************************************************
# Свойства ведения журнала оболочки
#**********************************************************************
# Формат вывода для консоли. (Форматы см. в документации)
обертка.консоль.формат=M

# Уровень журнала для вывода на консоль. (Уровни журнала см. в документации)
wrapper.console.loglevel=ИНФОРМАЦИЯ

# Файл журнала, используемый для регистрации выходных данных оболочки.
файл_журнала_обертки=var/log/wrapper.log

# Формат вывода для файла журнала. (Форматы см. в документации)
wrapper.logfile.format=LPTM

# Уровень журнала для вывода файла журнала. (Уровни журнала см. в документации)
wrapper.logfile.loglevel=ИНФОРМАЦИЯ

# Максимальный размер, до которого может вырасти файл журнала, прежде чем
# журнал сворачивается. Размер указывается в байтах. Значение по умолчанию
# из 0, отключает прокрутку журнала. Может быть сокращено до 'k' (kb) или
# Суффикс 'm' (мб). Например: 10м = 10 мегабайт.
wrapper.logfile.maxsize=50m

# Максимальное количество свернутых файлов журнала, которое будет разрешено до старого
# файлов удалено. Значение по умолчанию 0 подразумевает отсутствие ограничений.
wrapper.logfile.maxfiles=10

# Уровень журнала для вывода журнала sys/event. (Уровни журнала см. в документации)
wrapper.syslog.loglevel=НЕТ

#**********************************************************************
# Свойства оболочки Windows
#**********************************************************************
# Название для использования при запуске в качестве консоли
wrapper.console.title=Рыбий глаз

#**********************************************************************
# Свойства службы оболочки Windows NT/2000/XP
#**********************************************************************
# ВНИМАНИЕ! Не изменяйте ни одно из этих свойств, когда приложение
# использование этого файла конфигурации было установлено как служба.
# Пожалуйста, удалите службу перед изменением этого раздела.
# затем службу можно переустановить.

# Название услуги
wrapper.ntservice.name=Рыбий глаз

# Отображаемое имя сервиса
wrapper.ntservice.displayname=Рыбий глаз

# Описание услуги
wrapper.ntservice.description=Рыбий глаз

# Зависимости сервиса. Добавляйте зависимости по мере необходимости, начиная с 1
wrapper.ntservice.dependency.1=

# Режим, в котором установлена ​​служба. AUTO_START или DEMAND_START
wrapper.ntservice.starttype=AUTO_START

# Разрешить службе взаимодействовать с рабочим столом.
wrapper.ntservice.interactive=false

Примечательные строки

wrapper.java.command=C:\Program Files\Java\jdk1.6.0_25\bin\java.exe

Полный путь к исполняемому файлу сервера JDK 'hotspot'. Обратите внимание, что нужно загрузить полный JDK, а не только JRE.

wrapper.java.additional.11=-Dfisheye.inst="C:\Atlassian\fecru-2.6.3\bin.."
wrapper.java.additional.12=-XX:MaxPermSize=256m
wrapper.java.additional.13=-Xrs
wrapper.java.additional.14=-Dfile.encoding=UTF-8

Ничего из вышеперечисленного не показано в документации Atlassian, я добавил их со временем методом проб и ошибок. Когда FeCru впервые запускается под оболочкой сервиса, он может остановиться с ошибкой нехватки памяти, строка 'MaxPermSize' исправляет это.

Я также обнаружил, что необходимо указать FISHEYE_INST, как показано выше. Я понятия не имею, почему путь указан с /..на конце, в примере, который я нашел, было так. Какой-то ритуал куки-линукса, без сомнения. Другие строки, я не могу вспомнить, для чего они были, но я добавил их по какой-то причине и не задокументировал, почему. Никто не идеален ;-)

обертка.java.initmemory=64 обертка.java.maxmemory=1024

Выделение памяти кучи увеличилось по сравнению со значениями по умолчанию — я индексирую несколько довольно объемных репозиториев и могу позволить себе дополнительные ресурсы — вам, возможно, подойдут меньшие выделения по умолчанию.

Связанный контент