go to post Anna Golitsyna · Sep 2, 2020 I think this case study proves that newer utilities are not always better so I would not bet on the latest IRIS version. I did see the Background run advice but would it cut three hours to 10 minutes? I doubt it. And if it would I'd say it's a portal implementation deficiency.
go to post Anna Golitsyna · Sep 2, 2020 Everybody, thanks for your help and advice but the old-timer's advice to go the d ^%GOF route in Cache Terminal proved to be it. It was actually amazing to see how much superior this route turned out to be comparing with the much more modern Export/Import Management Portal route. Specifically: Preparation to exclude certain globals, few dozens of them: Terminal - about 10 minutes because you can use ranges (see below and here, https://docs.intersystems.com/priordocexcerpts/prgglobalchui-41.pdf), portal - much longer because you have to uncheck each global individually Export speed: Terminal - 10 minutes, portal 3 hours (no kidding) Export/Import log per global: Terminal - log provided, complete with the number of blocks per global, portal - no log Import speed: Terminal - less than 10 minutes, portal - stuck in the middle with no error shown Sample %GOF usage in terminal, hit Enter if no special requests, exporting:d ^%GOFDevice: tmp.gof file format: ("UNW*") => Maximum media size (bytes): (No maximum)Enter a short description of the contents of this tape or fileDescription:All Globals? No => NoGlobal ^S-SZ [All globals in this range, case-sensitive - AG]Global ^'STPL* [Exclude all globals that start with STPL - AG]Real life output from my real life usage:...............^ZPG 182 data blocks written^ZTEMP 1 data block written491,337 blocks written in 10 minutes, 51 seconds--------------------Importing was done via d ^%GIF, via terminal as well. At some point the %GIF utility asked me: Globals with a preceding asterisk ('*') already exist in this directoryWhat would you like to do with these globals that exist? 1. Skip inputting globals that exist in this directory2. Merge input globals with the existing globals3. Specify skip/merge for individual globals Your choice: 1=>Thanks again,Anna
go to post Anna Golitsyna · Sep 2, 2020 No, no, no. I already edited my previous reply, it's there. Still going the %GOF way for now unless it does not work
go to post Anna Golitsyna · Sep 2, 2020 I searched for it in Studio in all files but yes, I see it your way. I'll let know here how %GOF does the job, tests seem reasonable.
go to post Anna Golitsyna · Sep 2, 2020 Apparently GBLOCKCOPY is simply not available on my Cache 2017 version since search for it in system files returns nothing. I am trying to transfer a large number of globals, not all, from one computer to another, not just between namespaces within the same database. The system does not have actively modified globals. I got an old-timer advice to use %GOF which does accept ranges both for exclusion and inclusion so will work on that for a while.
go to post Anna Golitsyna · Sep 1, 2020 Half of the globals were imported alright. Yes, I thought too it might be a failure to properly export, like an export related error. The 4GB file does contain all intended globals, I can see it in the Management Portal's Import utility. I tried to check just a couple on the list and they failed with no error.
go to post Anna Golitsyna · Sep 1, 2020 Windows 10, i.e. NTFS, if that is the question. Not Fat32. What is ECP in this context?
go to post Anna Golitsyna · Sep 1, 2020 What is WRC? It looks like the import process goes alphabetically, then stops and refuses to process any more globals. I would assume that the GOF file contains all globals alphabetically as well. I will look if the first not processed global is somehow different from previous ones.
go to post Anna Golitsyna · Sep 1, 2020 It's not a single global it's about 1500 separate globals so you approach would involve a loop as well but yes, it is different.
go to post Anna Golitsyna · Aug 19, 2020 It looks like code below would give me what I am looking for. Just need to figure out (or take an advice!) how to exclude, say, system classes outright. s rs=##class(%ResultSet).%New("%Dictionary.ClassDefinitionQuery:ClassIndex")s x=rs.Execute()f {s x=rs.Next() q:'xs TimeChanged=rs.GetDataByName("TimeChanged")s ClassName=rs.GetDataByName("ClassName")s Hash1=rs.GetDataByName("Hash1")s Hash2=rs.GetDataByName("Hash2") s System=rs.GetDataByName("System")s ClassType=rs.GetDataByName("ClassType")s Size=rs.GetDataByName("Size")}P.S. Found the answer to my last question: https://cedocs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=%25Library.RemoteResultSet
go to post Anna Golitsyna · Aug 19, 2020 Thanks, Eduard! Queries look promising. Will they compare INT's or CLS's, given it's about CompiledClass?
go to post Anna Golitsyna · Aug 19, 2020 Thanks, Dmitriy! Yes, I saw already that classes are stored differently. Our namespaces are huge and different enough though so looking through all their differences line by line is not necessarily practical. P.S. I am looking forward to your VSCode add-on progress BTW :-). Tried it some time ago already.