ManageEngine ServieDesk : wrong DueBy Date for SLA

Если в созданной заявке неверно проставляется Срок исполнения (DueBy Date), нужно проверить параметры, от которых данный показатель:
1. Admin -> Operation Hours: правильно ли задано рабочее время.
2. Admin -> Service Catalog -> кнопка Manage: правильно ли задано значение времени в SLA.

Если в предыдущих пунктах все верно, то нужно обратить внимание на версию JRE time zone, под которой работает ServiceDesk.
Может быть она устарела и требует немедленного обновления!

1. В командной строке (CMD) получим версию JRE time zone и текущего файла tzupdater.jar (если файла tzupdater.jar нет, то переходим к п.2.):

c:\ManageEngine\ServiceDesk — это директория, куда установлен ServiceDesk

CMD>
cd c:\ManageEngine\ServiceDesk\jre\bin\
java -jar tzupdater.jar -V -v

------------------------------------------
java.home: c:\ManageEngine\ServiceDesk\jre
 java.vendor: Sun Microsystems Inc.
 java.version: 1.6.0_45
 JRE time zone data version: tzdata2014e    //версия загруженная в java
 Embedded time zone data version: tzdata2014e    //версия файла tzupdater.jar
 Validating the time zone data
 Validation complete 

2. Теперь пройдем по этой ссылке http://www.oracle.com/technetwork/java/javase/tzdata-versions-138805.html к списку всхем имеющихся версий tzupdater.jar.

Например, после нашей имеющейся версии tzdata2014e уже было выпущено несколько новых, где добавлены и изменены часовые зоны
(в одном из которых, Since Belarus is not changing its clocks even though Moscow is, the time zone abbreviation in Europe/Minsk is changing from FET to its more-traditional value MSK on 2014-10-26 at 01:00).

3. Здесь можно скачать последнюю версию tzupdater.jar: http://www.oracle.com/technetwork/java/javase/downloads/index.html

4. Скачанный файл нужно скопировать в директорию c:\ManageEngine\ServiceDesk\jre\bin\. Если там уже имеется файл, то переименуйте его, например, tzupdater.jar.old.

5. В командной строке получим разницу версий JRE time zone и скаченного файла tzupdater.jar:

CMD>
cd c:\ManageEngine\ServiceDesk\jre\bin\
java -jar tzupdater.jar -t -v

-----------------------------------------------------------
java.home: c:\ManageEngine\ServiceDesk\jre
java.vendor: Sun Microsystems Inc.
java.version: 1.6.0_45
JRE time zone data version: tzdata2014e    //текущая версия загруженная в java
Embedded time zone data version: tzdata2014i    //версия файла tzupdater.jar недавно скачанного
Validating the time zone data
/data/tzdata2014i.test:4870: test failed: Asia/Kashgar
/data/tzdata2014i.test:4874: test failed: Asia/Urumqi
/data/tzdata2014i.test:5402: test failed: Pacific/Fiji
/data/tzdata2014i.test:5404: test failed: Pacific/Fiji
/data/tzdata2014i.test:5406: test failed: Pacific/Fiji
/data/tzdata2014i.test:5408: test failed: Pacific/Fiji
/data/tzdata2014i.test:5410: test failed: Pacific/Fiji
/data/tzdata2014i.test:5412: test failed: Pacific/Fiji
/data/tzdata2014i.test:5414: test failed: Pacific/Fiji
/data/tzdata2014i.test:5416: test failed: Pacific/Fiji
/data/tzdata2014i.test:5418: test failed: Pacific/Fiji
/data/tzdata2014i.test:5517: time zone not found: Pacific/Bougainville
/data/tzdata2014i.test:5518: time zone not found: Pacific/Bougainville
/data/tzdata2014i.test:5519: time zone not found: Pacific/Bougainville
/data/tzdata2014i.test:5522: test failed: Asia/Yakutsk
/data/tzdata2014i.test:5525: test failed: Europe/Kaliningrad
/data/tzdata2014i.test:5528: test failed: Europe/Volgograd
/data/tzdata2014i.test:5531: test failed: Asia/Magadan
/data/tzdata2014i.test:5532: time zone not found: Asia/Srednekolymsk
/data/tzdata2014i.test:5533: time zone not found: Asia/Srednekolymsk
/data/tzdata2014i.test:5534: time zone not found: Asia/Srednekolymsk
/data/tzdata2014i.test:5537: test failed: Asia/Khandyga
/data/tzdata2014i.test:5540: test failed: Asia/Yekaterinburg
/data/tzdata2014i.test:5543: test failed: Asia/Vladivostok
/data/tzdata2014i.test:5548: test failed: Europe/Simferopol
/data/tzdata2014i.test:5551: test failed: Asia/Ust-Nera
/data/tzdata2014i.test:5554: test failed: Asia/Omsk
/data/tzdata2014i.test:5557: test failed: Asia/Novosibirsk
/data/tzdata2014i.test:5560: test failed: Asia/Sakhalin
/data/tzdata2014i.test:5563: test failed: Asia/Krasnoyarsk
/data/tzdata2014i.test:5564: time zone not found: Asia/Chita
/data/tzdata2014i.test:5565: time zone not found: Asia/Chita
/data/tzdata2014i.test:5566: time zone not found: Asia/Chita
/data/tzdata2014i.test:5569: test failed: Asia/Irkutsk
/data/tzdata2014i.test:5572: test failed: Europe/Moscow
/data/tzdata2014i.test:5577: test failed: America/Grand_Turk
/data/tzdata2014i.test:5580: test failed: W-SU

Validation tests failed. 

6. Теперь обновим JRE Time zone:
CMD>

CMD>
cd c:\ManageEngine\ServiceDesk\jre\bin\
java -jar tzupdater.jar -u -v

----------------------------------------------------------
java.home: c:\ManageEngine\ServiceDesk\jre
java.vendor: Sun Microsystems Inc.
java.version: 1.6.0_45
JRE time zone data version: tzdata2014e
Embedded time zone data version: tzdata2014i
Extracting files... done.
Renaming directories... done.
Validating the new time zone data... done.
Time zone data update is complete. 

7. Проверим версию JRE time zone:
CMD>

</pre>
CMD>
cd c:\ManageEngine\ServiceDesk\jre\bin\
java -jar tzupdater.jar -t -v

----------------------------------------------------------
java.home: c:\ManageEngine\ServiceDesk\jre
java.vendor: Sun Microsystems Inc.
java.version: 1.6.0_45
JRE time zone data version: tzdata2014i        //версия загруженная в java
Embedded time zone data version: tzdata2014i    //версия файла tzupdater.jar
Validating the time zone data
Validation complete 

Значения JRE time zone data version и Embedded time zone data version должны быть равны!

8. Перезапустим машину, на которой установлен сервер ManageEngine SevriceDesk, чтобы все измнения вступили в силу.

9. Если после выполнения п.1-п.8 все равно проблема осталась, то откройте файл c:\ManageEngine\Servicedesk\bin\startout.log и найдите в нем значение параметра user.timezone (временная зона). Если значение не равно временной зоне, что установлена в системе (например, если user.timezone = America/Caracas, а в системе установлено Europe/Minsk), значит Java запускается с какой-то своей временной зоной по умолчанию.

10. Чтобы исправить эту ситуацию, нужно остановить службу SD, открыть файл c:\ManageEngine\Servicedesk\server\default\conf\wrapper.conf на редактирование. Найти в нем раздел # Java Additional Parameters, где перечислены параметры запуска Java, и добавить туда новый параметр (-Duser.timezone):
В моем случае в этом разделе:

# Java Additional Parameters (added new parameter #24)
wrapper.java.additional.1=-server
wrapper.java.additional.2=-Dprogram.name=run.sh
wrapper.java.additional.3=-Djboss.server.type=com.adventnet.j2ee.deployment.system.AdventNetServerImpl
wrapper.java.additional.4=-Dorg.jboss.logging.Log4jService.catchSystemOut=false
wrapper.java.additional.5=-Dorg.jboss.logging.Log4jService.catchSystemErr=false
wrapper.java.additional.6=-Djava.util.logging.manager=com.adventnet.logging.LogManager
wrapper.java.additional.7=-Djava.util.logging.config.file=../server/default/conf/logging.xml
wrapper.java.additional.8=-Djava.util.logging.config.class=com.adventnet.logging.LoggingScanner
wrapper.java.additional.9=-Dlog.dir=../server/default
wrapper.java.additional.10=-Dtier-type=BE
wrapper.java.additional.11=-Dtier-id=BE1
wrapper.java.additional.12=-Ddb.home=../pgsql
wrapper.java.additional.13=-Dproduct.home=../
wrapper.java.additional.14=-Dfile.encoding=UTF-8
wrapper.java.additional.15=-Dsdp.java.gc=false
wrapper.java.additional.16=-Dserver.dir=../
wrapper.java.additional.17=-Duser.language=en
wrapper.java.additional.18=-Duser.region=US
wrapper.java.additional.19=-XX:PermSize=64m
wrapper.java.additional.20=-XX:MaxPermSize=256m
wrapper.java.additional.21=-Djboss.shutdown.forceHalt=false
wrapper.java.additional.100=-DlogDir=../server/default/log
wrapper.java.additional.22=-Dproduct.home=../
wrapper.java.additional.23=-Dorg.tanukisoftware.wrapper.WrapperManager.mbean=false
wrapper.java.additional.24=-Duser.timezone=Europe/Minsk # добавил нужную мне timezone

11. Запустить службу SD. Попробовать создать новую заявку, Срок исполнения должен ставиться верный, исходя из выбранного SLA.