SAMPLES>do $system.OBJ.ExportPackage("Sample","samples.xml")

Exporting class: Sample.Address
Exporting class: Sample.Company
Exporting class: Sample.CustomResultSet
Exporting class: Sample.Customer
Exporting class: Sample.Employee
Exporting class: Sample.Installer
Exporting class: Sample.ListOfPersonIdentification
Exporting class: Sample.MyException
Exporting class: Sample.Person
Exporting class: Sample.PersonIdentification
Exporting class: Sample.ResultSets
Exporting class: Sample.Task
Exporting class: Sample.TaskExample1
Exporting class: Sample.TaskExample2
Exporting class: Sample.TaskExample3
Exporting class: Sample.USZipCode
Exporting class: Sample.Utils
Exporting class: Sample.Vendor

It is not so simple. Before decoding, you should strip any special characters, like line endings. Then you should read input stream in fixed size devisable by 4, and decode this value.

set stream1=##class(%Stream.GlobalBinary).%New()
set stream2=##class(%Stream.GlobalBinary).%New()

while 'base64.AtEnd {
    set temp=base64.Read()
    set temp=$translate(temp, $c(13,10))

    do stream1.Write(temp)
}

do stream1.Rewind()
while 'stream1.AtEnd {
    set temp=stream.Read(4000)
    set temp=$system.Encryption.Base64Decode(temp)

    do stream2.Write(temp)
}

Needs some more details.

You tagged post both ODBC and JDBC, but it is different. For ODBC as I know you can set logging in DSN settings. For JDBC, you can set it with JDBC connection URL

Then, how long this query usually takes. I see that you query just 10 rows, but anyway.

Also, you should look, at all levels logging cconsole.log and Application error logs, for any errors, at the same time.

Unfortunately, I don't know about the difference between HSBUS and HSREG, and can't say something useful about it.