Самоотклонение входящего акта Укртелеком.

Відповісти
PetroP
Повідомлень: 714
З нами з: 22 січня 2015, 18:50

Самоотклонение входящего акта Укртелеком.

Повідомлення PetroP » 19 вересня 2018, 11:53

Медок 11.00.014 автоматически отклонил акт Укртелекома с таким текстом:

Код: Виділити все

Документ було автоматично відхилено.
	Послідовність обміну документами порушено:
	Непередбачена ситуація, помилка: 
	FirebirdSql.Data.FirebirdClient.FbException: deadlock
	update conflicts with concurrent update
	concurrent transaction number is 743604 ---> deadlock
	update conflicts with concurrent update
	concurrent transaction number is 743604
	   --- End of inner exception stack trace ---
	   at 
	FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteNonQuery()
	   at ZvitServerDataFB.ZvDataMgr.Execute(DbConnection con, 
	String SQL, Object[] p)
	   at ZvData.DB.Execute(DbConnection con, String SQL, Object[] 
	p)
	   at 
	ZvitPublishedObjects.Server.AppendixRDManager.SetSignFile(Int64 
	idappendix, Byte[] fileBytes, Boolean cades, Boolean update)
	   at 
	ZvitShared.MailFiltering.Filters.RTFDocMailFilter.ImportAdditionalItems(Int64
	 cardCode, List`1 docCertInfo, List`1 childItems, String outid, 
	Boolean forDocument)
	   at 
	ZvitShared.MailFiltering.Filters.RTFDocMailFilter.ImportFromEDIContainer(EDIMessage
	 EDIMessage, MailHeader header, Byte[] body, Byte[] docBody, 
	IMailReceivePrt mailProto, IMailAnswTransport mailAnswTransport,
	 ExchangeMsgWay exchangeMsgWay, Int64& cardCode)
	   at 
	ZvitShared.MailFiltering.Filters.RTFDocMailFilter.ZvitShared.MailFiltering.IMailProcessor.ProcessMessage(ZMailFile
	 mf, String dataFileName, ExchangeMsgWay exchangeMsgWay, 
	MailHeader header, Byte[] body, Byte[] docBody, IMailReceivePrt 
	mailProto, IMailAnswTransport mailAnswTransport, EDIMessage 
	EDIMessage)
В чем может быть проблема?

poltava_energy
Повідомлень: 717
З нами з: 13 червня 2012, 09:38

Re: Самоотклонение входящего акта Укртелеком.

Повідомлення poltava_energy » 19 вересня 2018, 13:28

PetroP писав:
19 вересня 2018, 11:53

Код: Виділити все

FirebirdSql.Data.FirebirdClient.FbException: deadlock
update conflicts with concurrent update
concurrent transaction number is 743604 ---> deadlock
Дууужже погана помилка :? :(

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Самоотклонение входящего акта Укртелеком.

Повідомлення Белокопытов Геннадий » 19 вересня 2018, 18:00

PetroP
Уточните, пожалуйста, какой объем БД у вас сейчас?
При выполнении создания архива программы с проверкой БД есть ли ошибки в протоколе?
Если да, вышлите результат проверки

PetroP
Повідомлень: 714
З нами з: 22 січня 2015, 18:50

Re: Самоотклонение входящего акта Укртелеком.

Повідомлення PetroP » 20 вересня 2018, 08:57

Объем бд - 740 МБ.
Ошибок при создании архива с проверкой бд нет.

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Самоотклонение входящего акта Укртелеком.

Повідомлення Белокопытов Геннадий » 20 вересня 2018, 09:05

PetroP
Ошибка повторилась только один раз на определенном документе или повторяется систематически на разных?
Выполните перезапуск службы Firebird, проверьте повторяется ли deadlock на БД.

PetroP
Повідомлень: 714
З нами з: 22 січня 2015, 18:50

Re: Самоотклонение входящего акта Укртелеком.

Повідомлення PetroP » 20 вересня 2018, 11:14

Только раз. Заметил только при просмотре документов. Никаких сообщений в процессе работы не было.
Белокопытов Геннадий писав:
20 вересня 2018, 09:05
проверьте повторяется ли deadlock на БД
Как я его проверю? Я не делаю прямые запросы к базе. При работе в Медке (только в однопользовательском режиме, кстати) сообщений о блокировках нет.

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Самоотклонение входящего акта Укртелеком.

Повідомлення Белокопытов Геннадий » 20 вересня 2018, 14:48

PetroP
Имеется ввиду не на базе проверить прямыми запросами, а в процессе работы с документами (создание, отправка, подтверждение, отклонение и т.д.).
Если ошибка повториться, прикрепите полный лог программы.

PetroP
Повідомлень: 714
З нами з: 22 січня 2015, 18:50

Re: Самоотклонение входящего акта Укртелеком.

Повідомлення PetroP » 20 вересня 2018, 18:03

Понял. Но в процессе работы ошибок нет.

PetroP
Повідомлень: 714
З нами з: 22 січня 2015, 18:50

Re: Самоотклонение входящего акта Укртелеком.

Повідомлення PetroP » 21 вересня 2018, 13:56

Так что, даже никаких предположений?
Что ж это за такой алгоритм, что без какого-либо участия пользователя происходит процесс подтверждения / отклонения документа?

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Самоотклонение входящего акта Укртелеком.

Повідомлення Белокопытов Геннадий » 21 вересня 2018, 15:22

PetroP
Входящие документы могут автоматически отклонятся если реквизиты получателя отличаются от указанных в карточке предприятия (ИНН), для НН и РК, а также, если в момент импорта входящего документа в БД произошла ошибка, он также будет отклонен.
Ошибка deadlock может быть вызвана в том случае, если происходит два параллельных DML над одной записью из разных коннектов в БД.
Не подключались ли вы к БД параллельно какими-либо редакторами?
Для более детальной проверки БД на наличие ошибок необходим такой пример.
Со своей стороны мы выполнили проверку полного цикла обмена документами с контрагентами на БД Firebird, deadlock не обнаружены (как при единичном обмене так и массовом)

PetroP
Повідомлень: 714
З нами з: 22 січня 2015, 18:50

Re: Самоотклонение входящего акта Укртелеком.

Повідомлення PetroP » 21 вересня 2018, 18:14

Белокопытов Геннадий писав:
21 вересня 2018, 15:22
PetroP
... а также, если в момент импорта входящего документа в БД произошла ошибка, он также будет отклонен.
Это некорректный алгоритм. Добавьте внутренний статус для импортированного документа как "необработанный". И пока корректно не произошли все необходимые проверки (в том числе и из-за исключений), не отклоняйте.

PetroP
Повідомлень: 714
З нами з: 22 січня 2015, 18:50

Re: Самоотклонение входящего акта Укртелеком.

Повідомлення PetroP » 12 квітня 2019, 10:10

Сегодня произошло еще одно самоотклонение документа (на этот раз Киевводоканал, что, думаю, не имеет значения).
Текст | Показать
Документ було автоматично відхилено.
Послідовність обміну документами порушено:
Непередбачена ситуація, помилка:
FirebirdSql.Data.FirebirdClient.FbException (0x80004005):
deadlock
update conflicts with concurrent update
concurrent transaction number is 294667 ---> deadlock
update conflicts with concurrent update
concurrent transaction number is 294667
at
FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteNonQuery()
at ZvitServerDataFB.ZvDataMgr.Execute(DbConnection con,
String SQL, Object[] p)
at
ZvitPublishedObjects.Server.AppendixRDManager.SetSignFile(Int64
idappendix, Byte[] fileBytes, Boolean cades, Boolean update)
at
ZvitShared.MailFiltering.Filters.RTFDocMailFilter.ImportAdditionalItems(Int64
cardCode, List`1 docCertInfo, List`1 childItems, String outid,
Boolean forDocument)
at
ZvitShared.MailFiltering.Filters.RTFDocMailFilter.ImportFromEDIContainer(EDIMessage
EDIMessage, MailHeader header, Byte[] body, Byte[] docBody,
IMailReceivePrt mailProto, IMailAnswTransport mailAnswTransport,
ExchangeMsgWay exchangeMsgWay, Int64& cardCode)
at
ZvitShared.MailFiltering.Filters.RTFDocMailFilter.ZvitShared.MailFiltering.IMailProcessor.ProcessMessage(ZMailFile
mf, String dataFileName, ExchangeMsgWay exchangeMsgWay,
MailHeader header, Byte[] body, Byte[] docBody, IMailReceivePrt
mailProto, IMailAnswTransport mailAnswTransport, EDIMessage
EDIMessage)
Версия 11.01.002, локальная.
Архив с проверкой ошибок не нашел.
Размер бд: 823 МБ.
Проверка корреспонденции была запущена через api.
Лог | Показать
12.04.19 09:42:37.276 00000001 INFO Starting (x64)
12.04.19 09:43:47.703 00000019 INFO DocFlowPostamt.Receive Розпочато прийом кореспонденції для підприємства хххххххх
12.04.19 09:43:53.794 0000001B WARNING ZDocImpXml.ImportDocument Document number mismatch, cardcode = 12863
12.04.19 09:43:53.794 0000001A WARNING ZDocImpXml.ImportDocument Document number mismatch, cardcode = 12862
12.04.19 09:43:53.983 0000001B WARNING PacketImportUtl.Process Couldn't write field: FIRM_DEPT to document object
12.04.19 09:43:54.161 0000001A WARNING PacketImportUtl.Process Couldn't write field: FIRM_DEPT to document object
12.04.19 09:43:56.148 00000008 INFO Mailer.SendBlock Відправка файла: *.XML
12.04.19 09:43:57.583 00000008 WARNING ZDocImpXml.ImportDocument Document number mismatch, cardcode = 12866
12.04.19 09:43:57.897 00000008 WARNING PacketImportUtl.Process Couldn't write field: FIRM_DEPT to document object
12.04.19 09:44:11.639 00000001 INFO Mailer.SendBlock Відправка файла: *.XML
12.04.19 09:45:06.425 00000019 INFO DocFlowPostamt.Receive Розпочато прийом кореспонденції для підприємства уууууууу
12.04.19 09:45:09.078 00000014 WARNING ZDocImpXml.ImportDocument Document number mismatch, cardcode = 12867
12.04.19 09:45:09.084 00000014 WARNING PacketImportUtl.Process Couldn't write field: FIRM_DEPT to document object

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Самоотклонение входящего акта Укртелеком.

Повідомлення Белокопытов Геннадий » 13 квітня 2019, 18:16

PetroP
В момент загрузки каким то образом произошел дедлок транзакций.
Уточнит, пожалуйста, более детально как был запущен прием входящей корреспонденции с помощью api.

PetroP
Повідомлень: 714
З нами з: 22 січня 2015, 18:50

Re: Самоотклонение входящего акта Укртелеком.

Повідомлення PetroP » 15 квітня 2019, 09:46

1. Был запущен Медок командной строкой.
2. Была отправлена api инструкция получения корреспонденции:

Код: Виділити все

App.ReceiveCorrespondence()
3. Корреспонденция была получена.
4. После этого при переходе в окно Медка случайно было замечено в списке первичных документов, что один из них (всего было получено два акта от контрагентов) имеет статус отклоненного...

Medoc Man
Повідомлень: 864
З нами з: 07 червня 2018, 14:28
Звідки: Kiev

Re: Самоотклонение входящего акта Укртелеком.

Повідомлення Medoc Man » 15 квітня 2019, 10:19

PetroP писав:
15 квітня 2019, 09:46
1. Был запущен Медок командной строкой.
2. Была отправлена api инструкция получения корреспонденции:

Код: Виділити все

App.ReceiveCorrespondence()
3. Корреспонденция была получена.
4. После этого при переходе в окно Медка случайно было замечено в списке первичных документов, что один из них (всего было получено два акта от контрагентов) имеет статус отклоненного...
А параллельно с этим какой-либо пользователь мог инициировать приём почты от себя?
Человек-волшебник
Людина-чарівник
Wizard man

PetroP
Повідомлень: 714
З нами з: 22 січня 2015, 18:50

Re: Самоотклонение входящего акта Укртелеком.

Повідомлення PetroP » 15 квітня 2019, 11:38

Версия локальная. Единственный пользователь гарантированно не активировал окно Медка до получения корреспонденции, работал исключительно в другом приложении средствами api. Только после завершения получения корреспонденции (по двум организациям) и закрытии данного другого приложения, сделал окно Медка активным и начал там работать непосредственно.

Відповісти

Повернутись до “Модуль «Реєстр первинних документів»”