Interesting. So if you run multiple parallel batch jobs, they fail with an error about the macro catalog being locked/inaccessible? I suppose it's possible that macro catalogs are locked by a single session. If you did store the macro code, I wouldn't think that would be locked.
Troy Hughes has a book and a bunch of papers about this sort of automated parallel processing, so I wouldn't give up too soon. e.g.:
http://support.sas.com/resources/papers/proceedings17/0870-2017.pdf
In theory you wouldn't need to save code permanently on the server, so you could avoid maintaining code in two places. When your parent program starts, it could copy the .sas source code for the shared macros to a temporary shared location on the server, then spawn child sessions which can read the macro definitions from the shared location, then at the end the parent program could delete all the files from the shared location. You might even be able to use the WORK library of the parent session as the location for storing shared code. The parent would just need to tell the child sessions the path to look in.
Those are just ideas. I haven't played with this sort of roll-your-own parallelism myself.
... View more