Ошибки в логах и у пользователей

  1. После установки система не запускается. В логах:

    2019-11-01 09:12:10,425 ERROR [com.haulmont.thesis.preview.office.JodOpenOfficeIntegration] [app-core] [server] Could not create the jod office integration: officeHome must exist and be a directory
    2019-11-01 09:12:13,553 INFO [com.hazelcast.instance.AddressPicker] [LOCAL] [dev] [3.10.4] Prefer IPv4 stack is true.
    

    Решение

    1. Проверить, корректно ли указан путь до установленного пакета OpenOffice/LibreOffice.
    2. Возможно, занят порт 5701, на котором работает Hazelcast. Необходимо переопределить порт, внеся в файл tomcat\conf\app-core\local.app.properties параметр:
    thesis.hazelcast.port={port}
    

    , где {port} - любой свободный порт.
    Если параметр отсутствует, то добавить и изменить порт.
    3. После сохранения файла настроек перезапустите систему.

  2. В логах ошибка GetAllowCardTypesEndpoint:

    java.lang.IllegalArgumentException
     
    2019-06-24 08:18:10,798 ERROR[com.haulmont.thesis.portal.reminder.ws.LoadListEntitiesEndpoint] LoadListEntitiesEndpoint:
    2019-06-24 08:18:10,830 ERROR[com.haulmont.thesis.portal.reminder.ws.GetAllowCardTypesEndpoint] GetAllowCardTypesEndpoint:
    java.lang.IllegalArgumentException:
    at com.haulmont.cuba.core.global.UuidProvider.fromString(UuidProvider.java:58)
    at com.haulmont.thesis.portal.reminder.ws.Authentication.authenticate(Authentication.java:32)...
    

    Решение

    Данная ошибка не критична для работы системы. Проблема вызвана устаревшими программами ТЕЗИС:Помощник, установленными на машинах пользователей. Как только все будут обновлены, ошибка из лога уйдет. Проблема связана с обменом запросами между новой версией системы и старым ТЕЗИС:Помощник.

  3. В логах ошибка Unable to handle NoUserSessionException:

    2019-09-24 10:29:40,111 ERROR[com.haulmont.cuba.web.exception.NoUserSessionHandler] [app] [STREAM\sherstneva] Unable to handle NoUserSessionException
    com.haulmont.cuba.security.global.NoUserSessionException: User session not found: b90c44da-896a-bd08-42ff-db6cfcb82fa2
        at com.haulmont.cuba.core.sys.ServiceInterceptor.getUserSession(ServiceInterceptor.java:85)
        at com.haulmont.cuba.core.sys.ServiceInterceptor.aroundInvoke(ServiceInterceptor.java:60)
        at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
    

    Решение

    Данная ошибка исправляется тремя настройками:

    1. В папке /tomcat/conf/app указать параметр cuba.httpSessionExpirationTimeoutSec=1800, где 1800 - значение длительности неактивной сессии.
    2. Проверить и, в случае отличия, поменять в /tomcat/webapps/app/WEB-INF/web.xml значение com.haulmont.thesis.web.sys.ThesisWebHttpFilter:
      <filter>
         <filter-name>CubaHttpFilter</filter-name>
         <filter-class>com.haulmont.thesis.web.sys.ThesisWebHttpFilter</filter-class>
         <async-supported>true</async-supported>
      </filter>
      
    3. Изменить protocol в файле /tomcat/conf/server.xml на org.apache.coyote.http11.Http11NioProtocol:
      <Connector port="8080" 
                 protocol="org.apache.coyote.http11.Http11NioProtocol"
                 connectionTimeout="20000"
                 redirectPort="8443"/>
      
  4. Ошибка при запуске системы. В логах:

    ERROR [com.haulmont.thesis.core.sys.ThesisAppContextLoader] [app-core] [server] Error initializing application
    java.lang.RuntimeException: java.sql.SQLException: Cannot create PoolableConnectionFactory (Cannot open database "tezis" requested by the login. The login failed.)
    

    Решение

    Система не может подключиться к БД. Необходимо проверить корректность параметров подключений к БД, указанных в файле: tomcat\webapps\app-core\META-INF\context.xml

  5. При работе с системой у пользователей возникает ошибка:

    java.net.SocketException: Too many open files
    at java.net.Socket.createImpl(Socket.java:460)
    at java.net.Socket.<init>(Socket.java:431)
    at java.net.Socket.<init>(Socket.java:211)
    at org.postgresql.core.PGStream.<init>(PGStream.java:62) …
    

    Решение

    1. В файл tomcat\bin\setenv.sh необходимо добавить параметр ulimit -n 30000.
    2. Для применения настройки необходимо перезапустить ТЕЗИС.

    С точки зрения ОС Apache Tomcat разрешено открывать не больше 4096 файлов. Под файлами также воспринимаются соединения, когда превышается этот лимит — появляется ошибка. Заведомо нет возможности понять количество, которое необходимо обозначить для Apache Tomcat, так как, например, в полнотекстовом поиске одновременно может использоваться достаточно большое количество файлов, при оптимизации индекса.

  6. Ошибка - Unable to save wiring: 403

    Решение

    Данная ошибка возникает при потере соединения с системой, по аналогии с отключением неактивной сессии. В настройках “Администрирование” - “Системные параметры” - “Параметры” указан период неактивности, после которого система осуществляет принудительный выход пользователя из системы. Чтобы избежать данной ошибки, следует увеличить время неактивности сессии, как мы описывали ранее в п.3.1. При возникновении ошибки внесенные изменения не сохраняются.

  7. Ошибка - OutOfMemoryError: GC overhead limit exceeded

    Решение

    Ошибка GC overhead limit exceeded возникает в случае нехватки оперативной памяти, выделенной на процесс. Рекомендуется увеличить объем памяти, выделяемой для работы Apache Tomcat. Сделать это можно следующим способом:

    1. ОС Linux:
      Открыть файл /tomcat/bin/setenv.sh. Отредактировать параметр Xmx1024m, цифра означает количество памяти, выделяемой на сервере для работы приложения.

    2. ОС Windows:
      Запустить файл tomcat\bin\tomcat8w.exe от имени администратора, на вкладке “Java” в поле Maximum memory pool указано, сколько ОЗУ выделено для работы Apache Tomcat.

      Увеличьте данную цифру настолько, насколько это возможно с учетом характеристик сервера и других приложений. При редактировании параметра необходимо учесть, что значение указывается в МБайтах.

    После изменения данного параметра в соответствующем файле, в зависимости от используемой ОС, потребуется перезапуск службы tomcat.