Since the message for WER416B shows as exceptions, i thought this would be an error message. we are getting this message in mainframe where as in migrated platform(Linux) we are getting duplicate records for IDCAMS load step which uses sorted file created by Previous step. So interested to know if this message mean duplicate records?

Find out what EXCP means in a Mainframe context. Don't jump to the conclusion that the whole world revolves around your jargon.

If you are getting duplicate keys (IDCAMS on Linux? You mean a Micro Focus (or someone) emulated IDCAMS?)) it means you have duplicate keys in your data. Have you looked at the data? Remember, how you have defined a key is crucial to what the computer thinks is the key. If you think something else is the key - you are wrong, and the computer is correct. Possible hint. Check whether your emulated VSAM file has the key defined in the same place, and is the same length. Further hint. 0 and 1 (and their offset cousins) could be massively more significant than you think.

If you venture into someone else's world, either assume nothing, or pay someone who knows. The Mainframe world is big on documentation of products. There's tons of "VSAM" stuff, and your Mainframe contacts should be able to provide you with MFX/SyncSORT documentation so you can even read exactly what those messages mean.

An "EXCP" is a low level macro used to start I/O. Both Syncsort and DFSORT use the EXCP macro directly since its proper use often provides for greater I/O through put than higher level I/O mechanisms such as "BSAM" or "QSAM."

As a user of and proponent of EXCP, I also know, from experience, that these improved I/O rates are often illusory; the improvements in "QSAM" and "BSAM" that date back to the Data Facility Product in the 1970s produced I/O improvements that are often nearly as good as aggressive use of EXCP. Most of the EXCP code in Syncsort and DFSORT predates DFP; in any event "nearly" is not equal or "better."

Actually, it seems to me that EXCP bought nothing here; "QSAM" and "BSAM" would work just as well for the small data set that was sorted here.

As Mr. Woodger says, these WER416B messages are not error messages; they are just Syncsort crowing about how good it is.

EXCP is not the abbreviation/whatsoever of EXCEPTION
but the acronym for EXecute Channel Program
and relates to the INPUT/OUTPUT pseudo-instructions executed

More precisely, EXCP is System/Z central processor machine instruction which initiates a specific Channel Program - the sequence of physical input/output instructions running separately on one of specific I/O processors; the name of those processors in System/Z is "I/O channel".

Some equivalent for EXCP on other platforms is: the call to a device driver routine.

EXCP count can be considered as count of real physical input/output operations. The less is EXCP count, the faster total execution time could be expected.

...
More precisely, EXCP is System/Z central processor machine instruction which initiates a specific Channel Program - the sequence of physical input/output instructions running separately on one of specific I/O processors; the name of those processors in System/Z is "I/O channel".

There are two errors here.

EXCP is actually an Assembler macro provided by IBM. It directs the system to run a "channel program," a sequence of instructions that direct the I/O hardware to perform I/O operations. Since there are no longer "channels" in the hardware, the term "channel" is a misnomer; it refers to 1960s I/O hardware. The machine instruction, which ordinary programmers cannot use, used to start an I/O operation is "Start Subchannel."

I/O is now run by a separate processor.

Quote:

Some equivalent for EXCP on other platforms is: the call to a device driver routine.

This is actually quite correct for operations in z/OS. EXCP actually starts a function that is quite similar to a device driver in other platforms. It does, in a fairly literal sense, bend, fold, staple and mutilate the "channel program" provided to the EXCP macro by the programmer. Under the covers, this I/O driver actually issues a STARTIO macro (something us ordinary programmers can't do) to run the modified I/O instructions. After the I/O completes it transforms the I/O status into an analogue of the System/360 status before us ordinary programmers get control again.

To some extent it has always worked this way. In OS/360, as well as z/OS, us ordinary programmers might write this "channel program" to read a data record from a disk.

CCW is an Assembler instruction to prepare a data area for the I/O system. The first 2 instructions search a track for the correct record, the third instruction actually reads the record. These instructions are not complete; there are no instructions to direct the disk drive to move the access mechanism to the correct place, and there are other missing pieces. OS/360 EXCP would prepare

Code:

CCW X'07',diskaddress,X'40',4
CCW X'1F',controlarea,X'40',1

and effectively insert them before our channel program. There could be more CCWs, by the way. The first CCW directs the disk drive to move the I/O mechanism to the correct place; the second CCW provides limits on what the remaining CCWs can do.