Застревание сообщений (Microsoft.Samples.BizTalk.Adapter.Common) - PullRequest
1 голос
/ 26 января 2012

Мы используем библиотеку Microsoft.Samples.BizTalk.Adapter.Common для нашего настраиваемого адаптера приема SMTP.Кажется, все хорошо, кроме одной ситуации.Сообщение застревает, если оно превышает приблизительно 5 МБ и содержит более двух вложений.Наш адаптер работает на isoletadHost.В окне запроса мы видим, что сообщение остается в активном состоянии.Во время нашего исследования мы обнаружили, что он застрял в методе batch.Wait ().Любые другие сообщения обрабатываются хорошо.Мы работаем с Biztalk 2006 Standart.Может ли кто-нибудь предоставить нам какое-либо предложение?

SyncReceiveSubmitBatch batch = new SyncReceiveSubmitBatch(transportProxy, terminator, 1);
                Int32 count = 0;
                foreach (IBaseMessage msg in messages)
                {
                    try
                    {
                        batch.SubmitMessage(msg, null);
                        count++;
                    }
                    catch (Exception ex)
                    {
                        try
                        {
                            msg.SetErrorInfo(ex);
                            batch.MoveToSuspendQ(msg);
                            ThreadContext.Properties["EventID"] = 1007;
                            logger.Error("Submit Error", ex);
                        }
                        catch (Exception ex2)
                        {
                            ThreadContext.Properties["EventID"] = 1008;
                            logger.Error("Suspend Error", ex2);
                        }
                    }
                }
                if (count != 0)
                {
                    batch.Done();
                    if (batch.Wait())
                    {
                        ThreadContext.Properties["EventID"] = 1009;
                        logger.Debug("Messages publised");
                    }
                    else
                    {
                        ThreadContext.Properties["EventID"] = 1010;
                        logger.Warn(String.Format("Publish  error. Sucssefully publised {1}, error in {0} messages", batch.FailedMessages.Count, count - batch.FailedMessages.Count));
                    }
                }
                else
                {
                    ThreadContext.Properties["EventID"] = 1011;
                    logger.Warn("No message found");
                }

1 Ответ

1 голос
/ 06 марта 2012

Это исправление: http://support.microsoft.com/kb/928078 помогло решить проблему.Спасибо всем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...