interesting theory to try, someone on my team changed it to cover it to stream, and put it back into the message before this answer. the Physician memory usage went down, the virtual memory usage went up. However, the error seemed more at the Routing than the DTL. It may have something to do with Locking and trying to send to multiple locations in a single send.

With the way that we built our namespaces, I had to create a smaller namespace that included all of our nuances that we do like... BPL making JDBC MS SQL Stored Procedure calls, making internal cache calls, making linked table/store procedure calls.

Larger namespaces will cause the comparison run to take longer to run.

So, my mini namespace is used to test new versions of HealthShare Health Connect.

Nice comparison, also you have to take in account the processing speed as well. I found using Embedded SQL through a SQL Outbound Adapter can slow processing significantly down as it has to build the SQL in the connection to get results. I have a high-volume Business Process that required us to build a Stored Procedure on MS SQL instead of the Embedded SQL so that the SQL Server has the query already built.

Within our DTC...

<assign value='source.GetFieldStreamRaw(.tStream,"ORCgrp(1).OBRgrp(1).OBXgrp(1).OBX:ObservationValue(1).AlternateText",.tRemainder)' property='tSC' action='set' />
<assign value='##class(osuwmc.Utils.Functions).DecodeBase64HL7ToFileFaxing(tStream,source.{MSH:SendingApplication.NamespaceID},source.{PID:PatientIdentifierList(1).IDNumber}_context.TextIDTemp_".PDF")' property='a' action='set' />
ObjectScript
ObjectScript

With some help from the Developer community, below is a Function I wrote for our needs to take a Base64 and write it out to a PDF.

ClassMethod DecodeBase64HL7ToFileFaxing(base64 As %Stream.GlobalBinary, Ancillary As %String, FileName As %String) As %String
{
	set ArchDir = <directory>
	set ArchAncDir = ArchDir_Ancillary_"/"
	set FaxDateDir = ArchAncDir_$PIECE($ZDATE($HOROLOG,7)," ",1)_"-"_$PIECE($ZDATE($HOROLOG,7)," ",2)_"-1/"

	if '##class(%Library.File).DirectoryExists(ArchDir)
	{
		do ##class(%Library.File).CreateDirectory(ArchDir)
	}
	if '##class(%Library.File).DirectoryExists(ArchAncDir)
	{
		do ##class(%Library.File).CreateDirectory(ArchAncDir)
	}
	if '##class(%Library.File).DirectoryExists(FaxDateDir)
	{
 		do ##class(%Library.File).CreateDirectory(FaxDateDir)
 	}
	set Oref = ##class(%Stream.FileBinary).%New()

	$$$LOGINFO(FaxDateDir_FileName)

	set Oref.Filename = FaxDateDir_FileName

	Do base64.Rewind()
	While 'base64.AtEnd {
		set ln = base64.ReadLine()
		set lnDecoded = $system.Encryption.Base64Decode(ln)
		do Oref.Write(lnDecoded)
	}
	Do Oref.%Save()
	do ##class(%File).SetAttributes(Oref,33261,.return)
	set Oref = "" // Close file
	set PDFFilePath = "/Fax/PDFFiles/"_Ancillary_"/"_$PIECE($ZDATE($HOROLOG,7)," ",1)_"-"_$PIECE($ZDATE($HOROLOG,7)," ",2)_"-1/"_FileName
	return PDFFilePath
}
ObjectScript
ObjectScript
ClassMethod GroupIDExists(pHL7Msg As EnsLib.HL7.Message, pSegment As %String, pField As %String, pLookupTable As %String) As %Boolean
{
            #dim tSeg as EnsLib.HL7.Segment
            
            set tSegCount = pHL7Msg.SegCountGet()
            set i = 1
            Set tFound = 0
            //get new values
            set tval=""
            while ((i <= tSegCount) && (tval="")) {
                         
                        set tSeg = pHL7Msg.GetSegmentAt(i)
                        if (tSeg.Name = pSegment) {
                                    set tID = tSeg.GetValueAt(pField)
                                    set tval= ..Lookup(pLookupTable, tID)
                                                            
                        }
                        set i = i + 1 
            }
            if (tval '= "")
            {
                        Q 1 
            }
            quit 0
}
ObjectScript
ObjectScript

An example....