A couple of months back our Ops guys wanted something like that to use with MOM. So I used Stephen's model in a VBScript file. This script can be configured so that MOM can run it whenever it gets a message suspension event from BizTalk. It might need some proofing, but here it is:
On Error Resume Next
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
'Replace "DEVWS108" with comma sep list of Prod Machines eg: "Aaron1","Aaron2"
arrComputers = Array("DEVWS108")
For Each strComputer In arrComputers
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\MicrosoftBizTalkServer")
'Messages that are Resumable should be Resumed
Set colItems = objWMIService.ExecQuery("SELECT * FROM MSBTS_ServiceInstance where ServiceStatus = '4' ", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
objItem.Resume()
Next
'Messages that are Not-Resumable or Completed with Discarded(zombies)
Set colItems = objWMIService.ExecQuery("SELECT * FROM MSBTS_ServiceInstance where ServiceStatus = '16' or ServiceStatus = '32'", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
Set objWMITrackedMsg = GetObject("winmgmts:\\" & strComputer & "\root\MicrosoftBizTalkServer")
Set colResumableMsgs = objWMITrackedMsg.ExecQuery("SELECT * FROM MSBTS_MessageInstance WHERE ServiceInstanceID = '" & objItem.InstanceID & "'", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
'change "c:\" to any directory that you want problematic messages to be saved to
colResumbleMsgs.SaveToFile("c:\")
Next
Next