Re: Alter many volumes in TCDB
Hello, You may use CBRSPLCS program to change volume category. The CBRSPLCS source program is in SYS1.SAMPLIB with member name CBRSPLCS. You have to Assemble and Linkedit to generate load module of CBRSPLCS. If you are using DFSMSrmm, EDGSPLCS RMM utility can be used same as CBRSPLCS. Regards, Minoru Massaki - (M*M) 2019年2月20日(水) 17:37 Gadi Ben-Avi : > Hi, > I have a lot of volumes that need to be altered. > They have the wrong category assigned. > If I use the alter command in the ISMF MOUNTABLE TAPE VOLUME LIST panel, > the volume is assigned the correct category. > > How can I do this on a list of volumes? There are currently about 400 > volumes I need to change. > > Using IDCAMS ALTER does not work. > > I am using z/OS v2.2, and a TS7760 v4.1.2 > > Thanks > > Gadi > > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Mainframe operating systems?
> by one of the former IBMers that had done HASP Is the IBMer Mr. Tom Simpson? Minoru Massaki - (M*M) 2017-04-17 14:14 GMT+09:00 Anne & Lynn Wheeler : > ste...@copper.net (Steve Thompson) writes: > > And there was ASPEN (code name?) that was an "MVS" like O/S that > > Amdahl had. > > re: > http://www.garlic.com/~lynn/2017d.html#75 Mainframe operating systems? > http://www.garlic.com/~lynn/2017d.html#76 Mainframe operating systems? > http://www.garlic.com/~lynn/2017d.html#78 Mainframe operating systems? > > aka RASP redo from IBM ... by one of the former IBMers that had done > HASP (aka JRS2) > > -- > virtualization experience starting Jan1968, online at home since Mar1970 > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: How can I set Non-zero return code in DFSORT when SORTOUT record count is not zero
Kolusu-san, Thank you very much for telling me to use COUNT operator of ICETOOL. It is what I'm looking for. A customer wants to tell auto job scheduling/auto operation system to take another/additional action by Non-Zero return code if generated record is non-rezo. Why we want to use DFSORT instead of small REXX program is following; If we want to run a program written by someone on their production systems, several approval processes are required, even if the program is very small and is written by REXX. In their category, DFSORT is proved utility program and is NOT a program written by programming language, even if its SORT control cars are very complex over a very simple REXX EXEC. ;-) Again, Kolusu-san and other experts, I really appreciate your kind help. Regards, Minoru Massaki - (M*M) 2017-04-16 3:00 GMT+09:00 Sri h Kolusu : > Minoru Massaki, > > It is quite simple to set a return code using COUNT operator. Here are a > couple of ways setting the RC=4 . You can also set RC8 and RC12 too. > > //STEP0100 EXEC PGM=ICETOOL > //TOOLMSG DD SYSOUT=* > //DFSMSG DD SYSOUT=* > //IN DD * > A > //TOOLIN DD * > COUNT FROM(IN) NOTEMPTY RC4 > //* > > or > > //STEP0100 EXEC PGM=ICETOOL > //TOOLMSG DD SYSOUT=* > //DFSMSG DD SYSOUT=* > //IN DD * > //TOOLIN DD * > COUNT FROM(IN) HIGHER(0) RC4 > //* > > > Check this link which explains in about COUNT operator and check out the > examples too. > > https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1. > 0/com.ibm.zos.v2r1.icea100/ice2ca_COUNT_operator.htm > > > >>I would say, no, you cannot have DFSORT do something like this. I am > not seeing anything the DFSORT manuals from IBM to allow the user to force > DFSORT to set codes other than it is already doing. > > Lizette, > > Sorry to say that you are wrong. DFSORT does have the capability. we can > handle different scenarios. EMPTY/NOTEMPTY and "n" number of records too > > > >>Pretty trivial to write Rexx to set a return code based on file > empty/Not empty. > > DFSORT already handles these scenarios. > > > Thanks, > Kolusu > DFSORT Development > > > > From: Minoru Massaki > To: IBM-MAIN@LISTSERV.UA.EDU > Date: 04/15/2017 08:03 AM > Subject:How can I set Non-zero return code in DFSORT when SORTOUT > record count is not zero > Sent by:IBM Mainframe Discussion List > > > > Hello > > I'm looking for a way to set Non-zero return code in DFSORT, when record > count of SORTOUT is not zero. > > I know that setting non-zero return code when SORTOUT record count is > zero. > > Your help would be highly appreciated. > > -- > > 全先 実 - Minoru Massaki (M*M) > E-mail: mmass...@gmail.com > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > > > > > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: How can I set Non-zero return code in DFSORT when SORTOUT record count is not zero
This is a stand alone sort. Minoru Massaki - (M*M) 2017-04-16 0:13 GMT+09:00 Lizette Koehler : > Is this a stand alone sort, or a program invoked sort? > > Lizette > > > -Original Message- > > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On > > Behalf Of Lizette Koehler > > Sent: Saturday, April 15, 2017 8:09 AM > > To: IBM-MAIN@LISTSERV.UA.EDU > > Subject: Re: How can I set Non-zero return code in DFSORT when SORTOUT > record > > count is not zero > > > > What problem are you trying to solve by doing this? > > > > Lizette > > > > > > > -Original Message- > > > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] > > > On Behalf Of Minoru Massaki > > > Sent: Saturday, April 15, 2017 8:03 AM > > > To: IBM-MAIN@LISTSERV.UA.EDU > > > Subject: How can I set Non-zero return code in DFSORT when SORTOUT > > > record count is not zero > > > > > > Hello > > > > > > I'm looking for a way to set Non-zero return code in DFSORT, when > > > record count of SORTOUT is not zero. > > > > > > I know that setting non-zero return code when SORTOUT record count is > zero. > > > > > > Your help would be highly appreciated. > > > > > > -- > > > > > > 全先 実 - Minoru Massaki (M*M) > > > E-mail: mmass...@gmail.com > > > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: How can I set Non-zero return code in DFSORT when SORTOUT record count is not zero
There are two large tape volume list files, master and transaction files, and key is volume serial(VOLSER). No duplicate VOLSER is in the files (master as well as transaction). I have to check whether all volumes in the master is processed or not by the transaction file. If there is no transaction volumes in the master files, I have to generate control statements to process the volume. In this situation, I want to set zero-return code to indicate additional process is required. If all volumes in the master file are processed, I want to set zero return code. I already have made a DFSORT JOINKEY job to do this process. Only things I want to do is return code setting such as RC=0 (No SORTOUT Record): No need additional process RC=8,12,16 (Non-zero SORTOUT records): Need additional process Above is what I like to do in DFSORT. Regards, Minoru Massaki - (M*M) 2017-04-16 0:08 GMT+09:00 Lizette Koehler : > What problem are you trying to solve by doing this? > > Lizette > > > > -Original Message- > > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On > > Behalf Of Minoru Massaki > > Sent: Saturday, April 15, 2017 8:03 AM > > To: IBM-MAIN@LISTSERV.UA.EDU > > Subject: How can I set Non-zero return code in DFSORT when SORTOUT record > > count is not zero > > > > Hello > > > > I'm looking for a way to set Non-zero return code in DFSORT, when record > count > > of SORTOUT is not zero. > > > > I know that setting non-zero return code when SORTOUT record count is > zero. > > > > Your help would be highly appreciated. > > > > -- > > > > 全先 実 - Minoru Massaki (M*M) > > E-mail: mmass...@gmail.com > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
How can I set Non-zero return code in DFSORT when SORTOUT record count is not zero
Hello I'm looking for a way to set Non-zero return code in DFSORT, when record count of SORTOUT is not zero. I know that setting non-zero return code when SORTOUT record count is zero. Your help would be highly appreciated. -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: SORT - How can I put accumulated value on each output record
Kolusu-san, Thank you very much for providing the SORT JCL. Your SORT is more elegant and flexible than I made. What I made SORT control cards based on Woodger-san's suggestion is following. //ACCUM EXEC PGM=ICEMAN //SYSOUT DD SYSOUT=* //SORTIN DD * #001 1 10.5 #002 5 3.3 #003 121 120.4 #004 4 1.1 #004 4 1.1 #005 7000 5,000.0 /* //SORTOUT DD SYSOUT=* //SYSINDD * INREC OVERLAY=(72:SEQNUM,8,ZD) SORTFIELDS=COPY OUTFIL REMOVECC,NODETAIL, SECTIONS=(72,8, TRAILER3=(1,20,5X, SUBTOTAL=(6,5,ZD,EDIT=(I,III,IIT)),4X, SUBTOTAL=(12,9,UFF,EDIT=(III,IIT.T)), 80:X)) END /* The SORTOUT is following: #001 1 10.5 1 10.5 #002 5 3.3 6 13.8 #003 121 120.4 127134.2 #004 4 1.1 131135.3 #004 4 1.1 135136.4 #005 7000 5,000.0 7,135 5,136.4 Again, Woodger-san, Koehler-san, and Kolusu-san, I really appreciate your help. Thank you!! Minoru Massaki - (M*M) 2017-02-14 0:43 GMT+09:00 Sri h Kolusu : > Minoru Massaki, > > I assumed the following > > 1. Your Input has LRECL=80 and RECFM=FB > 2. The key in position 1 thru 4 is unique and you wanted a running total > for every record. > 3. The first summary field start at 10 for a length of 6 > 4. The second summary field starts at position 21 for a length of 10 > 5. The summary fields are at position 35 for a length of 8 and position 45 > for a length of 12. > > You can use the following JCL > > //STEP0100 EXEC PGM=SORT > //SYSOUT DD SYSOUT=* > //SORTIN DD * > +1+2+3+4+5+ > #001 1 10.5 > #002 53.3 > #003121 120.4 > //SORTOUT DD SYSOUT=* > //SYSINDD * > OPTION COPY > OUTFIL REMOVECC,NODETAIL, > SECTIONS=(1,4, > TRAILER3=(1,30, > 35:SUBTOTAL=(10,06,UFF,M10,LENGTH=8), > 45:SUBTOTAL=(21,10,UFF,EDIT=(.T > //* > > If for some reason your key(position 1 thru 4 is NOT unique) and yet you > want to have a running total for every record then you can use the > following JCL > > //STEP0100 EXEC PGM=SORT > //SYSOUT DD SYSOUT=* > //SORTIN DD * > +1+2+3+4+5+6--- > #ABC 1 10.5 > #ABC 53.3 > #ABC121 120.4 > //SORTOUT DD SYSOUT=* > //SYSINDD * > OPTION COPY > OUTREC OVERLAY=(81:SEQNUM,8,ZD) > > OUTFIL REMOVECC,NODETAIL,BUILD=(80X), > SECTIONS=(81,8, > TRAILER3=(1,30, > 35:SUBTOTAL=(10,06,UFF,M10,LENGTH=8), > 45:SUBTOTAL=(21,10,UFF,EDIT=(IIII.T > //* > > > Further if you have any questions please let me know > > Thanks, > Kolusu > DFSORT Development > IBM Corporation > > > > From: Minoru Massaki > To: IBM-MAIN@LISTSERV.UA.EDU > Date: 02/12/2017 06:31 AM > Subject:SORT - How can I put accumulated value on each output > record > Sent by:IBM Mainframe Discussion List > > > > I want to have SORTOUT data as following: > > Input Data > > #001 1 10.5 > #002 5 3.3 > #003 121 120.4 > . . . . . . . > > Output Data Set > #001 1 10.5 1 10.5 > #002 5 3.3 613.8 > #003 121 120.4 127 134.2 > . . . . . . . > > > Output forth column is accumulated value with previous records values on > 2nd column. > Output 5th column is also accumulated value with previous records values > on > 3rd column. > > Can I make this kind of output by SORT? > > I really appreciate that someone would provide sample of SORT control > statement to resolve my requirement. > > Minoru Massaki - (M*M) > > -- > > 全先 実 - Minoru Massaki (M*M) > E-mail: mmass...@gmail.com > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > > > > > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: SORT - How can I put accumulated value on each output record
Woodger-san, Thank you very much for your useful guidance. I have never thought to use SUBTOTAL function yet. I'll try to make SORT control cards to produce SORTOUT data what I want to have. Koehler-san, Thank you for pointing out documents of DFSORT trics. I have to adapt to both DFSORT and Syncsort for our customers. As far as I know, there is no differences between DFSORT and Syncsort in SORT control cards view point. If I could build the SORT control cards what I want to do, I'll post it here. I might ask again if I need some help. Thank you! Minoru Massaki - (M*M) 2017-02-13 1:44 GMT+09:00 Bill Woodger : > The Smart DFSORT Tricks doesn't have anything especially close. > > Search-engineing *will* provide something very close. But, as the obvious > post itself suggests, understanding the code allows the same or similar > techniques to be known and therefore available for other circumstances. > > Gives me a chance to check if I missed something :-) > > Well, there's that BUILD in the OUTFIL. The point of that, and it may be > needed here, is that if the report produced is longer than the OUTFIL > source data, there's a run-time error. It's need depends on the length of > the input records. If they end immediately after the data shown, a BUILD > will be needed (doesn't need content, just length), because... > > That mistake comes out of my first, the thought that you couldn't SUBTOTAL > a UFF (or CS/CSF). So no need to pre-format, which will mean the record is > likely short, and the BUILD will likely be needed. > > The other difference is the length of the sequence number. In this case I > can't see the need of a sequence number beyond one in length, to cause the > break each time. > > dfsort "running total" > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
SORT - How can I put accumulated value on each output record
I want to have SORTOUT data as following: Input Data #001 1 10.5 #002 5 3.3 #003 121 120.4 . . . . . . . Output Data Set #001 1 10.5 1 10.5 #002 5 3.3 613.8 #003 121 120.4 127 134.2 . . . . . . . Output forth column is accumulated value with previous records values on 2nd column. Output 5th column is also accumulated value with previous records values on 3rd column. Can I make this kind of output by SORT? I really appreciate that someone would provide sample of SORT control statement to resolve my requirement. Minoru Massaki - (M*M) -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Compare 2 DFsms SCDS's?
Hi Kees-san, Before making DFSORT jobs for comparing with two SMS configuration reports, I compared with two DCOLLECT SMS data extracted from SCDSs. Comparing fields are different by each record type. For example, in case of DC (data class), compared fields in DCOLLECT data are following. Record Type: offset 4 2 bytes Name of construct: offset 26 8 bytes usually Data portion: offset 204 through offset 564 (Don't compare whole data record) In case of Storage Group (SG), Data portion length is different from DC one. Offset 204 through offset 832. If you fined out unmatched DCOLLECT record, run NaviQuest SMS configuration report against the unmatched record. You could see what differences are easily in the report. (Assume that there is not so much differences) If you would like to see the compare jobs, please let me know. Regards, Minoru massaki - (M*M) mmass...@gmail.com 2015-08-19 2:51 GMT+09:00 Vernooij, CP (ITOPT1) - KLM : > Minoru, > > Thanks for your info. Comparing appears to be quite complicated. > > I have a 'current' and 'new' SCDS, which I expected to be the same, but > they are not. I have a reasonable idea of where the differences will be, so > altogether I think comparing the SMS constructs will give me the > information to update the 'new' SCDS with what was missing from it and make > it ready for production. > > Thanks, > Kees. > > -Original Message- > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On > Behalf Of Minoru Massaki > Sent: Tuesday, August 18, 2015 7:42 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: Compare 2 DFsms SCDS's? > > As far as I know, there is no good way to compare with ACS routines > automatically. > I only compared with two SMS configuration based on SMS Configuration > Report produced by NaviQuest batch job. > I compared Base Configuration, SMS constructs, Tape Library definition, > DASD volumes (SG), and accounting information only. > > For comparing with two SCDSs, what I did is following > > 1) Generate each SCDS's SMS Configuration Reports >from DCOLLECT SMS data by NaviQuest. > 2) Modify the generated reports for comparing by DFSORT. > Adding each construct name and sequence number on each output record > line. > 3) Compare with two modified report by DFSORT JOINKEY and > generate a report which contains each report line side by side. > And column 1 of the report has indicator, 1 is report 1 only, 2 is > report 2 only, >B is exactly same record line, * is content is different. > > I did compare with two SMS Configuration Reports by SUPERC, but the SUPERC > could NOT compare it correctly. > > If you are interested in my DFSORT jobs, please contact me offline. > > Minoru Massaki - (M*M) > > mmass...@gmail.com > > > > 2015-08-12 18:11 GMT+09:00 Vernooij, CP (ITOPT1) - KLM < > kees.verno...@klm.com>: > > > There are differences and I want to see them all. > > I also found the DCOLLECT option and I think I am going to try this. > > > > Kees. > > > > -Original Message- > > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] > > On Behalf Of Elardus Engelbrecht > > Sent: 12 August, 2015 11:08 > > To: IBM-MAIN@LISTSERV.UA.EDU > > Subject: Re: Compare 2 DFsms SCDS's? > > > > Vernooij, CP (ITOPT1) - KLM wrote: > > > > >I have 2 SMS SCDS's and need to know the differences between them. > > >Is there a way to compare them understandably? IDCAMS print produces > > >a > > huge amount of unusable output, SUPERC claims there are no > > differences, which is incorrect. > > > > Hmmm. Interesting. IDCAMS - yes, just a dump of lots of characters. > > Nothing else beside chopping down innocent trees. > > > > Do you want to compare all and every record in those VSAM dsn? Ie, you > > want compare without validating them? > > > > Or is there something INSIDE them you want to compare? Storage Class, > > Pool group, ACS routines, etc.? > > > > AFAIK, the only way for now, is: for each ISMF screen, I select the > > CDS and do a list. Cumbersome, painful, etc. > > > > I wonder if two different DCOLLECT runs with specific CDS can give you > > a report with differences? Currently I'm now unable to do a DCOLLECT > > run, due to other work... > > > > It would be interesting if there is a [free/gratis] solution, because > > my Storage admin would like to use it too. > > > > Or better - a type of IRRDBU00 unload of those SCDS. That would be > > very handy. > > > > Groete / Greetin
Re: Compare 2 DFsms SCDS's?
As far as I know, there is no good way to compare with ACS routines automatically. I only compared with two SMS configuration based on SMS Configuration Report produced by NaviQuest batch job. I compared Base Configuration, SMS constructs, Tape Library definition, DASD volumes (SG), and accounting information only. For comparing with two SCDSs, what I did is following 1) Generate each SCDS's SMS Configuration Reports from DCOLLECT SMS data by NaviQuest. 2) Modify the generated reports for comparing by DFSORT. Adding each construct name and sequence number on each output record line. 3) Compare with two modified report by DFSORT JOINKEY and generate a report which contains each report line side by side. And column 1 of the report has indicator, 1 is report 1 only, 2 is report 2 only, B is exactly same record line, * is content is different. I did compare with two SMS Configuration Reports by SUPERC, but the SUPERC could NOT compare it correctly. If you are interested in my DFSORT jobs, please contact me offline. Minoru Massaki - (M*M) mmass...@gmail.com 2015-08-12 18:11 GMT+09:00 Vernooij, CP (ITOPT1) - KLM < kees.verno...@klm.com>: > There are differences and I want to see them all. > I also found the DCOLLECT option and I think I am going to try this. > > Kees. > > -Original Message- > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On > Behalf Of Elardus Engelbrecht > Sent: 12 August, 2015 11:08 > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: Compare 2 DFsms SCDS's? > > Vernooij, CP (ITOPT1) - KLM wrote: > > >I have 2 SMS SCDS's and need to know the differences between them. > >Is there a way to compare them understandably? IDCAMS print produces a > huge amount of unusable output, SUPERC claims there are no differences, > which is incorrect. > > Hmmm. Interesting. IDCAMS - yes, just a dump of lots of characters. > Nothing else beside chopping down innocent trees. > > Do you want to compare all and every record in those VSAM dsn? Ie, you > want compare without validating them? > > Or is there something INSIDE them you want to compare? Storage Class, Pool > group, ACS routines, etc.? > > AFAIK, the only way for now, is: for each ISMF screen, I select the CDS > and do a list. Cumbersome, painful, etc. > > I wonder if two different DCOLLECT runs with specific CDS can give you a > report with differences? Currently I'm now unable to do a DCOLLECT run, due > to other work... > > It would be interesting if there is a [free/gratis] solution, because my > Storage admin would like to use it too. > > Or better - a type of IRRDBU00 unload of those SCDS. That would be very > handy. > > Groete / Greetings > Elardus Engelbrecht > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > For information, services and offers, please visit our web site: > http://www.klm.com. This e-mail and any attachment may contain > confidential and privileged material intended for the addressee only. If > you are not the addressee, you are notified that no part of the e-mail or > any attachment may be disclosed, copied or distributed, and that any other > action related to this e-mail or attachment is strictly prohibited, and may > be unlawful. If you have received this e-mail by error, please notify the > sender immediately by return e-mail, and delete this message. > > Koninklijke Luchtvaart Maatschappij NV (KLM), its subsidiaries and/or its > employees shall not be liable for the incorrect or incomplete transmission > of this e-mail or any attachments, nor responsible for any delay in receipt. > Koninklijke Luchtvaart Maatschappij N.V. (also known as KLM Royal Dutch > Airlines) is registered in Amstelveen, The Netherlands, with registered > number 33014286 > > > > > ------ > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: DFSORT - How to select last 8 bytes in variable length records
Hi Kolusu-san and Friemel-san, Thank you very much for giving nice and elegant solutions. I really appreciate your helps. > The extra space OP showed is just differentiate the output > but I don't think it is really needed. Sample output records I show included a blank character between front key and data. Actually it is not needed. It is just separater to see key and data easily. I understood the limitations when I use the DFSORT control statements you gave. Again, thank you!! Minoru Massaki - (M*M) 2015-06-12 0:33 GMT+09:00 Sri h Kolusu : > Norbert, > > Thanks for the explanation of the control cards but I do understand what > they are doing. The extra space OP showed is just differentiate the output > but I don't think it is really needed. > > >>The other single pass job needed special/reserved characters not in the > input data. This job allows all characters in the input data > (for lrecl < 16k) > > As you pointed out some of the solutions have limitations. In your case it > is the LRECL limitation and in my case it is the special characters > limitation. So given the available information, I try to come up with a > solution and both of us are trying to help. > > > IBM Mainframe Discussion List wrote on > 06/10/2015 05:06:50 PM: > > > From: Norbert Friemel > > To: IBM-MAIN@LISTSERV.UA.EDU > > Date: 06/10/2015 05:07 PM > > Subject: Re: DFSORT - How to select last 8 bytes in variable length > records > > Sent by: IBM Mainframe Discussion List > > > > On Wed, 10 Jun 2015 14:57:33 -0700, Sri h Kolusu wrote: > > > > >Norbert, > > > > > >As I mentioned earlier it can be done in single pass as shown earlier, > I > > >was just trying to optimize your Joinkeys job. With your new job there > a > > >couple of issues > > > > > >1. I am not sure as to why you need to append C'40' (may be you meant > > >X'40') > > >2. With the append of C'40' your output LRECL is increased by 1. ie. > the > > >output now has LRECL+8+1 > > > > Quote from the first post in this thread: > > > > > There is a input file of variable length records. > > > I want to insert the last 8 bytes of a record to front of the record > as > > > following sample. > > > > > > Input file: > > > RECORD01X11 > > > RECORD02Y2 > > > RECORD03ZCCC > > > RECORD044A444 > > > RECORD0555B > > > > > > Output File I want to have: > > > RECORD01X11 > > > RECORD02Y2 > > > ZCCC RECORD03ZCCC > > > RECORD044A444 > > > RECORD0555B > > > > > > Record data before the last 8 bytes may contain x'00' thru x'FF', > > > there is no specific delimiter character for parsing the last 8 bytes. > > > The last 8 bytes is also binary. > > > > The output example shows the last 8 bytes of the input records in > > col. 1-8 and a space on col. 9. The data from the input record > > starts at col 10. > > I create the output record as a HEX string and convert it back in > > the last step. That's why I append C'40' (it's converted to x'40' in > > the last BUILD-statement: > > 1. BUILD=(1,4,5,HEX)) > > converts the input record to hex > > 2. OVERLAY=(5:hex_data,JFY=(SHIFT=RIGHT))) > > shifts the hex string (inserts spaces to the left) > > 3. BUILD=(1,4,key_start,16,C'40',hex_data,JFY=(SHIFT=LEFT))) > > creates a record with the last 16 bytes of the hex string, a > > "hexified" space (C'40') and the (hexified) input record shifted to > > the left (spaces on the right) > > 4. FINDREP=(IN=(C' '),OUT=C'')) > > removes spaces (x'40' at the end of the record, not c'40' in col. 17/18) > > 5. BUILD=(1,4,5,TRAN=UNHEX)) > > converts to record to binary > > > > The other single pass job needed special/reserved characters not in > > the input data. This job allows all characters in the input data > > (for lrecl < 16k) > > > > >3. I am not sure as to why you need to validate the RDW to remove the > > >short records. JFY will pad up short records. So even if you records > with > > >lrecl less than 12 it will only pick the available characters. > > > > JFY pads the HEX string with spaces (x'40'). I thought that > > converting this with TRAN=UNHEX adds (unwanted) x
Re: DFSORT - How to select last 8 bytes in variable length records
Hello Gilmartin-san, Thank you for your suggestion. I didn't know a such kind of technique. Minoru Massaki - (M*M) 2015-06-10 5:41 GMT+09:00 Paul Gilmartin < 000433f07816-dmarc-requ...@listserv.ua.edu>: > On 2015-06-09 13:19, Tony Harminc wrote: > > > > Please do not forget that, if you actually perform byte-value sorting on > > such hexified records, the hex values do not sort in the same order as > the > > raw data. (I realize your initial problem does not include sorting the > > data, but sometimes requirements can change, or perhaps you simplified > the > > problem to present it here.) > > > On occasion, I have dealt with this by translating the hexified data to > ASCII, sorting, then translating back to EBCDIC. > > -- gil > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: DFSORT - How to select last 8 bytes in variable length records
Hello Harminc-san, Thank you for your attention. I'll care about hex field sorting hereafter. Minoru Massaki - (M*M) 2015-06-10 4:19 GMT+09:00 Tony Harminc : > On 9 June 2015 at 13:50, Minoru Massaki wrote: > > > > Allowing all data (x'00' thru X'FF') for input record, > > converting input data to HEX (data become only A thru Z and 0 thru 9) > > during DFSORT process might be a solution. ;-) > > > > Please do not forget that, if you actually perform byte-value sorting on > such hexified records, the hex values do not sort in the same order as the > raw data. (I realize your initial problem does not include sorting the > data, but sometimes requirements can change, or perhaps you simplified the > problem to present it here.) > > Regards, > > Tony H. > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: DFSORT - How to select last 8 bytes in variable length records
Hi Friemel-san, I have tested you new DFSORT JCL in our z/OS V2.1 system. It has worked fine. Thank you!! Minoru Massaki - (M*M) 2015-06-10 4:00 GMT+09:00 Norbert Friemel : > On Wed, 10 Jun 2015 02:37:49 +0900, Minoru Massaki wrote: > > >Hello Friemel-san, > > > >Thank you for your DFSORT JCL. > > > >In our z/OS V2.1 system, your JCL didn't work correctly. > >(output looked like all blank) > > > >After changing VLTRAIL parameter from two characters '<|' to > >three characters such as C'<|>', it does work fine. > > > > I can't test this now but I guess OPTION VLSHRT is missing. > Another error: INREC PARSE should start at position 9 (after the sequence > number) > INREC PARSE=(%00=(ABSPOS=9,STARTAFT=C'<',FIXLEN=1), ... > > Complete job (with minor modifications, *untested*): > > //* > //STEP1 EXEC PGM=ICETOOL > //* > //TOOLMSG DD SYSOUT=* > //DFSMSGDD SYSOUT=* > //INDD DISP=OLD,DSN=VB-INPUT-DS > //TEMP1 DD SPACE=(TRK,(150,150),RLSE) > //TEMP2 DD SPACE=(TRK,(150,150),RLSE) > //SHORT DD DISP=(NEW,CATLG,DELETE), > // SPACE=(TRK,(150,150),RLSE), > // DSN=VB-SHORTREC > //OUT DD DISP=(NEW,CATLG,DELETE), > // SPACE=(TRK,(150,150),RLSE), > // DSN=VB-OUTPUT-DS > //CTL1CNTL DD * > OUTFIL FNAMES=TEMP1,BUILD=(1,4,SEQNUM,4,BI,5), >INCLUDE=(1,2,BI,GE,12) > OUTFIL FNAMES=TEMP2,BUILD=(1,4,SEQNUM,4,BI,5,HEX), >INCLUDE=(1,2,BI,GE,12),VLTRAIL=C'< ' > OUTFIL FNAMES=SHORT,SAVE > /* > //CTL2CNTL DD * > JOINKEYS F1=TEMP1,FIELDS=(5,4,A),TASKID=T1,SORTED > JOINKEYS F2=TEMP2,FIELDS=(5,4,A),TASKID=T1,SORTED > REFORMAT FIELDS=(F1:1,4,F2:9,9,F1:9) > /* > //T1F1CNTL DD * > /* > //T1F2CNTL DD * > OPTION VLSHRT > INREC PARSE=(%00=(ABSPOS=9,STARTAFT=C'<',FIXLEN=1), >%01=(SUBPOS=18,FIXLEN=16)), > BUILD=(1,4,5,4,%01,TRAN=UNHEX,%00) > /* > //TOOLINDD * > COPY FROM(IN) USING(CTL1) > COPY JKFROM TO(OUT) USING(CTL2) > /* > > Norbert Friemel > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: DFSORT - How to select last 8 bytes in variable length records
Hi Kolusu-san, I have sent JOB JCLs and executed output to DFSORT helpline. Thank you, Minoru Massaki - (M*M) 2015-06-10 2:43 GMT+09:00 Sri h Kolusu : > Minoru Massaki, > > I did not test out Norbert Friemel solution as it involves 2 passes of > data along with joinkeys which is not required. However I would like to > diagnose the error you are getting when you used his JCL. Can you send me > the complete sysout and JCL you used and if possible send the input file > to our hotline ? > > Thanks, > Sri Hari Kolusu > DFSORT Development > IBM Corporation > > IBM Mainframe Discussion List wrote on > 06/09/2015 10:37:49 AM: > > > From: Minoru Massaki > > To: IBM-MAIN@LISTSERV.UA.EDU > > Date: 06/09/2015 10:38 AM > > Subject: Re: DFSORT - How to select last 8 bytes in variable length > records > > Sent by: IBM Mainframe Discussion List > > > > Hello Friemel-san, > > > > Thank you for your DFSORT JCL. > > > > In our z/OS V2.1 system, your JCL didn't work correctly. > > (output looked like all blank) > > > > After changing VLTRAIL parameter from two characters '<|' to > > three characters such as C'<|>', it does work fine. > > > > Thank you! > > > > Minoru Massaki - (M*M) > > > > > > 2015-06-08 22:06 GMT+09:00 Norbert Friemel : > > > > > On Mon, 8 Jun 2015 17:14:33 +0900, Minoru Massaki wrote: > > > > > > >Hello Kolusu-san, > > > > > > > >Thank you very much for giving the answer by using DFSORT. > > > >That is what the customer wants to. > > > > > > > >I have additional questions. > > > >If the 8 bytes key is binary data and some records include x'40' of > the > > > >last byte of the key, > > > > (ex. if the key is binary number 64 --> x'0040') > > > >Does the shifting to right (JFY=(SHIFT=RIGHT)) work as I expected? > > > > > > > >In case of the last and the first byte of the records contain x'40', > > > >what should I modify the DFSORT control statements you gave me. > > > > > > > > > > On z/OS 2.1 (VLTRAIL is new in 2.1) try: > > > > > > //* > > > //STEP1 EXEC PGM=ICETOOL > > > //* > > > //TOOLMSG DD SYSOUT=* > > > //DFSMSGDD SYSOUT=* > > > //INDD DISP=OLD,DSN=VB-INPUT-DS > > > //TEMP1 DD SPACE=(TRK,(75,75),RLSE) > > > //TEMP2 DD SPACE=(TRK,(150,150),RLSE) > > > //OUT DD DISP=(NEW,CATLG,DELETE), > > > // SPACE=(TRK,(75,75),RLSE), > > > // DSN=VB-OUTPUT-DS > > > //CTL1CNTL DD * > > > OUTFIL FNAMES=TEMP1,BUILD=(1,4,SEQNUM,4,BI,C' ',5) > > > OUTFIL FNAMES=TEMP2,BUILD=(1,4,SEQNUM,4,BI,5,HEX),VLTRAIL=C'<|' > > > /* > > > //CTL2CNTL DD * > > > JOINKEYS F1=TEMP1,FIELDS=(5,4,A),TASKID=T1,SORTED > > > JOINKEYS F2=TEMP2,FIELDS=(5,4,A),TASKID=T1,SORTED > > > REFORMAT FIELDS=(F1:1,4,F2:9,8,F1:9,1,F1:10) > > > /* > > > //T1F1CNTL DD * > > > /* > > > //T1F2CNTL DD * > > > INREC PARSE=(%00=(STARTAFT=C'<',FIXLEN=1), > > >%01=(SUBPOS=18,FIXLEN=16)), > > > BUILD=(1,4,5,4,%01,TRAN=UNHEX) > > > /* > > > //TOOLINDD * > > > COPY FROM(IN) USING(CTL1) > > > COPY JKFROM TO(OUT) USING(CTL2) > > > /* > > > > > > Norbert Friemel > > > > > > -- > > > For IBM-MAIN subscribe / signoff / archive access instructions, > > > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > > > > > > > > > > -- > > > > 全先 実 - Minoru Massaki (M*M) > > E-mail: mmass...@gmail.com > > > > -- > > For IBM-MAIN subscribe / signoff / archive access instructions, > > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: DFSORT - How to select last 8 bytes in variable length records
Hi Kolusu-san, Thank you for your explanation. Now I understood that added blanks by JFY=(SHIFT=LEFT) had to be removed by FINDREP. > Yes you need to pick some other characters that are not in your input. Allowing all data (x'00' thru X'FF') for input record, converting input data to HEX (data become only A thru Z and 0 thru 9) during DFSORT process might be a solution. ;-) Again, thank you for your help. Minoru Massaki - (M*M) 2015-06-10 2:17 GMT+09:00 Sri h Kolusu : > >>>I needed some amount of time to understand the DFSORT control > statements,especially FINDREP > > Minoru Massaki, > > The statement is simply removing 2 characters which is a space and a '$'. > For example if your input has > > +1+-- > MIN$ORU MASSA$KI > > The input is a total of 21 bytes and after the FINDREP statement the > output is as follows > > +1+ > MINORUMASSAKI > > The output is reduced to 18 as the 2 '$' and a single space characters are > removed. > > >>I'd like to make sure that input record data must not have C'$' and C'@' > characters. If it exists in the input data, output data in col.9 thru end > is different from input. Is this right? > > Yes you need to pick some other characters that are not in your input. If > you have those special characters then your output will have a different > output from position 5. Remember you can mention the special character in > HEX format too. > > Further if you have any questions please let me know > > Thanks, > Sri Hari Kolusu > DFSORT Development > IBM Corporation > > > > From: Minoru Massaki > To: IBM-MAIN@LISTSERV.UA.EDU > Date: 06/09/2015 08:57 AM > Subject:Re: DFSORT - How to select last 8 bytes in variable length > records > Sent by:IBM Mainframe Discussion List > > > > Hi Kolusu-san, > > Thank you very much for answering my question. > It works fine. > > I needed some amount of time to understand the DFSORT constrol statements, > especially > > > IFTHEN=(WHEN=INIT, > > FINDREP=(IN=(C' ',C'$'),OUT=C'')), $ REMOVE SPACES AND SPL CHAR > > I'd like to make sure that input record data must not have C'$' and C'@' > characters. If it exists in the input data, output data in col.9 thru end > is different from input. > Is this right? > > Again, I really appreciate your help. > > Minoru Massaki - (M*M) > > > > 2015-06-09 2:23 GMT+09:00 Sri h Kolusu : > > > Minoru Massaki, > > > > I went ahead and assumed that you have both leading and trailing spaces. > I > > chose '$' and '@' as special characters to preserve the leading and > > trailing spaces. The following DFSORT JCL will give you the desired > > results. JFY will move the contents irrespective of what the data is. > It > > doesn't matter if the data is binary or character. Also I forced the > > output lrecl to be (original LRECL + 8 ) using IFOUTLEN. So if you have > a > > different lrecl file then you may need to change that value. > > > > //STEP0100 EXEC PGM=SORT > > //SYSOUT DD SYSOUT=* > > //SORTIN DD DISP=SHR,DSN=Your Input VB 80 Byte file > > //SORTOUT DD SYSOUT=* > > //SYSINDD * > > OPTION COPY > > INREC IFOUTLEN=88, > > IFTHEN=(WHEN=INIT, > > BUILD=(1,04, $ RDW > >C'$', $ SPL CHAR > >5)), $ REST OF THE DATA > > > > IFTHEN=(WHEN=INIT, > > FINDREP=(INOUT=(X'40',C'@'))), $ CHANGE ' ' TO '@' > > > > IFTHEN=(WHEN=INIT, > > OVERLAY=(05:05,77,JFY=(SHIFT=RIGHT))), $ SHIFT DATA TO RIGHT > > > > IFTHEN=(WHEN=INIT, > > BUILD=(01,04, $ RDW > >74,08, $ LAST 8 BYTES > >05,77,JFY=(SHIFT=LEFT))), $ SHIFT DATA TO LEFT > > > > IFTHEN=(WHEN=INIT, > > FINDREP=(IN=(C' ',C'$'),OUT=C'')), $ REMOVE SPACES AND SPL CHAR > > > > IFTHEN=(WHEN=INIT, > > FINDREP=(INOUT=(C'@',X'40'))) $ CHANGE '@' BACK TO SPACE > > //* > > > > > > Hope this helps... > > > > Thanks, > > Sri Hari Kolusu > > DFSORT Development > > IBM Corporation > > > > IBM Mainframe Discussion List wrote on > > 06/08/2015 01:14:33 AM: > > > > > From: Minoru Massaki > >
Re: DFSORT - How to select last 8 bytes in variable length records
Hello Friemel-san, Thank you for your DFSORT JCL. In our z/OS V2.1 system, your JCL didn't work correctly. (output looked like all blank) After changing VLTRAIL parameter from two characters '<|' to three characters such as C'<|>', it does work fine. Thank you! Minoru Massaki - (M*M) 2015-06-08 22:06 GMT+09:00 Norbert Friemel : > On Mon, 8 Jun 2015 17:14:33 +0900, Minoru Massaki wrote: > > >Hello Kolusu-san, > > > >Thank you very much for giving the answer by using DFSORT. > >That is what the customer wants to. > > > >I have additional questions. > >If the 8 bytes key is binary data and some records include x'40' of the > >last byte of the key, > > (ex. if the key is binary number 64 --> x'0040') > >Does the shifting to right (JFY=(SHIFT=RIGHT)) work as I expected? > > > >In case of the last and the first byte of the records contain x'40', > >what should I modify the DFSORT control statements you gave me. > > > > On z/OS 2.1 (VLTRAIL is new in 2.1) try: > > //* > //STEP1 EXEC PGM=ICETOOL > //* > //TOOLMSG DD SYSOUT=* > //DFSMSGDD SYSOUT=* > //INDD DISP=OLD,DSN=VB-INPUT-DS > //TEMP1 DD SPACE=(TRK,(75,75),RLSE) > //TEMP2 DD SPACE=(TRK,(150,150),RLSE) > //OUT DD DISP=(NEW,CATLG,DELETE), > // SPACE=(TRK,(75,75),RLSE), > // DSN=VB-OUTPUT-DS > //CTL1CNTL DD * > OUTFIL FNAMES=TEMP1,BUILD=(1,4,SEQNUM,4,BI,C' ',5) > OUTFIL FNAMES=TEMP2,BUILD=(1,4,SEQNUM,4,BI,5,HEX),VLTRAIL=C'<|' > /* > //CTL2CNTL DD * > JOINKEYS F1=TEMP1,FIELDS=(5,4,A),TASKID=T1,SORTED > JOINKEYS F2=TEMP2,FIELDS=(5,4,A),TASKID=T1,SORTED > REFORMAT FIELDS=(F1:1,4,F2:9,8,F1:9,1,F1:10) > /* > //T1F1CNTL DD * > /* > //T1F2CNTL DD * > INREC PARSE=(%00=(STARTAFT=C'<',FIXLEN=1), >%01=(SUBPOS=18,FIXLEN=16)), > BUILD=(1,4,5,4,%01,TRAN=UNHEX) > /* > //TOOLINDD * > COPY FROM(IN) USING(CTL1) > COPY JKFROM TO(OUT) USING(CTL2) > /* > > Norbert Friemel > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: DFSORT - How to select last 8 bytes in variable length records
Hi Kolusu-san, Thank you very much for answering my question. It works fine. I needed some amount of time to understand the DFSORT constrol statements, especially > IFTHEN=(WHEN=INIT, > FINDREP=(IN=(C' ',C'$'),OUT=C'')), $ REMOVE SPACES AND SPL CHAR I'd like to make sure that input record data must not have C'$' and C'@' characters. If it exists in the input data, output data in col.9 thru end is different from input. Is this right? Again, I really appreciate your help. Minoru Massaki - (M*M) 2015-06-09 2:23 GMT+09:00 Sri h Kolusu : > Minoru Massaki, > > I went ahead and assumed that you have both leading and trailing spaces. I > chose '$' and '@' as special characters to preserve the leading and > trailing spaces. The following DFSORT JCL will give you the desired > results. JFY will move the contents irrespective of what the data is. It > doesn't matter if the data is binary or character. Also I forced the > output lrecl to be (original LRECL + 8 ) using IFOUTLEN. So if you have a > different lrecl file then you may need to change that value. > > //STEP0100 EXEC PGM=SORT > //SYSOUT DD SYSOUT=* > //SORTIN DD DISP=SHR,DSN=Your Input VB 80 Byte file > //SORTOUT DD SYSOUT=* > //SYSINDD * > OPTION COPY > INREC IFOUTLEN=88, > IFTHEN=(WHEN=INIT, > BUILD=(1,04, $ RDW >C'$', $ SPL CHAR >5)), $ REST OF THE DATA > > IFTHEN=(WHEN=INIT, > FINDREP=(INOUT=(X'40',C'@'))), $ CHANGE ' ' TO '@' > > IFTHEN=(WHEN=INIT, > OVERLAY=(05:05,77,JFY=(SHIFT=RIGHT))), $ SHIFT DATA TO RIGHT > > IFTHEN=(WHEN=INIT, > BUILD=(01,04, $ RDW >74,08, $ LAST 8 BYTES >05,77,JFY=(SHIFT=LEFT))), $ SHIFT DATA TO LEFT > > IFTHEN=(WHEN=INIT, > FINDREP=(IN=(C' ',C'$'),OUT=C'')), $ REMOVE SPACES AND SPL CHAR > > IFTHEN=(WHEN=INIT, > FINDREP=(INOUT=(C'@',X'40'))) $ CHANGE '@' BACK TO SPACE > //* > > > Hope this helps... > > Thanks, > Sri Hari Kolusu > DFSORT Development > IBM Corporation > > IBM Mainframe Discussion List wrote on > 06/08/2015 01:14:33 AM: > > > From: Minoru Massaki > > To: IBM-MAIN@LISTSERV.UA.EDU > > Date: 06/08/2015 01:14 AM > > Subject: Re: DFSORT - How to select last 8 bytes in variable length > records > > Sent by: IBM Mainframe Discussion List > > > > Hello Kolusu-san, > > > > Thank you very much for giving the answer by using DFSORT. > > That is what the customer wants to. > > > > I have additional questions. > > If the 8 bytes key is binary data and some records include x'40' of the > > last byte of the key, > > (ex. if the key is binary number 64 --> x'0040') > > Does the shifting to right (JFY=(SHIFT=RIGHT)) work as I expected? > > > > In case of the last and the first byte of the records contain x'40', > > what should I modify the DFSORT control statements you gave me. > > > > I really appreciate your kind help. > > > > Minoru Massaki - (M*M) > > > > > > > > > > 2015-06-08 14:44 GMT+09:00 Sri h Kolusu : > > > > > Minoru Massaki, > > > > > > It is quite simple to get the last 8 bytes from a variable length file > > > without an exit. You simply need to use JFY to push the contents to > the > > > right and then pick the last 8 bytes and then use another JFY to push > the > > > contents to the left and there by achieving the desired results. > > > > > > I assumed that your Input VB file has an LRECL=80. You can adjust the > > > length if your input file has a different length. > > > > > > //STEP0100 EXEC PGM=SORT > > > //SYSOUT DD SYSOUT=* > > > //SORTIN DD DISP=SHR,Your Input VB 80 byte file. > > > //SORTOUT DD SYSOUT=* > > > //SYSINDD * > > > OPTION COPY > > > INREC IFTHEN=(WHEN=INIT, > > > BUILD=(1,04, $ RDW > > >5,76,JFY=(SHIFT=RIGHT))), $ SHIFT DATA TO RIGHT > > > IFTHEN=(WHEN=INIT, > > > BUILD=(01,04, $ RDW > > >73,08, $ LAST 8 BYTES > > >05,76,JFY=(SHIFT=LEFT))) $ SHIFT DATA TO LEFT > > > > > > OUTFIL VLTRIM
Re: DFSORT - How to select last 8 bytes in variable length records
Hello Kolusu-san, Thank you very much for giving the answer by using DFSORT. That is what the customer wants to. I have additional questions. If the 8 bytes key is binary data and some records include x'40' of the last byte of the key, (ex. if the key is binary number 64 --> x'0040') Does the shifting to right (JFY=(SHIFT=RIGHT)) work as I expected? In case of the last and the first byte of the records contain x'40', what should I modify the DFSORT control statements you gave me. I really appreciate your kind help. Minoru Massaki - (M*M) 2015-06-08 14:44 GMT+09:00 Sri h Kolusu : > Minoru Massaki, > > It is quite simple to get the last 8 bytes from a variable length file > without an exit. You simply need to use JFY to push the contents to the > right and then pick the last 8 bytes and then use another JFY to push the > contents to the left and there by achieving the desired results. > > I assumed that your Input VB file has an LRECL=80. You can adjust the > length if your input file has a different length. > > //STEP0100 EXEC PGM=SORT > //SYSOUT DD SYSOUT=* > //SORTIN DD DISP=SHR,Your Input VB 80 byte file. > //SORTOUT DD SYSOUT=* > //SYSINDD * > OPTION COPY > INREC IFTHEN=(WHEN=INIT, > BUILD=(1,04, $ RDW >5,76,JFY=(SHIFT=RIGHT))), $ SHIFT DATA TO RIGHT > IFTHEN=(WHEN=INIT, > BUILD=(01,04, $ RDW >73,08, $ LAST 8 BYTES >05,76,JFY=(SHIFT=LEFT))) $ SHIFT DATA TO LEFT > > OUTFIL VLTRIM=C' ' $ REMOVE TRAIL SPACES > //* > > Sri Hari Kolusu > DFSORT Development > IBM Corporation > > IBM Mainframe Discussion List wrote on > 06/07/2015 06:28:01 AM: > > > From: Minoru Massaki > > To: IBM-MAIN@LISTSERV.UA.EDU > > Date: 06/07/2015 06:28 AM > > Subject: DFSORT - How to select last 8 bytes in variable length records > > Sent by: IBM Mainframe Discussion List > > > > Hello > > > > There is a input file of variable length records. > > I want to insert the last 8 bytes of a record to front of the record as > > following sample. > > > > Input file: > > RECORD01X11 > > RECORD02Y2 > > RECORD03ZCCC > > RECORD044A444 > > RECORD0555B > > > > Output File I want to have: > > RECORD01X11 > > RECORD02Y2 > > ZCCC RECORD03ZCCC > > RECORD044A444 > > RECORD0555B > > > > Record data before the last 8 bytes may contain x'00' thru x'FF', > > there is no specific delimiter character for parsing the last 8 bytes. > > The last 8 bytes is also binary. > > > > I'd like to hear any ideas how this to be done by DFSORT WITHOUT using > > E15/E35. > > > > Your help would be highly appreciated. > > > > Minoru Massaki - M*M > > > > > > > > > > > > > > -- > > > > 全先 実 - Minoru Massaki (M*M) > > E-mail: mmass...@gmail.com > > > > ------ > > For IBM-MAIN subscribe / signoff / archive access instructions, > > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: DFSORT - How to select last 8 bytes in variable length records
Hello Tony-san, I already have read many DFSORT related posts in many Wed sites but could not find the answer. I know that the first 2 bytes of the variable record (RDW) contains the length of the record. But based on my knowledge of DFSORT, that value of the field could not use as the pointer in DFSORT control statement parameter to select the last 8 bytes. So I'm asking the way to do it by DFSORT. Thank you. Minoru Massaki - (M*M) 2015-06-08 1:59 GMT+09:00 Tony's Outlook via Mozilla : > There was a DF/SORT related post sometime in the not so distant past that > gave an example of how to read a VB file and determine all the differing > record lengths. Without thinking about it much reading all the RDW fields > should not be that difficult. > > > > > On 6/7/2015 11:21 AM, Lizette Koehler wrote: > >> I am sure the DFSORT team will respond on Monday in the USA. >> >> Or you could send your query to them, there might be someone watching >> their helpline >> >> dfs...@us.ibm.com >> >> Those folks are very helpful. >> >> Also, the DFSORT Website on >> http://www-01.ibm.com/support/docview.wss?uid=isg3T779 >> >> Also, you could probably do this in REXX. There are many ways to do this >> function. >> >> >> Lizette >> >> >> -Original Message- >>> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] >>> On Behalf Of Minoru Massaki >>> Sent: Sunday, June 07, 2015 8:57 AM >>> To: IBM-MAIN@LISTSERV.UA.EDU >>> Subject: Re: DFSORT - How to select last 8 bytes in variable length >>> records >>> >>> Hello Gilmartin-san, >>> >>> Thank you for your idea. >>> >>> At this point, they (the customer) want to use only DFSORT without >>> E15/E35. >>> I'll tell them your ideas. >>> >>> Minoru Massaki - (M*M) >>> >>> >>> >>> >>> >>> 2015-06-07 23:46 GMT+09:00 Paul Gilmartin < >>> 000433f07816-dmarc-requ...@listserv.ua.edu>: >>> >>> On Sun, 7 Jun 2015 22:28:01 +0900, Minoru Massaki wrote: >>>> >>>> Hello >>>>> >>>>> There is a input file of variable length records. >>>>> I want to insert the last 8 bytes of a record to front of the record >>>>> as following sample. ... >>>>> >>>>> Must it be DFSORT? For example: >>>> >>>> 508 $ cat last8; sh last8 >>>> #! /bin/sh -x >>>> >>>> echo "\ >>>> RECORD01X11 >>>> RECORD02Y2 >>>> RECORD03ZCCC >>>> RECORD044A444 >>>> RECORD0555B" | >>>> >>>> sed 's/\(.*\)\(\)/\2 \1/' >>>> >>>> AAAA RECORD01X11 >>>> RECORD02Y2 >>>> ZCCC RECORD03 >>>> RECORD044A444 >>>> RECORD0555B >>>> 509 $ >>>> >>>> Is it then possible to pipe the output of "sed" into SORTIN? >>>> >>>> -- gil\ >>>> >>> >> -- >> For IBM-MAIN subscribe / signoff / archive access instructions, >> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN >> >> > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: DFSORT - How to select last 8 bytes in variable length records
Hello Koehler-san, Thank you for telling me DFSORT helpline. As your suggested, I have sent the question to them. > Also, you could probably do this in REXX. Yes, I already have written a REXX EXEC to do this. If number of the records to be processed is huge, the REXX EXEC (about 20 lines of the code) will consume more and more CPU time and will take longer elapsed time than DFSORT.;-) Usually our customers in Japan don't like to do coding by language such as REXX for doing this kind of small(?) things. On the other hand, they accept to make "control cards" jobs such as DFSORT, IDCAMS, and other utilities. I don't know the reason. Thank you! Minoru Massaki - (M*M) 2015-06-08 1:21 GMT+09:00 Lizette Koehler : > I am sure the DFSORT team will respond on Monday in the USA. > > Or you could send your query to them, there might be someone watching > their helpline > > dfs...@us.ibm.com > > Those folks are very helpful. > > Also, the DFSORT Website on > http://www-01.ibm.com/support/docview.wss?uid=isg3T779 > > Also, you could probably do this in REXX. There are many ways to do this > function. > > > Lizette > > > > -Original Message- > > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] > > On Behalf Of Minoru Massaki > > Sent: Sunday, June 07, 2015 8:57 AM > > To: IBM-MAIN@LISTSERV.UA.EDU > > Subject: Re: DFSORT - How to select last 8 bytes in variable length > records > > > > Hello Gilmartin-san, > > > > Thank you for your idea. > > > > At this point, they (the customer) want to use only DFSORT without > E15/E35. > > I'll tell them your ideas. > > > > Minoru Massaki - (M*M) > > > > > > > > > > > > 2015-06-07 23:46 GMT+09:00 Paul Gilmartin < > > 000433f07816-dmarc-requ...@listserv.ua.edu>: > > > > > On Sun, 7 Jun 2015 22:28:01 +0900, Minoru Massaki wrote: > > > > > > >Hello > > > > > > > >There is a input file of variable length records. > > > >I want to insert the last 8 bytes of a record to front of the record > > > >as following sample. ... > > > > > > > Must it be DFSORT? For example: > > > > > > 508 $ cat last8; sh last8 > > > #! /bin/sh -x > > > > > > echo "\ > > > RECORD01X11 > > > RECORD02Y2 > > > RECORD03ZCCC > > > RECORD044A444 > > > RECORD0555B" | > > > > > > sed 's/\(.*\)\(\)/\2 \1/' > > > > > > AAAA RECORD01X11 > > > RECORD02Y2 > > > ZCCC RECORD03 > > > RECORD044A444 > > > RECORD0555B > > > 509 $ > > > > > > Is it then possible to pipe the output of "sed" into SORTIN? > > > > > > -- gil\ > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: DFSORT - How to select last 8 bytes in variable length records
Hello Gilmartin-san, Thank you for your idea. At this point, they (the customer) want to use only DFSORT without E15/E35. I'll tell them your ideas. Minoru Massaki - (M*M) 2015-06-07 23:46 GMT+09:00 Paul Gilmartin < 000433f07816-dmarc-requ...@listserv.ua.edu>: > On Sun, 7 Jun 2015 22:28:01 +0900, Minoru Massaki wrote: > > >Hello > > > >There is a input file of variable length records. > >I want to insert the last 8 bytes of a record to front of the record as > >following sample. ... > > > Must it be DFSORT? For example: > > 508 $ cat last8; sh last8 > #! /bin/sh -x > > echo "\ > RECORD01X11 > RECORD02Y2 > RECORD03ZCCC > RECORD044A444 > RECORD0555B" | > > sed 's/\(.*\)\(\)/\2 \1/' > > RECORD01X11 > RECORD02Y2 > ZCCC RECORD03 > RECORD044A444 > RECORD0555B > 509 $ > > Is it then possible to pipe the output of "sed" into SORTIN? > > -- gil > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: DFSORT - How to select last 8 bytes in variable length records
Hello Packer-san, Thank you for your suggestion. Same as your suggestion, I thought to use a bunch of IFTHEN for checking record length. At this point, unfortunately I cannot figure out how many different record lengths out there. The question came from a customer, they like to use DFSORT without E15/E35 exits. Thank you for your suggestion. Minoru Massaki - (M*M) 2015-06-07 23:34 GMT+09:00 Martin Packer : > How many different record lengths do you expect to see? If it's a few then > maybe doing a bunch of IFTHEN clauses on the length in the RDW helps move > these fields into place. > > By "a few" I once ran with 100 IFTHEN clauses and didn't notice the > difference. > > Other than that I don't see how to do it. > > Cheers, Martin > > Martin Packer, > zChampion, Principal Systems Investigator, > Worldwide Banking Center of Excellence, IBM > > +44-7802-245-584 > > email: martin_pac...@uk.ibm.com > > Twitter / Facebook IDs: MartinPacker > Blog: > https://www.ibm.com/developerworks/mydeveloperworks/blogs/MartinPacker > > > > From: Minoru Massaki > To: IBM-MAIN@LISTSERV.UA.EDU > Date: 07/06/2015 14:28 > Subject:DFSORT - How to select last 8 bytes in variable length > records > Sent by:IBM Mainframe Discussion List > > > > Hello > > There is a input file of variable length records. > I want to insert the last 8 bytes of a record to front of the record as > following sample. > > Input file: > RECORD01X11 > RECORD02Y2 > RECORD03ZCCC > RECORD044A444 > RECORD0555B > > Output File I want to have: > RECORD01X11 > RECORD02Y2 > ZCCC RECORD03ZCCC > RECORD044A444 > RECORD0555B > > Record data before the last 8 bytes may contain x'00' thru x'FF', > there is no specific delimiter character for parsing the last 8 bytes. > The last 8 bytes is also binary. > > I'd like to hear any ideas how this to be done by DFSORT WITHOUT using > E15/E35. > > Your help would be highly appreciated. > > Minoru Massaki - M*M > > > > > > > -- > > 全先 実 - Minoru Massaki (M*M) > E-mail: mmass...@gmail.com > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > > > Unless stated otherwise above: > IBM United Kingdom Limited - Registered in England and Wales with number > 741598. > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
DFSORT - How to select last 8 bytes in variable length records
Hello There is a input file of variable length records. I want to insert the last 8 bytes of a record to front of the record as following sample. Input file: RECORD01X11 RECORD02Y2 RECORD03ZCCC RECORD044A444 RECORD0555B Output File I want to have: RECORD01X11 RECORD02Y2 ZCCC RECORD03ZCCC RECORD044A444 RECORD0555B Record data before the last 8 bytes may contain x'00' thru x'FF', there is no specific delimiter character for parsing the last 8 bytes. The last 8 bytes is also binary. I'd like to hear any ideas how this to be done by DFSORT WITHOUT using E15/E35. Your help would be highly appreciated. Minoru Massaki - M*M -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: How do we add private volumes in SMS Tape Library to RMM as status MASTER
Hi Mike-san, Thank you very much for answering to my question. I understood what RMM does ADDVOLUME with STATUS(VOLCAT). What I thought was the 2nd reason you mentioned. The customer will makes each ADDVOLUME command based on volume status from their tape management system. Again, thank you for your reply. Minoru Massaki - (M*M) 2014-08-16 1:33 GMT+09:00 Mike Wood : > ... and 1 more reason MASTER volumes should normally have all data > sets seen and recorded while rmm (or another tms) is in control - so we > would know exactly what is on a tape. > When you add volumes using commands rmm has no knowledge of the data set > names and so cannot enforce the difference between MASTER and USER. > > Mike > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: How do we add private volumes in SMS Tape Library to RMM as status MASTER
Thank you for your reply. I understand that I can add a private volume to RMM as MASTER status with STATUS(MASTER) operand. But if there are 100,000 volumes (A0 through A9), I have to make 100,000 RMM ADDVOLUME commands depending on each volume status. If I could use STATUS(VOLCAT) operand, I need only one RMM ADDVOLUME command with COUNT(10) operand such as RMM ADDVOLUME A0 STATUS(VOLCAT) COUNT(10) for adding 100,000 volumes to RMM. Now I think that the best way is following to add private volumes to RMM as MASTER status. 1) Add volumes in SMS tape library to RMM by ADDVOLUME with STATUS(VOLCAT) 2) Make CLIST of RMM CHANGEVOLUME commands to change MASTER status from USER by RMM SEARCHVOLUME selecting only USER status volumes. 3) Execute the CLIST produced by the SEARCHVOLUME Anyway, now what I want to know is that why RMM does add private volumes in TCDB as USER status. Minoru Massaki - (M*M) 2014-08-13 2:56 GMT+09:00 Robert A. Rosenberg : > At 00:57 +0900 on 08/13/2014, Minoru Massaki wrote about How do we add > private volumes in SMS Tape Library to RMM as: > > > Now a customer is using a Tape management System they developed and >> is going to convert to RMM. >> There are many private/scratch tape volumes in SMS tape library. >> These volumes are not registered in RMM. >> When they add these volumes to RMM by RMM ADDVOLUME command with >> STATUS(VOLCAT) operand, the added private volumes status becomes USER. >> They want to add these private volumes as MASTER status (not USER status). >> Are there any way to add the private volumes to RMM with MASTER status. >> Or do they have to change volume status to MASTER from USER by >> CHANGEVOLUME >> command after adding the volumes to RMM? >> >> Why does RMM adds private volume as USER status when STATUS(VOLCAT) is >> used? >> > > Check the syntax of the ADDVOLUME command and see if there is a parm to > make the status MASTER in lieu of USER. Since you can alter it via > CHANGEVOLUME I would assume that there is a setting for ADDVOLUME to make > the volume MASTER when added. > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
How do we add private volumes in SMS Tape Library to RMM as status MASTER
Now a customer is using a Tape management System they developed and is going to convert to RMM. There are many private/scratch tape volumes in SMS tape library. These volumes are not registered in RMM. When they add these volumes to RMM by RMM ADDVOLUME command with STATUS(VOLCAT) operand, the added private volumes status becomes USER. They want to add these private volumes as MASTER status (not USER status). Are there any way to add the private volumes to RMM with MASTER status. Or do they have to change volume status to MASTER from USER by CHANGEVOLUME command after adding the volumes to RMM? Why does RMM adds private volume as USER status when STATUS(VOLCAT) is used? Your help would be highly appreciated. -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
DFSMSrmm Command Log for audit
Is there any way to take log for auditing RMM CHANGEVOLUME and DELETEVOLUME? I think that RMM journal may be used but format of RMM journal is not disclosed. Your help would be highly appreciated. -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: TS7740 and VTS B20
DITTO/ESA EVC (Exported Stacked Volume Copy) function does it. The document is following: ftp://public.dhe.ibm.com/software/websphere/awdtools/ditto/ditesv.pdf Minoru Massaki (M*M) 2012/11/27 Steve Finch : > Mike > > Would you remember what the utility was called (a program name) and where it > was documented ? > > Steve > > > From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of > Mike Wood [mww...@ntlworld.com] > Sent: Thursday, November 22, 2012 5:31 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: TS7740 and VTS B20 > > On Tuesday, 20 November 2012 16:04:18 UTC, Steve Finch wrote: >> Has anyone ever done a IMPORT on TS7740 of a EXPORT tape from a VTS B20 ? >> >> Steve > > Steve, The "export" formats are not compatible between those libraries. > IBM provides a utility to allow you to copy a VTS exported logical volume > from the container volume - you could use that to copy an entire logical > volume to a new logical volume in the TS7740. A slow process if you have many > exported logicals to recover. > > Mike Wood > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: GTF ENQ/DEQ SVC Trace for SYSZVOLS and SYSDSN on z/OS V1.12
Hi Mulder-san, Thank you very much for your information. The code change had been made in z/OS V1.10. After that release, we cannot trace ENQ/DEQ by GTF SVC trace. I'm going to try to trace it by component trace you suggested. Again, thank you a lot. Minoru Massaki (M*M) 2012/11/13 Jim Mulder : >> I took GTF ENQ/DEQ SVC Trace, but there was no SYSZVOLS/SYSDSN trace >> entry in IPCS print output even though D GRS,C indicated there were >> resource contentions for SYSZVOLS and SYSDSN. (Other ENQ/DEQ entries >> were printed) >> >> GTF Trace parameters are following. (SVC48: DEQ, SVC56:ENQ) >> >> TRACE=SSCHP,IOP,CCWP,SVCP >> SSCH=IO=(5F0) >> SVC=(19,20,31,35,37,48,56) >> CCW=(SI,CCWN=512,DATA=128,IOSB) >> >> I took same GTF SVC trace on old z/OS V1.7 system. >> There were many SYSZVOLS, SYSDSN trace entries in IPCS print output. >> >> How can I trece SYSZVOLS/SYSDSN ENQ/DEQ activities in z/OS V1.12. >> >> Is this bug or some code changes SVC trace for ENQ/DEQ? > > Probably some code changed to use ISGENQ instead of ENQ/DEQ. > ISGENQ uses PC interface into GRS, so it is not traceable > via a GTF SVC trace. A SYSGRS component trace, using > the REQUEST0 and REQUEST1 options, might provide the tracing you > desire. > > Jim Mulder z/OS System Test IBM Corp. Poughkeepsie, NY > > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
GTF ENQ/DEQ SVC Trace for SYSZVOLS and SYSDSN on z/OS V1.12
Hello there, I took GTF ENQ/DEQ SVC Trace, but there was no SYSZVOLS/SYSDSN trace entry in IPCS print output even though D GRS,C indicated there were resource contentions for SYSZVOLS and SYSDSN. (Other ENQ/DEQ entries were printed) GTF Trace parameters are following. (SVC48: DEQ, SVC56:ENQ) TRACE=SSCHP,IOP,CCWP,SVCP SSCH=IO=(5F0) SVC=(19,20,31,35,37,48,56) CCW=(SI,CCWN=512,DATA=128,IOSB) I took same GTF SVC trace on old z/OS V1.7 system. There were many SYSZVOLS, SYSDSN trace entries in IPCS print output. How can I trece SYSZVOLS/SYSDSN ENQ/DEQ activities in z/OS V1.12. Is this bug or some code changes SVC trace for ENQ/DEQ? Your help would be appreciated. -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: How to retain volumes by days when VOLUME VRS is used in DFSMSrmm
Hi Wood-san, Thank you very much for your support. > Is this volser range in a specific library and the only range in that library? At this point the volser range in a specific library. (They only have one SMS library). But in the future, volser Ax, Bx are in Library-A and Xx, Yz are in Library-B. > What are they using to direct data sets to that volser range? They are using PRIVATE mount. For example, application team gets a range of tape volumes in a library from operational department. They use these volumes freely. Some data sets in the volser range will be protected by data set name VRSs. There are several application team and they get their own volser range that default retention date are depending on each application. > Perhaps if all the details were known it might be possible to solve the > challenge, but IBM-MAIN probably isnt the medium for that. > Yes, I think so too. Anyway, I appreciate your kind help. Minoru Massaki (M*M) 2012/8/25 Mike Wood : > Massaki-san said >> They want to set default retantion date based on volser range. > > This is a challenge. rmm tries to first determine how VRSes match to the data > sets, regardless of volser, primarily using data set name and secondarily via > SMS MC and VRS management value. In addition the volume can match to a volume > VRS, either specific or generic. When not/no longer VRS retained, the volume > EXPDT determines when the volume expires. > > Is this volser range in a specific library and the only range in that library? > What are they using to direct data sets to that volser range? If it were SMS > SG it could be possible to assign also a specific SMS MC to the data sets for > rmm to use for retention. However, you would have to ensure that there was > no match to a data set VRS (remember that the default VRS * is not matched to > when either SMS MC or VRS MV are used). > > Depending on the z/OS there are slightly better options with R13, where rmm > now has a a choice retention methods. Using RM(EXPDT) would avoid the VRS > matching and enable your customer to do what they want. > > The above ways might also require some code to be written for EDG_EXIT100 to > set correct VRS MV/EXPDT based on volser or target library. > > Perhaps if all the details were known it might be possible to solve the > challenge, but IBM-MAIN probably isnt the medium for that. > > Mike Wood independent rmm expert > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: How to retain volumes by days when VOLUME VRS is used in DFSMSrmm
Wood-san, Thank you for your explanation. What I like to know is following: When I use specific (full 6 character) volser in VOLUME VRS parameter, why the COUNT become for DAYS. And the volser is generic, why the COUNT is treated as # of volumes. This is what I'm looking for in the manual. Your help would be appreciated. Minoru Massaki (M*M) 2012/8/25 Mike Wood : > Massaki-san said : >>But I could not find out the description or the explanation regarding to type >>of retention for the COUNT in VOLUME VRS. I have checked R6, R10, R13 RMM G&R >>manuals. I you point out where the description in the manual, I really >>appreciate it. > > A: It is kind-of in the G&R under ADDVRS COUNT explanation. > > Use COUNT(number_of_days) to request that DFSMSrmm retain all cycles or > copies of a data set, or a volume for the number of days you require. > > Use COUNT(number_of_volumes) to request that DFSMSrmm retain the number of > volumes you want. > > Down with STORENUMBER operand it is much clearer > > Mike Wood > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: How to retain volumes by days when VOLUME VRS is used in DFSMSrmm
Wood-san, Thank you very much for your comments. It is valuable for me. When I specified specific(full) volume serial in VOLUME parameter in ADDVRS command, COUNT became DAYS. If I use generic volume serial, the COUNT becomes number of volumes, as you said. But I could not find out the description or the explanation regarding to type of retention for the COUNT in VOLUME VRS. I have checked R6, R10, R13 RMM G&R manuals. I you point out where the description in the manual, I really appreciate it. The customer alredy uses OPTION RETPDT and DAYS COUNT of data set VRSs. They want to set default retantion date based on volser range. It seems to me that specific volser specification in VOLUME VRSs is infeasible because a bunch of VOLUME VRS have to be used. Again, thank you a lot! P.S. COUNT(0) in VOLUME VRS cannot be specified in any z/OS rereases. Only 0 can be specified in data set VRS, according to RMM manual. Minoru Massaki (M*M) 2012/8/24 Mike Wood : > Massaki-san, you said > >>Thank you very much for informing me that COUNT(0) is available only > above z/OS V1.9. > > A customer wants to use both volume and data set name VRS. > I don't know its detailed reason. The customer just ask us how to > retain volumes by days. They also use data set VRSs. > I guess that if a volume doesn't match data set VRSs, they want to > retain the volume by volume VRS. >> > A: There are multiple ways to address the requirement, but knowing which > would be best requires detailed knowledge about the customers situation and > system release levels. You already have indicated that its an older, perhaps > out of normal support release > Using volume VRSes you can either use generic volume and rmm retains cycles - > i.e. a number of volumes, or you can sue specific volume VRSes and rmm will > retain based on DAYS. This is explained in the rmm G&R for ADDVRS subcommand. > > To retain by DAYS you also have options such as: > - use the default retention period such as OPTION RETPD(5) > - use a data set VRS with DAYS COUNT(5) - This requires that you know the > data set names of the files you plan to place on those volumes. > > Mike Wood > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: How to retain volumes by days when VOLUME VRS is used in DFSMSrmm
Thank you very much for informing me that COUNT(0) is available only above z/OS V1.9. A customer wants to use both volume and data set name VRS. I don't know its detailed reason. The customer just ask us how to retain volumes by days. They also use data set VRSs. I guess that if a volume doesn't match data set VRSs, they want to retain the volume by volume VRS. Minoru Massaki (M*M) 2012/8/23 Pinnacle : > You have to be on z/OS V1R9 for COUNT(0). Is there a reason you can't use a > dataset VRS? > > > On 8/22/2012 3:15 PM, Minoru Massaki wrote: > > Hi Conley-san, > > I tried to specify COUNT(0) on VOLUME VRS but the count must be from 1 > to 9. So COUNT(0) became error. > > I'll attach a zipped all output lists. Password for un-zip is "vrs". > I used DAYS2 next VRS instead DAYS5 and target volume is VTP026. > > Our test system is very old z/OS V1.7 because our customers are still > using old V1.6 or V1.7.:-( > I'll test this VRS process on z/OS V1.12 in near future. > > Your help is appreciated. > > > Minoru Massaki (M*M) - SoftPlex Inc, Tokyo, Japan > > > 2012/8/22 Thomas Conley : > > On 8/22/2012 6:11 AM, Minoru Massaki wrote: > > Hello Conley-san, > > Thank you for your suggestion. > > I added VOLUME VRS and next_VRS as following: >ADDVRS VOLUME(VTP02*) NEXTVRS(DAYS5) >ADDVRS NAME(DAYS5) DAYS COUNT(5) > > Then I wrote a data set on volume VTP029 > > After Housekeeping, retention date field of VTP029 was CYCL/9. > It seems to me that NEXTVRS is NO effect. > > Then I changed VOLUME VRS as following. >ADDVRS VOLUME(VTP02*) COUNT(1) NEXTVRS(DAYS5) > > Housekeeping ran again, then the retention data of VTP029 became CYCL/1. > > I don't know why NEXTVRS is NO effect. > Our VRSEL option in EDGPRMxx is VRSEL(NEW). > > Are there something wrong in my specification about VRS? > > Your help is appreciated. > > Minoru, > > Try COUNT(0). If that doesn't work, post the VRSEL REPORT output, and > the EDJACTP report output for the volume. > > Regards, > Tom Conley > > > > -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: How to retain volumes by days when VOLUME VRS is used in DFSMSrmm
Hello Conley-san, Thank you for your suggestion. I added VOLUME VRS and next_VRS as following: ADDVRS VOLUME(VTP02*) NEXTVRS(DAYS5) ADDVRS NAME(DAYS5) DAYS COUNT(5) Then I wrote a data set on volume VTP029 After Housekeeping, retention date field of VTP029 was CYCL/9. It seems to me that NEXTVRS is NO effect. Then I changed VOLUME VRS as following. ADDVRS VOLUME(VTP02*) COUNT(1) NEXTVRS(DAYS5) Housekeeping ran again, then the retention data of VTP029 became CYCL/1. I don't know why NEXTVRS is NO effect. Our VRSEL option in EDGPRMxx is VRSEL(NEW). Are there something wrong in my specification about VRS? Your help is appreciated. Minoru Massaki (M*M) 2012/8/22 Thomas Conley : > On 8/21/2012 7:37 PM, Thomas Conley wrote: >> On 8/21/2012 12:20 PM, Minoru Massaki wrote: >>> Hello RMM experts, >>> >>> I like retain volumes (volser prefix is VTP02) 5 days by VOLUME VRS. >>> Then I added a VOLUME VRS as following. >>> >>> ADDVRS VOLUME(VTP02*) COUNT(5) >>> >>> (If I add operand DAYS to specify retention type, it became an error. >>>IKJ56712I INVALID KEYWORD, DAYS >>> RMM Manual says there is no DAYS operand for ADDVRS VOLUME.) >>> >>> >>> I created a data set on volume VTP020, and ran RMM housekeep with >>> VRSEL, EXPROC parms. >>> After that I display the volume VTP020 through ISMF pannel. >>> Retention date field of the VTP020 showed "CYCL/5", not "/ddd" >>> (ddd=current date+5) >>> >>> Is this working as design or bug? >>> >>> I want to retain the volume 5 days long, NOT cycle 5. >>> How can I set the retention data as current data + 5? >>> >> >> Minoru, >> >> COUNT for a volume VRS is the number of volumes you want to retain, >> hence the CYCL/5 on the volume retention. Eliminate COUNT on the >> VOLUME VRS, or specify COUNT(9), then use a NEXTVRS(DAYS) and create >> ADDVRS DAYS5 DAYS(5). >> >> Regards, >> Tom Conley >> > > Sorry, that should have said NEXTVRS(DAYS5). > > Regards, > Tom Conley > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
How to retain volumes by days when VOLUME VRS is used in DFSMSrmm
Hello RMM experts, I like retain volumes (volser prefix is VTP02) 5 days by VOLUME VRS. Then I added a VOLUME VRS as following. ADDVRS VOLUME(VTP02*) COUNT(5) (If I add operand DAYS to specify retention type, it became an error. IKJ56712I INVALID KEYWORD, DAYS RMM Manual says there is no DAYS operand for ADDVRS VOLUME.) I created a data set on volume VTP020, and ran RMM housekeep with VRSEL, EXPROC parms. After that I display the volume VTP020 through ISMF pannel. Retention date field of the VTP020 showed "CYCL/5", not "/ddd" (ddd=current date+5) Is this working as design or bug? I want to retain the volume 5 days long, NOT cycle 5. How can I set the retention data as current data + 5? Your help would be highly appreciated. -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: TS7700: is there a z/OS interface to the TS3500 tape library?
Hello Kees-san, As far as I know, cleaner cartridges in TS3500 (3494) is NOT belong to any Logical Lbrary of TS3500 which is used for TS7740 or IBM 3494/VTS. As Wood-san mentioned, D SMS,LIBRARY(lib-name),DETAIL command for TS3500 does NOT contain cleaner cartridge information. So OP0008 and OP0401 messages are issued only for 3494 tape library, not for TS3500. You may have to use TS3500 CLI interface to get cleaner cartridge information for the TS3500. If you find nice way to know TS3500 cleaner cartridge information from MVS, please let us know. Minoru Massaki (M*M) 2012/7/5 Vernooij, CP - SPLXM : > "Mike Wood" wrote in message > news:<9338247828173738.wa.mwwoodntlworld@listserv.ua.edu>... >> Kees, I dont know of good interface. The books do mention a CLI > which is available via Java. > http://publib.boulder.ibm.com/infocenter/ts3500tl/v1r0/index.jsp?topic=% > 2Fcom.ibm.storage.ts3500.doc%2Fipg_3584_cli.html >> >> OAM provides possible alternatives: >> 1. D SMS LIBRARY(),DETAIL output contains a status line when there are > no cleaner cartridges. >> 2. The library issues an alert to the host systems when something > happens with cleaner cartridges, these are issued by OAM with CBR3750I, > and contains things like "OP0008 * The library is out of CST/ECCST > cleaner cartridges." There are many alerts related to cleaner carts, see > here > http://publib.boulder.ibm.com/infocenter/ts7700/cust/index.jsp?topic=%2F > com.ibm.storage.ts7740.doc%2Fts7740_ua_operator_info.html >> >> You could use automation to detect and parse the message and create > your own alert to ops. >> >> Mike Wood >> > > Mike, > > I was looking for warning operations before it really becomes a problem, > e.g. when the number of cleaning cartridges falls below 3. Especially > for the remote cluster, so they can plan a trip to insert new ones. > > I have now pointed them to the GUI, where they can regularly check the > status of the cleaning cartridges. > > I will look for automating and emailing them: > OP0008 W Media * The library is out of CST/ECCST cleaner cartridges. > > And maybe also: > OP0401 M Media * x cleaner cartridge (yy) was ejected due to > maximum use > > Thanks for your investigations, > Kees. > > > For information, services and offers, please visit our web site: > http://www.klm.com. This e-mail and any attachment may contain confidential > and privileged material intended for the addressee only. If you are not the > addressee, you are notified that no part of the e-mail or any attachment may > be disclosed, copied or distributed, and that any other action related to > this e-mail or attachment is strictly prohibited, and may be unlawful. If you > have received this e-mail by error, please notify the sender immediately by > return e-mail, and delete this message. > > Koninklijke Luchtvaart Maatschappij NV (KLM), its subsidiaries and/or its > employees shall not be liable for the incorrect or incomplete transmission of > this e-mail or any attachments, nor responsible for any delay in receipt. > Koninklijke Luchtvaart Maatschappij N.V. (also known as KLM Royal Dutch > Airlines) is registered in Amstelveen, The Netherlands, with registered > number 33014286 > **** > > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- 全先 実 - Minoru Massaki (M*M) E-mail: mmass...@gmail.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN