java.lang.RuntimeException: wXb6Vnl31u :: Ошибка для HTML= 001 003 004 005 006 007 008 009
010

Общее описание таблиц MongoDB

011 012

MyBPM создаёт в MongoDB несколько баз данных:

013 014
    015
  1. 016

    mybpm - содержит коллекции, в которых хранится 017 структурная информация. Данных для бизнеса тут нет, за некоторыми 018 исключениями.

    019
  2. 020 021
  3. 022

    mybpm_boi - здесь хранятся инстанции 023 бизнес-объектов (последние значения полей и мета-информация). В 024 этой БД есть коллекции, которые начинаются на boi_ а 025 дальше идёт идентификатор бизнес-объекта, который находиться в 026 коллекции mybpm.Bo.

    027
  4. 028 029
  5. 030

    mybpm_aux - тут хранятся всякие временные 031 данные.

    032
  6. 033 034
  7. 035

    mybpm_chat - здесь хранятся сообщения 036 чатов.

    037
  8. 038 039
  9. 040

    mybpm_event - тут находиться история изменений 041 инстанций бизнес-объектов подготовленная для отображении на 042 клиенте.

    043
  10. 044 045
  11. 046

    mybpm_process - здесь находятся данные о 047 состоянии бизнес-процессов. Какие шаги пройдены, а какие ещё 048 нет.

    049
  12. 050 051
  13. 052

    mybpm_sessions - здесь хранятся сессии 053 пользователей, и ключи защиты сессий.

    054
  14. 055 056
  15. 057

    mybpm_files - здесь хранятся файлы системы.

    058
  16. 059
060 061

Коллекции в базе данных mybpm

062 063 064 065 066 067 068 069 070 071 072 073 074 076 077 078 079 080 081 082 083 084 086 088 089 090 091 092 093 094 095 096 098 099 100 101 102 103 104 105 106 107 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 125 127 128 129 130 131 132 133 134 135 136 138 139 140 141 142 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 160 161 162 163 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183
КоллекцияОписание
BoХранит структуру бизнес-объектов. Так же здесь храниться 075 структура полей БО
BoGroupГруппы бизнес-объектов
BoiInMigrationRefСвязи инстанций БО с внешними идентификаторами БО при входящей 087 миграции из PostgreSQL
BoProcessСтруктура процессов (квадратики и стрелочки между ними)
BoProcessVersionsВерсии структур процессов по каждому БО процесса
BracketFilterФильтры для меню слева
BracketPersonFilterФильтры
CompanyDtoКомпания (аккаунт)
DepartmentДепартаменты
LiquidMongoUpdateDtoОдноразовые задачи, и признак их применения (аналог liquibase 126 но для MongoDB)
MainMenuDtoМеню слева
PersonПользователи в систему. Через них происходит аутентификация и 137 авторизация
PersonGroupLinkСвязи многие-ко-многим между пользователями и рабочими 143 группами
PersonSearchИнформация о поиске пользователей
ReportGroupГруппы отчётов
ScriptModuleМодули скриптов (их структура - блоки и выражения связанные 159 между собой)
SignatureNcaValidationПодписи
SystemSettingsСистемные настройки
TokenТокены пользователей для АПИ (API_TOKEN)
TouchedBoiИнстанции БО, которые подверглись воздействию
184 185

Коллекции в базе данных mybpm_aux

186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 241 242 243 244 245 246 247 248 249 250 252 253 254 255 256 257 258 259 260 261 262 263 264 265 267 270 271 272 273 274 276 277 278 279 280 282 283 284 285 286 288 289 290 291 293 294 295 296
КоллекцияОписание
AdminInvitationПодтверждение email для администраторов
BoiDraftЧерновик изменения инстанций БО при ручном редактировании
BoImportErrorОшибки импорта данные через xlsx
BoImportInstanceПро-импортированные, но ещё не применённые, инстанции БО
CertificateСертификаты для подписей
EmailVerifyInvitationПодтверждения email для обычных пользователей
GoProcessОчередь на исполнение (Go) процесса
GoProcessErrorОшибки исполнения процессов
GoProcessGroupedСгруппированная по идентификатору инстанции БО очередь на 240 исполнение процессов
LockTaskКоллекция для осуществления блокировки задач
MobileVerifyСообщения для различных подтверждений пользователя через смс 251 или почту по сгенерированному коду
PersonInvitationРегистрационное приглашение пользователя
PersonPasswordСписок паролей пользователя
ReportCoViewStructСтруктура вьюшки для ЦО. Её нужно отслеживать чтобы можно было 268 менять без ошибок со стороны PostgreSQL - он позволяет добавлять 269 поля в конец, но удалять и менять местами поля вьюшки нельзя.
ScriptModuleJar_1Место где хранятся откомпилированные модули, которые являются 275 jar-файлами
UndoLogСсылочная информация о журнала действий пользователя для 281 Ctrl+Z
UndoLogPageЖурнал запоминания действий пользователя при редактировании 287 скриптов разбитый по страницам
UserNotificationRowОповещение пользователям
297 298

Коллекции в базе данных mybpm_boi

299 300

В этой БД лежат коллекции, которые начинаются на 301 boi_. Дальше идёт идентификатор БО. В этих коллекциях 302 лежат данные по инстанциям БО - это основная база данных, где 303 хранятся данные инстанций БО.

304 305

Коллекции в базе данных mybpm_process

306 307

Здесь хранятся данные по исполнению процессов. А именно шаги 308 исполнения. Какой процесс на каком месте исполняется.

309 310

В этой БД лежат коллекции, которые начинаются на 311 bo_process_. Дальше идёт идентификатор из таблицы 312 mybpm.BoProcess.

313 314

Коллекции в базе данных mybpm_files

315 316

Здесь используется механизм хранения файлов, которые подготовили 317 разработчики MongoDB. Называется она GridFS. Про неё можно 318 прочитать здесь: https://www.mongodb.com/docs/manual/core/gridfs/

320 321

Коллекции в базе данных 322 mybpm_sessions

323 324

Здесь хранится информация о сессиях работы пользователей в 325 системы.

326 327

В коллекции cryptoKeys хранятся ключи шифрования идентификаторов 328 сессии, которые нужны для того, чтобы нельзя было подсунуть 329 инородный идентификатор сессии. Эту коллекцию можно зачистить, и 330 тогда пользователи все вылетят из текущего сеанса работы. Система 331 автоматически создаст новые ключи шифрования. Пользователям нужно 332 будет ещё раз пройти процесс входа в систему.

333 334

В таблице sessionStorage хранится информация по сеансам работы 335 пользователе. Эту таблицу можно удалить, и тогда пользователям 336 придётся опять пройти процесс входа в систему.

337 338

Коллекции в базе данных mybpm_chat

339 340 341 342 343 344 345 346 347 348 349 350 351 353 354 355 356 357 360 361 362
КоллекцияОписание
ChatMessagePageСообщения чата в соответствующей комнате, разбитые по 352 страницам, для возможности точечного доступа
ChatRoomКомнаты чатов. Обычно чаты парные (два собеседника в одном 358 чате). Но есть возможность использовать многопользовательские 359 чаты
363 364

Коллекции в базе данных mybpm_event

365 366

BoiEventKafkaIdDto - данная коллекция содержит те 367 идентификаторы сообщений из кафки, которые были обработаны. Это 368 нужно, чтобы одно изменение не было учтено дважды. Кафка не 369 гарантирует одиночную обработку сообщений - иногда она может быть 370 обработана дважды.

371 372

boi_current_(boiId) - данные коллекции начинаются 373 на boi_current_ и заканчиваются идентификатором БО. В 374 этой коллекции скапливаются старые и новые значения полей. Это 375 нужно чтобы достоверно сгенерировать событие изменения поля со 376 старым\ и новым значением.

377 378

event_(boiId) - данные коллекции начинаются на 379 event_ и заканчиваются идентификатором БО. В этой 380 коллекции хранятся изменения по инстанции БО. Они разбиты на 381 страницы, чтобы можно было их загружать на клиента в режиме доступа 382 по одному идентификатору. В коллекции boi_current_... 383 храниться идентификатор первой страницы. А в первой странице, кроме 384 списка изменений, храниться ещё идентификатор следующей страницы. И 385 так можно загружать историю изменений вниз сколько нужно.

386 387

Отображение коллекций в Dto-классы

388 389

В системе для каждой коллекции существует Dto-класс, через 390 который происходит работа с этой коллекцией. Общая логика 391 ассоциации коллекции с Dto-классом осуществляется так:

392 393

Берётся имя коллекции, например Person. Дальше к ней добавляется 394 окончание Dto и получаем PersonDto и это значит, что существует 395 класс PersonDto, через который происходит работа с коллекцией из 396 Java. В этом классе описаны все поля и их предназначения.

397 398

Ассоциация эта происходит в классе MongoAccess.

399
400 401 at kz.greetgo.md_reader.util.MdUtil.xmlTextToDoc(MdUtil.java:80) at kz.greetgo.md_reader.core.MdConverter.prepareHtmlFileFrom(MdConverter.java:136) at kz.greetgo.md_reader.core.MdConverter.convert(MdConverter.java:208) at kz.greetgo.md_reader.controller.RenderController.downloadToc(RenderController.java:360) at kz.greetgo.md_reader.controller.RenderController.request(RenderController.java:108) at jdk.internal.reflect.GeneratedMethodAccessor7.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at kz.greetgo.md_reader.interceptors.TextReplaceFilter.doFilter(TextReplaceFilter.java:36) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: java.io.IOException: Server returned HTTP response code: 429 for URL: http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:2000) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:677) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1397) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1333) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.startPE(XMLDTDScannerImpl.java:732) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.skipSeparator(XMLDTDScannerImpl.java:2101) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDecls(XMLDTDScannerImpl.java:2064) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDTDExternalSubset(XMLDTDScannerImpl.java:299) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1165) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1040) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:943) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825) at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247) at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342) at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122) at kz.greetgo.md_reader.util.MdUtil.xmlTextToDoc(MdUtil.java:71) ... 48 more