John
Just to mention that, although IEBCOPY will indeed not read from a concatenated DD, it can still use multiple input DD's by:
COPY OUTDD=OUT, X
INDD=(DD1,DD2,DD3,........)
IEBCOPY will look for the selected member(s) in the ddnames spacified in the INDD= parameter in the specified order and, once it finds the member in one of them, it will not continue searching. This might fulfill your needs, as far as you don't need dozens of input files.
About BSTXCOPY, what happens to it is that it is just a re-packaging of processor utility BSTCOPY together with a stub that performs endevor initialization so that the utility can run. For this reason, it needs C1DEFLTS and all the endevor stuff, including security, although it is certainly not going to use much of it.
You could setup a dedicated C1DEFLTS module to be used only by BSTXCOPY. This C1DEFLTS would only need to define a dummy environment and catalog dataset. No ACM files, no ESI, no exits, NO ALTERNATE ID (extremely important) and so on. This C1DEFLTS would allow any user to run BSTXCOPY to process whatever datasets he could access (as the table does not have alternate ID).
Regards - Eduard