Обновлены все компоненты до последних версий недавно.
Есть проблема с работой koob-table-simple при работе с БД Oracle.
Конфиг дэша:
{
“frame”: {
“h”: 1,
“w”: 10,
“x”: 2,
“y”: 0
},
“onClick”: {},
“dataSource”: {
“koob”: “parusdbwrk.PARUS_UDO_MV_GOVBUYRQ_INF”,
“style”: {
“measures”: {
“NSUM”: {
“title”: “Сумма”,
“format”: “### ### ###.00”,
“fontSize”: “80%”,
“maxWidth”: 250
},
“SADMIN”: {
“title”: “Админ”,
“fontSize”: “80%”,
“maxWidth”: 150
},
“SDOC_NUM”: {
“title”: “№ заявки”,
“format”: “### ### ###.00”,
“fontSize”: “80%”,
“maxWidth”: 105
},
“SPROGRAM”: {
“title”: “Программа”,
“fontSize”: “80%”,
“maxWidth”: 150
},
“DESCRIPTION”: {
“title”: “Предмет закупки”,
“fontSize”: “80%”,
“maxWidth”: 250
},
“SDEPARTMENT_2”: {
“title”: “Подразделение”,
“fontSize”: “80%”,
“maxWidth”: 150
},
“SEVNSTAT_NAME”: {
“title”: “Статус”,
“fontSize”: “80%”,
“maxWidth”: 150
},
“SDATE_CON_PLAN”: {
“title”: “План. дата дог.”,
“fontSize”: “80%”,
“maxWidth”: 150
},
“SDATE_DELIVERY”: {
“title”: “Срок поставки”,
“fontSize”: “80%”,
“maxWidth”: 150
},
“SPURCHASE_CODE”: {
“title”: “Способ закупки”,
“fontSize”: “80%”,
“maxWidth”: 750
}
}
},
“xAxis”: “”,
“yAxis”: “measures”,
“filters”: {},
“measures”: [
“SDOC_NUM”,
“SEVNSTAT_NAME”,
“SADMIN”,
“SPROGRAM”,
“DESCRIPTION”,
“NSUM”,
“SDATE_DELIVERY”,
“SDEPARTMENT_2”,
“SDATE_CON_PLAN”,
“SPURCHASE_CODE”
],
“dimensions”:
}
}
При обновлении дэша происходит следующее.
Выполняются 2 запроса. Сначала такой:
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: 2022-07-07 08:28:42.575 20738 [reactor-http-epoll-3] DEBUG c.l.b.d.service.DatagateService :: Tenant=null Request ident=parusdbwrk; traceId=luxmsbi=U9peQN95v70=; query=SELECT ROWNUM as “koob__row__num__”, “measure_idx”, “SDOC_NUM”, “SEVNSTAT_NAME”, “SADMIN”, “SPROGRAM”, “DESCRIPTION”, “NSUM”, “SDATE_DELIVERY”, “SDEPARTMENT_2”, “SDATE_CON_PLAN”, “SPURCHASE_CODE” FROM (SELECT koob__range__ as “measure_idx”, SDOC_NUM as “SDOC_NUM”, SEVNSTAT_NAME as “SEVNSTAT_NAME”, SADMIN as “SADMIN”, SPROGRAM as “SPROGRAM”, DESCRIPTION as “DESCRIPTION”, (SUM_AGR) as “NSUM”, (TO_CHAR(DDATE_DELIVERY,‘DD.MM.YYYY’)) as “SDATE_DELIVERY”, SDEPARTMENT_2 as “SDEPARTMENT_2”, (TO_CHAR(DDATE_CON_PLAN, ‘DD.MM.YYYY’)) as “SDATE_CON_PLAN”, SPURCHASE_CODE as “SPURCHASE_CODE”
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: FROM (select PARUS.UDO_MV_GOVBUYRQ_INF.DDOC_DATE as DDOC_DATE,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.DESCRIPTION as DESCRIPTION,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.DMAKE_DATE as DMAKE_DATE,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.NDOC_YEAR as NDOC_YEAR,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.QUANT as QUANT,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SDEPARTMENT_1 as SDEPARTMENT_1,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SDEPARTMENT_2 as SDEPARTMENT_2,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SDOC_MONTH as SDOC_MONTH,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SDOC_NUM as SDOC_NUM,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SDOC_QUART as SDOC_QUART,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SEVNSTAT_CODE as SEVNSTAT_CODE,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SEVNSTAT_NAME as SEVNSTAT_NAME,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SFACT_EFFECT as SFACT_EFFECT,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SPLAN_EFFECT as SPLAN_EFFECT,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SPPLAN_FACT as SPPLAN_FACT,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SPROGRAM as SPROGRAM,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SREQUEST_TYPE as SREQUEST_TYPE,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SSTATUS_GROUP as SSTATUS_GROUP,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SSUM_TYPE as SSUM_TYPE,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SUM_AGR as SUM_AGR,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SUM_AGR_1Y as SUM_AGR_1Y,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SUM_AGR_2Y as SUM_AGR_2Y,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SUM_AGR_NEXT as SUM_AGR_NEXT,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SUM_AGR_TOTAL as SUM_AGR_TOTAL,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SADMIN as SADMIN,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.DDATE_CON_PLAN as DDATE_CON_PLAN,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.DDATE_DELIVERY as DDATE_DELIVERY,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SPURCHASE_CODE as SPURCHASE_CODE,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SPURCHASE_NAME as SPURCHASE_NAME
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: from PARUS.UDO_MV_GOVBUYRQ_INF) PARUS_UDO_MV_GOVBUYRQ_INF,(
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: select LEVEL-1 AS koob__range__ from dual
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: where LEVEL between 0+1 and 10
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: connect by LEVEL <= 10
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: )
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: ORDER BY “measure_idx”) koob__top__level__select__
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: WHERE ROWNUM <= 128; limit=0; offset=0; preserveCase=true; awareColumns=false; config=false
А потом такой и далее видимо ожидается пэджинг:
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: 2022-07-07 08:28:42.791 20738 [reactor-http-epoll-4] DEBUG c.l.b.d.service.DatagateService :: Tenant=null Request ident=parusdbwrk; traceId=luxmsbi=GIR8Im8FTg4=; query=SELECT ROWNUM as “koob__row__num__”, “SDOC_NUM”, “SEVNSTAT_NAME”, “SADMIN”, “SPROGRAM”, “DESCRIPTION”, “NSUM”, “SDATE_DELIVERY”, “SDEPARTMENT_2”, “SDATE_CON_PLAN”, “SPURCHASE_CODE” FROM (SELECT SDOC_NUM as “SDOC_NUM”, SEVNSTAT_NAME as “SEVNSTAT_NAME”, SADMIN as “SADMIN”, SPROGRAM as “SPROGRAM”, DESCRIPTION as “DESCRIPTION”, (SUM_AGR) as “NSUM”, (TO_CHAR(DDATE_DELIVERY,‘DD.MM.YYYY’)) as “SDATE_DELIVERY”, SDEPARTMENT_2 as “SDEPARTMENT_2”, (TO_CHAR(DDATE_CON_PLAN, ‘DD.MM.YYYY’)) as “SDATE_CON_PLAN”, SPURCHASE_CODE as “SPURCHASE_CODE”
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: FROM (select PARUS.UDO_MV_GOVBUYRQ_INF.DDOC_DATE as DDOC_DATE,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.DESCRIPTION as DESCRIPTION,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.DMAKE_DATE as DMAKE_DATE,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.NDOC_YEAR as NDOC_YEAR,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.QUANT as QUANT,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SDEPARTMENT_1 as SDEPARTMENT_1,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SDEPARTMENT_2 as SDEPARTMENT_2,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SDOC_MONTH as SDOC_MONTH,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SDOC_NUM as SDOC_NUM,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SDOC_QUART as SDOC_QUART,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SEVNSTAT_CODE as SEVNSTAT_CODE,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SEVNSTAT_NAME as SEVNSTAT_NAME,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SFACT_EFFECT as SFACT_EFFECT,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SPLAN_EFFECT as SPLAN_EFFECT,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SPPLAN_FACT as SPPLAN_FACT,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SPROGRAM as SPROGRAM,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SREQUEST_TYPE as SREQUEST_TYPE,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SSTATUS_GROUP as SSTATUS_GROUP,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SSUM_TYPE as SSUM_TYPE,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SUM_AGR as SUM_AGR,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SUM_AGR_1Y as SUM_AGR_1Y,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SUM_AGR_2Y as SUM_AGR_2Y,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SUM_AGR_NEXT as SUM_AGR_NEXT,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SUM_AGR_TOTAL as SUM_AGR_TOTAL,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SADMIN as SADMIN,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.DDATE_CON_PLAN as DDATE_CON_PLAN,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.DDATE_DELIVERY as DDATE_DELIVERY,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SPURCHASE_CODE as SPURCHASE_CODE,
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: PARUS.UDO_MV_GOVBUYRQ_INF.SPURCHASE_NAME as SPURCHASE_NAME
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: from PARUS.UDO_MV_GOVBUYRQ_INF) PARUS_UDO_MV_GOVBUYRQ_INF) koob__top__level__select__
Jul 07 08:28:42 demo-bi-el7.localnet luxmsbi-datagate[20738]: WHERE ROWNUM <= 100; limit=0; offset=0; preserveCase=true; awareColumns=false; config=false
Но при перемотке в самый низ, таблица “бледнеет”, видимо начинается пэйджинг, в журнале появляется запрос вида
…
Jul 07 08:39:33 demo-bi-el7.localnet luxmsbi-datagate[20738]: from PARUS.UDO_MV_GOVBUYRQ_INF) PARUS_UDO_MV_GOVBUYRQ_INF) koob__top__level__select__
Jul 07 08:39:33 demo-bi-el7.localnet luxmsbi-datagate[20738]: WHERE ROWNUM > 100 AND ROWNUM <= (100 + 100)’ args:
А дальше сразу за запросом в журнале выдаются ошибки java и таблица полностью замирает и больше никакого пэйджига не происходит. Что успели получить, то в ней и осталось.
Jul 07 08:39:33 demo-bi-el7.localnet luxmsbi-datagate[20738]: 2022-07-07 08:39:33.940 20738 [QueryPool-645 ] WARN c.zaxxer.hikari.pool.ProxyConnection :: luxmsbi=/KSKNSsYHOM= default:parusdbwrk - Connection oracle.jdbc.driver.T4CConnection@4f587ec3 marked as broken because of SQLSTATE(08006), ErrorCode(17002)
Jul 07 08:39:33 demo-bi-el7.localnet luxmsbi-datagate[20738]: java.net.SocketTimeoutException: Socket read interrupted
Jul 07 08:39:33 demo-bi-el7.localnet luxmsbi-datagate[20738]: at oracle.net.nt.TimeoutSocketChannel.read(TimeoutSocketChannel.java:152)
Jul 07 08:39:33 demo-bi-el7.localnet luxmsbi-datagate[20738]: at oracle.net.ns.NIOHeader.readHeaderBuffer(NIOHeader.java:82)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at oracle.net.ns.NIOPacket.readFromSocketChannel(NIOPacket.java:139)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at oracle.net.ns.NIOPacket.readFromSocketChannel(NIOPacket.java:101)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at oracle.net.ns.NIONSDataChannel.readDataFromSocketChannel(NIONSDataChannel.java:80)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at oracle.jdbc.driver.T4CMAREngineNIO.prepareForReading(T4CMAREngineNIO.java:98)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at oracle.jdbc.driver.T4CMAREngineNIO.unmarshalUB1(T4CMAREngineNIO.java:534)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:485)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at oracle.jdbc.driver.T4C7Ocommoncall.doOCOMMIT(T4C7Ocommoncall.java:72)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at oracle.jdbc.driver.T4CConnection.doCommit(T4CConnection.java:961)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: … 19 common frames omitted
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: Wrapped by: java.sql.SQLRecoverableException: IO Error: Socket read interrupted
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at oracle.jdbc.driver.T4CConnection.doCommit(T4CConnection.java:1013)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:1937)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:1942)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at com.zaxxer.hikari.pool.ProxyConnection.commit(ProxyConnection.java:361)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at com.zaxxer.hikari.pool.HikariProxyConnection.commit(HikariProxyConnection.java)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at com.luxms.bi.datagate.service.ReactiveQuery.disposeState(ReactiveQuery.java:204)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) [9 skipped]
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
Jul 07 08:39:34 demo-bi-el7.localnet luxmsbi-datagate[20738]: at java.base/java.lang.Thread.run(Thread.java:829)
Что ещё и где можно посмотреть в сторону исправления?