AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.04.2020, 17:15   #1  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
D365FO отправка email сбивает batch
D365FO, установлен модуль SKS TAS (на него и грешу ибо до последнего апдейта все было хорошо).

Раз в неделю пользователь запускает batch на рассылку писем клиентам. Если в это время кто то отправляет подтверждение Payment Journal батч рассылающий письма перестает работать и его надо перезапускать.

Просмотрел код, все смотриться нормально. MS говорит что это не на их стороне проблема, SKS говорит то же самое ))

Подскажиет какие могут быть причины подобного сбоя. Любые идеи приветствуются

Код:
System.Net.Mail.SmtpException: Failure sending mail. ---> 
System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> 
System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host at 
System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) --- End of inner exception stack trace --- at 
System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) at 
System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count) at 
System.Net.Security._SslStream.StartFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at 
System.Net.Security._SslStream.StartFrameHeader(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at 
System.Net.Security._SslStream.StartReading(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at 
System.Net.Security._SslStream.ProcessRead(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at 
System.Net.TlsStream.Read(Byte[] buffer, Int32 offset, Int32 size) at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size) at 
System.Net.Mail.SmtpPooledStream.Dispose(Boolean disposing) at System.IO.Stream.Close() at 
System.Net.ConnectionPool.Destroy(PooledStream pooledStream) at 
System.Net.ConnectionPool.PutConnection(PooledStream pooledStream, Object owningObject, Int32 creationTimeout, Boolean canReuse) at 
System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint) at System.Net.Mail.SmtpClient.GetConnection() at 
System.Net.Mail.SmtpClient.Send(MailMessage message) --- End of inner exception stack trace --- at 
System.Net.Mail.SmtpClient.Send(MailMessage message) at 
Dynamics.AX.Application.SysMailerSMTP.`sendNonInteractive(MailMessage _message) in xppSource://Source/ApplicationFoundation\AxClass_SysMailerSMTP.xpp:line 76 at 
Dynamics.AX.Application.SysMailerSMTP.sendNonInteractive(MailMessage _message) at 
Dynamics.AX.Application.SysMailerFactory.`sendNonInteractive(MailMessage _message) in xppSource://Source/ApplicationFoundation\AxClass_SysMailerFactory.xpp:line 146 at 
Dynamics.AX.Application.SysMailerFactory.sendNonInteractive(MailMessage _message) at 
Dynamics.AX.Application.SKS_EFT_SendMail.sendMail(SKS_EFT_Module _eftModule, NoYes _advEmail, Boolean @_advEmail_IsDefaultSet) in xppSource://Source/TAS\AxClass_SKS_EFT_SendMail.xpp:line 1847 at 
Dynamics.AX.Application.SKS_EFT_SendMail.sendMail(SKS_EFT_Module _eftModule, NoYes _advEmail) at 
Dynamics.AX.Application.SKS_EFT_SendMail.`process_EFT_eMail(String _fileNbr, SKS_EFT_Module _module, SKS_EFT_EmailSendType _emailType, String _emailAddr, String _account, NoYes _advEmail, Boolean @_emailType_IsDefaultSet, Boolean @_emailAddr_IsDefaultSet, Boolean @_account_IsDefaultSet, Boolean @_advEmail_IsDefaultSet) in xppSource://Source/TAS\AxClass_SKS_EFT_SendMail.xpp:line 1334 at 
Dynamics.AX.Application.SKS_EFT_SendMail.process_EFT_eMail(String _fileNbr, SKS_EFT_Module _module, SKS_EFT_EmailSendType _emailType, String _emailAddr, String _account, NoYes _advEmail, Boolean @_emailType_IsDefaultSet, Boolean @_emailAddr_IsDefaultSet, Boolean @_account_IsDefaultSet, Boolean @_advEmail_IsDefaultSet) at 
Dynamics.AX.Application.SKS_EFT_SendMail.process_EFT_eMail(String _fileNbr, SKS_EFT_Module _module, SKS_EFT_EmailSendType _emailType, String _emailAddr, String _account, NoYes _advEmail) at 
Dynamics.AX.Application.SKS_EFTAP_CreateSendFileBatch.`run() in xppSource://Source/TAS\AxClass_SKS_EFTAP_CreateSendFileBatch.xpp:line 244 at 
Dynamics.AX.Application.SKS_EFTAP_CreateSendFileBatch.run() at 
Dynamics.AX.Application.BatchRun.runJobStaticCodeFromBuffer(Batch buffer) in xppSource://Source/ApplicationPlatform\AxClass_BatchRun.xpp:line 872 at 
Dynamics.AX.Application.BatchRun.runJobStaticFromBuffer(Batch buffer) in xppSource://Source/ApplicationPlatform\AxClass_BatchRun.xpp:line 796 at 
Microsoft.Dynamics.AX.Batch.Batch.ExecuteOneBatchJobTask(BatchTaskInfoWrapper taskInfo)
Старый 02.04.2020, 10:49   #2  
mikki_messer is offline
mikki_messer
Участник
 
91 / 20 (1) +++
Регистрация: 20.04.2010
Адрес: Ростов-на-Дону
Цитата:
Сообщение от syl Посмотреть сообщение
D365FO, установлен модуль SKS TAS (на него и грешу ибо до последнего апдейта все было хорошо).

Раз в неделю пользователь запускает batch на рассылку писем клиентам. Если в это время кто то отправляет подтверждение Payment Journal батч рассылающий письма перестает работать и его надо перезапускать.

Просмотрел код, все смотриться нормально. MS говорит что это не на их стороне проблема, SKS говорит то же самое ))

Подскажиет какие могут быть причины подобного сбоя. Любые идеи приветствуются

Код:
System.Net.Mail.SmtpException: Failure sending mail. ---> 
System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> 
System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host at 
System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) --- End of inner exception stack trace --- at 
System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) at 
System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count) at 
System.Net.Security._SslStream.StartFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at 
System.Net.Security._SslStream.StartFrameHeader(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at 
System.Net.Security._SslStream.StartReading(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at 
System.Net.Security._SslStream.ProcessRead(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at 
System.Net.TlsStream.Read(Byte[] buffer, Int32 offset, Int32 size) at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size) at 
System.Net.Mail.SmtpPooledStream.Dispose(Boolean disposing) at System.IO.Stream.Close() at 
System.Net.ConnectionPool.Destroy(PooledStream pooledStream) at 
System.Net.ConnectionPool.PutConnection(PooledStream pooledStream, Object owningObject, Int32 creationTimeout, Boolean canReuse) at 
System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint) at System.Net.Mail.SmtpClient.GetConnection() at 
System.Net.Mail.SmtpClient.Send(MailMessage message) --- End of inner exception stack trace --- at 
System.Net.Mail.SmtpClient.Send(MailMessage message) at 
Dynamics.AX.Application.SysMailerSMTP.`sendNonInteractive(MailMessage _message) in xppSource://Source/ApplicationFoundation\AxClass_SysMailerSMTP.xpp:line 76 at 
Dynamics.AX.Application.SysMailerSMTP.sendNonInteractive(MailMessage _message) at 
Dynamics.AX.Application.SysMailerFactory.`sendNonInteractive(MailMessage _message) in xppSource://Source/ApplicationFoundation\AxClass_SysMailerFactory.xpp:line 146 at 
Dynamics.AX.Application.SysMailerFactory.sendNonInteractive(MailMessage _message) at 
Dynamics.AX.Application.SKS_EFT_SendMail.sendMail(SKS_EFT_Module _eftModule, NoYes _advEmail, Boolean @_advEmail_IsDefaultSet) in xppSource://Source/TAS\AxClass_SKS_EFT_SendMail.xpp:line 1847 at 
Dynamics.AX.Application.SKS_EFT_SendMail.sendMail(SKS_EFT_Module _eftModule, NoYes _advEmail) at 
Dynamics.AX.Application.SKS_EFT_SendMail.`process_EFT_eMail(String _fileNbr, SKS_EFT_Module _module, SKS_EFT_EmailSendType _emailType, String _emailAddr, String _account, NoYes _advEmail, Boolean @_emailType_IsDefaultSet, Boolean @_emailAddr_IsDefaultSet, Boolean @_account_IsDefaultSet, Boolean @_advEmail_IsDefaultSet) in xppSource://Source/TAS\AxClass_SKS_EFT_SendMail.xpp:line 1334 at 
Dynamics.AX.Application.SKS_EFT_SendMail.process_EFT_eMail(String _fileNbr, SKS_EFT_Module _module, SKS_EFT_EmailSendType _emailType, String _emailAddr, String _account, NoYes _advEmail, Boolean @_emailType_IsDefaultSet, Boolean @_emailAddr_IsDefaultSet, Boolean @_account_IsDefaultSet, Boolean @_advEmail_IsDefaultSet) at 
Dynamics.AX.Application.SKS_EFT_SendMail.process_EFT_eMail(String _fileNbr, SKS_EFT_Module _module, SKS_EFT_EmailSendType _emailType, String _emailAddr, String _account, NoYes _advEmail) at 
Dynamics.AX.Application.SKS_EFTAP_CreateSendFileBatch.`run() in xppSource://Source/TAS\AxClass_SKS_EFTAP_CreateSendFileBatch.xpp:line 244 at 
Dynamics.AX.Application.SKS_EFTAP_CreateSendFileBatch.run() at 
Dynamics.AX.Application.BatchRun.runJobStaticCodeFromBuffer(Batch buffer) in xppSource://Source/ApplicationPlatform\AxClass_BatchRun.xpp:line 872 at 
Dynamics.AX.Application.BatchRun.runJobStaticFromBuffer(Batch buffer) in xppSource://Source/ApplicationPlatform\AxClass_BatchRun.xpp:line 796 at 
Microsoft.Dynamics.AX.Batch.Batch.ExecuteOneBatchJobTask(BatchTaskInfoWrapper taskInfo)
А есть возможность посмотреть логи почтового сервера, фраза "An existing connection was forcibly closed by the remote host." меня смущает. Возможно, что-то там изменилось, что удалённый хост принудительно закрывает соединение?
Старый 02.04.2020, 13:24   #3  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
Цитата:
Сообщение от mikki_messer Посмотреть сообщение
А есть возможность посмотреть логи почтового сервера, фраза "An existing connection was forcibly closed by the remote host." меня смущает. Возможно, что-то там изменилось, что удалённый хост принудительно закрывает соединение?
Пока нету. Но в ближайшее время попробую воспроизвести ошибку и посмотреть логи
Старый 02.04.2020, 13:44   #4  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Возможно сервер ожидает TLS большей версии. Если это так, то надо добавить что-то типа

X++:
Net.ServicePointManager::set_SecurityProtocol (Net.SecurityProtocolType::Tls12)
Я не знаю, чей почтовый сервер но у нас была такая ошибка когда серверы настроили так, чтобы они не принималим TLS 1.1.

У вас колстеке есть System.Net.TlsStream.Read
За это сообщение автора поблагодарили: trud (2).
Старый 03.04.2020, 23:47   #5  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
Ну суть в том что сообщения отправляются нормально. Проблема возникает если отправка идет одновременно с нескольких источников.

Настройки TLS отсекали бы в любом случае...
Старый 04.04.2020, 00:22   #6  
axm2017 is offline
axm2017
Участник
 
1,747 / 292 (13) ++++++
Регистрация: 15.05.2017
Т. е. по сути проблема лишь при паралельной обработке?
Старый 04.04.2020, 01:33   #7  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
Именно так. Как я и писал, типовая ситуация:
Батч рассылает письма, кто то из сотрудников отправляет подтверждение Payment Journal и в этот момент батч валится с ошибками mail сервера
Старый 04.04.2020, 09:30   #8  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Смотрите логи SMTP на предмет throttling. У Office 365 SMTP например лимиты такие что пользоваться им для пакетных рассылок практически невозможно
__________________
-ТСЯ или -ТЬСЯ ?

Последний раз редактировалось Vadik; 05.04.2020 в 08:43.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
kurthatlevik: Batch Jobs; Take control of the executions Blog bot DAX Blogs 0 20.01.2020 20:13
D365FO: Отправка eMail из кода IvanS DAX: Программирование 12 06.09.2018 16:34
d365technext: Batch Multi threading D365FO AX7 Blog bot DAX Blogs 0 31.07.2018 23:16
stoneridgesoftware: Email Alerts on Power BI Dashboards with Microsoft Flow – Better Together Blog bot DAX Blogs 0 19.01.2017 20:11
axaptapedia: Batch processing Blog bot DAX Blogs 0 29.01.2009 17:05
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:06.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.