0

Background

I have a BizTalk 2013 R2 server that has several Send Port Groups configured to send EDI messages. Occasionally we need to pause one of the send ports. During this time we would like messages to be queued instead of discarded, similar to how BizTalk keeps messages that don't have any subscriptions at all.

Configuration

Here is a simplified example of one of these port groups:

EdiOutPortGroup (filter: EdiDst == CustomerId)
  |-- PartnerFtpSendPort
  |-- LocalArchiveSendPort
  |-- SomeOtherSendPort

Question

How can I temporarily stop the LocalArchiveSendPort without losing the messages that would normally be delivered there?

I would like new messages to queue up and be sent once the port is active again, but b/c there are still other active Send Ports in the group, new messages are delivered to the active ports with (seemingly) no way to resend them to LocalArchiveSendPort later.

Jens Ehrich
  • 390
  • 2
  • 7

1 Answers1

1

Stop but don't Unenlist that send port. The message will suspend with the following error message.

Service instance was suspended because the corresponding service (orchestration, sendport, ...) was in the stopped state. Instance can be resumed after corresponding service is started.

If you Resume the message, even while the Port is stopped, it will actually send. When you are ready to send message as normal, just Start the send port. This will work regardless of whether the filter is on the Send Port, Send Port Group or is bound to an Orchestration.

Dijkgraaf
  • 148
  • 6
  • I just confirmed that this works both in a send group and using individual send ports. Thank you. I swear that I tried this before and it didn't work... I must have been unenlisting the port after all. – Jens Ehrich Sep 09 '20 at 19:01