09.05.2018, 02:51 | #1 |
Участник
|
post invoice Batch - multithread
CU13, 3 batch servers
Есть батч, который постит инвойсы/разносит накладные. Во время разноски накладной происходит отправка неких данных и отправляться они могут только один раз. Если во время отправки, или после, возникают ошибки, накладная не разносится, хотя данные уже отправлены. При повторной отправке данных возникает ошибка и накладная не разносится. Было замечено, что для некоторых накладных отправка происходит несколько раз. Для отладки был добавлен вывод в infolog ключевых параметров отправляемых данных в виде "транзакция № была отправлена, накл №, сумма ххх, текущее время хх.хх.хх" + эту же информацию вместе со стек трейсом стали записывать в отдельную таблицу с помощью отдельного соединения. Анализ логов батчей показал, что накладные разделялись на потоки по номерам, в порядке возрастания, как и положено. Данные о транзакции в инфологе видно только в логе одного потока под номером соотв. накладной. Но в новой таблице логов видно, что транзакции отправлялись несколько раз, иногда до 8 раз!.Попытки найти в логе батча данные об остальных транзакциях с нужным временем не увенчались успехом. Итого: - в логе батча видно только одну транзакцию (назовем ее легальной) - отправка нелегальных транзакций происходит от того же имени, что и батч - нелегальные транзакции происходят в период выполнения батча - другие батчи в это время не выполнялись - стек трейс для всех транзакций одинаковый, то есть запускается одно и то же. Вопрос следующий: почему запускается отправка нелегальных транзакций и как отловить их лог? |
|
|
|