Показать сообщение отдельно
Старый 09.05.2018, 02:51   #1  
alicedr is offline
alicedr
Участник
 
173 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
post invoice Batch - multithread
CU13, 3 batch servers
Есть батч, который постит инвойсы/разносит накладные.
Во время разноски накладной происходит отправка неких данных и отправляться они могут только один раз. Если во время отправки, или после, возникают ошибки, накладная не разносится, хотя данные уже отправлены. При повторной отправке данных возникает ошибка и накладная не разносится.

Было замечено, что для некоторых накладных отправка происходит несколько раз.
Для отладки был добавлен вывод в infolog ключевых параметров отправляемых данных в виде "транзакция № была отправлена, накл №, сумма ххх, текущее время хх.хх.хх" + эту же информацию вместе со стек трейсом стали записывать в отдельную таблицу с помощью отдельного соединения.

Анализ логов батчей показал, что накладные разделялись на потоки по номерам, в порядке возрастания, как и положено. Данные о транзакции в инфологе видно только в логе одного потока под номером соотв. накладной.
Но в новой таблице логов видно, что транзакции отправлялись несколько раз, иногда до 8 раз!.Попытки найти в логе батча данные об остальных транзакциях с нужным временем не увенчались успехом.

Итого:
- в логе батча видно только одну транзакцию (назовем ее легальной)
- отправка нелегальных транзакций происходит от того же имени, что и батч
- нелегальные транзакции происходят в период выполнения батча
- другие батчи в это время не выполнялись
- стек трейс для всех транзакций одинаковый, то есть запускается одно и то же.

Вопрос следующий: почему запускается отправка нелегальных транзакций и как отловить их лог?