home *** CD-ROM | disk | FTP | other *** search
- BulkJoin and BulkSplit - background information
- -----------------------------------------------
-
- Read this to find out what BulkJoin and BulkSplit are for.
-
-
- Up/downloading to/from mainframe
- --------------------------------
-
- I frequently use my Archimedes to edit IBM mainframe-based files. To
- do this I first:
-
- (a) Download the files from the mainframe to a PC (at work)
- (b) Archive them (using the PKZIP utility on the PC) to reduce
- space requirements
- (c) Transfer the archive to my Archimedes (at home) via floppy
- disc
- (d) Extract the files from the archive using SparkFS
-
- and then after editing, I:
-
- (a) Re-archive the files using SparkFS
- (b) Transfer the archive back to the PC
- (c) De-archive the files (using the PKUNZIP utility on the PC)
- (d) Upload the files to the mainframe.
-
- This process seems cumbersome, but it does allow me to work on
- the files at home in peace and quiet, and I end up getting at
- least three times as much done!
-
- I now regularly do this with quite large numbers of files
- (sometimes up to a thousand). Of course, I didn't start off
- uploading and downloading so many at once, but the number grew as
- the mainframe application I was developing got bigger and bigger.
- Unfortunately, as the number of files grew, the process also got
- progressively slower. There seemed to be three main reasons for
- this:
-
- (1) Adding files to a SparkFS archive becomes very slow when
- there are a large number of files already in the archive
- (2) Adding files to a DOS directory likewise becomes very slow
- when there are a large number of files already in the
- directory
- (3) Uploading and downloading a large number of small files is
- slow because of the "start-up" overhead for each file.
-
- I wrote "BulkJoin" and "BulkSplit", plus some simple mainframe
- utilities, to alleviate some of these problems. The idea was to
- combine all files of the same type into a single file, so that
- the processes described above would now look like:
-
- (a) Combine all files of same type into single file on mainframe
- (b) Download single file to PC
- (c) Archive file (using PKZIP) to reduce space requirements
- (d) Transfer file to Archimedes via floppy disc
- (e) De-archive file on Archimedes using SparkFS
- (f) Split file into individual files using "BulkSplit"
-
- and in reverse:
-
- (a) Combine individual files into single file using "BulkJoin"
- on the Archimedes
- (b) Archive single file using SparkFS
- (c) Transfer archive to PC via floppy disc
- (d) De-archive single file using PKUNZIP
- (e) Upload single file to mainframe
- (f) Split file into individual files on mainframe
-
- Although each process now has two additional steps, they are also
- very much quicker. Quoting figures for "performance" improvements
- is nearly always misleading, but I did find times of half-an-
- hour or more reduced to just a few minutes. As an added bonus, I
- also found that the archives were smaller -- it must be more
- effective to compact large files than small ones.
-
- I still have a problem with the fact that RISC OS ADFS
- directories can only accommodate seventy-seven files. In the
- past, I have used work-arounds which include:
-
- (a) Storing the files in an archive, which has no such
- limitation, but does incur a performance penalty
- (b) Using a specialised version of "BulkSplit" which splits up
- the files into multiple directories, using the file name to
- decide which subdirectory should receive the file.
-
- I found the latter work-around preferable, largely because it
- imposes some organisation on such a large number of files. I
- intend to implement this in a more general way in a later version
- of "BulkSplit". "BulkJoin" can already combine files from
- multiple subdirectories.
-
- Note: During the uploading/downloading process, the data gets
- translated from ASCII (the character code used on the ARC and PC) to
- EBCDIC (the character code used on the IBM mainframe). This is
- performed automatically by the upload/download software. Because the
- file created by BulkJoin consist only of text (no binary data), it
- survives this translation quite satisfactorily.
-
-
- Other uses
- ----------
-
- I have also found occasions when I want to edit a lot of files
- together -- usually when I want to make a number of global
- changes to all the files. In this case, I use BulkJoin to create
- a single file, make the global changes to that file, and then use
- BulkSplit to recreate the individual files again (of course, it
- also helps to have a lot of RAM).
-
- The files
- ---------
-
- The directory "BulkText" contains:
-
- !!ReadMe - this file
- !BulkJoin - Archimedes application to combine individual
- files
- !BulkSplit - Archimedes application to recreate individual
- files
- SMPLS/ZIP - ZIP archive with example mainframe utilities
- (packaged as archive to preserved DOS file
- extensions)
-
- Both !BulkJoin and !BulkSplit run under the Acorn DDE
- environment, and you need the FrontEnd and TaskWindow modules
- that come with the DDE (TaskWindow also comes with RISC OS3 and
- both have appeared on a RISC USER magazine disk - July 92 Vol 5
- No 7).
-
- You will of course require mainframe utilities that are specific
- to your mainframe environment. "Sample" contains sample EXECs for
- use with the IBM VM CMS environment, plus a "BulkSplt" written in
- C that should be portable to many environments.
-
- Paul Witheridge - July 1993
-