26.06.2017
Эффективная Навигация М2М
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум (скрипты, вопросы...) » M2M-CityBus, ST Passenger » Cкрипты для CityBus » Скрипт решения проблемы Arithmetic overflow error (повеселило)
Скрипт решения проблемы Arithmetic overflow error
logoffДата: Среда, 04.12.2013, 20:36 | Сообщение # 1
Тамбов
Группа: Администраторы
Сообщений: 645
Репутация: 17
Статус: Offline
CityBus. Только что выдал.
Если в логах вашей программы (transferclient в моем случае) отображается что-то типа показанного ниже - это значит что у вас в программе кончился диапазон для присвоения записям в таблице новых ID - и они достигли максимально допустимого значения для типа int
Будет критично для сильно толстых баз данных с большим кол-вом ТС и доооолгим периодом ведения БД с нуля (последнее как раз более критично).

Цитата
04/12/2013 16:25:48.819 (I) Main: Begin session with server
04/12/2013 16:25:48.819 (I) Main: Send login
04/12/2013 16:25:48.819 (I) Main: Send positions request
04/12/2013 16:25:48.819 (I) Main: 203 navigations transfered
04/12/2013 16:25:48.819 (I) Main: All positions received from server
04/12/2013 16:25:49.021 (I) Main: Some data where transfered
04/12/2013 16:25:49.021 (I) Main: Disconnecting from server
04/12/2013 16:25:49.021 (I) Main: Move coord (e)
04/12/2013 16:25:49.021 (I) Main: Starting saving thread
04/12/2013 16:25:49.037 (E) Main: Can't add a record to recordset for coords saving
04/12/2013 16:25:49.037 (E) Main: Err: Arithmetic overflow error converting IDENTITY to data type int.
Arithmetic overflow occurred.

, NativeErr: State:22003,Native:8115,Origin:[Microsoft][ODBC SQL Server Driver][SQL Server]
State:01000,Native:3606,Origin:[Microsoft][ODBC SQL Server Driver][SQL Server]

04/12/2013 16:25:49.037 (I) Main: INSERT INTO SYS_DEV_DirtyData ([device_code],[tele_time],[server_time],[transfer_time],[lat],[long],[speed],[direction],[digit_sens_num],[valid],[analog_data],[flags],[analog_sens_num]) VALUES ('00056253',CONVERT(DATETIME,'2013-12-04 16:35:49',120),CONVERT(DATETIME,'2013-12-04 16:35:35',120),CONVERT(DATETIME,'2013-12-04 20:25:49',120),52.722691000,41.424438000,30,227,0,'1',143.699,5,NULL);
04/12/2013 16:25:49.614 (I) Sav1: 0 coords saved to DB


Лечим вот так

Кодuse bn_patp

DBCC CHECKIDENT ('sys_dev_dirtydata', reseed, -2147483646)

что выдаст вам сообщение

Цитата
Checking identity information: current identity value '2147483647', current column value '-2147483646'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.


где sys_dev_dirtydata - название таблицы, на которую ругается insert (выделено цветом)
а bn_patp - название базы данных.

Из опыта, такое же может быть и для таблицы sys_dev_archivedata
Привет CyberFleet-ту так же...
В моем случае это означает, что через таблицу "пролетело" порядка 2 миллиардов с лишним координат через "грязные данные" (sys_dev_dirtydata)... ну или в истории перемещения

PS: В жизни рааааз бываааает ваааасемнааадцать леееет smile
 
logoffДата: Пятница, 27.11.2015, 12:40 | Сообщение # 2
Тамбов
Группа: Администраторы
Сообщений: 645
Репутация: 17
Статус: Offline
решение для cyberFleet

Цитата27/11/2015 09:32:54.850 (I) Main: Starting saving thread
27/11/2015 09:32:54.864 (E) Main: Can't insert new coord
27/11/2015 09:32:54.864 (E) Main: Err: Ошибка арифметического переполнения при преобразовании IDENTITY к типу данных int.
Произошло арифметическое переполнение.
, NativeErr: State:22003,Native:8115,Origin:[Microsoft][ODBC SQL Server Driver][SQL Server]
State:01000,Native:3606,Origin:[Microsoft][ODBC SQL Server Driver][SQL Server]

27/11/2015 09:32:54.864 (I) Main: INSERT INTO SYS_DEV_DirtyData ([device_code],[tele_time],[server_time],[transfer_time],[lat],[long],[speed],[direction],[digit_sens_num],[valid],[analog_data],[flags],[analog_sens_num]) VALUES ('59925928',CONVERT(DATETIME,'2015-11-24 12:37:32',120),CONVERT(DATETIME,'2015-11-24 12:37:43',120),CONVERT(DATETIME,'2015-11-27 12:32:54',120),51.954807000,41.738826000,0,329,0,'1',0.000000,4,4);

use bn
DBCC CHECKIDENT ('sys_dev_dirtydata', reseed, 1)
 
Форум (скрипты, вопросы...) » M2M-CityBus, ST Passenger » Cкрипты для CityBus » Скрипт решения проблемы Arithmetic overflow error (повеселило)
Страница 1 из 11
Поиск:

LogOff © 2017
Сайт создан в системе uCoz Рейтинг GPS Клуба. GPS навигаторы. GPS мониториг. GPS трекеры. ГЛОНАСС