Исключения нехватки памяти возникают, только если сборщик мусора не смог освободить достаточно памяти для выполнения запрошенного выделения. Это может произойти, если у вас есть утечка памяти, которая на платформе сбора мусора означает, что некоторые ссылки на объекты хранятся дольше, чем нужно. Частыми причинами утечек являются объекты, которые содержат глобальные данные (статические переменные), такие как одноэлементный файл, кэш или пул, который хранит ссылки слишком долго.
Если вы явно вызовете GC.Collect, он также не сможет освободить память по тем же причинам, что и при сбое неявного сбора. Поэтому вызов explit GC.Collect приведет только к замедлению оркестровки.
Если вы вызываете классы .Net из своих оркестровок, я предлагаю попытаться изолировать проблему, вызывая те же классы из чистого приложения .Net (BizTalk не задействован)
Также возможно, что утечки нет, но каждый экземпляр потребляет слишком много памяти одновременно. BizTalk обычно может обезвоживать оркестровки, когда сочтет это необходимым, но это может быть запрещено для этого, если выполнение шага в оркестрации (или большой атомный объем) занимает слишком много времени.
1400 МБ также выглядит большим только для 15 одновременных экземпляров. Вы делаете манипуляции с большими сообщениями в оркестровке? В этом случае вы можете значительно сократить использование памяти, избегая операций, которые заставляют все сообщение загружаться в память, и вместо этого манипулировать сообщением с использованием потоковой передачи.