Re: Assistance with Converting IMS DB to MySQL DB

2024-05-18 Thread Massimo Biancucci
Jason,

in addition to all the previous comment, keep attention to the fact that
it's not so unusual that programmers redefine fields into a DLI segment (or
the entire segment itself) so fields can or can not be what they appear.

You should have ALL the old programs accessing DLI data and double check.

Good luck.
Max


Privo
di virus.www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno ven 17 mag 2024 alle ore 20:46 ITschak Mugzach <
05a7ced721d8-dmarc-requ...@listserv.ua.edu> ha scritto:

> If you have IMS installed, you can use rexx to read the database and create
> sql statements.
>
> ITschak
>
> *| **Itschak Mugzach | Director | SecuriTeam Software **|** IronSphere
> Platform* *|* *Information Security Continuous Monitoring for Z/OS, zLinux
> and IBM I **|  *
>
> *|* *Email**: i_mugz...@securiteam.co.il **|* *Mob**: +972 522 986404 **|*
> *Skype**: ItschakMugzach **|* *Web**: www.Securiteam.co.il  **|*
>
>
>
>
>
> בתאריך יום ו׳, 17 במאי 2024 ב-19:53 מאת Andrew Wilkinson <
> 04f504c2b946-dmarc-requ...@listserv.ua.edu>:
>
> > Jason,Please excuse the terrible formatting from my phone.Does the DBD
> > describe every byte of every segment?If so, you won't need the
> > copybooks.Also you will need to reformat the IMS unload file before
> > reloading into DB2, at the very least because of keys cascading from
> parent
> > segment(s).You do need an IMS expert to do this cleanly.Cheers,Andrew
> >  Original message From: Jason Cai 
> > Date: 17/05/2024  09:21  (GMT+00:00) To: IBM-MAIN@LISTSERV.UA.EDU,
> Andrew
> > Wilkinson  Cc: Jason Cai <
> > ibmm...@foxmail.com> Subject: Re: Assistance with Converting IMS DB to
> > MySQL DB Dear Andrew,Thank you for your suggestion. I have some thoughts
> on
> > the IMS segment layout and defining SQL columns, and I’d like to confirm
> > with you:If I have the DBD (Database Description), is it sufficient to
> > correctly define the SQL columns? Or do I need the application copybook
> in
> > addition to the DBD?If the SQL columns are defined correctly, is it
> > possible to do the following:a. Unload Data from IMS using PGM=DFSURGU0b.
> > Define DB2 Tablesc. Load Data into DB2 using PGM=DSNUTILBThe above are
> some
> > of my ideas, and I’m not sure if they are correct. I hope to get your
> > guidance. Thank you very much for your help!Best regards,Jason Cai
> >
> > --
> > 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
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Mainframe performance tool replacement

2024-05-08 Thread Massimo Biancucci
In a future software selection do not forget to evaluate EPV too.

Best regards.
Max



Privo
di virus.www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mer 8 mag 2024 alle ore 17:43 Rebecca Martin <
050348c1817e-dmarc-requ...@listserv.ua.edu> ha scritto:

> Look into using Pivitor, software as a service. It will provide more and
> better reports than you probably have today and not use any CPU or use any
> DASD, and is very reasonably priced. Plus you will get a yearly review of
> your system performance with performance subject matter experts. All you
> have to do is FTP the SMF data daily. You can also have them do a free
> cursory review of your data with you and that will also give you a good
> demonstration of Pivitor.
> https://www.pivotor.com/
> I do not work for EPS but used their product in my last 2 positions and
> love it.
> Rebecca
>
> --
> 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


Re: SYNCSORT question - how to specify different sorting parameters for JOIN input files F1/F2

2024-05-07 Thread Massimo Biancucci
Hi,

AFAIK most of the directive can be used into a JNFxCNTL.
For instance, I use INREC and SUM FIELDS as well.
When in doubt, try and look at the messages in case of error.

I'm pretty sure guys from Precisely could do better with manuals.

Best regards.
Max




Privo
di virus.www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno lun 6 mag 2024 alle ore 19:18 Farley, Peter <
031df298a9da-dmarc-requ...@listserv.ua.edu> ha scritto:

> This is a question specific to the SYNCSORT product, not a general SORT
> question.
>
> I do not have access to question the Syncsort support team, and I cannot
> see from the latest programmer's guide for the product (Syncsort MFX
> Programmer's Guide, Version 3.1) what the answer to this question is, so I
> am asking here for help from anyone already knowledgeable in the product.
>
> IBM's DFSORT allows one to specify DD statements JNF1CNTL and JNF2CNTL to
> enter different sorting parameters for the two JOIN input files.  As far as
> I can tell from both manual reading and from a few practical attempts,
> SYNCSORT does NOT support those DD statements.
>
> How does one perform the DFSORT-equivalent function of JNF1CNTL and
> JNF2CNTL using SYNCSORT?  I.E., how do I enter sorting control statements
> (INCLUDE/OMIT. INREC, SORT or OPTION COPY, etc.) separately for JOIN files
> F1 and F2?
>
> TIA for any light you can shed on this specific area.
>
> Peter
>
> This message and any attachments are intended only for the use of the
> addressee and may contain information that is privileged and confidential.
> If the reader of the message is not the intended recipient or an authorized
> representative of the intended recipient, you are hereby notified that any
> dissemination of this communication is strictly prohibited. If you have
> received this communication in error, please notify us immediately by
> e-mail and delete the message and any attachments from your system.
>
> --
> 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


Re: EBCDIC/ASCII - FTP

2024-05-02 Thread Massimo Biancucci
At some customer I use a java zip tool derived from IBM sample that can
convert to a destination (e.g. IBM850, UTF-8 etc.) CCSID on the fly.
Of course the whole byte sequence must be zoned character or you'll
encounter issues reading file after unzipping at the destination.

Best regards.
Max


Privo
di virus.www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mer 1 mag 2024 alle ore 04:10 BM <
0634aa61051b-dmarc-requ...@listserv.ua.edu> ha scritto:

> Looking for expert's opinions/solutions here.
>
> Trying to FTP large file from zOS2.5 to Windows server using FTP protocol
> but it's taking more time, trying to compress file on zOS (TRSMAIN) then
> ftping, its quick but at destination (Windows) it's not readable after
> Unterse.
>
> On zOS, its EBCDIC file, is there any solution first convert to ASCII then
> Terse send?
>
> Or any tools that can help on windows system to convert data from EBCDIC
> to ASCII after Unterse?
>
> Appreciate your input.
>
>
> Thanks,
> BM
>
> --
> 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


Re: dummy IDCAMS ALTER

2024-04-23 Thread Massimo Biancucci
Hi,

I did a couple of tests.

If the VSAM is allocated to CICS I receive a IDC3351I with reason 168
during the VERIFY.
As far as I understand, ALTER with no parm does nothing but ensure the file
is not allocated to any other user.

Hope this helps.
Max


Privo
di virus.www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mar 23 apr 2024 alle ore 15:51 Radoslaw Skorupka <
0471ebeac275-dmarc-requ...@listserv.ua.edu> ha scritto:

> I have found a job with series of following commands:
> ALTER HLQ.SOME.VSAM.CLSTR
> ALTER HLQ.SOME.VSAM.CLSTR.*
> ALTER HLQ.YET.ANOTHER
> ALTER HLQ.YET.ANOTHER.*
> ...
>
> Q: what does it do?
>
>
>
> Another question:
> First step in the job is a series of VERIFY HLQ.SOME.VSAM commands.
> During the day the VSAM files are in use by some CICS region.
> Would the job harm CICS processing or just end with "dataset in use"
> reason?
>
> --
> Radoslaw Skorupka
> Lodz, Poland
>
> --
> 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


Re: Big LPAR vs small LPAR and DataSharing.

2024-04-21 Thread Massimo Biancucci
I found a youtube video of the GSE presentation:
https://www.youtube.com/watch?v=WAjMr4q4lUk

Slide 10 contains the topic.
It's not fully clear what "system does mean".
Refer is to the multiprocessor factor that should be related to CEC
configuration and at the same time talks about adding a processor to a
member that should be related to LPAR configuration.

If we refer to CEC configuration, it should lead me to think that it's
better to have more small physical machines (with 8 processors ?), which
means I need 8 3931-708 CECs to raise 100K Mips.
It does not seem so cheap and doesn't fully explain why IBM builds CEC with
200 processors.

So, in a real configuration with two CECS and N LPARs, Data Sharing, some
partitions with more than 12 GPs + 8 zIIPs, would it be better to add a
couple more partitions with less GPs and zIIP ?
Polarization is OK.
Does there exist a factor (I mainly think to WLM and dispatcher) that can
be so stressed in managing such a number of processors and processes ?
Is there any advantage in lowering the number of processes per LPAR ?

Best regards.
Max







<https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail>
Privo
di virus.www.avast.com
<https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno sab 20 apr 2024 alle ore 11:34 Graham Harris <
05dd2d4999ec-dmarc-requ...@listserv.ua.edu> ha scritto:

> "It doesn't take an extremely large number of CPUs
> before a single-image system will deliver less capacity than a sysplex
> configuration of two systems, each with half as many CPUs".
>
> In the original context of the GSE material, does "system" here mean
> physical CEC, or LPAR?
>
> It is unclear, and "It matters".
>
> For LPAR setup on a single CEC, in my view, the less LPARs the better
> (although there may well be some "crossing point" with extremely large
> numbers of CPUs, but have no experience of any differential comparisons to
> be able to comment.  zPCR may give a clue, maybe).
> Much more chance of maximising High polarity LPs and thus letting
> Hiperdispatch do what it is there to do, which, by design, maximises
> efficiency.
>
> We have smallish CECs for our Development which have loads of LPARs and
> with the significantly bigger engine sizes these days, even on 5xx models,
> we struggle to get any High polarity LPs on any LPAR.  Which is not good.
> I have requested consideration of an "inbetween" hardware level between 4xx
> & 5xx, as the uniprocessor size gap is now just so huge on z16.  But am not
> holding my breath.
>
>
>
> On Sat, 20 Apr 2024 at 09:52, Colin Paice <
> 059d4daca697-dmarc-requ...@listserv.ua.edu> wrote:
>
> > IBM provides tables of the cpu available with different processors and
> > different numbers of engines.  Search for LSPR
> > <
> >
> https://www.ibm.com/support/pages/ibm-z-large-systems-performance-reference
> > >.
> >
> > https://www.ibm.com/support/pages/ibm-z-lspr-itr-zosv2r4#ibmz16A02
> gives
> > 1 CPU 13 MSU
> > 2  25
> > 3  37
> > 4 48
> > 5 59
> > 6 69
> >
> > So  one system with 6 CPU has 69 MSU ..  6 systems each with one CPU has
> 78
> > MSU
> >
> > Part of this is serialisation of data. If two CPUs want to access the
> same
> > piece of real memory they interact.  In simplistic terms the microcode
> may
> > have to go to a different physical chip to ensure only one processor is
> > using the RAM.  If the two CPUs are adjacent on a chip, it is faster.
> >
> > We had multiple threads running in an address space.  We used a common
> > buffer for storing trace data from the threads, and used Compare and Swap
> > to update the "next free buffer".   I think about 10-20 % of the total
> > address space CPU was used for this CS instruction, because every thread
> > was trying to get exclusive access to the field and the instruction had
> to
> > spin  waiting for the buffer.  The more CPUs the more spin  - and so less
> > CPU available for productive work..
> > We solved the problem by giving each thread its own trace buffer and
> merged
> > these when processing the dump.   This hotspot simply disappeared
> > Colin
> >
> >
> >
> > On Fri, 19 Apr 2024 at 09:33, Massimo Biancucci <
> > 05a019256424-dmarc-requ...@listserv.ua.edu> wrote:
> >
> > > Hi everybody,
> > >
> > > In a presentation at GSE I saw a slide with a graph about the advantage
> > of
> > > having mor

Big LPAR vs small LPAR and DataSharing.

2024-04-19 Thread Massimo Biancucci
Hi everybody,

In a presentation at GSE I saw a slide with a graph about the advantage of
having more small sysplex LPARs versus a bigger one.
So for instance, it's better to have 5 LPARs with 4 processors than one
with 20.

There was a sentence: "It doesn't take an extremely large number of CPUs
before a single-image system will deliver less capacity than a sysplex
configuration of two systems, each with half as many CPUs".
And: "In contrast to a multiprocessor, sysplex scaling is near linear.
Adding another system to the sysplex may give you more effective capacity
than adding another CP to an existing system."

We've been told (IBM Labs, it seems) that a 4 ways DataSharing with 8 CPUs
perform 20% better than a single LPARs with 32 CPUs.
The same (at another customer site) with "having more than 8 CPUs in a
single LPAR is counterproductive".

Putting these infos all together, it seems it's better to have more small
partitions (how small ???) in data sharing than, let me say, four bigger
ones (in data sharing too).

Anybody there has direct experience on doing and measuring such scenarios ?
Mainly standard CICS/Batch/DB2 application.
Of course I'm talking about well defined LPARs with High Polarization CPUs,
so don't think about that.

Could you imagine and share your thoughts (direct experiences would be
better) about where the inefficiency comes from ?
Excluding HW issues (Polarization and so on), could it come from zOS
related inefficiency (WLM queue management) ?
If so, do zIIP CPUs participate in inefficiency growth ?

I know that the usual response is "it depends", anyway I'm looking for
general guidelines that allow me to choose.

Thanks a lot in advance for your valuable time.
Max


Privo
di virus.www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Slow FTP's

2024-03-28 Thread Massimo Biancucci
David,

far from me the idea XMIT would have solved.
It's a try to understand if problem is related to the FTP server or client.
:D

Regards.
Max

Il giorno gio 28 mar 2024 alle ore 15:11 David Spiegel <
0468385049d1-dmarc-requ...@listserv.ua.edu> ha scritto:

> Hi Max,
> XMIT??? ... They would probably exceed some limit long before the
> transmission begins.
>
> Regards,
> David
>
> On 2024-03-28 09:57, Massimo Biancucci wrote:
> >   Dave,
> >
> > did you try the basic PING and TRACERTE to see if there's anything
> > different ?
> > Is it a basic FTP ? SFTP ? FTPS ?
> >
> > Did you try with XMIT through JNE (if available) to measure any
> difference ?
> >
> > Best regards.
> > Max
> >
> > Il giorno gio 28 mar 2024 alle ore 14:54 Styles, Andy (CIO GS - Core
> > Infrastructure & IT Operations ) <
> > 00d68f765d25-dmarc-requ...@listserv.ua.edu> ha scritto:
> >
> >> Classification: Public
> >>
> >> Do you have access to any other kind of transfer mechanism, and if so,
> >> does it happen with that too? (thinking Connect:Direct for example).
> >> Is the target device of the transfer the same on fast vs slow?
> >>
> >> Andy Styles
> >> z/Series Systems Programmer
> >>
> >> -Original Message-
> >> From: IBM Mainframe Discussion List  On
> Behalf
> >> Of Jousma, David
> >> Sent: Thursday, March 28, 2024 1:14 PM
> >> To: IBM-MAIN@LISTSERV.UA.EDU
> >> Subject: Re: Slow FTP's
> >>
> >> *** This email is from an external source - be careful of attachments
> and
> >> links. Please report suspicious emails ***
> >>
> >> There is, but same for all lpars involved.
> >>
> >> Dave Jousma
> >> Vice President | Director, Technology Engineering
> >>
> >>
> >>
> >>
> >>
> >> From: IBM Mainframe Discussion List  on
> behalf
> >> of Joe Monk <05971158733e-dmarc-requ...@listserv.ua.edu>
> >> Date: Thursday, March 28, 2024 at 9:12 AM
> >> To: IBM-MAIN@LISTSERV.UA.EDU 
> >> Subject: Re: Slow FTP's
> >> Is there a firewall or switch in the path? Joe On Thu, Mar 28, 2024 at
> 8:
> >> 03 AM Jousma, David < 01a0403c5dc1-dmarc-request@ listserv. ua.
> edu>
> >> wrote: > Joe, > > I had not, just did, worse yet > > EZA1485I 12902400
> bytes
> >>
> >>
> >> Is there a firewall or switch in the path?
> >>
> >>
> >>
> >> Joe
> >>
> >>
> >>
> >> On Thu, Mar 28, 2024 at 8:03 AM Jousma, David <
> >>
> >> 01a0403c5dc1-dmarc-requ...@listserv.ua.edu> wrote:
> >>
> >>
> >>
> >>> Joe,
> >>> I had not, just did, worse yet
> >>> EZA1485I 12902400 bytes transferred - 10 second interval rate 1281.27
> >>> KB/sec - Overall transfer rate 1281.27 KB/sec
> >>> EZA1485I 21381120 bytes transferred - 10 second interval rate 838.65
> >>> KB/sec - Overall transfer rate 1059.52 KB/sec
> >>> EZA1485I 29491200 bytes transferred - 10 second interval rate 791.23
> >>> KB/sec - Overall transfer rate 969.15 KB/sec
> >>> Dave Jousma
> >>> Vice President | Director, Technology Engineering
> >>> From: IBM Mainframe Discussion List  on
> >>> behalf
> >>> of Joe Monk <05971158733e-dmarc-requ...@listserv.ua.edu>
> >>> Date: Thursday, March 28, 2024 at 8:56 AM
> >>> To: IBM-MAIN@LISTSERV.UA.EDU 
> >>> Subject: Re: Slow FTP's
> >>> Have you tried MODE S (streaming) and TYPE E? Joe On Thu, Mar 28, 2024
> >>> at
> >>> 7: 31 AM Jousma, David < 01a0403c5dc1-dmarc-request@ listserv. ua.
> >>> edu> wrote: > All, > > Grasping at straws here, IBM support center is
> >>> baffled too. >
> >>> Have you tried MODE S (streaming) and TYPE E?
> >>> Joe
> >>> On Thu, Mar 28, 2024 at 7:31 AM Jousma, David <
> >>> 01a0403c5dc1-dmarc-requ...@listserv.ua.edu> wrote:
> >>>> All,
> >>>> Grasping at straws here, IBM support center is baffled too.
> >>>> To clone z/OS maintenance to various disconnected sysplex’s I do a
> >>>> DFDSS
> >>>> dump, and FTP it everywhere it needs to be.  Its roughly a 50Gb file
> >>>> transfer.  There is some environmental issue causing slow file
> >>>> transfer

Re: Slow FTP's

2024-03-28 Thread Massimo Biancucci
Dave,

it becomes more interesting.
Could it depend on the file data itself ?

Have you tried a BIG file, EBCDIC with mostly the same data inside ?
Same kind of transmission, MODE B and EBCDIC.

Regards.
Max.




Il giorno gio 28 mar 2024 alle ore 15:09 Jousma, David <
01a0403c5dc1-dmarc-requ...@listserv.ua.edu> ha scritto:

> As I mentioned, a standard binary transfer runs all day to all lpars at
> 140Mb/sec.   It seems that only DSS dump files with MODE B, and EBCDIC
> specified slows them down.
>
> I have reached out to our network/firewall teams to see if there some sort
> of data inspection going on.
>
> Dave Jousma
> Vice President | Director, Technology Engineering
>
>
>
>
>
> From: IBM Mainframe Discussion List  on behalf
> of Styles, Andy (CIO GS - Core Infrastructure & IT Operations ) <
> 00d68f765d25-dmarc-requ...@listserv.ua.edu>
> Date: Thursday, March 28, 2024 at 9:54 AM
> To: IBM-MAIN@LISTSERV.UA.EDU 
> Subject: Re: Slow FTP's
> Classification: Public Do you have access to any other kind of transfer
> mechanism, and if so, does it happen with that too? (thinking Connect:
> Direct for example). Is the target device of the transfer the same on fast
> vs slow? Andy Styles z/Series
>
>
> Classification: Public
>
>
>
> Do you have access to any other kind of transfer mechanism, and if so,
> does it happen with that too? (thinking Connect:Direct for example).
>
> Is the target device of the transfer the same on fast vs slow?
>
>
>
> Andy Styles
>
> z/Series Systems Programmer
>
>
>
> This e-mail transmission contains information that is confidential and may
> be privileged.   It is intended only for the addressee(s) named above. If
> you receive this e-mail in error, please do not read, copy or disseminate
> it in any manner. If you are not the intended recipient, any disclosure,
> copying, distribution or use of the contents of this information is
> prohibited. Please reply to the message immediately by informing the sender
> that the message was misdirected. After replying, please erase it from your
> computer system. Your assistance in correcting this error is appreciated.
>
> --
> 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


Re: Slow FTP's

2024-03-28 Thread Massimo Biancucci
 Dave,

did you try the basic PING and TRACERTE to see if there's anything
different ?
Is it a basic FTP ? SFTP ? FTPS ?

Did you try with XMIT through JNE (if available) to measure any difference ?

Best regards.
Max

Il giorno gio 28 mar 2024 alle ore 14:54 Styles, Andy (CIO GS - Core
Infrastructure & IT Operations ) <
00d68f765d25-dmarc-requ...@listserv.ua.edu> ha scritto:

> Classification: Public
>
> Do you have access to any other kind of transfer mechanism, and if so,
> does it happen with that too? (thinking Connect:Direct for example).
> Is the target device of the transfer the same on fast vs slow?
>
> Andy Styles
> z/Series Systems Programmer
>
> -Original Message-
> From: IBM Mainframe Discussion List  On Behalf
> Of Jousma, David
> Sent: Thursday, March 28, 2024 1:14 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Slow FTP's
>
> *** This email is from an external source - be careful of attachments and
> links. Please report suspicious emails ***
>
> There is, but same for all lpars involved.
>
> Dave Jousma
> Vice President | Director, Technology Engineering
>
>
>
>
>
> From: IBM Mainframe Discussion List  on behalf
> of Joe Monk <05971158733e-dmarc-requ...@listserv.ua.edu>
> Date: Thursday, March 28, 2024 at 9:12 AM
> To: IBM-MAIN@LISTSERV.UA.EDU 
> Subject: Re: Slow FTP's
> Is there a firewall or switch in the path? Joe On Thu, Mar 28, 2024 at 8:
> 03 AM Jousma, David < 01a0403c5dc1-dmarc-request@ listserv. ua. edu>
> wrote: > Joe, > > I had not, just did, worse yet > > EZA1485I 12902400 bytes
>
>
> Is there a firewall or switch in the path?
>
>
>
> Joe
>
>
>
> On Thu, Mar 28, 2024 at 8:03 AM Jousma, David <
>
> 01a0403c5dc1-dmarc-requ...@listserv.ua.edu> wrote:
>
>
>
> > Joe,
>
> >
>
> > I had not, just did, worse yet
>
> >
>
> > EZA1485I 12902400 bytes transferred - 10 second interval rate 1281.27
>
> > KB/sec - Overall transfer rate 1281.27 KB/sec
>
> > EZA1485I 21381120 bytes transferred - 10 second interval rate 838.65
>
> > KB/sec - Overall transfer rate 1059.52 KB/sec
>
> > EZA1485I 29491200 bytes transferred - 10 second interval rate 791.23
>
> > KB/sec - Overall transfer rate 969.15 KB/sec
>
> >
>
> > Dave Jousma
>
> > Vice President | Director, Technology Engineering
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > From: IBM Mainframe Discussion List  on
> > behalf
>
> > of Joe Monk <05971158733e-dmarc-requ...@listserv.ua.edu>
>
> > Date: Thursday, March 28, 2024 at 8:56 AM
>
> > To: IBM-MAIN@LISTSERV.UA.EDU 
>
> > Subject: Re: Slow FTP's
>
> > Have you tried MODE S (streaming) and TYPE E? Joe On Thu, Mar 28, 2024
> > at
>
> > 7: 31 AM Jousma, David < 01a0403c5dc1-dmarc-request@ listserv. ua.
>
> > edu> wrote: > All, > > Grasping at straws here, IBM support center is
>
> > baffled too. >
>
> >
>
> >
>
> > Have you tried MODE S (streaming) and TYPE E?
>
> >
>
> >
>
> >
>
> > Joe
>
> >
>
> >
>
> >
>
> > On Thu, Mar 28, 2024 at 7:31 AM Jousma, David <
>
> >
>
> > 01a0403c5dc1-dmarc-requ...@listserv.ua.edu> wrote:
>
> >
>
> >
>
> >
>
> > > All,
>
> >
>
> > >
>
> >
>
> > > Grasping at straws here, IBM support center is baffled too.
>
> >
>
> > >
>
> >
>
> > > To clone z/OS maintenance to various disconnected sysplex’s I do a
> > > DFDSS
>
> >
>
> > > dump, and FTP it everywhere it needs to be.  Its roughly a 50Gb file
>
> >
>
> > > transfer.  There is some environmental issue causing slow file
> > > transfers
>
> > to
>
> >
>
> > > some systems (40mb’s a sec) and fast file transfers (150Mb/sec) to
> > > other
>
> >
>
> > > systems on the same CEC.With IBM support help, we’ve narrowed down
>
> > the
>
> >
>
> > > problem to the specification of MODE B and EBCDIC on the transfer
> > > since
>
> > it
>
> >
>
> > > is a DSS dump.   Remove those, and the transfer is fast on the slow
>
> >
>
> > > systems, and still fast on the fast systems.  Obviously that isn’t a
>
> >
>
> > > solution though.
>
> >
>
> > >
>
> >
>
> > > So, we are a GDPS shop.   The oddity is that all the “fast” transfers
> are
>
> >
>
> > > to the K systems(control systems), and all the “slow” transfers are
> > > to
>
> > the
>
> >
>
> > > traditional application systems.   TEST, DEV, PROD makes no difference,
>
> > nor
>
> >
>
> > > does LPAR busy or not busy.
>
> >
>
> > >
>
> >
>
> > > It seems there is something configured differently on the “slow”
> > > systems
>
> >
>
> > > that is affecting mode b, ebcdic file transfers, but for the life of
> > > me,
>
> > I
>
> >
>
> > > cannot put my finger on what, nor can the support center, except
> > > that the
>
> >
>
> > > issue is at the remote end, in that the OS cannot offload the data
> > > fast
>
> >
>
> > > enough, so TCPIP/FTP is slowing the transfer pace.
>
> >
>
> > >
>
> >
>
> > > A virtual adult beverage of choice to the one that can point in a
>
> >
>
> > > direction to look….
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > > Dave Jousma
>
> >
>
> > > Vice President | Director, Technology Engineering
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >

Re: CICS suspended wait time increased

2024-03-24 Thread Massimo Biancucci
Hi,

let me joke a bit.

A man went to the doctor saying: "Doctor if I use my finger and touch my
head I feel pain, if I touch my arm I feel pain, if I touch my chest I feel
pain, if I touch my leg I feel pain. What do you think the problem is ?"
The doctor: "Your finger is the problem, maybe it's broken"

The paining points are at different level and for each one there's
something to look at.
You didn't report any "value" so we can assume the problem is equally
spreaded all over those indicators.

Do you have any CPU constraints for CICS Address Spaces ?

Best regards.
Max


Il giorno dom 24 mar 2024 alle ore 07:08 raji ece <
05ff2ba04c83-dmarc-requ...@listserv.ua.edu> ha scritto:

> Hello Team,
>
> Good day,
>
> We have noticed some of our CICS transaction are getting delayed recent
> days. When we check in sysview , the suspended time is high and the
> execution time is very short.
>
> In the suspended segregation list, we could see below list with more wait
> time.
>
> Temp storage wait time
> File I/O wait time
> CICS exception wait time
> CICS TCB change mode delay time
> FC VSAM string wait time
> DB2 readyq wait time
> Resources manager interface time
> Resources manager suspended time
> ( What are the aspects for all this wait time)
>
> Also, I have noticed CICS exception and VSAM string wait time has same
> value.
>
> What are the possible ways to fix this problem?
>
> --
> 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


Re: DFSORT and IPL Date

2024-03-20 Thread Massimo Biancucci
Jack,

AFAIK SORT tools have no such capability.
As Scott suggested you need to write yourself something or, only for
instance, if you installed Mark Zelden IPLINFO tool you can invoke it and
extract the information from its output.

Regards
Max

Il giorno mer 20 mar 2024 alle ore 14:41 Jack Zukt <
059cd493dd41-dmarc-requ...@listserv.ua.edu> ha scritto:

> Hi Scott,
> Thank you for the suggestion.
> I am trying to build the JCL using only DFSORT capabilities. I was just
> wondering if maybe that particular capability would be available, as DFSORT
> as a wide range of date processing. An may be that if not yet, it would
> become available in the near future
> Regards
> Jack
>
>
> On Wed, 20 Mar 2024 at 13:27, Scott Barry  wrote:
>
> > Possibly a REXX process to capture/parse the output of a z/OS command /D
> > IPLINFO.
> >
> > Scott Barry
> > SBBTech LLC
> >
> > --
> > 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
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: DFSORT JOINKEYS problem

2024-02-15 Thread Massimo Biancucci
Jack,

I don't know the exact format of the two files.
Did you check (I mean by eyes) the field position are ok ?
Is the first SKIP correct ?

Best regard.
Max


Il giorno gio 15 feb 2024 alle ore 16:35 Jack Zukt <
059cd493dd41-dmarc-requ...@listserv.ua.edu> ha scritto:

> Hi all,
>
> I have two files created using IRRDBU00. One has type 220 records, TSO
> segments, the other one has type 200 records, base userid information.
> For the userids on the 220 type records, I want to get from the 200 type
> records the userid, user name; last logon date; default group left four
> characters.
> Unfortunately all that I am getting is an empty file.
> This is the JCL that I am using:
>
> //*
> //SET#HLQ  SET HLQ=
> //SET#HLQS SET HLQS=
> //*
> //APAGA01  EXEC PGM=IEFBR14
> //SORTOUT  DD  DSN=#01701.TXT,
> // DISP=(MOD,DELETE),SPACE=(TRK,(1))
> //*
> //SORT001  EXEC PGM=SORT
> //SYSOUT   DD  SYSOUT=*
> //SYMNAMES DD  *
> XRDW,1,04,ZD
> SKIP,1
> XTYP,1,04,ZD
> SKIP,1
> XUSR,*,08,CH
> NAME,75,20,CH
> SKIP,1
> GRP4,*,04,CH
> SKIP,1
> LDAT,114,10,CH
> *
> /*
> //IN1  DD  DISP=SHR,DSN=
> //IN2  DD  DISP=SHR,DSN=
> //OUT01DD  DSN=#01701.TXT,
> // DISP=(NEW,CATLG),
> // RECFM=FB,LRECL=45,
> // SPACE=(TRK,(15,15),RLSE)
> //SYSINDD  *
>   OPTION COPY
>   JOINKEYS F1=IN1,FIELDS=(XUSR,A),SORTED,NOSEQCK
>   JOINKEYS F2=IN2,FIELDS=(XUSR,A),SORTED,NOSEQCK
>   REFORMAT FIELDS=(F2:5,140)
>   OUTFIL FNAMES=OUT01,
>  BUILD=(1:XUSR,* 08
>   X,   * 01
>   NAME,* 20
>   X,   * 01
>   LDAT,* 10
>   X,   * 01
>   GRP4)* 04
> /*
> //*
>
> What is it that I am doing wrong?
> Regards
> Jack
>
> --
> 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


Re: Generating output in SORT with a time value

2024-02-01 Thread Massimo Biancucci
Billy,

as Sri said there's no way to ask SORT tools to put a different TS on every
record.
Hereby a "try" to start with an arbitrary TS (in TOD format to generate as
you like) and then generate a number of consecutive TS part (HHMMSSuu)
with a distance of 1 us.

It's a two steps and probably can be shrinked into one.
Consider it as an idea to further develop.
This doesn't guarantee any uniqueness between two different runs or single
run generating more than "1 day" number of records.
Hope this helps.
Max

//*---*
//* LET'S GENERATE A ARBITRARY NUMBERS OF ROWS WITH THE SEQNUM IN *
//* BINARY FORMAT AND A FIX TOD. LET'S CALL IT BASE TOD.  *
//*---*
//ST001EXEC  PGM=SORT
//SYSOUTDD   SYSOUT=*
//SORTIN   DD *
ABC
//SORTOUT  DD DSN=&,DISP=(,PASS),SPACE=(TRK,(10,10),RLSE)
//SYSIN DD   *
 SORT FIELDS=COPY
 OUTFIL REPEAT=10,
  BUILD=(SEQNUM,4,BI,START=0,X'DE956F5F25C18000')
*2024-01-31-23.59.59.999000
* BUILD=(SEQNUM,4,BI,X'DE9542AB0E80')
*2024-01-31-20.40.00.00
/*
//*---*
//* TOD IS A 8 BYTES BINARY WHERE BIT 51 IS 1 US  *
//* IT MEANS YOU HAVE TO DIVIDE TOD BY 4096 TO CALC NUM OF US *
//* SO:   *
//*---*
//* +1291714560   1 YEAR  *
//* +3538944  1 DAY   *
//* +147456   1 HOUR  *
//* +24576000 1 MINUTE*
//* +409600   1 SECOND*
//* +4096 1 US*
//*---*
//* SORT CAN TRANSFORM TOD TO DATE OR TIME.   *
//* FOR TIME THE MAXIMUM PRECISION IS HUNDREDTHS SECOND.  *
//* WE NEED TO CALCULATE THE LAST 4 DIGITS OF MICROSECONDS.   *
//*---*
//* FIRST ADD SEQNUM US TO THE BASE TOD.  *
//* EVERY RECORD WILL HAVE ONE US MORE.   *
//* LET'S PRINT TOD AS TC4: HHMMSSHH. *
//* LET'S CALC LAST 4 DIGITS AS REMAINDER OF TOD BY 4096. *
//* THIS IS THE VALUE IN TOD US UNITS. DIVIDE IT BY 4096 TO GET US.   *
//*---*
//* WE USE THIS MECHANISM TO USE TOD AS COUNTER AND AVOID EVALUATING  *
//*  DAY CHANGE ETC.  *
//*---*
//ST002EXEC  PGM=SORT
//SYSOUTDD   SYSOUT=*
//SORTIN   DD DSN=,DISP=(OLD,DELETE)
//SORTOUT  DD SYSOUT=*
//SYSIN DD   *
 INREC FIELDS=(1,4,SEQNUM
  5,8, BASE TS
  1,4,BI,MUL,+4096,ADD,5,8,BI,TO=BI,LENGTH=8,  ADD SEQNUM US TO BASE TS
  ((1,4,BI,MUL,+4096,ADD,5,8,BI),  CALC REMAINDER US*1
   MOD,+4096),DIV,+4096,TO=BI,LENGTH=4)
 SORT FIELDS=COPY
 OUTREC FIELDS=(C'',
   13,8,TC4,
   21,4,BI,EDIT=())
/*





Il giorno mer 31 gen 2024 alle ore 20:10 Billy Ashton <
bill00ash...@gmail.com> ha scritto:

> Thanks so much for this, Kolusu. I was hoping to find a way to get a new
> time on every record, but I think I can work with this and the following
> sequence number.
>
> I hope you have a great day today!
>
> Thank you and best regards,
> Billy Ashton
>
>
> -- Original Message --
> From "Sri h Kolusu" 
> To IBM-MAIN@listserv.ua.edu
> Date 1/31/2024 1:32:23 PM
> Subject Re: Generating output in SORT with a time value
>
> >>>  Hi there Kolusu, I messed up my format, and should have had colons
> instead of commas.
> >
> >Billy,
> >
> >Apart from usage of Colons, did you realize that you have OVERLAPPING
> data?
> >
> >At position 82 you wanted to write 82:C'This is my data field 3',  and
> then at position 102 you wanted to write this 102:C'AZ',
> >
> >The length of the text at 82 is 23 bytes long.
> >
> >+1+2
> >THIS IS MY DATA FIELD 3
> >
> >You want to write 23 bytes into a 20-byte length which is NOT possible.
> >
> >>>  I checked the APG, and could not find a way to use only the timestamp.
> >
> >Not every user requirement in the world can be documented.  You get the
> timestamp and strip of the values and get the desired value.
> >
> >btw I hope you do realize that TIMESTAMP is got ONCE and since you are
> writing 1500 records, every record will have the SAME exact timestamp.
>  The Timestamp is NOT changed for every record.
> >
> 

Re: SMF Interval

2023-12-29 Thread Massimo Biancucci
Ed,

in my experience 15 minutes for the most.
I've seen 10 minutes too.
IMHO big SMF DATA producers are DB2, CICS, IMS, MQ etc. with their
accounting records that are not SMF Interval related.
Choosing a maximum of 15 minutes may be better to correlate issues.

Best regards.
Max

Il giorno ven 29 dic 2023 alle ore 06:23 Ed Jaffe <
edja...@phoenixsoftware.com> ha scritto:

> What SMF interval do most folks use?
>
> --
> Phoenix Software International
> Edward E. Jaffe
> 831 Parkview Drive North
> El Segundo, CA 90245
> https://www.phoenixsoftware.com/
>
>
>
> 
> This e-mail message, including any attachments, appended messages and the
> information contained therein, is for the sole use of the intended
> recipient(s). If you are not an intended recipient or have otherwise
> received this email message in error, any use, dissemination, distribution,
> review, storage or copying of this e-mail message and the information
> contained therein is strictly prohibited. If you are not an intended
> recipient, please contact the sender by reply e-mail and destroy all copies
> of this email message and do not otherwise utilize or retain this email
> message or any or all of the information contained therein. Although this
> email message and any attachments or appended messages are believed to be
> free of any virus or other defect that might affect any computer system
> into
> which it is received and opened, it is the responsibility of the recipient
> to ensure that it is virus free and no responsibility is accepted by the
> sender for any loss or damage arising in any way from its opening or use.
>
> --
> 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


Re: Inquiry about extracting and counting msgid from operlog using sort program

2023-07-27 Thread Massimo Biancucci
Jason,

for you first question I could say experience.
All my customer sites have different "hot messages" to look at.
Others are only warning, others (the most of) are simply ignored.
I cannot simply share them.
I could give you some "generic hints" like:

   - JES Spool over x% then add a spool volume
   - IRA* messages that warn about critical memory issues
   - .

sorry for that.

About SORT, I can give you a sample to approximate what you need even
though it must be tailored to fit your big picture.
Assuming my input, SYSLOG (VBM), and no more than 28 words after the MSGID
and single word max 30 characters.
If some words are separated by more than one blank the multiple spaces will
be reduced to one.

I'm sure Sri can give you something better.

OPTION VLSCMP
 INCLUDE COND=(6,1,SS,EQ,C'M')
 INREC IFTHEN=(WHEN=INIT,
  PARSE=(%00=(ABSPOS=5,FIXLEN=59),
 %01=(ENDBEFR=C' ',FIXLEN=30,REPEAT=29)),
   BUILD=(1,4,%00,%01,%02,%03,%04,%05,%06,%07,%08,%09,
  %10,%11,%12,%13,%14,%15,%16,%17,%18,%19,
  %20,%21,%22,%23,%24,%25,%26,%27,%28,%29)),
IFTHEN=(WHEN=(904,3,CH,GE,C'000',AND,907,1,CH,EQ,C' '),
  OVERLAY=(904:30X)),
 IFTHEN=(WHEN=(874,3,CH,GE,C'000',AND,877,1,CH,EQ,C' '),
  OVERLAY=(874:30X)),
 IFTHEN=(WHEN=(844,3,CH,GE,C'000',AND,847,1,CH,EQ,C' '),
  OVERLAY=(844:30X)),
 IFTHEN=(WHEN=(814,3,CH,GE,C'000',AND,817,1,CH,EQ,C' '),
  OVERLAY=(814:30X)),
 IFTHEN=(WHEN=(784,3,CH,GE,C'000',AND,787,1,CH,EQ,C' '),
  OVERLAY=(784:30X)),
 IFTHEN=(WHEN=(754,3,CH,GE,C'000',AND,757,1,CH,EQ,C' '),
  OVERLAY=(754:30X)),
 IFTHEN=(WHEN=(724,3,CH,GE,C'000',AND,727,1,CH,EQ,C' '),
  OVERLAY=(724:30X)),
 IFTHEN=(WHEN=(694,3,CH,GE,C'000',AND,697,1,CH,EQ,C' '),
  OVERLAY=(694:30X)),
 IFTHEN=(WHEN=(664,3,CH,GE,C'000',AND,667,1,CH,EQ,C' '),
  OVERLAY=(664:30X)),
 IFTHEN=(WHEN=(634,3,CH,GE,C'000',AND,637,1,CH,EQ,C' '),
  OVERLAY=(634:30X)),
 IFTHEN=(WHEN=(604,3,CH,GE,C'000',AND,607,1,CH,EQ,C' '),
  OVERLAY=(604:30X)),
 IFTHEN=(WHEN=(574,3,CH,GE,C'000',AND,577,1,CH,EQ,C' '),
  OVERLAY=(574:30X)),
 IFTHEN=(WHEN=(544,3,CH,GE,C'000',AND,547,1,CH,EQ,C' '),
  OVERLAY=(544:30X)),
 IFTHEN=(WHEN=(514,3,CH,GE,C'000',AND,517,1,CH,EQ,C' '),
  OVERLAY=(514:30X)),
 IFTHEN=(WHEN=(484,3,CH,GE,C'000',AND,487,1,CH,EQ,C' '),
  OVERLAY=(484:30X)),
 IFTHEN=(WHEN=(454,3,CH,GE,C'000',AND,457,1,CH,EQ,C' '),
  OVERLAY=(454:30X)),
 IFTHEN=(WHEN=(424,3,CH,GE,C'000',AND,427,1,CH,EQ,C' '),
  OVERLAY=(424:30X)),
 IFTHEN=(WHEN=(394,3,CH,GE,C'000',AND,397,1,CH,EQ,C' '),
  OVERLAY=(394:30X)),
 IFTHEN=(WHEN=(364,3,CH,GE,C'000',AND,367,1,CH,EQ,C' '),
  OVERLAY=(364:30X)),
 IFTHEN=(WHEN=(334,3,CH,GE,C'000',AND,337,1,CH,EQ,C' '),
  OVERLAY=(334:30X)),
 IFTHEN=(WHEN=(304,3,CH,GE,C'000',AND,307,1,CH,EQ,C' '),
  OVERLAY=(304:30X)),
 IFTHEN=(WHEN=(274,3,CH,GE,C'000',AND,277,1,CH,EQ,C' '),
  OVERLAY=(274:30X)),
 IFTHEN=(WHEN=(244,3,CH,GE,C'000',AND,247,1,CH,EQ,C' '),
  OVERLAY=(244:30X)),
 IFTHEN=(WHEN=(214,3,CH,GE,C'000',AND,217,1,CH,EQ,C' '),
  OVERLAY=(214:30X)),
 IFTHEN=(WHEN=(184,3,CH,GE,C'000',AND,187,1,CH,EQ,C' '),
  OVERLAY=(184:30X)),
 IFTHEN=(WHEN=(154,3,CH,GE,C'000',AND,157,1,CH,EQ,C' '),
  OVERLAY=(154:30X)),
 IFTHEN=(WHEN=(124,3,CH,GE,C'000',AND,127,1,CH,EQ,C' '),
  OVERLAY=(124:30X)),
 IFTHEN=(WHEN=(094,3,CH,GE,C'000',AND,097,1,CH,EQ,C' '),
  OVERLAY=(094:30X)),
 IFTHEN=(WHEN=(064,3,CH,GE,C'000',AND,067,1,CH,EQ,C' '),
  OVERLAY=(064:30X))
 SORT FIELDS=COPY
 OUTFIL FNAMES=SORTOUT,
  OUTREC=(1,4,5,59,
  64,870,SQZ=(SHIFT=LEFT,MID=C' '))

Best regards.
Max

Il giorno gio 27 lug 2023 alle ore 14:25 Jason Cai  ha
scritto:

> Dear Max
>
> I am writing to you regarding two questions that I have.
>
> The first question is about how to monitor and alert the system issues. We
> can monitor most of the issues and send alerts to our phones. However, when
> we cannot provide a complete list of msgids to the monitoring system, some
> critical alerts may be missed. How can we minimize the missing of critical
> alerts and also reduce the false alarms? This is our biggest challenge. We
> want to analyze the operlog every day to find out if there are any
> potential risks in the system and also to locate the problem when it
> occurs. I wonder how your shop handles this situation.
>
> The second question is a simplified one. Can dfsort delete the last word
> if the first position is M and the last word is a number?
>
> I appreciate your time and attention.
>
> Sincerely,
> Jason Cai
>
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Inquiry about extracting and counting msgid from operlog using sort program

2023-07-27 Thread Massimo Biancucci
Jason,

as usually, it depends.

About Operlog analysis, it depends on the response-time you need.
At different customer sites I use automation product (BMC, IBM, Broadcom)
in order to catch specific messages and react asap with specific actions or
simply sending SMS/Mail.
Some others use external product (Splunk and similar) to collect, correlate
messages, showing nice graphic screens and sometimes react.

About the second question, I don't think there's a simply solutions with
SORT because the text of the message is really variable, the word count is
message specific and finally we cannot be sure that a "number" as last word
is a continuation hint.
Could you please better explain your goal ?

Best regards.
Max

Il giorno gio 27 lug 2023 alle ore 09:08 Jason Cai  ha
scritto:

> Dear Massimo and Kolusu,
>
> Thank you for your help. I got the results I wanted. The results are as
> follows.
>MSGID NUMREC
>   $HASP000   20
>   $HASP001   10
>   ..
> >DISTINCT COUNT: 530
>
>  I also appreciate Kevin McKenzie's reply.
>
>  The reason why I counted how many times each unique msgid appeared in a
> day is to compare today's operlog with yesterday's operlog and
>
>  see which msgids are new and which ones increased more than yesterday,
> such as by 30%.
>
>  I got a list of msgids that need special attention. I used this list to
> extract the specific content of today's OPERLOG to find out the possible
> risks of the system in time.
>
> I have two questions:
>
> 1.The first question is whether there is a better way or tool to analyze
> operlog.
>
> 2. The second question is whether sort can delete the numbers marked by
> line breaks in the multi-line records of MSGID to facilitate deduplication
> of multiple lines. See the information below:
>
> •M 0090 HZS0002E CHECK 423
>
> •E...   423  0090 IXCH0602E The sysplex couple data set has
> insufficient
>
> The second line 423 indicates a line break of the first line 423.. I want
> to delete 423 of the first line. REXX processing is very easy but too slow
> because my operlog for one day is very large. Can sort or other tools
> handle it?
>
> Any suggestions is greatly appreciated
>
> Jason Cai
>
> --
> 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


Re: Inquiry about extracting and counting msgid from operlog using sort program

2023-07-26 Thread Massimo Biancucci
Jason,

you can try this:

OPTION VLSCMP
INCLUDE COND=(6,1,SS,EQ,C'NXWM',AND,
 7,1,CH,EQ,C' ',AND,
 64,1,SS,EQ,C'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
INREC PARSE=(%00=(ABSPOS=64,ENDBEFR=C' ',FIXLEN=15)),
 BUILD=(1,4,%00,X'0001')
SORT FIELDS=(5,15,BI,A)
SUM FIELDS=(20,4,BI)
OUTFIL FNAMES=SORTOUT,VTOF,
 HEADER1=('MSGID NUMREC'),
 OUTREC=(5,15,X,20,4,BI,EDIT=(IIIT)),
 TRAILER1=('>DISTINCT COUNT:',COUNT)

My syslog dataset is VBM so modify accordingly to your definition.

It assumes a max length for message of 15, starting with a capital letter
and a blank as separator from the message text itself.

>From the manual:

"

Each SYSLOG record is prefaced by a two-character record type field.

Valid first characters are:

   - N - single-line message
   - W - single-line message with reply
  - WTOR messages are not processed by Message Flood Automation.
   - M - first line of a multi-line message
  - Message Flood Automation can only react to the first line of a
  multiline message, not to any of the label, data or end lines
   - L - multi-line message label line
   - D - multi-line message data line
   - E - multi-line message data/end line
   - S - continuation of previous line
   - O - LOG command input
   - X - non-hardcopy or LOG command source

Valid second characters are:

   - C - command issued by operator
   - R - command response message
   - I - internally issued command
   - U - command from unknown console ID (z/OS® R8 and above)

"

Best regards.

Max



Il giorno mer 26 lug 2023 alle ore 10:19 Jason Cai  ha
scritto:

> Dear All,
>
>  I am writing to inquire about how to use the sort program on the
> mainframe to extract and count msgid from a day's operlog. I would
> appreciate your guidance and advice on this matter.
>
> Msgid is a keyword that identifies system messages. It usually consists of
> 7 letters and a number, such as IEA001I or CSV003E. However, some msgid may
> have up to 10 characters.
>
> I need to extract all msgid from the operlog, and remove any duplicates.
> Then, I need to count the number of occurrences of each msgid and generate
> a report.
>
> I have tried to use the following statement to extract msgid, and it seems
> to work well. However, I am not sure if there is anything missing or if it
> can be written more simply.
>
> SORT FIELDS=(58,7,CH,A)
>  INCLUDE COND=((58,7,SS,NE,C' ',AND,
>65,1,CH,EQ,C' ',AND,
>(63,1,SS,EQ,C'0,1,2,3,4,5,6,7,8,9'),AND,
>(64,1,SS,EQ,C'ABCDEFGHIJKLMNOPQRSTUVWXYZ')),OR,
>(58,8,SS,NE,C' ',AND,
>66,1,CH,EQ,C' ',AND,
>(64,1,SS,EQ,C'0,1,2,3,4,5,6,7,8,9'),AND,
>(65,1,SS,EQ,C'ABCDEFGHIJKLMNOPQRSTUVWXYZ')),OR,
>(58,9,SS,NE,C' ',AND,
> 67,1,CH,EQ,C' ',AND,
>(65,1,SS,EQ,C'0,1,2,3,4,5,6,7,8,9'),AND,
>(66,1,SS,EQ,C'ABCDEFGHIJKLMNOPQRSTUVWXYZ')),OR,
>(58,10,SS,NE,C' ',AND,
> 68,1,CH,EQ,C' ',AND,
>(66,1,SS,EQ,C'0,1,2,3,4,5,6,7,8,9'),AND,
>(67,1,SS,EQ,C'ABCDEFGHIJKLMNOPQRSTUVWXYZ'))
>
> But I do not know how to count the number of occurrences of each msgid and
> eliminate duplicates.
>
> Thank you for your time and attention.
>
> Sincerely,
>
> Jason Cai
>
> --
> 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


Re: Cobol question

2023-07-12 Thread Massimo Biancucci
Rex,

at this link you'll find an interesting thread:
https://groups.google.com/g/bit.listserv.ibm-main/c/B04G-HasOd4
As somebody (who is at least 30K light years beyond me) probably the right
way is to use TIMEUSED macro.
It depends on how much you need to rely the info.

I recently wrote an assembler interface to do the needed using the new
instructions (without too many checks to be honest).
It seems the new way (ECT=YES) invocation costs very less than before.

Best regards.
Max

Il giorno mar 11 lug 2023 alle ore 23:44 Joe Monk  ha
scritto:

> You can always map the TCB and reference field TCBTTIME to get the
> accumulated CPU time for the task - I think its offset 316 decimal.
>
> Joe
>
> On Tue, Jul 11, 2023 at 4:22 PM Pommier, Rex 
> wrote:
>
> > Hey all,
> >
> > I just got this tossed at me by an application developer.  Cobol 6.3.  Is
> > there some built-in function or something that they can put into a
> program
> > to report out the amount of CPU (TCB) time the program has consumed thus
> > far in execution of the program?  We have a program that processes
> > accounts, and at the beginning of every account it prints the account
> > number and wall clock timestamp.  The developers would like to also
> report
> > out how much CPU the program has consumed at the same time as the wall
> > clock.   I don't know of any but if somebody has an idea off the top of
> > their head, I'll listen.
> >
> > TIA,
> >
> > Rex
> >
> > --
> > The information contained in this message is confidential, protected from
> > disclosure and may be legally privileged. If the reader of this message
> is
> > not the intended recipient or an employee or agent responsible for
> > delivering this message to the intended recipient, you are hereby
> notified
> > that any disclosure, distribution, copying, or any action taken or action
> > omitted in reliance on it, is strictly prohibited and may be unlawful. If
> > you have received this communication in error, please notify us
> immediately
> > by replying to this message and destroy the material in its entirety,
> > whether in electronic or hard copy format. Thank you.
> >
> >
> > --
> > 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
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


SMT usage.

2023-04-12 Thread Massimo Biancucci
Hi everybody,

I'm wondering if anybody of you has configured processor SMT and if has got
any measure about any difference (gain ?).

Thanks a lot in advance.
Max


Privo
di virus.www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Virtual Storage Manager - LDA.

2023-03-08 Thread Massimo Biancucci
Hi,

my LE options include RPTSTG and the output confirmed to me there are no
issues with ALLOCATE and FREE.

About the app itself, it's a monitor who receives a bunch of data into a
buffer from Db2 and spreads items into lots of single varying length chunks
within a tree.
The varying length (from few bytes to KBs) is the main reason because I
don't use an array. The time I wrote the application seemed to be a good
way to avoid memory waste.
At every iteration info about single nodes can be still present or not. If
yes, I have to refresh data, if not I've to logically delete the node.
>From time to time a garbage collector releases the useless nodes.

The main problem is the communication buffer that DB2 sometimes asks me to
increase (even if it's really huge, more than 100MB and I can't know the
maximum needed size).
These big chunks tend to fill the memory with a lot of wasted space.
Probably I have to rethink the way I allocate and free such a buffer.
I read about the AREA and it seems to me it's not the right tool for it.

Regards.
Max



<https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail>
Privo
di virus.www.avast.com
<https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mer 8 mar 2023 alle ore 13:52 Steve Smith  ha
scritto:

> Have you looked at the documentation for RPTSTG?  Have you tried the
> process described?
>
> sas
>
>
> On Wed, Mar 8, 2023 at 5:31 AM Massimo Biancucci 
> wrote:
>
> > Thanks to everybody for your support.
> > As usual I learnt a lot.
> >
> > The problem was (as usual business) between my seat and my keyboard.
> > The PLI FREE statement was not consistent with ALLOCATE. The size of the
> > area to be free was not correct.
> > I thought it was not so important and I was wrong. The manual states it
> > counts.
> >
> > Anyway my program suffers of HEAP fragmentation because of a mix of (lot)
> > small areas that I often need to allocate and free and (few) big areas
> that
> > I need to free and allocate rarely (root cause of the problem).
> > To trigger the issue I ran the program with a small region size,
> hopefully
> > with a bigger region I'll run ok.
> > It seems there's no way to ask PLI/LE for heap defrag.
> >
> > Best regards.
> > Max.
> >
> >
>
> --
> 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


Re: Virtual Storage Manager - LDA.

2023-03-08 Thread Massimo Biancucci
Thanks to everybody for your support.
As usual I learnt a lot.

The problem was (as usual business) between my seat and my keyboard.
The PLI FREE statement was not consistent with ALLOCATE. The size of the
area to be free was not correct.
I thought it was not so important and I was wrong. The manual states it
counts.

Anyway my program suffers of HEAP fragmentation because of a mix of (lot)
small areas that I often need to allocate and free and (few) big areas that
I need to free and allocate rarely (root cause of the problem).
To trigger the issue I ran the program with a small region size, hopefully
with a bigger region I'll run ok.
It seems there's no way to ask PLI/LE for heap defrag.

Best regards.
Max.


Il giorno dom 5 mar 2023 alle ore 22:07 Seymour J Metz  ha
scritto:

> VSMLIST is certainly the best way to test what z/OS has allocated in large
> blocks, but I believe that the OP would be better served by using PL/I
> facilities to allocate and report the storage.
>
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
> 
> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf
> of Peter Relson [rel...@us.ibm.com]
> Sent: Saturday, March 4, 2023 9:13 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Virtual Storage Manager - LDA.
>
> Updates to the LDA are done synchronously with respect to the request.
> Fields such as LDALOAL, LDAHIAL, LDAELOAL, LDAEHIAL might be of interest
> depending on what you're doing (subpool and whether the virtual is above or
> below 16M, in particular). I don't recall, but those might reflect
> allocation of anything within a given page rather than indicating the exact
> number of bytes allocated.
>
> If you want details from a program, use VSMLIST. Or take a dump and look
> at one of the IPCS VSMDATA reports.
> And GTF tracing of getmain/freemain/storage requests is available to you.
>
> Peter Relson
> z/OS Core Technology Design
>
>
> --
> 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
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Virtual Storage Manager - LDA.

2023-03-04 Thread Massimo Biancucci
Thanks to everybody for the feedback.

As I said before, the problem is that using PLI verbs program sometimes
runs out of memory.
At every FREE I flag the block with a timestamp and, at dump time, lots of
blocks logically freed are physically in the dump.
So, in theory I've free blocks to reuse (as you said PLI use heap or
similar to alloc bigger blocks to use at purpose) but I run out of memory.

I've to be very sure of my finding.
Best regards.
Max

Il giorno ven 3 mar 2023 alle ore 23:36 Seymour J Metz  ha
scritto:

> We are in violent agreement.
>
> 
> From: IBM Mainframe Discussion List  on behalf
> of Steve Smith 
> Sent: Friday, March 3, 2023 4:45 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Virtual Storage Manager - LDA.
>
> If you'd stick to the heap, which is much more efficient, you can request
> storage usage reports with quite a bit of detail.
>
> sas
>
> On Fri, Mar 3, 2023 at 2:37 PM Seymour J Metz  wrote:
>
> > I doubt that you will get what you need that way. PL/I subaloocates
> > storage withing big blocks, and doing your own GETMAIN/STORAGE instead of
> > using native PL/I support may make matters worse.
> >
> > MVS also suballocates storage, and I know of no GUPI to run the chains
> > with proper serialization and give the free/allocated counts.
> >
> >
> > --
> > Shmuel (Seymour J.) Metz
> > http://mason.gmu.edu/~smetz3
> >
> > ____
> > From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf
> > of Massimo Biancucci [mad4...@gmail.com]
> > Sent: Friday, March 3, 2023 2:43 PM
> > To: IBM-MAIN@LISTSERV.UA.EDU
> > Subject: Virtual Storage Manager - LDA.
> >
> > Hi everybody,
> >
> > I've a PLI program who does ALLOCATE and FREE of some based areas in
> order
> > to build and manage a dynamic tree.
> >
> > I'm debugging a problem where it runs out of memory.
> > To control how much memory it's using I refer to LDA.
> > To be sure I changed the ALLOC and FREE with explicit (via a ASM module)
> to
> > STORAGE OBTAIN and RELEASE.
> >
> > Here is the question:
> > I display the LDA structure before and after freeing some areas (few KB,
> > anyway more than zero) and I see no immediate difference.
> > Is the information in LDA updated by VSM with any delay ?
> >
> > Thanks a lot in advance.
> > Max
> >
> > --
> > 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
> >
>
> --
> 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
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Virtual Storage Manager - LDA.

2023-03-03 Thread Massimo Biancucci
Hi everybody,

I've a PLI program who does ALLOCATE and FREE of some based areas in order
to build and manage a dynamic tree.

I'm debugging a problem where it runs out of memory.
To control how much memory it's using I refer to LDA.
To be sure I changed the ALLOC and FREE with explicit (via a ASM module) to
STORAGE OBTAIN and RELEASE.

Here is the question:
I display the LDA structure before and after freeing some areas (few KB,
anyway more than zero) and I see no immediate difference.
Is the information in LDA updated by VSM with any delay ?

Thanks a lot in advance.
Max

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Using JCL variables with DFSORT

2022-11-04 Thread Massimo Biancucci
Jack,

as you can see, lots of people try to help.
If you want them to better help, include jobs output or similar.

Best regards.
Max

Il giorno ven 4 nov 2022 alle ore 14:58 Sri h Kolusu 
ha scritto:

> >> Is there any conversion function like Rexx C2D()?
> Gil,
>
> As mentioned earlier, DFSORT gives you the flexibility of converting the
> passed symbol to any numeric format (Binary, Packed, Floating point..)
>
> Assuming the LRECL=200 for the input file , you can use the following
>
> INREC OVERLAY=(201:JP1,
>205:201,04,UFF,BI,LENGTH=4)
>
> OUTFIL INCLUDE=(INP_EXTNTS,GT,205,04,BI),
> BUILD=(01,200)
>
>
> OP’s requirement is to sum the extents also which can be done using
> SECTIONS and TRAILER3. However, I don’t have OP’s Complete control cards to
> write the equivalent cards.
>
> Thanks,
> Kolusu
> DFSORT Development
> IBM Corporation
>
>
> --
> 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


Re: Using JCL variables with DFSORT

2022-11-03 Thread Massimo Biancucci
Jack,

I usually use JCLVAR this way (I think you need at least zOS 2.3 or 2.4):

// EXPORT SYMLYST=*
// SET EXTNUM=200
//ST010 EXEC PGM=SORT
//SYSIN DD *,SYMBOLS=JCLONLY
 INCLUDE COND=(INP_EXTNTS,GT,)
/*

JES should change SYSIN before seeding SORT.

Best regards.
Max


Il giorno gio 3 nov 2022 alle ore 18:23 Jack Zukt  ha
scritto:

> Hi,
> I am trying to improve a SORT by using a variable to specify a Include
> variable.
> I defined the variable by means of a
> //SET#EXTN SET EXTNUM=200
>  and then I used
> //STEP0100 EXEC PGM=SORT,PARM='JP1""'
> and
> INCLUDE=(INP_EXTNTS,GT,JP1),
>
> The problem, I think, is that the "200" is then used as C'200' and the
> INP_EXTNTS is numeric,
>
> INP_EXTNTS,*,04,BI
> and
> SUM FIELDS=(INP_EXTNTS,
>
>  so no records are selected.
> Is there a way around this?
>
> Thanks for your help
> Jack
>
> --
> 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


Re: DFSORT / ICETOOL SPLICE function

2022-09-30 Thread Massimo Biancucci
Andreas,

IFTHEN WHEN=GROUP is your best friend.
I think Sri will give you the solution in a while.
If he will not, at end of my workday I could try to provide a solution.

Best regards.
Max

Il giorno ven 30 set 2022 alle ore 15:10 Andreas von Imhof <
02ba5d449f94-dmarc-requ...@listserv.ua.edu> ha scritto:

> Hi
>
> I am trying to create 1 output record from multiple input records. Also
> the output record will be reformatted.
> I have been trying to get the ICETOOL SPLICE function to work, but alas to
> no avail.
> Please can someone help?
>
> Reason for wanting to use SORT/ICETOOL is to reduce CPU consumption
> (current REXX runs several times per day against input files with millions
> of records). Also the REXX is difficult to maintain.
> IF SORT can do this then it will be easy for the users to maintain.
>
> From the input record  I want to scan for "CURRENT PLAN OPERATION" and
> select the 1st occurrence of APPLICATION ID / JOB NAME / WORKSTATION NAME.
> The rest of the records are discarded till the next occurrence of "CURRENT
> PLAN OPERATION".
>
> Input data (output from TWS (old OPC):
> Copy and paste into a dataset (lrecl 80) will restore the alignment)
>
>
> +1+2+3+4+5+6+7+8
> 1   CURRENT PLAN OPERATION
>
> ___
>
>  APPLICATION ID   :ASC4D99A
>
>  INPUT ARRIVAL DATE   :220926
>
>  INPUT ARRIVAL TIME   :0645
>
>  OPERATION NUMBER :  10
>
>  AUTHORITY GROUP  :TEST
>
>  DESCRIPTIVE TEXT :Unl tablespacestats DBTZ
>
>  JOB NAME :C4D9910S
>
>  JOB ID   :JOB27971
>
>  WORKSTATION NAME :SONS
>
>  FORM NUMBER  :
>
>  PLANNED START DATE   :220926
>
>  PLANNED START TIME   :00064501
>
>  PLANNED END DATE :220926
>
>  PLANNED END TIME :00064502
>
>  OPERATION INPUT ARRIVAL DATE :
>
>  OPERATION INPUT ARRIVAL TIME :
>
>  OPERATION DEADLINE DATE/TIME :2209270644
>
>
>
> Desired output data:
> Built from APPLICATION ID / JOB NAME / WORKSTATION NAME
>
> ASC4D99A C4D9910S SONS
>
>
> If needed I can upload a larger version of the input file to Google drive
> (not sure I can add an attachment here).
>
> Thanks in advance and kind regards
> Andreas (aka the now useless z performance specialist)
>
> --
> 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


Re: Enterprise Cobol 6.3.0, XML PARSE and zIIP usage.

2022-09-30 Thread Massimo Biancucci
Hi everybody,

you were right !

After increasing the size of XML up to 150MB then I saw a little of zIIP
usage.
Anyway, it would be interesting to know how IBM manages these thresholds.

Thanks a lot for your help.
Max

Il giorno ven 30 set 2022 alle ore 10:38 Andrew Rowley <
and...@blackhillsoftware.com> ha scritto:

> On 30/09/2022 6:15 pm, Massimo Biancucci wrote:
> > I don't know how "trivial" can be "trivial".
> > It's about 8K in bytes (lot of spaces as usual).
> > It comes from a sample I took on the web, four nesting levels eight
> fields.
> >
> > After your hint I increased the size up to 60K (more entries same style)
> > but nothing changed.
> > Is there any documentation on how big (or complicated) must be a XML to
> > fire zIIP usage ?
>
> I think we underestimate how much work can be done on modern processors.
>
> It wouldn't surprise me if the XML had to be multi-megabyte before the
> cost of switching processors was justified. it probably also depends on
> whether the CP is full speed - a slower CP probably makes it switch to a
> zIIP earlier.
>
> --
> Andrew Rowley
> Black Hill Software
>
> --
> 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


Re: Enterprise Cobol 6.3.0, XML PARSE and zIIP usage.

2022-09-30 Thread Massimo Biancucci
Timothy,

I don't know how "trivial" can be "trivial".
It's about 8K in bytes (lot of spaces as usual).
It comes from a sample I took on the web, four nesting levels eight fields.

After your hint I increased the size up to 60K (more entries same style)
but nothing changed.
Is there any documentation on how big (or complicated) must be a XML to
fire zIIP usage ?

Max



Il giorno ven 30 set 2022 alle ore 07:16 Timothy Sipples 
ha scritto:

> Is the XML processing you're doing in your test program "trivial," thus
> z/OS correctly decided it wasn't worth even attempting a switch to dispatch
> the work to your zIIP engine?
>
> If my guess seems reasonable are you able to run the test with a bigger
> XML input file?
>
> — — — — —
> Timothy Sipples
> Senior Architect
> Digital Assets, Industry Solutions, and Cybersecurity
> IBM zSystems/LinuxONE, Asia-Pacific
> sipp...@sg.ibm.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


Enterprise Cobol 6.3.0, XML PARSE and zIIP usage.

2022-09-29 Thread Massimo Biancucci
Hi everybody,

I wrote a simple test program to parse XML.
The program has been compiled with Enterprise Cobol 6.3.0 and
XMLPARSE(XMLSS) option.

I ran the program as a standard batch job and it seems it's not using zIIP
processor (one zIIP is available).
I had a look at SMF30(4) and all the "zIIP on CP" fields are zero (the same
for zAAP).
S.O. is zOS 2.4 and CEC is z15.

>From the Enterprise Cobol Customization Guide:
"
XMLSS
XML PARSE statements are processed using the z/OS XML System Services
parser. The following XML parsing capabilities are available only when this
suboption is in effect:
• Namespace processing enhancements
• The ENCODING, RETURNING NATIONAL, and VALIDATING phrases of the XML PARSE
statement
• Support for direct parsing of XML documents encoded in UTF-8
• Support for parsing very large XML documents, a buffer of XML at a time
• Offloading of XML parsing to System z® Application Assist Processors
(zAAPs)
"

On IEASYSxx there's no ZAAPZIIP parameter so, AFAIK, it should be defaulted
to YES and so zAAP needs should be accomplished by zIIP.
What am I doing wrong ?

Thanks a lot in advance.
Max

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: more locks in IRLM

2022-08-31 Thread Massimo Biancucci
Jason,

your question is really generic and I think you're talking about DB2 locks.

To obtain a lock DB2 must use CPU so the more locks the more CPU you need.
This usually is related to a workload growth or application change.

If the number of locks is quite the same and the number of lock contentions
should increase and you need to investigate if it could increase CPU usage
then it's possible (or better sure) because the lock contention management
burns CPU too.
The larger is the number of locks and the longer is the queue on a given
resource then the more CPU DB2 needs to manage it.

If the happening is so hard to make you ask a question you can give us some
other lights.
Maybe it's a good question for DB2 list.
If you're in a Data Sharing environment it can be worst.

Best regards.



[image: width=]

Privo
di virus.www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mer 31 ago 2022 alle ore 14:51 Jason Cai  ha
scritto:

> Hi all
>
>  If there are more locks in IRLM by TRANS, will  it make CICS address
> space or DB2 address space CPU increases or decrease?
>
> Any suggestions is great appreciated!
>
> Thanks a lot!
>
> Jason Cai
>
> --
> 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


Re: Calculate deltas using DFSORT

2022-08-30 Thread Massimo Biancucci
Mario,

I first tried with WHEN=GROUP but with no success.

After that I hopefully succeeded with a JOIN.
The main idea is to extract keys from file and number those simply by
sequential number.
So the STAMPA "view" at ST010 should show something like this:

SUGAR100   01
SUGAR9702
SUGAR9303
X2004
Y150   05
Y140   06

then try to JOIN every key with the relative (+1) of the original file.
So SUGAR-02 of the original file must match with SUGAR-01 of the
keys subset.
This has been done with the JNF2CNTL ADD statement.

The final sample output is:

+1+2+3+4+5+6+7+8+9+0+1+2
SUGAR,2022/08/01,100  01
  1  00
SUGAR,2022/08/02,97   02SUGAR100
02B  03
SUGAR,2022/08/03,93   03SUGAR97
 03B  04
X,2022/08/03,20   04SUGAR93
 04B  00
Y,2022/08/01,150  05X20
 05B  00
Y,2022/08/01,140  06Y150
06B  10

where first piece (1-56) is the original record, the second piece (57-80)
is the trace of the JOIN process and last column (81:86) is the result you
need.
Double check if the idea is effective.

//*---*
//* EXTRACT KEYS AND SEQNUM FROM ORIGINAL FILE*
//* FILE SHOULD BE ORDERED BY PRODUCT AND DATE.   *
//*---*
//ST010   EXEC PGM=SORT
//SYSOUT  DD SYSOUT=*
//SORTOUT DD DSN=,DISP=(,PASS),SPACE=(TRK,(1,1),RLSE)
//STAMPA  DD SYSOUT=*
//SORTIN  DD *
SUGAR,2022/08/01,100
SUGAR,2022/08/02,97
SUGAR,2022/08/03,93
X,2022/08/03,20
Y,2022/08/01,150
Y,2022/08/01,140
/*
//SYSIN  DD *
 SORT FIELDS=(1,5,A,7,10,A),FORMAT=BI
 OUTFIL FNAMES=SORTOUT,
  OUTREC=(1,5,18,10,SEQNUM,6,ZD)
 OUTFIL FNAMES=STAMPA,
  OUTREC=(1,5,18,10,SEQNUM,6,ZD)
/*
//*---*
//* JOIN WITH ORIGINAL FILE ON SEQNUM + 1 *
//*---*
//ST020   EXEC PGM=SORT
//SYSOUT  DD SYSOUT=*
//SORTOUT DD SYSOUT=*
//F1  DD *
SUGAR,2022/08/01,100
SUGAR,2022/08/02,97
SUGAR,2022/08/03,93
X,2022/08/03,20
Y,2022/08/01,150
Y,2022/08/01,140
/*
//JNF1CNTL DD *
 INREC FIELDS=(1,50,SEQNUM,6,ZD)
/*
//F2  DD DSN=,DISP=(OLD,DELETE)
//JNF2CNTL DD *
 INREC FIELDS=(1,15,16,6,ZD,ADD,+1,TO=ZD,LENGTH=6)
/*
//SYSIN  DD *
 JOINKEYS F1=F1,FIELDS=(51,6,A)
 JOINKEYS F2=F2,FIELDS=(16,6,A)
 JOIN UNPAIRED,F1
 REFORMAT FIELDS=(F1:1,56,F2:1,21,?)
 SORT FIELDS=COPY
 OUTFIL FNAMES=SORTOUT,REMOVECC,
  IFTHEN=(WHEN=(1,5,CH,EQ,56,5,CH),
   OVERLAY=(81:61,10,UFF,SUB,18,10,UFF,EDIT=(TT))),
  IFTHEN=(WHEN=NONE,
   OVERLAY=(81:C'00'))
/*

Best regards.
Max

Il giorno mar 30 ago 2022 alle ore 09:32 Mario Bezzi <
subscriptions.mario.be...@gmail.com> ha scritto:

> Hello list,
>
> say I have a file with goods, dates, and available quantities, not
> necessarily sorted. I want to sort it and calculate daily deltas.
>
> For example using the following input :
>
> Product,Date,Availability
> Sugar,2022/08/01,100
> Sugar,2022/08/02,97
> Sugar,2022/08/03,93
>
> I need to get to this:
>
> Product,Date,Sold
> Sugar,2022/08/01,N/A  (No daily delta for the first record)
> Sugar,2022/08/02,3(100 - 97)
> Sugar,2022/08/03,4(97 - 93)
>
> May I use bultin DFSORT functions to calculate deltas from the previous
> record and the current one?
>
> I had a look at the OUTREC statement in the Application Programming
> Manual, but as far as I can see arithmetic expressions can only use input
> fields from the current record or decimal constants.
>
> It believe I can achieve the above result using an E35 exit, just wanted
> to be sure that's the only way.
>
> Thanks!
> mario
>
> --
> 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


Re: DFSORT INCLUDE COND - What am I doing wrong?

2022-08-29 Thread Massimo Biancucci
Jack,

I don't fully understand the output, the numbers at the beginnins seems to
be edit related and cols not.
This is my JCL, of course my catalog names are different but it doesn't
seem to matter.

//ST010EXEC  PGM=IDCAMS

//SYSPRINT DD  SYSOUT=*

//SYSINDD   *

 DELETE MYUSER.V000.LISTCAT

 IF MAXCC=8 THEN SET MAXCC=0

/*

//ST020EXEC  PGM=IDCAMS

//SYSPRINT DD  DSN=MYUSER.V000.LISTCAT,

// DISP=(,CATLG),SPACE=(TRK,(10,10),RLSE)

//SYSINDD   *

 LISTCAT CAT(MYCAT01) VOL

 LISTCAT CAT(MYCAT02) VOL

/*

//*---

//ST030EXEC  PGM=SORT

//SYSOUTDD   SYSOUT=*

//SORTIN   DD DISP=SHR,DSN=MYUSER.V000.LISTCAT

//SORTOUT  DD SYSOUT=*

//SYSIN DD   *

 OPTION VLSCMP

 INCLUDE COND=((6,03,CH,EQ,C'IDC',AND,

  6,06,CH,NE,C'IDCAMS',AND,

  6,8,CH,NE,C'IDC0001I'))

 SORT FIELDS=COPY

/*

//*---

//ST040EXEC  PGM=SORT

//SYSOUTDD   SYSOUT=*

//SORTIN   DD DISP=SHR,DSN=MYUSER.V000.LISTCAT

//SORTOUT  DD SYSOUT=*

//SYSIN DD   *

 OPTION VLSCMP

 INCLUDE COND=((6,03,CH,EQ,C'IDC',AND,

  6,06,CH,NE,C'IDCAMS',AND,

  6,8,CH,NE,C'IDC0001I'),OR,

  (13,04,CH,EQ,C'DATA',AND,

   (22,07,CH,EQ,C'CATALOG',OR,

24,05,CH,EQ,C'SYSUC')))

 SORT FIELDS=COPY

/*

I don't see any difference between ST03 and ST040 SORTOUT output.
Hope this helps.

Best regards.
Max

Il giorno lun 29 ago 2022 alle ore 13:59 Jack Zukt  ha
scritto:

> Thank you Max,
>
> As suggested,
>
>  =COLS>
> +1+2+3+4+5+6+7
>  08  IDC1566I ** .|. ...8..2...{. NOT
> LISTED
>  09  IDC3014I CATALOG ERROR
>
>  10  IDC3009I ** VSAM CATALOG RETURN CODE IS 50 - REASON CODE IS
> IGG0CLE0-6
>  11  IDC3009I FOR MPG004
>
>
> The file RECFM is VBA
>
> Regards
> Jack
>
> On Mon, 29 Aug 2022 at 12:27, Massimo Biancucci  wrote:
>
> > Jack,
> >
> > I tried the same and IDC3014I does not disappear after inserting new OR
> > conditions.
> > A print screen with "cols on" on the first output could be helpful.
> >
> > Best regards.
> > Max.
> >
> > Il giorno lun 29 ago 2022 alle ore 11:53 Jack Zukt 
> ha
> > scritto:
> >
> > > Hi all,
> > >
> > > I am trying to get all the IDC messages from a file to where I directed
> > the
> > > output from multiple "LISTCAT CAT(usercat name) VOL"
> > > I am using this
> > >
> > > INCLUDE COND=(6,03,CH,EQ,C'IDC',&,
> > >6,06,CH,NE,C'IDCAMS',&,
> > >6,08,CH,NE,C'IDC0001I')
> > >
> > > and it works just fine. But then I wanted to include the usercat names
> so
> > > that I can see to which catalog each set of messages is related to, so
> I
> > > changed it to
> > >
> > > INCLUDE COND=((6,03,CH,EQ,C'IDC',&,
> > >6,06,CH,NE,C'IDCAMS',&,
> > >6,08,CH,NE,C'IDC0001I'),|,
> > >  (13,04,CH,EQ,C'DATA',&,
> > >  (22,07,CH,EQ,C'CATALOG',|,
> > >   24,05,CH,EQ,C'SYSUC')))
> > >
> > > the USERCATs being named CATALOG.xxx or xxSYSUC.
> > >
> > > So now I have the IDC messages and the USERCAT names in between. But
> the
> > > output file is missing all the
> > >
> > > IDC3014I CATALOG ERROR
> > >
> > > messages and I can not figure out why.
> > >
> > > So, I really do not need those specific messages, but as I do not
> > > understand why they are missing, I do not know if I am missing any
> > others.
> > >
> > > Regards,
> > > Jack
> > >
> > > --
> > > 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
> >
>
> --
> 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


Re: DFSORT INCLUDE COND - What am I doing wrong?

2022-08-29 Thread Massimo Biancucci
Jack,

I tried the same and IDC3014I does not disappear after inserting new OR
conditions.
A print screen with "cols on" on the first output could be helpful.

Best regards.
Max.

Il giorno lun 29 ago 2022 alle ore 11:53 Jack Zukt  ha
scritto:

> Hi all,
>
> I am trying to get all the IDC messages from a file to where I directed the
> output from multiple "LISTCAT CAT(usercat name) VOL"
> I am using this
>
> INCLUDE COND=(6,03,CH,EQ,C'IDC',&,
>6,06,CH,NE,C'IDCAMS',&,
>6,08,CH,NE,C'IDC0001I')
>
> and it works just fine. But then I wanted to include the usercat names so
> that I can see to which catalog each set of messages is related to, so I
> changed it to
>
> INCLUDE COND=((6,03,CH,EQ,C'IDC',&,
>6,06,CH,NE,C'IDCAMS',&,
>6,08,CH,NE,C'IDC0001I'),|,
>  (13,04,CH,EQ,C'DATA',&,
>  (22,07,CH,EQ,C'CATALOG',|,
>   24,05,CH,EQ,C'SYSUC')))
>
> the USERCATs being named CATALOG.xxx or xxSYSUC.
>
> So now I have the IDC messages and the USERCAT names in between. But the
> output file is missing all the
>
> IDC3014I CATALOG ERROR
>
> messages and I can not figure out why.
>
> So, I really do not need those specific messages, but as I do not
> understand why they are missing, I do not know if I am missing any others.
>
> Regards,
> Jack
>
> --
> 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


Re: Format SMF records created by SYNCSORT MFX

2022-07-27 Thread Massimo Biancucci
Gadi,

I wrote a REXX that formats most of the relevant fields.

I'm not sure it's a so "common need", so contact me offline and I'll be
happy to help.

Best regards.
Max

Il giorno mar 26 lug 2022 alle ore 13:16 Gadi Ben-Avi  ha
scritto:

> Hi,
> Does anyone know of a, hopefully free,  tool that can format Syncsort MXF
> v3.1 SMF records?
>
> Thanks
>
> Gadi
>
> --
> 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


Re: DFSORT/ICETOOL

2022-07-19 Thread Massimo Biancucci
Jack,

for sure. I think at a PARSE + SUM FIELDS.

Could you please add few records to better understand the data format ?
I don't know RMM report, is it fixed or what ?

Best regards.
Max

Il giorno mar 19 lug 2022 alle ore 11:25 Jack Zukt  ha
scritto:

> Hi all,
>
> I have a file (rmm report) in which each record has this information:
>
> space"K" data_set_name volser dd/mm/ pgmname storclas jobname
>
> I would like to add all the space for each year and for each High Level
> Qualifier.
> Is there a way to do this using DFSORT or ICETOOL
> I have been reading the manual but, so far, I have not found what I am
> looking for.
> Thank you for any assistance you can give me
> Jack
>
> --
> 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


Re: AF/OPER replacement with BMC Mainview AutoOperator

2022-06-30 Thread Massimo Biancucci
Hi,

in the past I did several replacement from different Automated Operator to
BMC AutoOperator.

IMHO, it's a good and reliable product.
REXX is fully supported (with some extensions to share data with the main
task too).
It can react to messages and events, from console and more.

Best regards.
Max.

Il giorno gio 30 giu 2022 alle ore 14:48 Tom Longfellow <
03e29b607131-dmarc-requ...@listserv.ua.edu> ha scritto:

> In the 1990's I was tasked with the opposite task  -- Going from BMC to
> AF/OPER.
> The details have faded, but it can be done.
>
> Does anybody know if BMC allows REXX code to execute in response to
> messages and events?
>
> I am also looking into AF/OPER replacements but am having troubles finding
> ones that give me programmability.   Most are action-reaction from a canned
> response or a specialty language (that I do not have the time to learn)
>
> --
> 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


Re: mainframe CPU swap

2022-06-14 Thread Massimo Biancucci
Jake,

I don't know your specific configuration.
If by DR you mean a BC site with two synchronous disks array (and tape),
most of the customer I know periodically swap primary and secondary site.
If DR is an offline (asynchronous) site maybe tests could have been
performed less often then the number of check items increase.
For example, product password (CPU ID related) can be a headache. Nice to
have a "minimal IPL system" with all product installed to IVP check before
the big bang.

Max


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno lun 13 giu 2022 alle ore 21:24 Jake Anderson <
justmainfra...@gmail.com> ha scritto:

> Hello
>
> Good morning to all
>
> Due to a business reason we are swapping our mainframer sites where the
> current DR machine will be converted to production and Production machine
> will be a DR site. I understand these exercise are mostly done by the IBM
> CE from support element. Is there anything to be watched out from z/OS
> perspective and what are the other gotchas ?
>
> Appreciate if you could share your thoughts on this and would like to hear
> if someone has done his similar in your Shop
>
> Jake
>
> --
> 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


SMF 64 parsing with SORT.

2022-05-17 Thread Massimo Biancucci
Hi everybody,

some people asked me to share the SORT I use to evaluate the "need or use"
of ACCBIAS.
It's not so sophisticated and it could be better, anyway here it is.
The output can be simply imported in Excel.

Best regards.
Max

//youjobc  JOB 000,J48017,CLASS=A,MSGCLASS=5,

//  COND=(4,LT),NOTIFY=

//*---*

//*   *

//*---*

// EXPORT SYMLIST=*

// SET SMFIN=MYSMF
// SET CSVOUT=MYCSV
//*---*

//*   *

//*---*

//ST010EXEC  PGM=IDCAMS

//SYSPRINT DD  SYSOUT=*

//SYSINDD  *,SYMBOLS=JCLONLY

 DELETE 

 IF MAXCC LE 8 THEN SET MAXCC EQ 0

/*

//*---*

//*   *

//*---*

//ST020EXEC  PGM=SORT
//SYSPRINT DD  SYSOUT=*
//SYSOUT   DD  SYSOUT=*
//SORTIN   DD  DISP=SHR,DSN=

//SORTOUT  DD  DSN=,
// SPACE=(TRK,(10,00)),DATACLAS=UEFSQCMP,
// DISP=(,CATLG),DCB=(LRECL=500,RECFM=VB,DSORG=PS)
//SYSINDD  *
 OPTION COPY,VLSCMP
 INCLUDE COND=(06,01,BI,EQ,X'40',AND,  ONLY 64 SMF RECORDS
   43,1,BI,NE,1,AND,WITH EXTENDED AREA

   43,1,BI,EQ,B'1...')  ONLY AT CLOSE

 OUTFIL REMOVECC,

  HEADER1=('DATA;ORA;JOBNAME;USERID;',

   'N_RECORDS;N_DELETE;N_INSERT;N_UPDATE;N_GET;N_EXCP;',

   'DDNAME;CLUSTER NAME;COMPONENT NAME;',

   'DATASET;INDEX;EXTENDED;COMPRESSED;EXTENDED ADDR;',

   'ACCBIAS_JCL;ACCBIAS_AUTO;BIAS_TYPE;',

   'INPUT;OUTPUT;INDEXED;',

   'ACC_RBA;ACC_CINTVL;ACC_SEQ;ACC_RND;DUMMY'),

  IFTHEN=(WHEN=INIT,

BUILD=(1,4,

   44,1,TEMP - DTY

   341,1,   TEMP - SMB

   337,1,   TEMP - MC1

   11,4,DT1,C';',   DTE - DATA

   7,4,TM1,C';',TME - ORA

   19,8,C';',   JBN - JOBNAME

   35,8,C';',   UIF - USERID JOB

   179,4,BI,TO=ZD,C';', NLR - LOGICAL RECORDS

   227,4,BI,TO=ZD,C';', DDE - DELETED BY THIS JOB

   231,4,BI,TO=ZD,C';', DIN - INSERTED BY THIS JOB

   235,4,BI,TO=ZD,C';', DUP - UPDATED BY THIS JOB

   239,4,BI,TO=ZD,C';', DRE - RETRIEVED BY THIS JOB

   255,4,BI,TO=ZD,C';', DEP - EXCP BY THIS JOB

   273,8,C';',  DDN - DDNAME FROM JCL

   291,44,C';', CLN - CLUSTER NAME FROM JCL

   89,44,C';',  DNM - CLUSTER COMPONENT NAME

   C'N',C';',   IT'S A DATASET - DTY BIT 0

   C'N',C';',   IT'S AN INDEX - DTY BIT 1

   C'N',C';',   EXTENDED FORMAT - DTY BIT 2

   C'N',C';',   COMPRESSED - DTY BIT 3

   C'N',C';',   EXTENDED ADDRESSING - DTY BIT 6

   C'N',C';',   ACCBIAS JCL SPECIFIED - SMB BIT 0

   C'N',C';',   ACCBIAS AUTO VIA JCL OR DC - SMB BIT 1

   C'NO',C';',  BIASTYPE - SMB BIT 2-7

   C'N',C';',   OPEN INPUT - MC1 BIT 5

   C'N',C';',   OPEN OUTPUT - MC1 BIT 6

   C'N',C';',   ORG IS INDEXED - MC1 BIT 0

   C'N',C';',   ACCESS IS RBA - MC1 BIT 1

   C'N',C';',   ACCESS IS CINTVL - MC1 BIT 2

   C'N',C';',   ACCESS IS SEQUENTIAL - MC1 BIT 3

   C'N',C';')), ACCESS IS RANDOM - MC1 BIT 4

  IFTHEN=(WHEN=(5,1,BI,EQ,B'1...'), IT'S A DATASET

   OVERLAY=(207:C'S'),HIT=NEXT),

  IFTHEN=(WHEN=(5,1,BI,EQ,B'.1..'), IT'S AN INDEX

   OVERLAY=(209:C'S'),HIT=NEXT),

  IFTHEN=(WHEN=(5,1,BI,EQ,B'..1.'), EXTEND FORMAT

   OVERLAY=(211:C'S'),HIT=NEXT),

  IFTHEN=(WHEN=(5,1,BI,EQ,B'...1'), COMPRESSED

   OVERLAY=(213:C'S'),HIT=NEXT),

  IFTHEN=(WHEN=(5,1,BI,EQ,B'..1.'), EXTENDED ADDRESSING

   OVERLAY=(215:C'S'),HIT=NEXT),

  IFTHEN=(WHEN=(6,1,BI,EQ,B'1...'), ACCBIAS JCL SPECIFIED

   OVERLAY=(217:C'S'),HIT=NEXT),

  IFTHEN=(WHEN=(6,1,BI,EQ,B'.1..'), ACCBIAS AUTO

   OVERLAY=(219:C'S'),HIT=NEXT),

  IFTHEN=(WHEN=(6,1,BI,EQ,B'..1.'), ACCBIAS=DO

   OVERLAY=(221:C'DO'),HIT=NEXT),

  IFTHEN=(WHEN=(6,1,BI,EQ,B'...1'), ACCBIAS=SO

   OVERLAY=(221:C'SO'),HIT=NEXT),

  IFTHEN=(WHEN=(6,1,BI,EQ,B'1...'), ACCBIAS=SW

   OVERLAY=(221:C'SW'),HIT=NEXT),

  IFTHEN=(WHEN=(6,1,BI,EQ,B'.1..'), ACCBIAS=DW

   OVERLAY=(221:C'DW'),HIT=NEXT),

  IFTHEN=(WHEN=(6,1,BI,EQ,B'..1.'), ACCBIAS=CO

   OVERLAY=(221:C'CO'),HIT=NEXT),

  IFTHEN=(WHEN=(6,1,BI,EQ,B'...1'), ACCBIAS=CR

   OVERLAY=(221:C'CR'),HIT=NEXT),

  IFTHEN=(WHEN=(7,1,BI,EQ,B'.1..'), 

Re: IBM BLSR subsystem

2022-05-16 Thread Massimo Biancucci
Hi,

we changed many JCLs using " AMP=('ACCBIAS=DO')" and succeded in CPU and
elapsed time reduction (up to 50% in few cases).

We used SMF64 to choose the best candidates.
If needed, I can share a simple SORT step to convert SMF64 to "readable"
CSV file.

Best regards.
Max

Il giorno lun 16 mag 2022 alle ore 16:36 Pommier, Rex <
rpomm...@sfgmembers.com> ha scritto:

> Hi list,
>
> Is the BLSR subsystem (batch local shared resources) still a
> viable/valuable thing or has it been replaced by something
> bigger/better/faster?  I seem to be stuck in the  mid-90s because the most
> current documentation I can find on it is from MVS/ESA 5.1 dated 1994.  Is
> there more current documentation on how to use it and how it works?  Has it
> been replaced and deprecated?  I just had a developer use it last week and
> experienced a 40+ reduction in I/Os but I wanted to read up on its
> limitations - especially around using it on a shared VSAM dataset.  However
> I can't find anything newer than 25+ years old.   I did multiple internet
> searches which is where I found the ESA manual.  I checked the knowledge
> center and my own z/OS 2.2 and 2.4 collections all to no avail.
>
> Thanks,
>
> Rex
>
> --
> The information contained in this message is confidential, protected from
> disclosure and may be legally privileged. If the reader of this message is
> not the intended recipient or an employee or agent responsible for
> delivering this message to the intended recipient, you are hereby notified
> that any disclosure, distribution, copying, or any action taken or action
> omitted in reliance on it, is strictly prohibited and may be unlawful. If
> you have received this communication in error, please notify us immediately
> by replying to this message and destroy the material in its entirety,
> whether in electronic or hard copy format. Thank you.
>
> --
> 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


Re: zEDC compression on z14 and z15 by using ADRDSSU

2022-03-20 Thread Massimo Biancucci
Renato,

we've not faced this kind of behaviour.
Is it generally visible ?

You can look at SMF30 records and find out where the CPU usage is.
Counter data and zEDC statistics usage sections could help.

Best regards.
Massimo


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno ven 18 mar 2022 alle ore 18:54 Compagno Renato (Consulente per
BCC Sistemi Informatici)  ha
scritto:

> Hi,
>
> In our shop we are doing a DR procedure by  using DFDSS with ZCOMP:
>
>
>
> /DUMP001  EXEC PGM=ADRDSSU,REGION=0M,COND=(0,NE)
>
> //SYSPRINT DD SYSOUT=*
>
> //DISCO   DD DISP=SHR,UNIT=3390,VOL=SER=xx
>
> //N1  DD DSN=FLD0541.DUMPTEST.xx.ZCOMP,
>
> //DISP=(,CATLG),LABEL=(001,SL),
>
> //STORCLAS=SCVTS01B,MGMTCLAS=MCCPEXP,
>
> //VOL=(,,,100),UNIT=VTSIBM
>
> //SYSIN   DD *
>
>  SET PATCH 0D = FF
>
>  SET PATCH 0E = 3C
>
>  SET PATCH 0F = 0A
>
>  DUMP IDD(DISCO) ODD(N1) OPT(4) ALLDATA(*) ALLEXCP WAIT(15,15) -
>
>  ZCOMP(REQ)
>
>
>
>
>
>
>
> For the VOLSER Z24RPB (that is a zOS 2.4 resident volume) on Z14 we have
> the following statistics:
>
> 01.23.14 JOB52973  SATURDAY,  29 JAN 2022 
> 01.23.15 JOB52973  -JOBNAME  STEPNAME PROCSTEPRC   EXCPCPUSRB
> CLOCK   SERV  PG   PAGE   SWAPVIO SWAPS STEPNO
> 09.36.58 JOB52973  -PSDRB110  DUMP138 00  25289.11.00
>  1.74   326K   0  0  0  0 0   139
>690 //DUMP138   EXEC PGM=ADRDSSU,REGION=0M,COND=(0,NE)
>691 //SYSPRINT DD  SYSOUT=*
>692 //DISCODD  DISP=SHR,UNIT=3390,VOL=SER=$FDEF3
>693 //N1   DD  DSN=DR.DUMP.D220128.T160624.Z24RPB,
>// DISP=(,CATLG),LABEL=(001,SL),
>// STORCLAS=SCVTS01B,MGMTCLAS=MCCPEXP,
>// VOL=(,,,100),UNIT=VTSIBM
>694 //SYSINDD  *
>
>
>
>
> For the same volume executing the dump on Z15 we have:
>
>
> 01.23.24 JOB01194  WEDNESDAY, 09 FEB 2022 
> 01.23.15 JOB52973  -JOBNAME  STEPNAME PROCSTEPRC   EXCPCPUSRB
> CLOCK   SERV  PG   PAGE   SWAPVIO SWAPS STEPNO
> 06.32.25 JOB01194  -PSDRB112  DUMP139 00  24999.19.01
>  1.82   597K   0  0  0  0 0   140
>695 //DUMP139   EXEC PGM=ADRDSSU,REGION=0M,COND=(0,NE)
>696 //SYSPRINT DD  SYSOUT=*
>697 //DISCODD  DISP=SHR,UNIT=3390,VOL=SER=$FDEF1
>698 //N1   DD  DSN=DR.DUMP.D220208.T160612.Z24RPB,
>// DISP=(,CATLG),LABEL=(001,SL),
>// STORCLAS=SCVTS01B,MGMTCLAS=MCCPEXP,
>// VOL=(,,,100),UNIT=VTSIBM
>699 //SYSINDD  *
>
>
>
>
>
> Comparing the two step (don't mind that the two steps are using a
> different volser name as input: $FDEF3 and $FDEF1. This is the output of
> flashcopy and the content is exactly the same: the resident volume Z24RPB)
>
>
>
> Then on Z14 we use 0.11 minutes and on Z15 0.20 minutes for CPU+SRB it
> means 82% more CPU time consumption!
>
> Anyone have an idea as to why such difference?
>
>
>
> It is a big difference if you multiply this difference per more than 4000
> devices!!!
>
>
>
>
>
> Please take into account that IBM said:
>
> In the official web page "Integrated Accelerator for zEnterprise Data
> Compression (zEDC)" at
>
> https://www.ibm.com/support/z-content-solutions/compression/
>
> with the statement (right at the top of the page), directly contradicting
> your measurements:
>
>
> The Integrated Accelerator for zEDC, available with IBM(r) z15(tm) and
> LinuxONE III, reduces the cost of storing, transporting and processing
> data. It replaces the zEDC Express adapter with on-chip compression,
> providing
> increased throughput and capacity: for the z15, up to 8 times faster
> application elapsed time with no additional CPU time compared to a z14 with
> zEDC Express for compression and decompression *
>
>
>
> kind Regards
>
> Renato
>
>
>
>
>
>
>
> La presente comunicazione e ogni suo allegato, proveniente da BCC Sistemi
> Informatici SpA (appartenente al Gruppo Bancario Cooperativo Iccrea), ?
> destinata esclusivamente al soggetto indicato quale destinatario o ad
> eventuali altri soggetti autorizzati a riceverla. Essa contiene
> informazioni strettamente confidenziali e riservate, la cui comunicazione o
> diffusione a terzi ? proibita, salvo che non sia stata espressamente
> autorizzata. Se avete ricevuto questa comunicazione per errore, Vi
> preghiamo di darne immediata comunicazione al mittente e di distruggere il
> contenuto. La informiamo inoltre che l'utilizzo non autorizzato del
> messaggio o dei suoi allegati potrebbe costituire reato. BCC Sistemi
> Informatici SpA tratta i dati personali in linea con il Regolamento Europeo
> 2016/679 (GDPR). Per informazioni pu? consultarsi la sezione "Privacy" sul
> 

Re: Gzip for zOS

2022-03-10 Thread Massimo Biancucci
Peter,

if I well understood, guys not paying can install such tool under miniconda
environment (last entry on list).

Look at it for further infos.

Best regards.
Max

Il giorno gio 10 mar 2022 alle ore 09:30 Peter  ha
scritto:

> Hello
>
> I am trying to download gzip for zOS in rocket software website but it is
> blank.
>
> Any clue where I can find it?
>
> --
> 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


Re: CICS/TS 4.1 3270 question

2022-02-10 Thread Massimo Biancucci
John,

in the past I saw something similar.
That time it was a "magic binary string" application sent to the terminal.
It was a kind of "dirty character" into a DB.

Hope this helps.
Max.

Il giorno gio 10 feb 2022 alle ore 15:57 John McKown <
john.archie.mck...@gmail.com> ha scritto:

> According to a programmer, relaying a user error, we are "all of a sudden"
> getting an INVMPSZ error on _some_ terminals, but not others, when
> displaying a mod5 screen using BMS SEND MAP. None of the SENDs use the
> ALTERNATE option. All the terminals are dynamically installed using the
> same model, which hasn't changed since 2009.
>
> Any thoughts on this?
>
> --
> 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


Re: Having some challenges with a SORT Utility

2022-01-19 Thread Massimo Biancucci
Cameron,

sorry for not fully understanding. For me it's not so simple to "see your
dataset".
I'm wondering why you specified the RECORDS= on WHEN=GROUP.
If I well understand the manual:
"
If RECORDS is specified with BEGIN or KEYBEGIN, up to n records starting
with the begin
record belong to a group.
"
this could mean the dataset infos will populate a maximum of 3 records
after it triggers.
How does TRACEIT look like ?

Hope this helps.
Max


Il giorno mer 19 gen 2022 alle ore 23:24 Cameron Conacher <
03cfc59146bb-dmarc-requ...@listserv.ua.edu> ha scritto:

> Hello folks,
> Hopefully someone can point me in a correct direction.
> I can do this in a different manner, but I am stubborn.
>
> I have crafted a little sort utility to read a file and then to grab data
> from a couple of records and include the data with subsequent records.
>
> So, I have a record identifying a dataset name. (One record)
> Then some number of records later, I will have a record identifying an
> Owner group. (One record)
> And then after a few records I will have some other record with names. (A
> number of records- hundreds or perhaps only one)
>
> DataSet Name Record
> Noise records
> Owner Group record
> Noise records
> Name Record
> Name Record
> .
> .
> .
> .
> Noise records
> DataSet Name Record
>
> And so on.
>
> My sort eliminate the noise records, and then I try to carry the dataset
> name and the owner group forward to add it to the name records for final
> output.
>
> When I run my utility, I get the very first name record (with the dataset
> and owner information).
> The subsequent name records do not have the additional data on output
> because somehow I have messed up.
>
>
> Could someone have a peek at my sort control statement and suggest either
> a fix or tell me DON'T DO IT.
>
> Thanks.
>
> And here are my sort control statements.
> **
> **
> *  SCAN THROUGH THE INPUT FILE AND GENERATE AN OUTPUT DETAIL *
> *  FILE COMBINING DATA FROM MULTIPLE RECORDS.*
> **
> *  WE ONLY WANT THE RECORDS CONTAINING ONE OF:   *
> * 'LISTDSD DATASET(' IN POSITION 002 *
> * ' 00'  IN POSITION 002 *
> * ' ALTER '  IN POISITON 011 *
> * 'CONTROL'  IN POISITON 011 *
> * ' READ  '  IN POISITON 011 *
> * 'UPDATE '  IN POISITON 011 *
> **
> **
>
>   INCLUDE COND=(01,20,SS,EQ,C'LISTDSD DATASET',  * ONLY LISTDSD RECS
> OR,
> 01,20,SS,EQ,C' 00',  * OWNER RECORDS
> OR,
> 10,20,SS,EQ,C' ALTER  ', * ALTER   ACCESS
> OR,
> 10,20,SS,EQ,C'CONTROL ', * CONTROL ACCESS
> OR,
> 10,20,SS,EQ,C' READ   ', * READACCESS
> OR,
> 10,20,SS,EQ,C'UPDATE  ') * UPDATE  ACCESS
>
>
> **
> *  PARSE THE INPUT RECORDS LOOKING FOR THE LITERALS REPRESENTING *
> *  THE LISTDSD, OWNER AND RACF ID/ACCESS (DIFFERENT RECORDS) *
> *  USING A GROUP OF THREE RECORDS (1=LISTDSD 2=OWNER 3=RACF ID)  *
> *  OVERLAY THE WORK AREA DATA IN 101-132 WITH:   *
> * 101-104 = 'RACF'   *
> * 105-150 = 45 CHARACTERS FOR LISTDSD NAME   *
> * 151-158 = OWNER NAME   *
> * 159-166 = RACF ID  *
> * 167 175 = RACF ID ACCESS ALLOWED   *
> * 181-184 = FOUR DIGIT RECORD NUMBER *
> * 185-186 = TWO DIGIT GROUP ID NUMBER*
> * 187-189 = THREE DIGIT SEQUENCE NUMBER  *
> * 190-190 = RECORD TYPE; 1=LISTDSD 2=OWNER 3=RACF ID/ACCESS  *
> * 191-193 = '123' RECORD TYPES   *
> * 201-245 = 45 CHARACTERS FOR LISTDSD NAME   *
> * 246-253 = EIGHT CHANRATER OWNER NAME   *
> * 254-261 = EIGHT CHANRATER RACF ID  *
> * 262-268 = SEVEN CHARACTER RACF ACCESS AVAILABLE*
> **
>   INREC IFTHEN=(WHEN=INIT,
> BUILD=(001,080,  * CURRENT RECORD
>

Re: SMF119 - Subtype 20 and Subtype 21. REXX.

2022-01-03 Thread Massimo Biancucci
Thanks to Paul for the clarification.

I've been told somebody got CC=16 from SORT.
Sorry, I developed the script at a non-DFSort site.
Please modify these two lines:

460,160,SQZ=(VL,MID=C' '),C';',
520,160,SQZ=(VL,MID=C' '),C';',

with:

460,160,SQZ=(SHIFT=LEFT,MID=C' '),C';',
520,160,SQZ=(SHIFT=LEFT,MID=C' '),C';',

Best regards.
Max


Il giorno gio 30 dic 2021 alle ore 19:57 Paul Gilmartin <
000433f07816-dmarc-requ...@listserv.ua.edu> ha scritto:

> On Thu, 30 Dec 2021 10:34:37 +0100, Massimo Biancucci wrote:
> >...
> >EXECIO "0 DISKR SMF" /* OPEN INPUT */
> >
> >EXECIO "0 DISKW OUT" /* OPEN OUTPUT */
> >
> Caution:  From the  z/OS TSO/E REXX Reference:
>
> lines
> The number of lines to be processed.
> ...
> If you specify a value of zero, no I/O operations are performed unless you
> also specify either OPEN, FINIS, or both OPEN and FINIS.
>
> So those two instructions harmlessly do nothing.  If that checks that the
> files are correctly allocated, perhaps a clarifying RCF to the Ref. is
> needed.
>
> -- 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


SMF119 - Subtype 20 and Subtype 21. REXX.

2021-12-30 Thread Massimo Biancucci
REXX:
/*REXX*/



PARSE ARG BUFFER MAX_BUFFER .



NUMERIC DIGITS 18



IF BUFFER = "" THEN BUFFER = 5000

IF MAX_BUFFER = "" THEN MAX_BUFFER = 0



EXECIO "0 DISKR SMF" /* OPEN INPUT */

EXECIO "0 DISKW OUT" /* OPEN OUTPUT */

I_BLK = 0

I_LETTI = 0

I_LETTI_119 = 0

I_ALTRI = 0

I_SCRITTI = 0



"EXECIO "BUFFER" DISKR SMF (STEM SMF.)"

DO WHILE(SMF.0 > 0)

  IF MAX_BUFFER > 0 & I_BLK = MAX_BUFFER THEN DO

SAY "ABBANDONO ELABORAZIONE PER MAX BLOCCHI"

LEAVE

  END

  I_BLK = I_BLK + 1

  SAY "LETTO BLOCCO:" RIGHT(I_BLK,8),

   "DI" RIGHT(SMF.0,8),

   "RECORDS"

  O = 0

  DROP OUT.

  DO I = 1 TO SMF.0

I_LETTI = I_LETTI + 1

SMF = SMF.I

SMF_RTY = C2D(SUBSTR(SMF,2,1))

SELECT

  WHEN SMF_RTY = 119 THEN DO

CALL ELABORA_REC119

I_LETTI_119 = I_LETTI_119 + 1

  END

  OTHERWISE DO

I_ALTRI = I_ALTRI + 1

  END

END

  END

  "EXECIO "O" DISKW OUT (STEM OUT.)"

  I_SCRITTI = I_SCRITTI + O

  "EXECIO "BUFFER" DISKR SMF (STEM SMF.)"

END



EXECIO "0 DISKW OUT(FINIS)" /* CLOSE */

EXECIO "0 DISKR SMF(FINIS)" /* CLOSE */



SAY "RECORDS SMF LETTI.:" I_LETTI

SAY ".. DI CUI 119.:" I_LETTI_119

SAY ".. DI CUI ALTRI...:" I_ALTRI

SAY "RECORDS SCRITTI...:" I_SCRITTI



EXIT



/*-*/

/* ELABORA RECORDS 119 */

/*-*/

ELABORA_REC119:



SMF119BASE = SUBSTR(SMF,1,20)

SMF119HDFLAGS = SUBSTR(SMF,1,1)

BIT = X2B(C2X(SMF119HDFLAGS))

IF SUBSTR(BIT,2,1) = "0" THEN DO

  SAY "SUBTYPE IS NOT VALID AT RECORD:" I_LETTI

  EXIT 99

END

SMF119HDTYPE = C2D(SUBSTR(SMF,2,1))

SMF119HDTIME = SUBSTR(SMF,3,4)

SMF119HDDATE = SUBSTR(SMF,7,4)

SMF119HDSID = SUBSTR(SMF,11,4)

SMF119HDSSI = SUBSTR(SMF,15,4)

SMF119HDSUBTYPE = C2D(SUBSTR(19,2))



SMF119SDEFSECT = SUBSTR(SMF,21,12)

SMF119SD_TRN = C2D(SUBSTR(SMF119SDEFSECT,1,2))/* N.OF TRIPLETS */

SMF119SDRSVD = SUBSTR(SMF119SDEFSECT,3,2) /* RESERVED */

SMF119IDOFF = C2D(SUBSTR(SMF119SDEFSECT,5,4)) - 3 /* OFF TO IDENT. */

SMF119IDLEN = C2D(SUBSTR(SMF119SDEFSECT,9,2)) /* LL OF IDENT. */

SMF119IDNUM = C2D(SUBSTR(SMF119SDEFSECT,11,2))/* N. OF IDENT. */

IF SMF119IDNUM > 1 THEN DO

  SAY "MORE THAN 1 IDENTIFICATION SECTION AT RECORD:" I_LETTI

  EXIT 99

END



SMF119IDENT = SUBSTR(SMF,SMF119IDOFF,SMF119IDLEN)



/*SAY "NUMERO TRIPLETTE:"SMF119SD_TRN*/



DROP SECTION_TRIPLETS.

TR = 0

OFFS_BASE = 21 + 2 + 2

DO N_SECT = 2 TO SMF119SD_TRN

  OFFS = OFFS_BASE + (N_SECT - 1) * 8

  TR = TR + 1

  SECTION_TRIPLETS.TR = SUBSTR(SMF,OFFS,8)

END

SECTION_TRIPLETS.0 = TR



DO TR = 1 TO SECTION_TRIPLETS.0

  OFFS_BASE = C2D(SUBSTR(SECTION_TRIPLETS.TR,1,4)) - 3

  LEN = C2D(SUBSTR(SECTION_TRIPLETS.TR,5,2))

  NR = C2D(SUBSTR(SECTION_TRIPLETS.TR,7,2))

  /*SAY "TR:"TR "OFFS_BASE:"OFFS_BASE "LEN:"LEN "NR:"NR*/

  DO XX = 1 TO NR

OFFS = OFFS_BASE + (XX - 1) * LEN

REC = SUBSTR(SMF,OFFS,LEN)

O = O + 1

OUT.O = SMF119BASE !!,

SMF119IDENT !!,

SECTION_TRIPLETS.TR !!,

D2C(XX,2) !!,

D2C(I_LETTI,4) !!,

REC

IF O // BUFFER = 0 THEN DO

  "EXECIO "O" DISKW OUT (STEM OUT.)"

  I_SCRITTI = I_SCRITTI + O

  O = 0

END

  END

END



RETURN


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


SMF119 - Subtype 20 and Subtype 21. JCL.

2021-12-30 Thread Massimo Biancucci
JCL:
// EXPORT SYMLIST=*

// SET SMFIN=MYSMF
// SET SMFOUT=MYOUT
//*---*

//*   *

//*---*

//ST010EXEC  PGM=IDCAMS

//SYSPRINT DD  SYSOUT=*

//SYSIN DD *,SYMBOLS=JCLONLY

 DELETE 

 IF MAXCC=8 THEN SET MAXCC=0

/*

//*---*

//* VERTICALIZE SMF119 RECORDS FOR EVERY TRIPLET  *

//*---*

//* OUTPUT FORMAT (VB RECORD):*

//* STRT-LL DESCRIPTION   *

//* 0001-20 SAME AS ORIGINAL SMF RECORD WITHOUT VBS RDW WITH VB LL*

//* AT 19 SMF119HDSUBTYPE *

//* 0021-64 SMF119IDENT - ACTUAL LENGTH 64 (LL GOT FROM TRIPLET)  *

//* 0085-08 ORIGINATING TRIPLET FIELDS (OFFS/LEN/NR)  *

//* 0093-02 RELATIVE NUMBER IN TRIPLET. USED TO SELECT DSECT TO MAP   *

//* 0095-04 ORIGINAL ABSOLUTE RECORD NUMBER   *

//* 0099-?? SPECIFIC DATA SECTION *

//*---*

//ST020EXEC  PGM=IKJEFT01

//SYSPROC  DD DSN=LIB.REXX,DISP=SHR
//SYSTSPRT DD  SYSOUT=*

//SYSPRINT DD  SYSOUT=*

//SYSOUT   DD  SYSOUT=*

//SMF  DD  DISP=SHR,DSN=

//OUT  DD  DSN=,

// DISP=(,CATLG),SPACE=(TRK,(100,100),RLSE),

// DCB=(LRECL=32000,RECFM=VB,DSORG=PS)
//SYSTSIN  DD  *

 %SMF119

/*

//*---*

//* PRINT SMF119TN_NT DSECT   *

//*---*

//ST030EXEC  PGM=SORT

//SYSOUT   DD  SYSOUT=*

//SORTIN   DD  DSN=MYOUT,DISP=SHR
//SORTOUT  DD SYSOUT=*

//SYMNAMES DD *

RDW,1,4

HDFLAGS,5,1

HDTYPE,6,1

HDTIME,7,4

HDDATE,11,4

HDSID,15,4

HDSSI,19,4

HDSUBTYPE,23,2

TI_SYSNAME,25,8

TI_SYSPLEXNAME,33,8

TI_STACK,41,8

TI_RELEASEID,49,8

TI_COMP,57,8

TI_ASNAME,65,8

TI_USERID,73,8

TI_ASID,81,4

TI_FILL2,81,2

TI_ASID2,83,2

TI_REASON,85,1

TI_RECORDID,86,1

TI_RSVD,87,2

TRIP_DATA,89,8

TRIP_OFFSET,89,4

TRIP_LEN,93,2

TRIP_NUME,95,2

TRIP_OCCURR,97,2

ORIG_RECNO,99,4

TN_NT_DSECT,103,144

TN_NTLU,103,8

TN_NTAPPL,111,8

TN_NTLDEV,119,4

TN_NTRIP,123,16

TN_NTRIPRSVD,123,16

TN_NTRIPRSVD_1,123,2

TN_NTRIPRSVD_2,125,2

TN_NTRIPRSVD_3,127,2

TN_NTRIPRSVD_4,129,2

TN_NTRIPRSVD_5,131,2

TN_NTRIPRSVD_6,133,2

TN_NTRIPRSVD_7,135,2

TN_NTRIPRSVD_8,137,2

TN_NTRIPRSVD10,123,10

TN_NTRIPRFMT,133,2

TN_NTRIP_IPV4,135,4

TN_NTRIP_IPV4_1,135,1

TN_NTRIP_IPV4_2,136,1

TN_NTRIP_IPV4_3,137,1

TN_NTRIP_IPV4_4,138,1

TN_NTLIP,139,16

TN_NTLIPRSVD,139,16

TN_NTLIPRSVD_1,139,2

TN_NTLIPRSVD_2,141,2

TN_NTLIPRSVD_3,143,2

TN_NTLIPRSVD_4,145,2

TN_NTLIPRSVD_5,147,2

TN_NTLIPRSVD_6,149,2

TN_NTLIPRSVD_7,151,2

TN_NTLIPRSVD_8,153,2

TN_NTLIPRSVD10,139,10

TN_NTLIPRFMT,149,2

TN_NTLIP_IPV4,151,4

TN_NTLIP_IPV4_1,151,1

TN_NTLIP_IPV4_2,152,1

TN_NTLIP_IPV4_3,153,1

TN_NTLIP_IPV4_4,154,1

TN_NTRPORT,155,2

TN_NTLPORT,157,2

TN_NTHOSTNM,159,8

TN_NTINBYTE,167,8

TN_NTOUTBYTE,175,8

TN_NTITIME,183,4

TN_NTIDATE,187,4

TN_NTTTIME,191,4

TN_NTTDATE,195,4

TN_NTDUR,199,4

TN_NTSTYPE,203,1

TN_NTLUSEL,204,1

TN_NTSSL,205,1

TN_NTRSVD1,206,1

TN_NTCOPT,207,1

TN_NTRSVD2,208,1

TN_NT32OPT,209,2

TN_NTRCODE,211,8

TN_NTLMODE,219,8

TN_NTDEVT,227,20

/*

//SYSINDD  *

 INCLUDE COND=(HDSUBTYPE,BI,EQ,+21,AND,

   TRIP_OCCURR,BI,EQ,+1)   FIRST DSECT OF SUBTYPE 21

 INREC IFTHEN=(WHEN=INIT,

  OVERLAY=(300:40X, IPV6 MAX SIZE

   340:40X, IPV6 MAX SIZE

   380:20X, SESSION TYPE

   400:20X, LU SELECTION METHOD

   420:40X, SSL STATUS

   460:160X,CONNECTION OPTIONS

   620:180X)),  TN3270E CONNECTION OPTIONS

*

  IFTHEN=(WHEN=(TN_NTRIPRFMT,CH,EQ,X''),

   OVERLAY=(300:TN_NTRIP_IPV4_1,BI,EDIT=(TTT),

C'.',

TN_NTRIP_IPV4_2,BI,EDIT=(TTT),

C'.',

TN_NTRIP_IPV4_3,BI,EDIT=(TTT),

C'.',

TN_NTRIP_IPV4_4,BI,EDIT=(TTT)),HIT=NEXT),

*

  IFTHEN=(WHEN=(TN_NTRIPRFMT,CH,NE,X''),

   OVERLAY=(300:TN_NTRIPRSVD_1,TRAN=HEX,

C':',

TN_NTRIPRSVD_2,TRAN=HEX,

C':',

TN_NTRIPRSVD_3,TRAN=HEX,

C':',

TN_NTRIPRSVD_4,TRAN=HEX,

C':',

TN_NTRIPRSVD_5,TRAN=HEX,

C':',

TN_NTRIPRSVD_6,TRAN=HEX,

C':',

TN_NTRIPRSVD_7,TRAN=HEX,

C':',

TN_NTRIPRSVD_8,TRAN=HEX),HIT=NEXT),

*

  

SMF119 - Subtype 20 and Subtype 21. Basic.

2021-12-30 Thread Massimo Biancucci
 Hi everybody,

more than one guy asked for the solution so here the basic. Next msgs for
JCL and REXX (can't go over 1000 lines).
Take in count this is only a POC and I was not able to find out any 20
subtype nor subtype 21 with second and third section available (only first
one).
So the SORT step to print the dsect is only valid for SMF119, subtype 21
and first DSECT.
The basic idea is using REXX to parse raw SMF119 and produce multiple VB
records for each with:
START LEN Description
1  20 Same as original SMF records without VBS RDW with VB LL
  so at col 19 there's the subtype
00021  64 SMF119IDENT - Actual length is 64 (x'40' - LL got from triplet so
will change according)
00085  08 Originating triplet fields (OFFS/LEN/NR)
00093  02 Relative number in triplet. Used to select DSECT to map the
subsequent specific data
00095  04 Original absolute record number (to look at the originating one
in case of debug)
00099  ?? Specific data section

So, in theory, a SMF119 subtype 21 with the three DSECT available will be
written as three different records with:
#1
1-00092 same for the three of them
00093-00094 x'0001'
00095-00098 same for the three of them
00099-for x'0090' SMF119TN_NT_DSECT
#2
1-00092 same for the three of them
00093-00094 x'0002'
00095-00098 same for the three of them
00099-for x'0030' SMF119TN_NTR_DSECT
#3
1-00092 same for the three of them
00093-00094 x'0003'
00095-00098 same for the three of them
00099-for x'0024' SMF119TN_NTB_DSECT

After that, SORT step can choose the record mapping depending on subtype
(19,2 or 23,2 taking in count RDW, SYMNAMES=HDSUBTYPE) and triplet relative
number (93,2 or 97,2 taking in count RDW, SYMNAMES=TRIP_OCCURR).
In my sample dataset there was not a record with IPV6 only IPV4 so I hope
the mapping for IPV6 is good enough.
It's a try, so please take it as is.

After trying and verified it (especially the basic statement), if anybody
would like me to write the sort step for other dsects, please provide a
sample record set with valid data.

Hope this helps.
Max


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: SMF119 - Subtype 20 and Subtype 21

2021-12-29 Thread Massimo Biancucci
Jake,

I wrote a mix of REXX and Sort to do the task (CSV file as output) even
though I've got only subtype 21 at my shop for the sample. I think it's not
so difficult to do the same for 20 subtype.
It's a long writing for such a thread.
If I can use the mail I see I'll be happy to share it with you.

Best regards.
Max

Il giorno mar 28 dic 2021 alle ore 07:16 Jake Anderson <
justmainfra...@gmail.com> ha scritto:

> Hello
>
> Is there a freeware or any sample REXX which can produce a human readable
> output to understand any IP tied up to a VTAM(LU) by reading the SMF
> dataset. We don't have SAS or MXG in our shop.
>
> Any pointers would be appreciated.
>
> Jake
>
> --
> 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


Re: How to use dfsort to filter keywords that aren't fixed position

2021-12-20 Thread Massimo Biancucci
Jason,

sorry for me being a bit confused 
If it's true a ML WTO cannot be interrupted, if you need to recognize the
WTO groups try this (the syslog dataset I used is a 137 VBM):

//*---*

//*   *

//*---*

//ST010EXEC  PGM=SORT

//SYSOUTDD   SYSOUT=*

//SORTIN   DD DISP=SHR,DSN=MYLOG

//SORTOUT  DD DSN=,DISP=(,PASS),

// SPACE=(TRK,(300,300))

//ERRORDD DSN=,DISP=(,PASS),

// SPACE=(TRK,(300,300))

//SYSIN DD   *

 OPTION VLSCMP

 INREC IFTHEN=(WHEN=GROUP,BEGIN=(33,1,CH,NE,C' '),   POS OF FIRST TS BYTE


  PUSH=(140:ID=9))

 SORT FIELDS=COPY

 OUTFIL FNAMES=SORTOUT

 OUTFIL FNAMES=ERROR,INCLUDE=(6,137,SS,EQ,C'ERROR')

/*

//*---*

//*   *

//*---*

//ST020EXEC  PGM=IDCAMS

//SYSPRINT DD   SYSOUT=*

//SYSINDD   *

 DELETE MYLOG.OK

 IF MAXCC=8 THEN SET MAXCC=0

/*

//*---*

//*   *

//*---*

//ST004EXEC  PGM=SORT

//SYSOUTDD   SYSOUT=*

//ERRORDD DSN=,DISP=(OLD,DELETE)

//ALL  DD DSN=,DISP=(OLD,DELETE)

//SORTOUT  DD DSN=MYLOG.OK,

// DISP=(,CATLG),DATACLAS=UEFSQCMP,

// SPACE=(TRK,(300,300))

//SYSIN DD   *

 JOINKEYS F1=ERROR,FIELDS=(140,9,A),SORTED

 JOINKEYS F2=ALL,FIELDS=(140,9,A),SORTED

 REFORMAT FIELDS=(F2:1,137,F2:140,9)


 SORT FIELDS=COPY
/*

Now, at position 140, you'll find the 9 bytes zoned group ID.
So, in your sample:

+1+2+3+4+5+6+7+8+9+0+1+2+3+4+---
N C00 CUK1   18179 16:07:33.83 0090 HSAM5400I
HISTO
1
N C00 CUK1   18179 16:07:33.85 0090 HSAM1003I ARM
R
2
S
  TYPE=HSAMGR RES   2

Actually I use a REXX approach to analyze a small set of messages, if this
will work I'll try to change it.
In my experience SYSLOG dataset (at switch time) can be truncated so
sometimes the very first and last piece of it could contain "remainders"
from the previous day or not the complete infos for the actual one.

Hope this helps.
Max



Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno lun 20 dic 2021 alle ore 05:58 Jason Cai  ha
scritto:

> Thanks for  Martin, Massimo, and Kolusu's help
>
> As Massino mention that a multiline WTO
> cannot be interrupted, we need to handle multiline messages in OPERLOG or
> SYSLOG that cannot be interrupted.
>
> for IBM manul
>
> Each SYSLOG record is prefaced by a two-character record type field.
> Valid first characters are:
> N - single-line message
> W - single-line message with reply
> WTOR messages are not processed by Message Flood Automation.
> M - first line of a multi-line message
> Message Flood Automation can only react to the first line of a multiline
> message, not to any of the label, data or end lines
> L - multi-line message label line
> D - multi-line message data line
> E - multi-line message data/end line
> S - continuation of previous line
> O - LOG command input
> X - non-hardcopy or LOG command source
>
> There are at least three kinds of groups.
>
> 1. N  single-line message
>INREC IFTHEN=(WHEN=GROUP,BEGIN=(2,1,CH,EQ,C'N'),
>END=(2,1,CH,EQ,C'N')
> 2.  M - first line of a multi-line message
> INREC IFTHEN=(WHEN=GROUP,BEGIN=(2,1,CH,EQ,C'M'),
> END=(2,1,CH,EQ,C'E')
> 3. S - continuation of previous line
> INREC IFTHEN=(WHEN=GROUP,BEGIN=(2,1,CH,EQ,C'N'),
> END=(2,1,CH,EQ,C'S')
>
> for example:
> N C00 CUK1   18179 16:07:33.83 0090 HSAM5400I HISTO
> N C00 CUK1   18179 16:07:33.85 0090 HSAM1003I ARM R
> S
>   TYPE=HSAMGR RES
>
> If we put them together, the output isn't what we need. Please see the
> following statement.
>
> OPTION VLSCMP
>  INREC IFTHEN=(WHEN=GROUP,BEGIN=(2,1,CH,EQ,C'M',OR,2,1,CH,EQ,C'N'),
>  END=(2,1,CH,EQ,C'E',OR,2,1,CH,EQ,C'S',OR,2,1,CH,EQ,C'N'),
>  PUSH=(140:ID=9))
>
> Could you help us to handle multiline messages in syslog by dfsort ?
>
> Any suggestions are greatly appreciated!
>
> Thanks a lot!
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO 

Re: How to use dfsort to filter keywords that aren't fixed position

2021-12-17 Thread Massimo Biancucci
Jason,

I'm not sure I fully understood your question and I'm not really sure it
works generally because I'm assuming that OPERLOG interleaves blanks on
"WTO TIME" position when a multiline WTO happens and that a multiline WTO
cannot be interrupted (not sure + not sure means not good :D).

Try this:

//*---*

//*   *

//*---*

//ST010EXEC  PGM=SORT

//SYSOUTDD   SYSOUT=*

//SORTIN   DD DISP=SHR,DSN=MYLOG

//SORTOUT  DD DSN=,DISP=(,PASS),

// SPACE=(TRK,(300,300))

//ERRORDD DSN=,DISP=(,PASS),

// SPACE=(TRK,(300,300))

//SYSIN DD   *

 OPTION VLSCMP

 INREC IFTHEN=(WHEN=GROUP,BEGIN=(28,1,CH,NE,C' '),

  PUSH=(140:ID=9))

 SORT FIELDS=COPY

 OUTFIL FNAMES=SORTOUT

 OUTFIL FNAMES=ERROR,INCLUDE=(1,137,SS,EQ,C'ERROR')

/*

//*---*

//*   *

//*---*

//ST020EXEC  PGM=IDCAMS

//SYSPRINT DD   SYSOUT=*

//SYSINDD   *

 DELETE MYLOG.OK

 IF MAXCC=8 THEN SET MAXCC=0

/*

//*---*

//*   *

//*---*

//ST004EXEC  PGM=SORT

//SYSOUTDD   SYSOUT=*

//ERRORDD DSN=,DISP=(OLD,DELETE)

//ALL  DD DSN=,DISP=(OLD,DELETE)

//SORTOUT  DD DSN=MYLOG.OK,

// DISP=(,CATLG),DATACLAS=UEFSQCMP,

// SPACE=(TRK,(300,300))

//SYSIN DD   *

 JOINKEYS F1=ERROR,FIELDS=(140,9,A),SORTED

 JOINKEYS F2=ALL,FIELDS=(140,9,A),SORTED

 REFORMAT FIELDS=(F2:1,137)

 SORT FIELDS=COPY
/*

Best regards.
Max

Il giorno ven 17 dic 2021 alle ore 08:19 ibmmain  ha
scritto:

> Hi all
>
>
>  For performance, we want to filter keywords (for
> example:'ERROR') from oplerlog with DFSORT.
>
>
>  If the keyword is is a fixed position in operlog , we could
> put the keyword in the other dataset.
>
>
>  We could join the oplerlog with the dataset using DFSORT to
> filter all messages that contained ' ERROR'
>
>
> But the keywords aren't fixed position in OPERLOG, how to filter
> this keyword with DFSORT.
>
>
> Of course, we could do it by REXX
>
>
> Any suggestions would be greatly appreciated!
>
>
>
>
> Thanks a lot!
>
>
> Best Regards,
>
>
> Jason Cai
>
>
> 
>
> --
> 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


Re: conditional JCL - Reinvent the wheel?

2021-11-11 Thread Massimo Biancucci
Colin,

adding to Sri example, we wrote a simple REXX who "understands" a parm like:

ST EXEC PGM=XXCOND,PARM=('""comparison_operator""')

where  can be =,>,<,<>

like ('"A"="B"')
('"A">"B"') and so on

The simple REXX pgm returns a step CC 1 if the condition is true or zero if
not.
So, nothing really new but more customizable.

Best regards.
Max


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mer 10 nov 2021 alle ore 15:05 Sri h Kolusu 
ha scritto:

> Colin,
>
> Why not use IEBCOMPR to compare the symbols and set the return code? If
> both symbols match RC= 0 else RC =8.  something like this (I used COND ,
> but you can use IF ELSE after the first compare.)
>
> // EXPORT SYMLIST=*
> // SET DELUSER='NO'
> // SET DEFUSER='YES'
> /*
> //**
> //* Peform a compare of the set parms  *
> //**
> //COMPARE  EXEC PGM=IEBCOMPR
> //SYSPRINT DD SYSOUT=*
> //SYSUT1   DD *,SYMBOLS=JCLONLY
> 
> //SYSUT2   DD *,SYMBOLS=JCLONLY
> 
> //SYSINDD DUMMY
> /*
> //**
> //* SKIP delete user if compare step returns RC = 8*
> //**
> //DELUSER  EXEC PGM=IKJEFT01,COND=(8,EQ,COMPARE)
> //SYSTSPRT DD SYSOUT=*,DCB=BLKSIZE=121
> //SYSPRINT DD SYSOUT=*
> //SYSTSIN  DD *,SYMBOLS=JCLONLY
> /*
>
>
> Thanks,
> Kolusu
>
>
> "IBM Mainframe Discussion List"  wrote on
> 11/10/2021 05:29:37 AM:
>
> > From: "Colin Paice" 
> > To: IBM-MAIN@LISTSERV.UA.EDU
> > Date: 11/10/2021 05:31 AM
> > Subject: [EXTERNAL] conditional JCL - Reinvent the wheel?
> > Sent by: "IBM Mainframe Discussion List" 
> >
> > I'm looking at ways of doing customisation, and want an easy way to
> > run/omit steps.
> > For example
> > ADDUSER  ZZZ NAME('COLINS')NOPASSWORD -
> >OMVS(AUTOUID  ASSIZE(25600)  THREADS(512))
> >
> > being a good person, I also want to provide a delete step
> > DELUSER Z.
> > My fantasy JCL looks like
> > // SET DELUSER='NO'
> > // SET DEFUSER=YES
> > // SET...
> >
> > //IF  (DELUSER='YES')
> > ..
> > DELUSER 
> > //ENDIF
> > //IF  (DEFUSER='YES')
> > ..
> > ADDUSER  ..
> > //ENDIF
> > ...
> >
> > So the first time,  you set DELUSER=NO, DEFUSER=YES... and run it. the
> > second time
> > you set DELUSER=YES, DEFUSER=YES, and to give up,and clean up you set
> > DELUSER=YES, DEFUSER=NO.
> >
> > What is the best way of doing this?
> >
> > The JCL 'IF' statement uses RC, or ABEND, and not on set variables.
> >
> > Ive set up a small program "COND",PARM='A = ' which sets RC = 0 if
> they
> > are the same,
> > so now I can use
> > //DELUSER EXEC PGM=COND,PARM='DELUSER = YES'
> > //DEFUSER EXEC PGM=COND,PARM='DEFUSER = YES'
> > //DELETE EXEC PGM=... ,COND=(0,NE,DELUSER)
> > //DEFINE  EXEC PGM=...,COND=(0,NE,DEFUSER)
> >
> > Is there a better way of doing this?   I would prefer one job, because I
> > want to do global edit of myuserid to Z etc
> >
> > In the past Ive put the deletes inline with the define, but the output
> > looks messy, because the  first time delete fails.
> >
> > Colin
> >
> > --
> > 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
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: DFSORT- SORT OUT FILE Sequence is not in order

2021-11-11 Thread Massimo Biancucci
Ron,

if I well understood, the task was to remove duplicate records maintaning
the initial order.
Maybe it could be done with a single instruction, anyway the following
should work:





//ST010EXEC  PGM=ICETOOL

//TOOLMSG  DD  SYSOUT=*

//DFSMSG   DD  SYSOUT=*

//TEMP DD DSN=&,DISP=(,PASS),SPACE=(TRK,(10,10),RLSE)

//OUT  DD SYSOUT=*

//CTL1CNTL DD *

 INREC FIELDS=(1,80,SEQNUM,4,BI)

 SORT FIELDS=(1,80,BI,A),EQUALS

 SUM FIELDS=NONE

/*

//CTL2CNTL DD *

 SORT FIELDS=(81,4,BI,A)

 OUTREC FIELDS=(1,80)

/*

//TOOLIN   DD  *

 SORT FROM(SORTIN) TO(TEMP) USING(CTL1)

 SORT FROM(TEMP) TO(OUT) USING(CTL2)

/*

//SORTIN   DD  *
your data

/*



Best regards.

Il giorno gio 11 nov 2021 alle ore 12:28 Ron Thomas  ha
scritto:

> Hi -
>
> We have a Input file of LRECL =80 as below
>
> 105_1_10893_1_28 1_10893_1_28  FAMILY SHARE CRISPS
> 1_10893_1_28 10893_1_28  SHARING CRISPS
> 10893_1_28 1_28  SHARING CRISPS
> 1_28 28  SNACKS
> 28   EDIBLE
> GROCERY
> 105_1_10893_1_28 1_10893_1_28  FAMILY SHARE CRISPS
> 1_10893_1_28 10893_1_28  SHARING CRISPS
> 10893_1_28 1_28  SHARING CRISPS
> 1_28 28  SNACKS
> 28   EDIBLE
> GROCERY
> 105_1_10893_1_29 1_10893_1_29  FAMILY SHARE CRISPS-NEW
> 1_10893_1_29 10893_1_29  SHARING CRISPS
> 10893_1_29  1_29 SHARING CRISPS
> 1_29  29 SNACKS
> 29   EDIBLE
> GROCERY
> 105_1_10893_1_28 1_10893_1_28  FAMILY SHARE CRISPS
> 1_10893_1_28 10893_1_28  SHARING CRISPS
> 10893_1_28 1_28  SHARING CRISPS
> 1_28 28  SNACKS
> 28   EDIBLE
> GROCERY
> 105_1_10893_1_29 1_10893_1_29  FAMILY SHARE CRISPS-NEW
> 1_10893_1_29 10893_1_29  SHARING CRISPS
> 10893_1_29  1_29 SHARING CRISPS
> 1_29  29 SNACKS
> 29   EDIBLE
> GROCERY
>
> Expected output
>
> 105_1_10893_1_28 1_10893_1_28  FAMILY SHARE CRISPS
> 1_10893_1_28 10893_1_28  SHARING CRISPS
> 10893_1_28 1_28  SHARING CRISPS
> 1_28 28  SNACKS
> 28   EDIBLE
> GROCERY
> 105_1_10893_1_29 1_10893_1_29  FAMILY SHARE CRISPS-NEW
> 1_10893_1_29 10893_1_29  SHARING CRISPS
> 10893_1_29  1_29 SHARING CRISPS
> 1_29  29 SNACKS
> 29   EDIBLE
> GROCERY
>
> Output Received ** This output disturbed the data sequence .
>
> 1_10893_1_2810893_1_28   SHARING CRISPS
> 1_10893_1_2910893_1_29   SHARING CRISPS
> 1_2828   SNACKS
> 1_29 29  SNACKS
> 105_1_10893_1_28 1_10893_1_28  FAMILY SHARE CRISPS
> 105_1_10893_1_29 1_10893_1_29  FAMILY SHARE CRISPS-NEW
> 10893_1_28 1_28  SHARING CRISPS
> 10893_1_29 1_29  SHARING CRISPS
> 28   EDIBLE
> GROCERY
> 29   EDIBLE
> GROCERY
>
>
> i have used the below ICETOOL sort card
>
> //TOOLIN   DD *
> SELECT FROM(IN) TO(OUT) ON(1,80,CH) FIRST
> /*
> //CTL1CNTL DD *
>   SORT FIELDS=COPY
> /*
>
> The above sort card is not working as expected. Could someone let me know
> how the sort card to be corrected .
>
> Thanks
> Ron T
>
> --
> 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


Re: COBOL issue

2021-10-01 Thread Massimo Biancucci
Bernd,

forget it ! :D

Your code works on my zOS.
Best regards.

Il giorno ven 1 ott 2021 alle ore 17:55 Bernd Oppolzer <
bernd.oppol...@t-online.de> ha scritto:

> Many thanks to all who responded and especially to Peter for posting
> this piece of ASSEMBLER
> which solves the problem.
>
> I am very impressed by the helpfulness of this mailing list, which I
> experienced this time again
> and many times before.
>
> @Max: the code that you provided unfortunately does not work on my
> compiler version (VSE),
> because it forbids getting the address of WS items. That's why I need an
> ASSEMBLER subroutine
> to do this, much the same way as the generated code for the DB2
> interface DSNHLI does it
> (at least in earlier releases, IIRC).
>
> Kind regards
>
> Bernd
>
>
> > Sorry, forgot to mention:
> >
> > I'm on VSE, the Compiler release is COBOL for VSE/ESA 1.1.1; this
> Compiler definitely only allows items from the Linkage Section.
> >
> > Nice to know about later version on other OSes.
> > So there is no danger in applying an ASSEMBLER workaround and probably
> no other (simple and performant) COBOL-only fix.
> >
> > Kind regards
> >
> > Bernd
> >
> >
> > Am 01.10.2021 um 16:18 schrieb Joe Monk:
> >> Depends on the release of the COBOL compiler. Later releases support
> >> working-storage items, earlier releases only allow linkage items.
> >>
> >> Joe
> >>
> >> On Fri, Oct 1, 2021 at 8:50 AM Bernd Oppolzer
> >> 
> >> wrote:
> >>
> >>> Probably asking a COBOL question for the first time :-)
> >>>
> >>> I am thinking about writing a general sub-program using COBOL which
> >>> does several different computations, each of them needing different
> >>> input and output data of different size.
> >>>
> >>> Because this should work with Batch and CICS, I am thinking about a
> >>> single communication area with fixed size, which points to another
> >>> communiation area of variable size.
> >>>
> >>> The area looks like this:
> >>>
> >>> 01  COMMAREA.
> >>>05  CA-FUNCTION_CODE   PIC X(8).
> >>>05  CA-STATUS  PIC 99.
> >>>05  CA-AREA-ADDR   USAGE POINTER.
> >>>05  CA-AREA-LENPIC S9(4) COMP.
> >>>
> >>> I managed to write the called subroutine; the COMMAREA is in the
> >>> LINKAGE SECTION there, and I can use the address in the CA-AREA-ADDR
> >>> and read and write the values in the variable comm-area, which is
> >>> linked to the fixed area. No problem so far.
> >>>
> >>> But:
> >>>
> >>> in the calling program, when setting up the COMMAREA.
> >>> I cannot put the address of a WORKING-STORAGE FIELD into the
> >>> CA-AREA-ADDR. Because simply it is not allowed to use SET
> >>> CA-AREA-ADDR TO ADDRESS OF field on WS fields.
> >>>
> >>> Why? IMO there is no danger in passing the address of a WS field to a
> >>> subprogram.
> >>> Even if the WS field were in automatic storage (which it is not,
> >>> IMO), there would be no problem. In fact, this is done implicitly
> >>> using call-by-reference, but I want to do it now sort of explicitly
> >>> (this way  overcoming some restrictions with CICS and fixed lengths
> >>> of COMMAREAs).
> >>>
> >>> I recall having seen the DB2 precompiler generating ASSEMBLER routine
> >>> calls to do just this (getting the address of a WS field to feed it
> >>> into the
> >>> DB2 interface
> >>> DSNHLI). Is this the only possible way to go?
> >>>
> >>> Thank you, kind regards
> >>>
> >>> Bernd
> > --
> >
> > This message and any attachments are intended only for the use of the
> addressee and may contain information that is privileged and confidential.
> If the reader of the message is not the intended recipient or an authorized
> representative of the intended recipient, you are hereby notified that any
> dissemination of this communication is strictly prohibited. If you have
> received this communication in error, please notify us immediately by
> e-mail and delete the message and any attachments from your system.
> >
> >
> > --
> > 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
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: COBOL issue

2021-10-01 Thread Massimo Biancucci
I'm sorry, I'm not at a terminal so my idea had not been proven.


Il giorno ven 1 ott 2021 alle ore 17:46 Massimo Biancucci 
ha scritto:

> Bernd,
>
> AFAIK the SET ADDRESS OF is to set a pointer to address a piece of storage.
> This is why Cobol doesn't you allow to do such a command.
>
> If you want to "grab" the ADDRESS OF your working storage variable, you
> should define a POINTER in LINKAGE then set it to the value and then move
> it to your commarea pointer.
>
> CALLING-PROGRAM.
> WORKING-STORAGE.
>
> 01 MY-AREA PIC X(1000)
> 01  COMMAREA.
>  05  CA-FUNCTION_CODE   PIC X(8).
>  05  CA-STATUS  PIC 99.
>  05  CA-AREA-ADDR   USAGE POINTER.
>  05  CA-AREA-LENPIC S9(4) COMP.
>
> LINKAGE-SECTION.
> 01 MY-PTR USAGE IS POINTER.
>
> PROCEDURE DIVISION.
>
> SET MY-PTR TO ADDRESS OF MY-AREA.
> MOVE MY-PTR TO CA-AREA-ADDR.
>
> Best regards.
> Max
>
>
> Il giorno ven 1 ott 2021 alle ore 15:50 Bernd Oppolzer <
> bernd.oppol...@t-online.de> ha scritto:
>
>> Probably asking a COBOL question for the first time :-)
>>
>> I am thinking about writing a general sub-program using COBOL which does
>> several different computations, each of them needing different input and
>> output data
>> of different size.
>>
>> Because this should work with Batch and CICS, I am thinking about a
>> single communication area
>> with fixed size, which points to another communiation area of variable
>> size.
>>
>> The area looks like this:
>>
>> 01  COMMAREA.
>>  05  CA-FUNCTION_CODE   PIC X(8).
>>  05  CA-STATUS  PIC 99.
>>  05  CA-AREA-ADDR   USAGE POINTER.
>>  05  CA-AREA-LENPIC S9(4) COMP.
>>
>> I managed to write the called subroutine; the COMMAREA is in the LINKAGE
>> SECTION there,
>> and I can use the address in the CA-AREA-ADDR and read and write the
>> values
>> in the variable comm-area, which is linked to the fixed area. No problem
>> so far.
>>
>> But:
>>
>> in the calling program, when setting up the COMMAREA.
>> I cannot put the address of a WORKING-STORAGE FIELD into the
>> CA-AREA-ADDR. Because simply it is not allowed to use
>> SET CA-AREA-ADDR TO ADDRESS OF field on WS fields.
>>
>> Why? IMO there is no danger in passing the address of a WS field to a
>> subprogram.
>> Even if the WS field were in automatic storage (which it is not, IMO),
>> there would be no problem. In fact, this is done implicitly using
>> call-by-reference,
>> but I want to do it now sort of explicitly (this way  overcoming some
>> restrictions
>> with CICS and fixed lengths of COMMAREAs).
>>
>> I recall having seen the DB2 precompiler generating ASSEMBLER routine
>> calls
>> to do just this (getting the address of a WS field to feed it into the
>> DB2 interface
>> DSNHLI). Is this the only possible way to go?
>>
>> Thank you, kind regards
>>
>> Bernd
>>
>> --
>> 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


Re: COBOL issue

2021-10-01 Thread Massimo Biancucci
Bernd,

AFAIK the SET ADDRESS OF is to set a pointer to address a piece of storage.
This is why Cobol doesn't you allow to do such a command.

If you want to "grab" the ADDRESS OF your working storage variable, you
should define a POINTER in LINKAGE then set it to the value and then move
it to your commarea pointer.

CALLING-PROGRAM.
WORKING-STORAGE.

01 MY-AREA PIC X(1000)
01  COMMAREA.
 05  CA-FUNCTION_CODE   PIC X(8).
 05  CA-STATUS  PIC 99.
 05  CA-AREA-ADDR   USAGE POINTER.
 05  CA-AREA-LENPIC S9(4) COMP.

LINKAGE-SECTION.
01 MY-PTR USAGE IS POINTER.

PROCEDURE DIVISION.

SET MY-PTR TO ADDRESS OF MY-AREA.
MOVE MY-PTR TO CA-AREA-ADDR.

Best regards.
Max


Il giorno ven 1 ott 2021 alle ore 15:50 Bernd Oppolzer <
bernd.oppol...@t-online.de> ha scritto:

> Probably asking a COBOL question for the first time :-)
>
> I am thinking about writing a general sub-program using COBOL which does
> several different computations, each of them needing different input and
> output data
> of different size.
>
> Because this should work with Batch and CICS, I am thinking about a
> single communication area
> with fixed size, which points to another communiation area of variable
> size.
>
> The area looks like this:
>
> 01  COMMAREA.
>  05  CA-FUNCTION_CODE   PIC X(8).
>  05  CA-STATUS  PIC 99.
>  05  CA-AREA-ADDR   USAGE POINTER.
>  05  CA-AREA-LENPIC S9(4) COMP.
>
> I managed to write the called subroutine; the COMMAREA is in the LINKAGE
> SECTION there,
> and I can use the address in the CA-AREA-ADDR and read and write the values
> in the variable comm-area, which is linked to the fixed area. No problem
> so far.
>
> But:
>
> in the calling program, when setting up the COMMAREA.
> I cannot put the address of a WORKING-STORAGE FIELD into the
> CA-AREA-ADDR. Because simply it is not allowed to use
> SET CA-AREA-ADDR TO ADDRESS OF field on WS fields.
>
> Why? IMO there is no danger in passing the address of a WS field to a
> subprogram.
> Even if the WS field were in automatic storage (which it is not, IMO),
> there would be no problem. In fact, this is done implicitly using
> call-by-reference,
> but I want to do it now sort of explicitly (this way  overcoming some
> restrictions
> with CICS and fixed lengths of COMMAREAs).
>
> I recall having seen the DB2 precompiler generating ASSEMBLER routine calls
> to do just this (getting the address of a WS field to feed it into the
> DB2 interface
> DSNHLI). Is this the only possible way to go?
>
> Thank you, kind regards
>
> Bernd
>
> --
> 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


Re: COBOL and LE version question

2021-08-19 Thread Massimo Biancucci
Robert,

as Charles said, there's "something strange" in the attempt. :D

Anyway IBM gives the following statement about Cobol v6.3 compatibility:

"
Enterprise COBOL for z/OS, V6.3 requires z/OS V2.2 (5650-ZOS), or later.
"

This could (or could not ;D) mean that parmlist of external call to LE
routines used by Cobol v6.3 should be compatible between v2.2, v2.3 and
v2.4 unless compiler does generate different parmlists depending on the LE
runtime detected at compilation time (I personally doubt about this).

I don't know how "massive" is your attempt or need, anyway good luck.
Max

Il giorno gio 19 ago 2021 alle ore 18:20 Richards, Robert B. (CTR) <
01c91f408b9e-dmarc-requ...@listserv.ua.edu> ha scritto:

> One of my fellow sysprogs has asked me to get an answer to the follow
> question:
>
> Will a load module compiled with COBOL v6.3 and linked with LE v2.4 on
> z/OS 2.4 operate on z/OS v2.3 with LE v2.3 runtime libraries?
>
> Don’t shoot the messenger! 
>
> I will, however, also ask the slightly inverse question:  Will a load
> module compiled with COBOL v4.2 and linked with LE v2.3 operate on z/OS
> v2.4 with LE v2.4 runtime libraries?
>
> Bob
>
>
>
> --
> 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


Re: Communication between two computer systems (LPARS or physical)

2021-08-10 Thread Massimo Biancucci
Steff,

it's not so simple to understand the scenario and the goal you need to
achieve in terms of "response time and certainness" of the result.

There're different ways, Sysplex Services (other guys already mentioned) or
developing a STC that runs on every LPAR listening to IP stack.
The problem is (and always will), how to be sure all the LPARS got,
understood and refreshed the needed infos.

If you want to simplify sending commands starting STCs on every LPAR, you
could use an operator interface (IBM, Broadcoam, BMC, your own).
You can issue a WTO and let the automated-operator to send the needed
command to all the LPARs (RO *ALL). This should avoid the APF auth at your
programming level.

Regards.
Max

Il giorno mar 10 ago 2021 alle ore 14:06 Steff Gladstone <
steff.gladst...@gmail.com> ha scritto:

> We have global data pointed to by a name-token that is available to all the
> address spaces in each computer system.  We want to make sure that any
> updates to the data in one system are broadcast to the other computer
> systems in the installation (LPARs or physical computers).  Or at the very
> least notify the other systems that their data is not up-to-date. What
> would be the simplest and cheapest way to send some kind of signal from one
> system to the other without requiring I/O to shared
> DASD?
>
> We thought of issuing a console command starting a started task in each of
> the other computer systems  (the JES2 spool is shared by all the systems.)
> .
> But this is problematic since the required SVC (34) requires that the
> program be authorized.   Any other ideas?
>
> Thanks,
> Steff Gladstone
>
> --
> 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


Re: Accessing deleted logstream data.

2021-06-11 Thread Massimo Biancucci
Hi again,

I solved my specific problem manually finding the hex string (with a little
luck).

For the future I'd like to do better and I understand my original question
is not so simple.
Do you know if there's any doc about LOGGER data format ?
I'm not referring to what application put on the records, only at the
format itself (header etc.).
If I knew such format, I could write a simple subsys in order to feed
DFHJUP utility reading myself the specific dataset.


Thanks a lot in advance.
Max.

<https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail>
Mail
priva di virus. www.avast.com
<https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno gio 10 giu 2021 alle ore 09:03 Massimo Biancucci <
mad4...@gmail.com> ha scritto:

> Hi everybody,
>
> I need to investigate a CICS transaction that updated a specific VSAM
> dataset.
>
> The log had been expired from a logstream point of view, anyway the
> physical logstream dataset is still alive.
>
> Using DFHJUP with OLDEST, shows how the first record is outside of the
> time window I'm looking for.
>
> I was not able to find out how to instruct the utility to read a specific
> dataset.
> In other words, is there any way to code SYSUT1 with a specific dataset
> name ?
>
> Any hint ?
>
> Thanks a lot in advance.
> Max
>
>
>
>
> <https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail>
>  Mail
> priva di virus. www.avast.com
> <https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail>
> <#m_6208108904254374659_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Accessing deleted logstream data.

2021-06-10 Thread Massimo Biancucci
Hi everybody,

I need to investigate a CICS transaction that updated a specific VSAM
dataset.

The log had been expired from a logstream point of view, anyway the
physical logstream dataset is still alive.

Using DFHJUP with OLDEST, shows how the first record is outside of the time
window I'm looking for.

I was not able to find out how to instruct the utility to read a specific
dataset.
In other words, is there any way to code SYSUT1 with a specific dataset
name ?

Any hint ?

Thanks a lot in advance.
Max




Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Syntax for calling a program from REXX with parm

2021-04-30 Thread Massimo Biancucci
Bob,

hereby a piece of code where I call AMATERSE to UNTERSE ... it's not
important anyway I think it's what you're looking for.

It allocs the needed DDNAMEs and then call AMATERSE and after reads
SYSPRINT (output from AMATERSE) to evaluate the run.

What you're interested in is the LINKMVS and it's important that the PARM
must be a variable you've just initialized before.

Hope this helps.
Regards.
Max

/*---*/

ESEGUI_UNTERSE:



RC_UNTERSE = 0



ADDRESS TSO "FREE FI(SYSUT1)"

ADDRESS TSO "FREE FI(SYSUT2)"

ADDRESS TSO "FREE FI(SYSPRINT)"



FN = ARG(1)

PREF = ARG(2)



DTJ = DATE("J")

DTJ = DTJ

TIMEX = TIME()

PARSE VAR TIMEX HH":"MM":"SS .

TIMEL = HH !! MM !! SS

DSN_TEMP = PREF".SQBN0G."JOBNAME"."JOBID".D"DTJ".T"TIMEL

IF LENGTH(DSN_TEMP) > 44 THEN DO

  SAY "ERRORE IN DETERMINAZIONE DSN_TEMP - LUNGHEZZA > 44:"DSN_TEMP

  MAX_RC = 99

  CALL FINE

END

MSG_TEMP = PREF".SQBN0G."JOBNAME"."JOBID".D"DTJ".M"TIMEL



ADDRESS TSO "ALLOC FI(SYSUT1) DA('"FN"') SHR"

RCL = RC

IF RCL <> 0 THEN DO

  SAY "ERRORE IN ALLOCAZIONE FILE DI INPUT UNTERSE:"RCL

  MAX_RC = 99

  CALL FINE

END



ADDRESS TSO "FREE ATTRLIST(AT)"

ADDRESS TSO "ATTR AT DSORG(PS)"

ADDRESS TSO "FREE F(SYSUT2)"



/* DI SOLITO COMPRESSIONE = 10/1 */

PQTY = SYSPRIMARY * 10

SQTY = SYSSECONDS * 10

SELECT

  WHEN SYSUNITS = "TRACK" THEN TQTY = "TRACKS"

  WHEN SYSUNITS = "CYLINDER" THEN TQTY = "CYLINDERS"

  OTHERWISE DO

SAY "TROVATA UNITA' DI ALLOCAZIONE NON PREVISTA:"SYSUNITS

MAX_RC = 99

CALL FINE

  END

END



"ALLOC F(SYSUT2) UNIT(SYSDA) SPACE("PQTY SQTY")",

 TQTY "DATACLAS(UEFSQCMP) NEW CATALOG",

 "DA('"DSN_TEMP"') USING(AT)"

RCL = RC

IF RCL <> 0 THEN DO

  SAY "ERRORE IN ALLOCAZIONE FILE TEMPORANEO UNTERSE:"RCL

  MAX_RC = 99

  CALL FINE

END



ADDRESS TSO "FREE ATTRLIST(AT)"

ADDRESS TSO "ATTR AT LRECL(132) RECFM(F B A) DSORG(PS)"

"ALLOC F(SYSPRINT) UNIT(SYSDA) SPACE("10 10")",

"TRACKS NEW CATALOG",

 "DA('"MSG_TEMP"') USING(AT)"

RCL = RC

IF RCL <> 0 THEN DO

  SAY "ERRORE IN ALLOCAZIONE FILE MESSAGGI UNTERSE:"RCL

  MAX_RC = 99

  CALL FINE

END



ADDRESS TSO "FREE ATTRLIST(AT)"



ACTION = "UNPACK"

ADDRESS LINKMVS "AMATERSE ACTION"

RCL = RC

IF RCL <> 0 THEN DO

  IF RCL > 8 THEN DO

SAY "ERRORE IN AMATERSE NON PREVISTO:"RCL

ADDRESS MVS "EXECIO * DISKR SYSPRINT(FINIS STEM UNTERSE.)"

CALL STAMPA_MSG_UNTERSE

MAX_RC = 99

CALL FINE

  END

  SAY "ERRORE IN CALL AMATERSE:"RCL

  RC_UNTERSE = 4

END



ADDRESS TSO "FREE FI(SYSUT1)"

ADDRESS TSO "FREE FI(SYSUT2)"



ADDRESS MVS "EXECIO * DISKR SYSPRINT(FINIS STEM UNTERSE.)"

ADDRESS TSO "FREE FI(SYSPRINT)"



RETURN RC_UNTERSE

Il giorno ven 30 apr 2021 alle ore 20:34 Bob Bridges 
ha scritto:

> I know I've done this before, but I'm having trouble doing something that
> most of you will say should be simple.  I have some JCL that executes a
> program in batch, and I want to create a REXX that does it in the
> foreground - allocates the datasets, runs the program, then fetches the
> output and displays it in View.  The program requires something in the
> PARM, and I'm  having trouble remembering the syntax for that.  Here's what
> I've tried:
>
>
> +---++
>   + call ','   | Error running , line :
> Routine not found |
>
> +---++
>   + address LINK ','   | RC -3 (routine not found)
> |
>
> +---++
>   + '',''  | Error running , line :
> Unexpected "," or ")" |
>   + address LINK '','' |
> |
>
> +---++
>   + call ' '   | Error running , line :
> Incorrect call to routine |
>   + call '' '' |
> |
>   + call '','' |
> |
>
> +---++
>   + ' '| Program returns RC and complains
> it can't see the PARM.|
>   + ','|
> |
>   + '' ''  |
> |
>   + address LINK ' '   |
> |
>   + address LINK '' '' |
> |
>
> +---++
>
> Unless I go to LINKMVS or LINKPGM (and I don't know what those are for), I
> think I've used up all the possible combinations.  What am I missing?
>
> ---
> Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313
>
> /* You do not examine legislation in the light of the benefits it will
> convey if properly administered, but in the light of 

Re: Syncsort merge question - How to report exact keys out of sequence?

2021-03-30 Thread Massimo Biancucci
Peter,

another way is to run a "DUMMY" JOIN of SORTIN02 with itself specifying
SORTED.

The result will be something like:

WER485A  F2   OUT OF SEQUENCE, RECORD NUMBER = n

Remember to avoid coding OMIT/INCLUDE using JNFxCNTL because this way SS
won't give you the record number (eventually do it in a previous step).
For instance:

//ST020EXEC  PGM=SORT

//SYSOUTDD   SYSOUT=*

//F1   DD *

01

05

02

11

/*

//F2   DD *

01

05

02

11

/*

//SORTOUT  DD SYSOUT=*

//SYSIN DD   *

 JOINKEYS F1=F1,FIELDS=(1,2,CH,A),SORTED

 JOINKEYS F2=F2,FIELDS=(1,2,CH,A),SORTED

 REFORMAT FIELDS=(F1:1,80)

 SORT FIELDS=COPY

/*

will give you:
WER485A  F2   OUT OF SEQUENCE, RECORD NUMBER = 3

Best regards.
Max

<https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail>
Mail
priva di virus. www.avast.com
<https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mer 31 mar 2021 alle ore 06:58 Massimo Biancucci <
mad4...@gmail.com> ha scritto:

> Peter,
>
> I don't know if you need a "general" solution or a way to diagnose the
> specific problem.
>
> WER068A tells you that the out of sequence record is on SORTIN02 (first
> tip) and specifically on block 56,917 (second tip).
> Depending on the block size of your file you could "point to the block"
> and then on the group of records and have a closer look.
> Given the SORTIN02 you could copy the dataset to a RECFM=F (or V) but not
> BLOCKED temporary dataset in order to have exactly the offending record
> (BLOCK#=REC#).
> It's not so efficient, anyway we're talking about diagnosing a problem.
>
> Hope this helps.
> Best regards.
> Max
>
>
> <https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail>
>  Mail
> priva di virus. www.avast.com
> <https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail>
> <#m_-7096681244659233946_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>
> Il giorno mar 30 mar 2021 alle ore 16:51 Farley, Peter x23353 <
> 031df298a9da-dmarc-requ...@listserv.ua.edu> ha scritto:
>
>> I have the following situation which causes me to get an "out of
>> sequence" error for a merge operation.
>>
>> Three input files, all RECFM=VB, all the same LRECL and BLKSIZE.  Files 2
>> and 3 are frequently (but NOT always) empty except for header and trailer
>> records.  I believe that the DATA records in all files are in the correct
>> merge key sequence within each file, but my merge key specification could
>> be in error.
>>
>> The SYSIN uses an OMIT to remove all header and trailer records from the
>> merge operation, so when files 2 and 3 are processed they often contribute
>> no actual data records to the merge process.
>>
>> I get Syncsort messages like this complaining about "out of sequence":
>>
>> WER055I  INSERT  0, DELETE  1
>> WER068A  OUT OF SEQ SORTIN02 , BLOCK 56,917
>>
>> If I could ask Syncsort to tell me exactly what two merge keys are "out
>> of sequence" I could pinpoint the record location of the condition and
>> repair any merge key error I may have.
>>
>> Is there a way to ask Syncsort to tell me the exact keys that it thinks
>> are out of sequence?
>>
>> If it matters, Syncsort version is reported as "SYNCSORT FOR Z/OS
>> 2.1.6.0N".
>>
>> Peter
>>
>> This message and any attachments are intended only for the use of the
>> addressee and may contain information that is privileged and confidential.
>> If the reader of the message is not the intended recipient or an authorized
>> representative of the intended recipient, you are hereby notified that any
>> dissemination of this communication is strictly prohibited. If you have
>> received this communication in error, please notify us immediately by
>> e-mail and delete the message and any attachments from your system.
>>
>> --
>> 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


Re: Syncsort merge question - How to report exact keys out of sequence?

2021-03-30 Thread Massimo Biancucci
Peter,

I don't know if you need a "general" solution or a way to diagnose the
specific problem.

WER068A tells you that the out of sequence record is on SORTIN02 (first
tip) and specifically on block 56,917 (second tip).
Depending on the block size of your file you could "point to the block" and
then on the group of records and have a closer look.
Given the SORTIN02 you could copy the dataset to a RECFM=F (or V) but not
BLOCKED temporary dataset in order to have exactly the offending record
(BLOCK#=REC#).
It's not so efficient, anyway we're talking about diagnosing a problem.

Hope this helps.
Best regards.
Max


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mar 30 mar 2021 alle ore 16:51 Farley, Peter x23353 <
031df298a9da-dmarc-requ...@listserv.ua.edu> ha scritto:

> I have the following situation which causes me to get an "out of sequence"
> error for a merge operation.
>
> Three input files, all RECFM=VB, all the same LRECL and BLKSIZE.  Files 2
> and 3 are frequently (but NOT always) empty except for header and trailer
> records.  I believe that the DATA records in all files are in the correct
> merge key sequence within each file, but my merge key specification could
> be in error.
>
> The SYSIN uses an OMIT to remove all header and trailer records from the
> merge operation, so when files 2 and 3 are processed they often contribute
> no actual data records to the merge process.
>
> I get Syncsort messages like this complaining about "out of sequence":
>
> WER055I  INSERT  0, DELETE  1
> WER068A  OUT OF SEQ SORTIN02 , BLOCK 56,917
>
> If I could ask Syncsort to tell me exactly what two merge keys are "out of
> sequence" I could pinpoint the record location of the condition and repair
> any merge key error I may have.
>
> Is there a way to ask Syncsort to tell me the exact keys that it thinks
> are out of sequence?
>
> If it matters, Syncsort version is reported as "SYNCSORT FOR Z/OS
> 2.1.6.0N".
>
> Peter
>
> This message and any attachments are intended only for the use of the
> addressee and may contain information that is privileged and confidential.
> If the reader of the message is not the intended recipient or an authorized
> representative of the intended recipient, you are hereby notified that any
> dissemination of this communication is strictly prohibited. If you have
> received this communication in error, please notify us immediately by
> e-mail and delete the message and any attachments from your system.
>
> --
> 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


Re: Creating XLS file

2021-03-24 Thread Massimo Biancucci
Peter,

I fully agree with other guys advising you to use csv format.
In this case Sort utility is your best friend.
I massively use csv to feed some Excel documents to show data coming from
SMF and more.
I download csv to a common directory path and use Excel data import
(automatic) to refresh data at the latest values.

Best regards.
Max


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mer 24 mar 2021 alle ore 05:31 Peter  ha
scritto:

> Hello
>
> I am looking for a freeware or any sample program which can covert my
> mainframe file into an excel file.
> Just to be clear we don't have SAS or any seperate tool to achieve this.
>
> Is there any working solution who can point me in the right direction?
>
>
> Peter
>
> --
> 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


Re: Testing a New Dataset for SMS processing via TSO or ISPF?

2021-02-25 Thread Massimo Biancucci
Lionel,

it seems you're looking for something that calls SMS and asks for future
allocation.

There's a request in ISMF panel 7 (Automatic Class Selection) and 4 Test
that simulate the allocation and gives back the response.
I don't know (I suppose yes) if it's possible to call the service from a
ISPF REXX.

Good luck.
Max


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno gio 25 feb 2021 alle ore 17:52 Lionel B Dyck 
ha scritto:

> Is there a TSO command, or ISPF command/service, that can be provided a
> dataset name and have it return if the dataset is SMS managed or not?
>
>
>
> I know LISTDSI will do this for existing datasets but I'm looking for how
> to
> do this for a new dataset that has not been allocated yet.
>
>
>
> Thanks
>
>
>
>
> ---_
> 
>
> Lionel B Dyck <
>
> Website:   www.lbdsoftware.com
>
>
>
> "Worry more about your character than your reputation.  Character is what
> you are, reputation merely what others think you are." - John Wooden
>
>
>
>
> --
> 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


Re: Sharing data sets VSAM VB

2021-02-24 Thread Massimo Biancucci
Joseph,

for sure.

VSAM variable length is OK.

When define VSAM keyword RECORDSIZE( 1000 131072 ) states lrecl from to.

Best regards.
Max


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mer 24 feb 2021 alle ore 17:38 Joseph Reichman <
reichman...@gmail.com> ha scritto:

> Hi
>
> I have multiple jobs sharing the same the same output dataset
>
> It’s RECFM=VB
>
> Is it possible to define this RECFM under VSAM, as with VSAM multiple jobs
> can write to the same dataset
> Thanks
>
> --
> 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


Re: Isolating a CSECT within a load module

2021-01-05 Thread Massimo Biancucci
I tried to develop you hints:

// EXPORT SYMLIST=*
// SET INPMOD=oldmd
// SET OUTMOD=newmod
// SET INPLIB=myold.lib
// SET OUTLIB=mynew.lib
// SET AMBDSN=AMBLIST3
// SET DSP='MOD,PASS'  DSP='MOD,CATLG'
//*---*
//*   *
//*---*
//ST010  EXEC PGM=AMBLIST
//SYSPRINT DD DSN=,DISP=(),
// SPACE=(TRK,(5,5),RLSE)
//LOADLIB  DD DISP=SHR,DSN=
//SYSINDD *,SYMBOLS=(JCLONLY,SYMBLOG)
 LISTIDR DDN=LOADLIB,MEMBER=
/*
//*---*
//*   *
//*---*
//ST020  EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN  DD DSN=,DISP=SHR
//SORTOUT DD DSN=,DISP=(),
// SPACE=(TRK,(5,5),RLSE),DCB=(LRECL=80,RECFM=FB,DSORG=PS)
//SYSINDD *,SYMBOLS=(JCLONLY,SYMBLOG)
 SORT FIELDS=COPY
 OUTFIL FNAMES=SORTOUT,REMOVECC,
  INCLUDE=(2,10,CH,EQ,C'CSECT:',AND,
   12,8,CH,NE,C''),
 OUTREC=(C' REPLACE ',12,8,80:X),
  TRAILER1=(' INCLUDE SYSLIB()',/,
   ' NAME (R)')
/*
//*---*
//*   *
//*---*
//ST030EXEC PGM=HEWL,
// PARM='LET,XREF,MAP,LIST,NCAL'
//SYSPRINT DD  SYSOUT=*
//SYSUT1   DD  DSN=&,SPACE=(1024,(120,120),,,ROUND),
// DCB=BUFNO=1
//*YSLIN   DD DISP=SHR,DSN=J48017.OSET.LOAD(IRXINIT)
//SYSLIB   DD  DISP=SHR,DSN=
//SYSLMOD  DD  DISP=SHR,DSN=()
//SYSLIN   DD  DISP=SHR,DSN=
//*---*
//*   *
//*---*
//ST040  EXEC PGM=AMBLIST
//SYSPRINT DD SYSOUT=*
//LOADLIB  DD DISP=SHR,DSN=
//SYSINDD *,SYMBOLS=(JCLONLY,SYMBLOG)
 LISTIDR DDN=LOADLIB,MEMBER=
 LISTLOAD DDN=LOADLIB,MEMBER=
/*

and it seems it's still working.
I'm sure it's possible to further optimize, anyway I think it's a kind of
tool you use not so often.
Anyway take the two of them as POC.

Best regards.
Max

<https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail>
Mail
priva di virus. www.avast.com
<https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno lun 4 gen 2021 alle ore 18:44 Paul Gilmartin <
000433f07816-dmarc-requ...@listserv.ua.edu> ha scritto:

> On Mon, 4 Jan 2021 16:32:47 +0100, Massimo Biancucci wrote:
> >
> >I've tried to use sort to help.
> >
> >// EXPORT SYMLIST=*
> >// SET INPMOD=oldmd
> >// SET OUTMOD=newmod
> >// SET INPLIB=myold.lib
> >// SET OUTLIB=mynew.lib
> >
> I like that sort of parameterizing.  It puts the variables up front,
> viewable at a glance.  I'd add the AMBLIST2 DSNs to the SET list.
>
> Can something such as "SET DISP={PASS|CATLG} be used to control
> temp vs. permanent workfiles?
>
> >//*   *
> >//*---*
> >//ST010  EXEC PGM=IDCAMS
> >//SYSPRINT DD SYSOUT=*
> >//SYSIN DD *,SYMBOLS=(JCLONLY,SYMBLOG)
> > DELETE 
> > IF MAXCC=8 THEN SET MAXCC=0
> >/*
> >//*---*
> >//*   *
> >//*---*
> >//ST020  EXEC PGM=AMBLIST
> >//SYSPRINT DD DSN=,DISP=(,CATLG),
> >// SPACE=(TRK,(5,5),RLSE)
> >//LOADLIB  DD DISP=SHR,DSN=
> >//SYSINDD *,SYMBOLS=(JCLONLY,SYMBLOG)
> > LISTIDR DDN=LOADLIB,MEMBER=
> >/*...
> My very peculiar preference is to omit the IDCAMS steps and code either:
> //HANDLE DD DSN=,DISP=(MOD,CATLG),
> // SPACE=(TRK,(5,5),RLSE)
> //SYSPRINT  DD  DISP=OLD,DSN=*.HANDLE,VOL=REF=*.HANDLE
>
> Or:
> //HANDLE DD DSN=,DISP=(MOD,DELETE),
> // SPACE=(TRK,(5,5),RLSE)
> //SYSPRINT DD DSN=,DISP=(MOD,CATLG),
> // SPACE=(TRK,(5,5),RLSE)
>
> But, performance?  Is a failing IDCAMS step less overhead than
> an otiose DISP=(MOD,DELETE) etc.?
>
> >I used "no-temp" dataset to better help in understanding the process.
>
> -- 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


Re: Isolating a CSECT within a load module

2021-01-04 Thread Massimo Biancucci
Steff,

I've tried to use sort to help.

// EXPORT SYMLIST=*
// SET INPMOD=oldmd
// SET OUTMOD=newmod
// SET INPLIB=myold.lib
// SET OUTLIB=mynew.lib
//*---*
//*   *
//*---*
//ST010  EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *,SYMBOLS=(JCLONLY,SYMBLOG)
 DELETE 
 IF MAXCC=8 THEN SET MAXCC=0
/*
//*---*
//*   *
//*---*
//ST020  EXEC PGM=AMBLIST
//SYSPRINT DD DSN=,DISP=(,CATLG),
// SPACE=(TRK,(5,5),RLSE)
//LOADLIB  DD DISP=SHR,DSN=
//SYSINDD *,SYMBOLS=(JCLONLY,SYMBLOG)
 LISTIDR DDN=LOADLIB,MEMBER=
/*
//*---*
//*   *
//*---*
//ST030  EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *,SYMBOLS=(JCLONLY,SYMBLOG)
 DELETE 
 IF MAXCC=8 THEN SET MAXCC=0
/*
//*---*
//*   *
//*---*
//ST040  EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN  DD DSN=,DISP=SHR
//SORTOUT DD DSN=,DISP=(,CATLG),
// SPACE=(TRK,(5,5),RLSE),DCB=(LRECL=80,RECFM=FB,DSORG=PS)
//SYSINDD *,SYMBOLS=(JCLONLY,SYMBLOG)
 SORT FIELDS=COPY
 OUTFIL FNAMES=SORTOUT,REMOVECC,
  INCLUDE=(2,10,CH,EQ,C'CSECT:',AND,
   12,8,CH,NE,C''),
 OUTREC=(C' REPLACE ',12,8,80:X),
  TRAILER1=(' INCLUDE SYSLIB()',/,
   ' NAME (R)')
/*
//*---*
//*   *
//*---*
//ST050EXEC PGM=HEWL,
// PARM='LET,XREF,MAP,LIST,NCAL'
//SYSPRINT DD  SYSOUT=*
//SYSUT1   DD  DSN=&,SPACE=(1024,(120,120),,,ROUND),
// DCB=BUFNO=1
//*YSLIN   DD DISP=SHR,DSN=J48017.OSET.LOAD(IRXINIT)
//SYSLIB   DD  DISP=SHR,DSN=
//SYSLMOD  DD  DISP=SHR,DSN=()
//SYSLIN   DD  DISP=SHR,DSN=
//*---*
//*   *
//*---*
//ST060  EXEC PGM=AMBLIST
//SYSPRINT DD SYSOUT=*
//LOADLIB  DD DISP=SHR,DSN=
//SYSINDD *,SYMBOLS=(JCLONLY,SYMBLOG)
 LISTIDR DDN=LOADLIB,MEMBER=
 LISTLOAD DDN=LOADLIB,MEMBER=
/*

It seems working (double check please).
I used "no-temp" dataset to better help in understanding the process.
It would be not so hard the case you need to isolate multiple modules into
one single output module.

Best regards.

Max




Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno lun 4 gen 2021 alle ore 11:46 Steff Gladstone <
steff.gladst...@gmail.com> ha scritto:

> Greetings,
>
> Can anyone suggest a method of isolating or extracting a CSECT
> (statically-linked called program) from a load module?  The only (clumsy)
> method I can think of is using (within the linkage editor or binder) a
> REPLACE statement ahead of an INCLUDE statement and specifying in the
> REPLACE all of the other CSECTS in the load module.  For example, if the
> load module is called LOADMOD1 and contains CSECTS  A,B,C,D,E,F,G,H and I
> want to isolate CSECT F, I would code:
>
>   REPLACE A,B,C,D,E,G,H
>   INCLUDE SYSLIB(LOADMOD1)
>   NAME F(R)
>
> Obviously this is unwieldy for a load module with lots of CSECTs.
>
> Does anyone have a more elegant way of doing this?
>
> Thanks,
> Steff
>
> --
> 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


Re: EBCDIC-ASCII converter and other tools

2020-12-29 Thread Massimo Biancucci
Depending on the Windows platform, you can consider to enable the Linux
Bash and use the power of the bash to select the file portion and convert
it.

Good luck.
Max


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mar 29 dic 2020 alle ore 14:30 R.S. <
r.skoru...@bremultibank.com.pl> ha scritto:

> 1. I'm looking for some simple tool for conversion EBCDIC to ASCII and
> vice versa.
> Unfortunately it has to run under Windows.
> Requirements:
> Run under Windows, preferrably in batch mode (command line interface)
> Custom-defined tables of conversion
>
> 2. I'm looking for a tool similar to IDCAMS SKIP/COUNT - the goal is to
> skip first nnn bytes of the file or skip file remainder.
>
>
> Any clue?
>
> --
> Radoslaw Skorupka
> Lodz, Poland
>
>
>
>
>
> ==
>
> Jeśli nie jesteś adresatem tej wiadomości:
>
> - powiadom nas o tym w mailu zwrotnym (dziękujemy!),
> - usuń trwale tę wiadomość (i wszystkie kopie, które wydrukowałeś lub
> zapisałeś na dysku).
> Wiadomość ta może zawierać chronione prawem informacje, które może
> wykorzystać tylko adresat. Przypominamy, że każdy, kto rozpowszechnia
> (kopiuje, rozprowadza) tę wiadomość lub podejmuje podobne działania,
> narusza prawo i może podlegać karze.
>
> mBank S.A. z siedzibą w Warszawie, ul. Prosta 18, 00-850 Warszawa,
> www.mBank.pl, e-mail: kont...@mbank.pl. Sąd Rejonowy dla m. st. Warszawy
> XII Wydział Gospodarczy Krajowego Rejestru Sądowego, KRS 025237, NIP:
> 526-021-50-88. Kapitał zakładowy (opłacony w całości) według stanu na
> 01.01.2020 r. wynosi 169.401.468 złotych.
>
> Jesteśmy administratorem twoich danych osobowych, które podałeś w związku
> z prowadzoną z nami korespondencją. Przetwarzamy te dane dla celów, które
> wynikają z przedmiotu korespondencji, w tym związanych z prowadzoną
> działalnością bankową.
> Więcej informacji o tym jak chroniony i przetwarzamy dane osobowe
> znajdziesz w Pakietach RODO (w wersji polskiej i angielskiej), które są na
> www.mbank.pl/rodo
>
>
> If you are not the addressee of this message:
>
> - let us know by replying to this e-mail (thank you!),
> - delete this message permanently (including all the copies which you have
> printed out or saved).
> This message may contain legally protected information, which may be used
> exclusively by the addressee.Please be reminded that anyone who
> disseminates (copies, distributes) this message or takes any similar
> action, violates the law and may be penalised.
>
> mBank S.A. with its registered office in Warsaw, ul. Prosta 18, 00-850
> Warszawa,www.mBank.pl, e-mail: kont...@mbank.pl. District Court for the
> Capital City of Warsaw, 12th Commercial Division of the National Court
> Register, KRS 025237, NIP: 526-021-50-88. Fully paid-up share capital
> amounting to PLN 169.401.468 as at 1 January 2020.
>
> We are the controller of your personal data, which you provided in
> connection with correspondence with us. We process your data for purposes
> resulting from the subject of correspondence, including those related to
> the banking services.
> More information on how we protect and process personal data can be found
> in the GDPR Packages (in English and Polish), which are on
> www.mbank.pl/rodo.
>
> --
> 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


Re: Offsets SMF17

2020-11-06 Thread Massimo Biancucci
Jordi,

I ran you job updating all the columns to the right values:

//TOOLIN   DD *
  COPY FROM(RAWSMF) TO(SMF) USING(SMFI)
  DISPLAY FROM(SMF) LIST(SMFREP) -
  TITLE('SMF-17 : WHO DELETED DATASETS') DATE TIME PAGE -
  HEADER('SMF')  ON(6,1,BI) -
  HEADER('SYS')  ON(15,4,CH) -SMF17SID
  HEADER('DATE') ON(11,4,DT1,E'/99/99') - SMF17DTE
  HEADER('TIME') ON(7,4,TM1,E'99:99:99') -SMF17TME
  HEADER('JOB') ON(19,8,CH) - SMF17JBN
  HEADER('USER') ON(35,8,CH) -SMF17UID
  HEADER('DATASET DELETED') ON(45,44,CH) -SMF17DSN
  HEADER('-VOLS') ON(92,1,BI) -   SMF17NVL
**HEADER('VOLSER') ON(2,6,CH) -   SMF17FVL
  BETWEEN(2) -
  LINES(999) -
  BLANK
/*
//SMFICNTL DD *
* INCLUDE COND=(6,1,BI,EQ,X'11',AND,44,4,CH,EQ,C'UCAT')
  INCLUDE COND=(6,1,BI,EQ,X'11')
  SORT FIELDS=(11,4,CH,A,7,4,CH,A)
/*

and everything was OK.

I commented the VOLSER because it's not at position 2.
Volser is an array from 1 to N after the VOLS count and depends on the
count value.
If you need to print all the volsers  it's a bit more difficult.
If you need mainly the first one it's enough to write ON(95,6,CH)

Best regards.
Max





Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno ven 6 nov 2020 alle ore 10:10 Jordi Bornay <
jordi.bor...@t-systems.com> ha scritto:

> thank's
>
> I will review the INCLUDE  to see if it is what you say. (My
> background is not that ...)
>
>
>   OPTION STOPAFT=1000
>
>   INCLUDE COND=(6,1,BI,EQ,X'11',AND,45,4,CH,EQ,C'UCAT')
>  0021000
>   SORT FIELDS=(11,4,CH,A,7,4,CH,A)
> 0022000
> PARMLIST :
>
> OPTION
> RESINV=0,ARESINV=0,MSGDDN=DFSMSG,SORTIN=RAWSMF,SORTOUT=SMF,SORTDD=SMFI,C
> PY
>
> WER813I  INSTALLATION OPTIONS IN MFX LOAD LIBRARY WILL BE USED
>
> WER428I  CALLER-PROVIDED IDENTIFIER IS "0001"
>
> WER276B  SYSDIAG= 299308, 1313535, 1313535, 1791920
>
> WER164B  7,896K BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,
>
> WER164B 0 BYTES RESERVE REQUESTED, 2,436K BYTES USED
>
> WER146B  44K BYTES OF EMERGENCY SPACE ALLOCATED
>
> WER108I  RAWSMF   : RECFM=VBS  ; LRECL= 32767; BLKSIZE= 32760
>
> WER073I  RAWSMF   : DSNAME=SA$SF.ALL.M.GEN1.YEAR2011.DATA.G0001V00  (FIRST
> OF 4
> WER110I  SMF  : RECFM=VBS  ; LRECL= 32767; BLKSIZE= 27998
>
> WER074I  SMF  : DSNAME=SYS20311.T100342.RA000.SA80855C.TEMPV.H01
>
> WER410B  5,844K BYTES OF VIRTUAL STORAGE AVAILABLE ABOVE THE 16-MEGABYTE
> LINE,
> WER410B 0 BYTES RESERVE REQUESTED, 2,300K BYTES USED
>
> WER055I  INSERT  0, DELETE1583850
>
> WER449I  SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE
>
> WER416B  RAWSMF   : EXCP'S=3308,UNIT=3490,DEV=690,CHP=6474
>
> WER416B  SMF  :
> EXCP'S=0,UNIT=3390,DEV=5F3D,CHP=(24253435,1),VOL=GSS116
> WER416B  TOTAL OF 3,308 EXCP'S ISSUED FOR COPYING
>
> WER054I  RCD IN1583850, OUT  0
>
> WER169I  RELEASE 2.1 BATCH 0539 TPF LEVEL 8.0
>
> WER052I  END SYNCSORT -
> SA80855C,STEP1,,DIAG=A400,7306,8808,0044,ECF6,58AA,0E48
> PARMLIST :
>
> OPTION RESINV=100K,ARESINV=0,MSGDDN=DFSMSG,SORTIN=SMF
>
> INREC
> FIELDS=(1,004,6,0001,00014,0004,00010,0004,DT1,6,0004,TM1,000
> 8,0008,00034,0008,00045,0044,00091,0001,2,0006)
>
> SORT FIELDS=COPY
>
> WER813I  INSTALLATION OPTIONS IN MFX LOAD LIBRARY WILL BE USED
>
> WER428I  CALLER-PROVIDED IDENTIFIER IS "0002"
>
> WER276B  SYSDIAG= 299005, 1308890, 1308890, 1791920
>
> WER164B  7,996K BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,
>
> WER164B 100K BYTES RESERVE REQUESTED, 2,231,488 BYTES USED
>
> WER146B  44K BYTES OF EMERGENCY SPACE ALLOCATED
>
> WER108I  SMF  : RECFM=VBS  ; LRECL= 32767; BLKSIZE= 27998
>
> WER073I  SMF  : DSNAME=SYS20311.T100342.RA000.SA80855C.TEMPV.H01
>
> WER257I  INREC RECORD LENGTH =90
>
> WER410B  5,844K BYTES OF VIRTUAL STORAGE AVAILABLE ABOVE THE 16-MEGABYTE
> LINE,
> WER410B 0 BYTES RESERVE REQUESTED, 192K BYTES USED
>
> WER055I  INSERT  0, DELETE  0
>
> WER449I  SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE
>
> WER416B  SMF  :
> EXCP'S=1,UNIT=3390,DEV=5F3D,CHP=(24253435,1),VOL=GSS116
> WER416B  TOTAL OF 1 EXCP'S ISSUED FOR COPYING
>
> WER054I  RCD IN  0, OUT  0
>
> WER169I  RELEASE 2.1 BATCH 0539 TPF LEVEL 8.0
>
> WER052I  END SYNCSORT -
> SA80855C,STEP1,,DIAG=8800,5306,A008,006C,C0F6,7C8A,2248
>
> --
> 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


Re: Offsets SMF17

2020-11-06 Thread Massimo Biancucci
Jordi,

I don't know your dataset naming convention, anyway dsname start at offset
44 but it's byte 45 for ICETOOL (like 6 is the position of record type).

Offsets Name Length Format Description
5 5 SMF17RTY 1 binary Record type 17 (X'11')
...
44 2C SMF17DSN 44 EBCDIC Data set name.

Hope this helps.

Best regards.
Max


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno ven 6 nov 2020 alle ore 09:39 Jordi Bornay <
jordi.bor...@t-systems.com> ha scritto:

> hi,
> It may be a small detail, but sometimes when you think about it a lot, you
> don't see it.
> I want to make a list of the files that have been deleted, from SMF record
> 17, and it must be offsets but nothing comes out.
> can you help me?
>
> Thank's
>
> jcl:
>
> //SYMBOLS  INCLUDE MEMBER=SYMBOLS
> //STEP1EXEC PGM=ICETOOL
> //TOOLMSG  DD SYSOUT=*
> //DFSMSG   DD SYSOUT=*
> //RAWSMF   DD DISP=SHR,DSN=SA$SF.ALL.M.GEN1.YEAR2011.DATA.G0001V00
> // DD DISP=SHR,DSN=SA$SF.ALL.M.GEN1.YEAR2011.DATA.G0002V00
> // DD DISP=SHR,DSN=SA$SF.ALL.M.GEN1.YEAR2011.DATA.G0003V00
> // DD DISP=SHR,DSN=SA$SF.ALL.M.GEN1.YEAR2011.DATA.G0004V00
> //SMF  DD DSN=&TEMPV,SPACE=(CYL,(15,15)),UNIT=SYSDA
> //SMFREP   DD DSN=SA80855.GENX.SMF17.TXT,
> //UNIT=3390,DISP=(,CATLG),
> //SPACE=(CYL,(2,2,0),RLSE)
> //TOOLIN   DD *
>   COPY FROM(RAWSMF) TO(SMF) USING(SMFI)
>   DISPLAY FROM(SMF) LIST(SMFREP) -
>   TITLE('SMF-17 : WHO DELETED DATASETS') DATE TIME PAGE -
>   HEADER('SMF')  ON(6,1,BI) -
>   HEADER('SYS')  ON(14,4,CH) -SMF17SID
>   HEADER('DATE') ON(10,4,DT1,E'/99/99') - SMF17DTE
>   HEADER('TIME') ON(6,4,TM1,E'99:99:99') -SMF17TME
>   HEADER('JOB') ON(18,8,CH) - SMF17JBN
>   HEADER('USER') ON(34,8,CH) -SMF17UID
>   HEADER('DATASET DELETED') ON(44,44,CH) -SMF17DSN
>   HEADER('-VOLS') ON(91,1,BI) -   SMF17NVL
>   HEADER('VOLSER') ON(2,6,CH) -   SMF17FVL
>   BETWEEN(2) -
>   LINES(999) -
>   BLANK
> /*
> //SMFICNTL DD *
>   INCLUDE COND=(6,1,BI,EQ,X'11',AND,44,4,CH,EQ,C'UCAT')
>   SORT FIELDS=(11,4,CH,A,7,4,CH,A)
> /*
>
> --
> 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


Re: dfsort remove spaces

2020-10-08 Thread Massimo Biancucci
Ron,

sorry for me not understanding the meaning of the actual SYSIN.

If you run this (assuming SORTIN LRECL is 2500):
 INREC FIELDS=(1,2500,SQZ=(SHIFT=LEFT,MID=C' '))
 SORT FIELDS=COPY
 OUTREC FINDREP=(INOUT=(C' |',C'|'))

The INREC squeezes the record dropping all spaces and inserting a single
space where before was 1 or more spaces (so 2 or more spaces becomes 1
space).
MID is the magic keyword.
This will build a rec like this:
000645|VHO CASILLERO DIABLO |PINOT NOIR 750ML |

The OUTREC FINDREP replace all " |" with "|" and then:
000645|VHO CASILLERO DIABLO|PINOT NOIR 750ML|

I think you INREC PARSE could have been a good solution too (it seems "|"
it's the fields separator).

Best regards.


Il giorno gio 8 ott 2020 alle ore 17:46 Ron Thomas  ha
scritto:

> Hello
>
> I have a sample file as below and we would need to remove the spaces
>
> 000645|VHO CASILLERO DIABLO |PINOT NOIR 750ML  |
> 000645|VHO CASILLERO DIABLO |PINOT NOIR 750ML  |
> 000645|VHO CASILLERO DIABLO |PINOT NOIR 750ML  |
> 000645|VHO CASILLERO DIABLO |PINOT NOIR 750ML  |
> 000645|VHO CASILLERO DIABLO |PINOT NOIR 750ML  |
> 000645|VHO CASILLERO DIABLO |PINOT NOIR 750ML  |
> 000645|VHO CASILLERO DIABLO |PINOT NOIR 750ML  |
> 000645|VHO CASILLERO DIABLO |PINOT NOIR 750ML  |
> 000645|VHO CASILLERO DIABLO |PINOT NOIR 750ML  |
>
> i have coded as below
>
>
> SORT FIELDS=COPY
> INREC OVERLAY=(001:001,010,UFF,M10,LENGTH=10,
>012:012,025,UFF,M10,LENGTH=25,
>038:038,025,UFF,M10,LENGTH=25,
>001:001,2500,SQZ=(SHIFT=LEFT))
>
> but the output i am getting is as below
>
>
>
> 645|0|750|CASILLERODELDIABLO|VHOCASILLERODIABLO|
> 645|0|750|CASILLERODELDIABLO|VHOCASILLERODIABLO|
> 645|0|750|CASILLERODELDIABLO|VHOCASILLERODIABLO|
> 645|0|750|CASILLERODELDIABLO|VHOCASILLERODIABLO|
> 645|0|750|CASILLERODELDIABLO|VHOCASILLERODIABLO|
> 645|0|750|CASILLERODELDIABLO|VHOCASILLERODIABLO|
> 645|0|750|CASILLERODELDIABLO|VHOCASILLERODIABLO|
> 645|0|750|CASILLERODELDIABLO|VHOCASILLERODIABLO|
> 645|0|750|CASILLERODELDIABLO|VHOCASILLERODIABLO|
>
> here we can see that the data "VHO CASILLERO DIABLO  " spaces also got
> removed . is there a way we can get data as follows
>
> 000645|VHO CASILLERO DIABLO|PINOT NOIR 750ML|
>
> Could some let me know how this can be done ?
>
> Thanks.
> Ron T
>
> --
> 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


Re: dfsort file split

2020-10-08 Thread Massimo Biancucci
Sorry for answering so fast (and so far from a PC) without testing it
before.



Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mer 7 ott 2020 alle ore 17:16 Sri h Kolusu 
ha scritto:

> > Here , i want to add the header in the OUT01-05 files . is there a
> > way we can do in the same step.
>
> Ron,
>
> You used KEYBEGIN on 40,5 , the header record will have a Group number 1
> and the detail records will have group number starting at 2.  So if your
> input file always has a header then you need to use the group number 1 to
> include the header.  You also need to remove the temporary group id number
> that you created. You need to use BUILD for that.
>
> //SYSINDD *
>   OPTION COPY
>   OUTREC IFTHEN=(WHEN=GROUP,KEYBEGIN=(40,5),PUSH=(651:ID=2))
>   OUTFIL FNAMES=OUT01,BUILD=(01,650),INCLUDE=(651,2,SS,EQ,C'01,02')
>   OUTFIL FNAMES=OUT02,BUILD=(01,650),INCLUDE=(651,2,SS,EQ,C'01,03')
>   OUTFIL FNAMES=OUT03,BUILD=(01,650),INCLUDE=(651,2,SS,EQ,C'01,04')
>   OUTFIL FNAMES=OUT04,BUILD=(01,650),INCLUDE=(651,2,SS,EQ,C'01,05')
>   OUTFIL FNAMES=OUT05,BUILD=(01,650),INCLUDE=(651,2,SS,EQ,C'01,06')
> /*
>
> >> for instance if the header record is the only with double-blank at 651:
>
>
> Massimo,
>
> That will NOT work. Keybegin will look wherever there is a change in the
> key at position 40 for 5 bytes.  So the first key change is on the Header
> record itself.
>
>
> Thanks,
> Kolusu
> DFSORT Development
> IBM Corporation
>
> --
> 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


Re: dfsort file split

2020-10-07 Thread Massimo Biancucci
Ron,

if you mean the very same header record of the file, if there's a condition
that does allow you to recognize it, for instance if the header record is
the only with double-blank at 651:

SORT FIELDS=COPY
  OUTREC IFTHEN=(WHEN=GROUP,KEYBEGIN=(40,5),PUSH=(651:ID=2))
  OUTFIL
FNAMES=OUT01,BUILD=(1,650),INCLUDE=(651,2,ZD,EQ,01,OR,651,2,CH,EQ,C'  '))
  OUTFIL FNAMES=OUT02,BUILD=(1,650),INCLUDE=(651,2,ZD,EQ,02
,OR,651,2,CH,EQ,C'  ') )
  OUTFIL FNAMES=OUT03,BUILD=(1,650),INCLUDE=(651,2,ZD,EQ,03
,OR,651,2,CH,EQ,C'  ') )
  OUTFIL FNAMES=OUT04,BUILD=(1,650),INCLUDE=(651,2,ZD,EQ,04
,OR,651,2,CH,EQ,C'  ') )
  OUTFIL
FNAMES=OUT05,BUILD=(1,650),INCLUDE=(651,2,ZD,EQ,05),OR,651,2,CH,EQ,C'  '))

Best regards.
Max



Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mer 7 ott 2020 alle ore 14:15 Ron Thomas  ha
scritto:

> Hello-
>
> i have a file which has a header and detail records , i want to split the
> file based on value  and here below is the one i have coded
>
>
> //SPLITEXEC PGM=SORT
> //SYSOUT   DD SYSOUT=*
> //SORTIN   DD DSN=PYU678S.ITR1.FUTR.RTLDTA.UNLOAD,DISP=SHR
> //OUT01DD SYSOUT=*
> //OUT02DD SYSOUT=*
> //OUT03DD SYSOUT=*
> //OUT04DD SYSOUT=*
> //OUT05DD SYSOUT=*
> //SYSINDD *
>   SORT FIELDS=COPY
>   OUTREC IFTHEN=(WHEN=GROUP,KEYBEGIN=(40,5),PUSH=(651:ID=2))
>   OUTFIL FNAMES=OUT01,BUILD=(1,650),INCLUDE=(651,2,ZD,EQ,01)
>   OUTFIL FNAMES=OUT02,BUILD=(1,650),INCLUDE=(651,2,ZD,EQ,02)
>   OUTFIL FNAMES=OUT03,BUILD=(1,650),INCLUDE=(651,2,ZD,EQ,03)
>   OUTFIL FNAMES=OUT04,BUILD=(1,650),INCLUDE=(651,2,ZD,EQ,04)
>   OUTFIL FNAMES=OUT05,BUILD=(1,650),INCLUDE=(651,2,ZD,EQ,05)
> /*
>
> Here , i want to add the header in the OUT01-05 files . is there a way we
> can do in the same step.
>
> Sample input data as follows
>
>
> *** Top of Data
> 
> RTPOSY_NBR   }  PRREM_DESC1  }  PSORE_NBR   }  RETAIL_TYPE_DESC   }
> RETAIL_AMT
> 500127657 }NECT CY ABACAXI  }1141   }SBH - Base Especial
> 500792452 }NECT CY UVA 1L   }1141   }SBH - Base Especial
> 500792451 }NECT CY MARACUJA 1L  }1141   }SBH - Base Especial
> 500827656 }NECT CY MANGA}1151   }SBH - Base Especial
> 500840785 }NECT CY PESSEGO L 1L }1151   }SBH - Base Especial
> 500759650 }ALC GEL GB CLAS  }1181   }SBH - Base Especial
> 500759651 }ALC GEL GB BLUE  }1181   }SBH - Base Especial
> 500766705 }ALC GEL GB CLASSIC   }1191   }SBH- Base Especial
> 500839893 }NECT CY LARANJ 1L}1191   }SHB - Base Especial
>
> Thanks
> Ron T
>
> --
> 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


Re: SORT question: How to both remove records from a file AND write removed records to a 2nd output?

2020-09-22 Thread Massimo Biancucci
Peter,

look at OUTFIL syntax and SAVE keyword.

Regards.
Max


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mar 22 set 2020 alle ore 19:22 Farley, Peter x23353 <
031df298a9da-dmarc-requ...@listserv.ua.edu> ha scritto:

> In one pass of an input file is there a way to use SORT to both remove
> identified records from an input file AND write those removed records to a
> second output file?
>
> I know I can run two passes of the input using INCLUDE in pass 1 to select
> just the records to be removed and a second pass using OMIT to take them
> out, but can it be done in one pass?
>
> Peter
>
> This message and any attachments are intended only for the use of the
> addressee and may contain information that is privileged and confidential.
> If the reader of the message is not the intended recipient or an authorized
> representative of the intended recipient, you are hereby notified that any
> dissemination of this communication is strictly prohibited. If you have
> received this communication in error, please notify us immediately by
> e-mail and delete the message and any attachments from your system.
>
> --
> 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


Re: SYNCSORT Question with IFTHEN and JOINKEYS

2020-09-15 Thread Massimo Biancucci
Bill,

I think the problem is the IFTHEN on BOTHFLS.

SS "thinks" there's an option to write a record other than 711,1,CH,EQ,C'1'
and 711,1,CH,NE,C'1'. We know it's not possible.
So it's enough to change the IFTHEN in:

IFTHEN=(WHEN(1,1,CH,EQ,C'1'),
BUILD=(1:1,710)),
 IFTHEN=(WHEN=NONE,
BUILD=(001:711,596,
   597:1,114))

Hope this helps.

Regards.
Max



Mail
priva di virus. www.avast.com

<#m_444981408700301098_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mar 15 set 2020 alle ore 22:29 George, William@FTB <
0281fe30dbc0-dmarc-requ...@listserv.ua.edu> ha scritto:

> Greetings
>
> I'm stumped with a sort using IFTHEN logic within a JOINKEYS process.
> I can't seem to get away from this error:  BOTHFLS  HAS INCOMPATIBLE LRECL
>
> NOTE: BOTHFLS is the output file for records in both files.  :)
> F1ONLY & F2ONLY are self-explanatory.
>
> Here's are the cards:
>
>   JOINKEYS F1=IN1,FIELDS=(1,12,A)
>   JOINKEYS F2=IN2,FIELDS=(12,12,A)
> *
>   JOIN UNPAIRED
>   REFORMAT FIELDS=(F1:1,710,?,F2:1,596)
> * -
> * | CONTROL STATEMENTS AFTER RECORDS HAVE BEEN JOINED IN THE TEMP FILE|
> * -
>   OPTION COPY
>   OUTFIL FNAMES=BOTHFLS,INCLUDE=(711,1,CH,EQ,C'B'),
>  IFTHEN=(WHEN(1,1,CH,EQ,C'1'),
> BUILD=(1:1,710)),
>  IFTHEN=(WHEN(1,1,CH,NE,C'1'),
> BUILD=(001:711,596,
>597:1,114))
>   OUTFIL FNAMES=FL1ONLY,INCLUDE=(711,1,CH,EQ,C'1'), BUILD=(1,710)
>   OUTFIL FNAMES=FL2ONLY,INCLUDE=(711,1,CH,EQ,C'2'), BUILD=(712,596)
> /*
>
> Note: I have successfully run each BUILD individually without the IFTHEN
> to verify I have the lengths of each correct.
> We are on SYNCSORT FOR Z/OS  2.1.9.
>
> Any insights would be greatly appreciated!
>
> Thanks
> Bill
>
> __
> CONFIDENTIALITY NOTICE: This email from the State of California is for the
> sole use of the intended recipient and may contain confidential and
> privileged information. Any unauthorized review or use, including
> disclosure or distribution, is prohibited. If you are not the intended
> recipient, please contact the sender and destroy all copies of this email.
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Syncsort E11 exit

2020-09-14 Thread Massimo Biancucci
Joseph,

maybe this helps or may not.

If you're using SYNCSORT, the product can "identify" multiple dataset (up
to 100) by using the "Multiple Input Files" (Chapter 12 on V2.1 manual).

This allows the programmer to specify different INCLUDE/OMIT for every of
the different SORTMIxx input dataset.

It could be "boring" but probably you can use it to discover the source
dataset (I mean SORTMIxx DD) in a single step.
Maybe (more boring) you can split the operation in multiple steps.

Best regards.
Max



Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno ven 11 set 2020 alle ore 21:02 Joseph Reichman <
reichman...@gmail.com> ha scritto:

> The dataset name contains the time and by time I mean day of week and
> which week it was processed. So if I’m looking for another dataset name
> that has complementary information I could figure it out right away
> That’s the only reason
>
> I had originally coded a sort to look for particular data however since
> most the data is variable I needed any exit to point  me to the right spot
> computing an offset.
>
> I bought up dynamic allocation because typically I could search through
> hundreds of files and dynamically allocating it since the file names have a
> pattern only differentiated by as I said the last qualifier which is day of
> week, week and year
>
> Thanks
>
>
>
> > On Sep 11, 2020, at 2:51 PM, Christopher Y. Blaicher <
> cblaic...@precisely.com> wrote:
> >
> > The location of the DCB and other information is in proprietary
> structures which are not available to the user.  Also, because of buffering
> and read-ahead, the record you are looking at may not be in the file the
> DCB is currently pointing to.
> >
> > I don't know what you are trying to do, but if you are attempting to
> 'clean' a set of files, you could use OUTFIL to put the good data in one
> file and the bad data in another.
> >
> > Chris Blaicher
> > Technical Architect
> > Precisely.com
> >
> >
> > -Original Message-
> > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU]
> On Behalf Of Joseph Reichman
> > Sent: Friday, September 11, 2020 2:32 PM
> > To: IBM-MAIN@LISTSERV.UA.EDU
> > Subject: Re: Syncsort E11 exit
> >
> > [ External - This message originated Externally.  Use proper judgement
> and caution with attachments, links, or responses. ]
> >
> > The data is mostly binary
> >
> > Huge  vb files and lots of them
> >
> >> On Sep 11, 2020, at 2:26 PM, Jousma, David <
> 01a0403c5dc1-dmarc-requ...@listserv.ua.edu> wrote:
> >>
> >> Syncsort is a great tool, but why reinvent the wheel?  Why not just
> >> run
> >>
> >> //SEARCH  EXEC PGM=ISRSUPC,
> >> //PARM=(SRCHCMP,'ANYC')
> >> //NEWDD  DD DSN=concat.dsn1.DEV1,DISP=SHR
> >> //   DD DSN=concat.dsn2,DISP=SHR
> >> //OUTDD DD SYSOUT=*
> >> //SYSIN  DD *
> >> SRCHFOR  'x'
> >> /*
> >>
> >>
> >> The output tells you which dataset it found the searched for value.
> >> __
> >> ___
> >> Dave Jousma
> >> AVP | Director, Technology Engineering
> >>
> >> Fifth Third Bank  |  1830 East Paris Ave, SE  |  MD RSCB2H  |  Grand
> >> Rapids, MI 49546
> >> 616.653.8429  |  fax: 616.653.2717
> >>
> >>
> >> -Original Message-
> >> From: IBM Mainframe Discussion List  On
> >> Behalf Of Joseph Reichman
> >> Sent: Friday, September 11, 2020 2:15 PM
> >> To: IBM-MAIN@LISTSERV.UA.EDU
> >> Subject: Re: Syncsort E11 exit
> >>
> >> **CAUTION EXTERNAL EMAIL**
> >>
> >> **DO NOT open attachments or click on links from unknown senders or
> >> unexpected emails**
> >>
> >> I am using syncsort to search for records
> >>
> >> So let’s say I concatenate 100 files
> >>
> >> And the data I’m looking for is let’s say in the 50 th file
> >>
> >> To get The dataset name of the 50 th file
> >>
> >> I could do RDJFCB for the dcb with exlst type X’07’ and the dataset
> >> name that I’m currently processing would be in the jfcb area. However
> >> in this case you or rather syncsort has the dcb
> >>
> >> Is there anyway the exit and I am using E15 To tell me the dataset
> >> name currently being processed by the exit
> >>
> >> Thanks
> >>
> >>
> >>
>  On Sep 11, 2020, at 2:06 PM, Christopher Y. Blaicher <
> cblaic...@precisely.com> wrote:
> >>>
> >>> The E11 exit will not look at any file.  It is a, shall we say, dumb
> exit.
> >>> If your question is what files Syncsort will look at in analyzing a
> concatenated SORTIN, it will look at all of them.  One of the things it is
> trying to do is determine the input file size and the access method
> required to read the input.
> >>>
> >>> Chris Blaicher
> >>> Technical Architect
> >>> Precisely.com
> >>>
> >>>
> >>> -Original Message-

Re: WLM query

2020-08-24 Thread Massimo Biancucci
Sean,

AFAIK WLM runs and manages continuously the workload setting DP as needed
(if there's no CPU contention ... so no problems).

Its main task is to make all the AS as fast as they can.

If there's available CPU for everybody every AS will take as much as it can.

If you want a single (or group of) AS to be limited you can use a capping
based on a Resource Group (WLM menu option 3) to set a maximum of MSUs
available for that group.
You have to use a classification to assign the AS to that RG too.

Hope this helps.
Best regards.
Max


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno lun 24 ago 2020 alle ore 10:10 Sean Gleann 
ha scritto:

> Is there a way to force a maximum CPU% utilisation for a specific task?
>
> Please correct me if I'm wrong here, but it is my understanding that WLM
> only really starts 'doing it's stuff' when the system as a whole is heavily
> loaded.
> For example:
>  - If my system is running at 80%, and a new incoming task wants 50% CPU,
> then it is allowed to run, but it only gets a maximum of 20% (obviously),
> and WLM starts switching task dispatch priorities around to try and
> maintain the service levels defined in the policy.
>  - On the other hand, if the system is only 20% busy and the 50%-usage task
> comes along, then it is allowed to run and WLM just lets it happen
>
> What I want to do is to limit specific tasks to a maximum CPU% value no
> matter what the overall loading is.
>
> Regards
> Sean
>
> --
> 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


Re: Goodbye.

2020-08-03 Thread Massimo Biancucci
Kees,

all the best for you and thanks for being a valuable supporter.

Max


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno lun 3 ago 2020 alle ore 09:45 Vernooij, Kees (ITOP NM) - KLM <
kees.verno...@klm.com> ha scritto:

> After more than 41 years working as a mainframe systems programmer, the
> time has come for me to say goodbye.
> I enjoyed the mainframe world in all the aspects that I worked with, from
> SVS 1.7 to z/OS 2.4, from a 370/158 to a z13s and all other flavours that
> came and went in the past decades.
>
> It was a pleasure and an honour to participate in the ibm-main group, with
> all its high technical skills, that gave me so many answers and where I
> could answer some questions too.
> But most I enjoyed the company of this global community, where I met
> people from all over the world, with their unlimited willingness to help
> others, their humour, their rants and their Friday afternoon subjects. I am
> really gonna miss all this.
>
> I will retire on the 11th and unsubscribe then.
> I wish you all the best!
>
> 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
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ISPF development question

2020-07-30 Thread Massimo Biancucci
If the panel library is available directly to your logon proc, you can use
ISPF 7.2 to refresh panel to its latest release.

Best regards.
Max


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno gio 30 lug 2020 alle ore 08:14 Gadi Ben-Avi  ha
scritto:

> Hi,
>
> I was told to develop an ISPF application.
> It's been a long time since I did this, so I'm having some issues.
>
> Whenever I change a panel definition, I have to logoff and logon for the
> updated definition to show.
> Is there a way to have ISPF use the updated definition without logging off
> and on.
>
> Thanks
>
> Gadi
>
> --
> 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


Re: DFSORT task (I hope)

2020-07-23 Thread Massimo Biancucci
You can use JOIN function of DFSORT:

//ST100EXEC  PGM=SORT
//SYSOUT  DD SYSOUT=*
//FILE1   DD *
DSNAME01
DSNAME09
DSNAME02
DSNAME27
DSNAME04
/*
//FILE2   DD *
DSNAME09
DSNAME04
/*
//SORTOUT  DD SYSOUT=*
//SYSIN   DD *
 JOINKEYS F1=FILE1,FIELDS=(1,44,A)
 JOINKEYS F2=FILE2,FIELDS=(1,44,A)
 JOIN UNPAIRED,F1,ONLY
 REFORMAT FIELDS=(F1:1,80)
 SORT FIELDS=COPY
/*

Output is:

DSNAME01
DSNAME02
DSNAME27

I assumed dsnames are at 1,44 and lrecl is 80.

JOINKEYS UNPAIRED,F1,ONLY means output only unpaired keys records from
FILE1.

Best regards.
Max


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno gio 23 lug 2020 alle ore 10:11 R.S. <
r.skoru...@bremultibank.com.pl> ha scritto:

> I have the following case:
>
> Large (thousands) list containing filenames,
> filea10002
> fileb10041
> filec20043
> filed39093
> longfileabc
> anotherfile
> ...
>
> and small (dozens) list of filename "exlusions"
> longfileabc
> fileb10041
> ...
>
> Short list is subset of long list. All files has fixed lentgh name, no
> other fields exist in the record.
> The goal is to exclude from large list all the entries which are present
> in the short list.
> Lists are unsorted, but I think it doesn't matter. I see it is candidate
> for REXX script, but DFSORT job seems to be more elegant.
> Any clue?
>
>
> --
> Radoslaw Skorupka
> Lodz, Poland
>
>
>
>
>
> ==
>
> Jeśli nie jesteś adresatem tej wiadomości:
>
> - powiadom nas o tym w mailu zwrotnym (dziękujemy!),
> - usuń trwale tę wiadomość (i wszystkie kopie, które wydrukowałeś lub
> zapisałeś na dysku).
> Wiadomość ta może zawierać chronione prawem informacje, które może
> wykorzystać tylko adresat.Przypominamy, że każdy, kto rozpowszechnia
> (kopiuje, rozprowadza) tę wiadomość lub podejmuje podobne działania,
> narusza prawo i może podlegać karze.
>
> mBank S.A. z siedzibą w Warszawie, ul. Senatorska 18, 00-950 Warszawa,
> www.mBank.pl, e-mail: kont...@mbank.pl. Sąd Rejonowy dla m. st. Warszawy
> XII Wydział Gospodarczy Krajowego Rejestru Sądowego, KRS 025237, NIP:
> 526-021-50-88. Kapitał zakładowy (opłacony w całości) według stanu na
> 01.01.2020 r. wynosi 169.401.468 złotych.
>
> If you are not the addressee of this message:
>
> - let us know by replying to this e-mail (thank you!),
> - delete this message permanently (including all the copies which you have
> printed out or saved).
> This message may contain legally protected information, which may be used
> exclusively by the addressee.Please be reminded that anyone who
> disseminates (copies, distributes) this message or takes any similar
> action, violates the law and may be penalised.
>
> mBank S.A. with its registered office in Warsaw, ul. Senatorska 18, 00-950
> Warszawa,www.mBank.pl, e-mail: kont...@mbank.pl. District Court for the
> Capital City of Warsaw, 12th Commercial Division of the National Court
> Register, KRS 025237, NIP: 526-021-50-88. Fully paid-up share capital
> amounting to PLN 169.401.468 as at 1 January 2020.
>
> --
> 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


Re: SMF record

2020-07-13 Thread Massimo Biancucci
Peter,

it seems somebody submitted the JOB03275 job on behalf of RACFID (like a
jobcard with USER=RACFID).

Into the log you should see something like $HASP100 ABCD ON INTRDR userid


Maybe it will be useful.

Regards.


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno mar 14 lug 2020 alle ore 00:28 TenEyck, Peter <
peter.tene...@americannational.com> ha scritto:

> What SMF record and report/tool could I use to determine the point of
> origin for this attempted logon?
>
> M 008 ABCD 20180 07:40:36.85 JOB03275 0090  ICH408I
> USER(RACFID  ) GROUP() NAME(??? ) 395
> E 395 0090LOGON/JOB
> INITIATION - USER AT TERMINAL  NOT RACF-DEFINED
>
> //* Peter Ten Eyck
> //* Senior Systems Programmer
> //* American National
> //
>
>
> 
> American National is the brand name for American National Insurance
> Company, headquartered in Galveston, Texas, and its subsidiaries. Each
> company has financial responsibility only for its own products and
> services. American National Insurance Company is not licensed in New York.
> In New York, business is conducted by New York licensed subsidiaries. For
> more information, go to www.americannational.com.
> Confidentiality: This transmission, including any attachments, is solely
> for the use of the intended recipient(s). This transmission may contain
> information that is confidential or otherwise protected from disclosure.
> The use or disclosure of the information contained in this transmission,
> including any attachments, for any purpose other than that intended by its
> transmittal is strictly prohibited. Unauthorized interception of this email
> is a violation of federal criminal law. If you are not an intended
> recipient of this transmission, please immediately destroy all copies
> received and notify the sender.
>
> --
> 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


Re: DB2 Image Copies

2020-06-18 Thread Massimo Biancucci
John,

ICs are not related to availability, they're needed to recover.

So, you need IC if you need to recover to a certain point in time (IC,
Quiesce etc.) in case of application failure (logic data issues) more than
system failure.

Usually customers take in count the Db2 log lifecycle and hold enough IC to
restore data to any point in time.
For instance, if your logs lifecycle is two weeks and IC are taken weekly,
maybe last three ICs are enough.
Like always in DB2 world . it depends.

Best regards.
Max


Il giorno mer 17 giu 2020 alle ore 22:12 Benik, John E <
01ace072c099-dmarc-requ...@listserv.ua.edu> ha scritto:

> Are there any good recommendations/suggestions on retaining DB2 Image
> Copies?  Specifically in an environment where all data is replicated.  It
> is my belief that we are retaining the data for Image Copies much longer
> than it needs to be in many cases, but I'm not sure if there is a best
> practice recommendation available.
>
> Sincerely,
>
> John Benik
>
>
>
> This e-mail, including attachments, may include confidential and/or
> proprietary information, and may be used only by the person or entity
> to which it is addressed. If the reader of this e-mail is not the intended
> recipient or his or her authorized agent, the reader is hereby notified
> that any dissemination, distribution or copying of this e-mail is
> prohibited. If you have received this e-mail in error, please notify the
> sender by replying to this message and delete this e-mail immediately.
>
> --
> 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


Re: IGYSC2025-W cobol message

2020-04-24 Thread Massimo Biancucci
Probably the program is a CICS program and it has been compiled with the
inline CICS precompile.

Usually (it depends on the options), precompiler adds the USING DFHCOMMAREA
automaGically.

That means, DFHCOMMAREA will have a real good address while SAS-C-BLOCK
won't.

Hope this helps.
Regards.
Max

Il giorno ven 24 apr 2020 alle ore 13:21 Mahesh KN  ha
scritto:

> thanks Max,
> i have more interesting code that looks like below.
>  15   *
>  16   *   L I N K A G E   S E C T I O N   *
>  17   *
>  18LINKAGE SECTION.
>  1901 DFHCOMMAREA.
>  20   05 A-C-BILL PIC S9(8) COMP.
>  2201 SAS-BLOCK.
>  23   05 B-C-BILL PIC S9(8) COMP.
>  24   *
>  25   *P R O C E D U R E   D I V I S I O N*
>  26   *
>  27PROCEDURE DIVISION.
>  28MOVE A-C-BILL to B-C-BILL.
>
> in the above case, i think both 9(8) comp fields are some addresses(which
> doesnt matter much anyway) . But i still get IGYSC2025 warning on line 22
> SAS-BLOCK field definition.
>
> ____
> From: IBM Mainframe Discussion List  on behalf
> of Massimo Biancucci 
> Sent: Friday, April 24, 2020 2:58 PM
> To: IBM-MAIN@LISTSERV.UA.EDU 
> Subject: Re: IGYSC2025-W cobol message
>
> Hi,
>
> any area having not an address can be a potential problem.
>
> A sample of the code would have been better.
> Anyway look at this:
>
>  15   *
>
>  16   *   L I N K A G E   S E C T I O N   *
>
>  17   *
>
>  18LINKAGE SECTION.
>
>  1901 PARM.
>
>  20   05 PARM-PTR USAGE IS POINTER.
>
>  21
>
>  2201 QQ PIC X(2).
>
>  2301 QQ2 PIC X(2).
>
>  24   *
>
>  25   *P R O C E D U R E   D I V I S I O N*
>
>  26   *
>
>  27PROCEDURE DIVISION USING PARM.
>
>  28
>
>  29DISPLAY 'ZPLINKUS - INIZIO'
>
>  30DISPLAY QQ
>
>  31
>
>  32SET ADDRESS OF QQ2 TO PARM-PTR
>
>  33DISPLAY QQ2
>
>  34
>
>  35DISPLAY 'ZPLINKUS - FINE'
>
>  36
>
>  37GOBACK.
>
> ..
>
>
> 22  IGYSC2025-W   "QQ" or one of its subordinates was referenced, but
> "QQ" w
>   addressability.  This reference will not be resolved
> succe
> MessagesTotalInformationalWarningErrorSevere
>  Terminating
>
> As you can see compiler warns on QQ and not on QQ2.
>
> QQ will have not a valid address and this will lead to abend (if you're
> lucky) or to result error (difficult to diagnose).
> So you should be sure the variable address had been set before using it.
> Maybe compiler didn't understand a SET even though I think it's not so.
>
> I've lots of examples where "bad programs ran properly" on V4 and prior and
> abended on V5 or later because of bad addressed areas or misleaded
> parm-area length.
>
> Regards.
> Max
>
>
> <
> https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail
> >
> Mail
> priva di virus. www.avast.com<http://www.avast.com>
> <
> https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail
> >
> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>
> Il giorno ven 24 apr 2020 alle ore 09:51 Mahesh KN  ha
> scritto:
>
> > We are upgrading the Cobol to Cobol v 6.2.0. We have a program that was
> > compile on Cobol v4.* and probably the code was running fine. But our
> shop
> > has setup to take IGYSC2025 warnings seriously and not proceed with
> > compilation under Cobol V6.
> > So i am wondering how adsressability works if a linkage section variable
> > is used in the program without having "USING" 

Re: IGYSC2025-W cobol message

2020-04-24 Thread Massimo Biancucci
Hi,

any area having not an address can be a potential problem.

A sample of the code would have been better.
Anyway look at this:

 15   *

 16   *   L I N K A G E   S E C T I O N   *

 17   *

 18LINKAGE SECTION.

 1901 PARM.

 20   05 PARM-PTR USAGE IS POINTER.

 21

 2201 QQ PIC X(2).

 2301 QQ2 PIC X(2).

 24   *

 25   *P R O C E D U R E   D I V I S I O N*

 26   *

 27PROCEDURE DIVISION USING PARM.

 28

 29DISPLAY 'ZPLINKUS - INIZIO'

 30DISPLAY QQ

 31

 32SET ADDRESS OF QQ2 TO PARM-PTR

 33DISPLAY QQ2

 34

 35DISPLAY 'ZPLINKUS - FINE'

 36

 37GOBACK.

..


22  IGYSC2025-W   "QQ" or one of its subordinates was referenced, but
"QQ" w
  addressability.  This reference will not be resolved
succe
MessagesTotalInformationalWarningErrorSevere
 Terminating

As you can see compiler warns on QQ and not on QQ2.

QQ will have not a valid address and this will lead to abend (if you're
lucky) or to result error (difficult to diagnose).
So you should be sure the variable address had been set before using it.
Maybe compiler didn't understand a SET even though I think it's not so.

I've lots of examples where "bad programs ran properly" on V4 and prior and
abended on V5 or later because of bad addressed areas or misleaded
parm-area length.

Regards.
Max



Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno ven 24 apr 2020 alle ore 09:51 Mahesh KN  ha
scritto:

> We are upgrading the Cobol to Cobol v 6.2.0. We have a program that was
> compile on Cobol v4.* and probably the code was running fine. But our shop
> has setup to take IGYSC2025 warnings seriously and not proceed with
> compilation under Cobol V6.
> So i am wondering how adsressability works if a linkage section variable
> is used in the program without having "USING" clause in the procedure
> section.
> There seems to be a misuse of linkage section to declare large copybooks
> to 'save' space while compiling. I am into application programming and
> didnt understand the full implication of IGYSC2025 warnings.
> thanks
> Mahesh.
>
> [
> https://ipmcdn.avast.com/images/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif
> ]<
> https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail>
> Virus-free. www.avast.com<
> https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail
> >
>
> --
> 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


RFE Vote for IBM Fault Analyzer.

2020-04-22 Thread Massimo Biancucci
Hi everybody,

we opened a RFE to address a lack in IBM FA.

Cobol Special register are not addressable in the DUMP.

I understand that only people using IBM FA would be interested, anyway I
invite you to vote.

http://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe_ID=141860

Thanks a lot for your support.
Max

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: PARM= vs PARMDD= and symbol substitution

2020-03-30 Thread Massimo Biancucci
I tried the sample from IBM Manual and it seems it works as designed.

I've not read properly so sorry about that.

This JCL works the way you want:

//*---*
//STP01  EXEC PGM=ICEGENER
//SYSPRINT DD DUMMY
//SYSUT1 DD *,SYMBOLS=(JCLONLY)

/*
//SYSUT2 DD SYSOUT=*
//*---*
//TOSTP01 SET PRM='PARM1'
//*---*
//STP02  EXEC PGM=ICEGENER
//SYSPRINT DD DUMMY
//SYSUT1 DD *,SYMBOLS=(JCLONLY)

/*
//SYSUT2 DD SYSOUT=*
//*---*
//TOSTP02 SET PRM='PARM2'
//*---*
//STP03  EXEC PGM=ICEGENER
//SYSPRINT DD DUMMY
//SYSUT1 DD *,SYMBOLS=(JCLONLY)

/*
//SYSUT2 DD SYSOUT=*
//*---*
//TOSTP03 SET PRM='PARM3'

It seems the SYMBOLS substitution happens at a different "step" by the
translator.
Even it seems crazy, the TOSTP03 SET work for STP03.

As Paul said, I think IBM will respond "it works as designed".

Regards.

Il giorno lun 30 mar 2020 alle ore 13:51 Windt, W.K.F. van der (Fred) <
0185ecbb3806-dmarc-requ...@listserv.ua.edu> ha scritto:

> Based on the doc I expected these two JCL variations to behave 100%
> equivalent (assuming the program van handle any parameter length):
>
> //STEP1  EXEC PGM=program,PARM='parameter with symbols'
>
> And
>
> //STEP1  EXEC PGM=program,PARM=PARMDD
> //PARMDD DD *,SYMBOLS=JCLONLY
> parameter with symbols
> /*
> But unexpected stuff happens when you add SET statements between job steps.
>
> //   SET VRB=VALUE1
> //STEP1  EXEC PGM=program,PARM=''
> //*
> //   SET VRB=VALUE2
> //STEP2  EXEC PGM=program,PARM=''
> //*
> //   SET VRB=VALUE3
> //STEP3  EXEC PGM=program,PARM=''
>
> Behaves as expected. In STEP1 the program in invoked with parameter
> VALUE1, in STEP2 with parameter VALUE2 and in STEP3 with parameter VALUE3.
>
> If I change the JCL to this:
>
> //   SET VRB=VALUE1
> //STEP1  EXEC PGM=program,PARM=PARMDD
> //PARMDD  DD *,SYMBOLS=JCLONLY
> 
> /*
> //*
> //   SET VRB=VALUE2
> //STEP2  EXEC PGM=program,PARM=PARMDD
> //PARMDD  DD *,SYMBOLS=JCLONLY
> 
> /*
> //*
> //   SET VRB=VALUE3
> //STEP3  EXEC PGM=program,PARM=PARMDD
> //PARMDD  DD *,SYMBOLS=JCLONLY
> 
> /*
>
> Does not behave 'logical' at all. In STEP1 the program is invoked with
> parameter VALUE2, in STEP2 and STEP3 with parameter VALUE3. It seems SET
> statement that follow the current EXEC statement (but before the next EXEC
> statement) are processed before the PARMDD= parameter is constructed.
>
> I can't find any documentation that specifies this behavior. Is this a bug?
>
> Regardz,
>
> Fred!
>
> -
> ATTENTION:
> The information in this e-mail is confidential and only meant for the
> intended recipient. If you are not the intended recipient, don't use or
> disclose it in any way. Please let the sender know and delete the message
> immediately.
> -
>
> --
> 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


Re: Upwards Compatibility of Code in Z series Boxes

2020-03-30 Thread Massimo Biancucci
If you refer to assembler, you had lots of answers.

Regarding high level languages, maybe you encounter some problems with very
old compiler (OS/VS Cobol, Cobol II, PLI 1.x).
Very few about source, more about runtime because of LE.
So it's not HW related but IBM software environment.
There're anyway lots of online resources to learn from.

Regards.
Max

Il giorno lun 30 mar 2020 alle ore 00:50 Grant Steele 
ha scritto:

> Impressed with the depth on this list from the contributors.  I am getting
> back into the z-series software and application development after years of
> being in another domain.
>
> Here is a very broad question: when you guys/girls are moving your app
> portfolio from one hardware platform to another (say, z14 to z15), to what
> extend are the apps compatible with the new platform without
> recompilation?
>
> --
> 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


Re: SQL query interface for catalogs?

2020-03-20 Thread Massimo Biancucci
John,

it seems a nice idea anyway I tend to be cautious in interfacing catalog.
In my experience there's something that can go wrong.

Years ago we experienced some random delay in DB2 subsystem without having
(after tenth of calls to IBM and dump and so on) the ability to diagnose
the problem.
After long time we discovered how a single TSO user with ISPF 3.4 asking
something like first qualifier "*" could heavily impact the system. This
drove us to block such a request (no generic on first qualifier).
What's interesting is that if you ask for "*.**" no delay at all, but if
you ask for "*.*.some.not.exist.*" problems arise.
The query will analyze (potentially for a long time) all the catalog
entries keeping a SHR enqueue.
If anybody would need to define a dataset (EXCL enqueue) will wait for a
while. And because of the EXCL enqueue waiting, potentially all the new SHR
requests will wait.
That time we opened an issue to IBM to describe the problem and ask for
something like "Catalog, do the needed but please after every
unsuccessfully N fetch close the ENQ and restart".
The answer was: "It works as designed".

It's been long time ago and maybe now it's different, new zOS, new zMachine


Hope this helps.
Max


Il giorno ven 20 mar 2020 alle ore 14:14 John McKown <
john.archie.mck...@gmail.com> ha scritto:

> I do tend to come up with weird ideas. But I really like query languages,
> especially SQL. So I got to wondering if anyone else would like a query
> language, perhaps based on SQL, which uses the z/OS catalog structure as a
> data source? It would most likely use IGGCSI00 as its base driver code. Or
> is there a product that does this sort of thing already? Or am I just
> getting weirder?
>
> --
> People in sleeping bags are the soft tacos of the bear world.
> Maranatha! <><
> John McKown
>
> --
> 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


Re: March 18: Exploring z/OS Container Extensions Live Webcast

2020-03-09 Thread Massimo Biancucci
Timothy,

it would be really appreciated if you'll post a recording of the event.

Thanks a lot in advance.
Max

Il giorno lun 9 mar 2020 alle ore 08:40 Timothy Sipples 
ha scritto:

> This month Edward McCarthy and I planned to hold a pair of "Exploring z/OS
> Container Extensions" Meetups in Mumbai and Bengaluru, but global
> epidemiological events are forcing certain precautions. Therefore, we'd be
> delighted if even more people join the new virtual Meetup, live at 10:00
> a.m. India Standard Time (04:30 UTC) on Wednesday, March 18, 2020. To find
> out more, and to enroll, please visit:
>
>
> https://www.meetup.com/IBM-Z-Technical-Community-in-Asia-Pacific/events/267773033
>
> Whether you're in Mumbai, Bengaluru, or almost anywhere else in the world,
> we hope to see you online with us. Please don't wait until the last
> moment, though. Enrollments close about 20 hours before the event, and
> based on past experiences you'll want to test your device and network well
> ahead of time.
>
> - - - - - - - - - -
> Timothy Sipples
> I.T. Architect Executive
> Digital Asset & Other Industry Solutions
> IBM Z & LinuxONE
> - - - - - - - - - -
> E-Mail: sipp...@sg.ibm.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


Re: Question on MQ on the Z/os

2020-03-03 Thread Massimo Biancucci
Dennis,

AFAIK if you're using standard application on zOS (Cobol, PLI etc.) you
need a MQ Server AS up and running on the client lpars.

MQ Server means license and costs.
The amount of the cost depends on your licensing type. This case zNALC
could be a good option.
Of course you've to ask your IBM representative.

Regards.
Max



Il giorno mer 4 mar 2020 alle ore 01:58 Longnecker, Dennis <
dennis.longnec...@courts.wa.gov> ha scritto:

> Wondering if anyone here is using MQ Series on the z/os box and knows
> about the licensing?
>
> If one had MQ on the Z and it was doing all the QMgrs/Queue work, do the
> clients (that aren't QMgrs/Queue) on the other boxes need cost/purchase
> licenses?   What I am finding is:
>
> - The MQ clients are available as support pacs, they are freely
> downloadable.
> - it's covered by an IBM license, they just don't charge for it.
> - MQ Client comes with the Websphere MQ Package, it is a component.
> - The standard MQ Client is free
>
> Dennis
>
> --
> 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


Re: Finding and replying to outstanding reply

2020-02-11 Thread Massimo Biancucci
Tony,

don't know if it's a real light, caus you prefere assembler, maybe CNZQUERY
- Consoles query (Authorized Assembler Service Reference ALE-DYN) could
help.

In the manual there's an example doing exactly what you need.

Best regards.
Max

Il giorno mar 11 feb 2020 alle ore 14:32 Tony Thigpen  ha
scritto:

> We have an in-house written automated shutdown program that does
> everything but shutdown NPF. That is because NPF leaves an open reply
> message during start-up to which I must replay xx,STOP to make it
> shutdown. Within our shutdown program, I would like it to
> programmatically find the outstanding reply number so that it can issue
> the correct response.
>
> Can someone point me to any doc or examples that will help me get
> started on this?
>
> Some items:
> The shutdown program is assembler.
> I have SysREXX running with a valid MPF exit to call it.
> I would prefer to do it all within the assembler program instead of
> using MPF/SysREXX.
>
> Thoughts?
>
> --
> Tony Thigpen
>
> --
> 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


Re: Can I do variable field-length blanking with SORT?

2020-01-09 Thread Massimo Biancucci
Sri,

stunning as usual !

ICETOOL is really terrific . and I've learnt much more (CHANGE for
instance).

Thanks a lot.
Max

Il giorno gio 9 gen 2020 alle ore 02:16 Sri h Kolusu 
ha scritto:

> > Please "light us" with the trick.
>
> Max,
>
> Here is the trick job I was talking about. Basically you resize the record
> into 4 byte chunks and use 4 IFTHEN statements to space out the record.
> This job will work for any LRECL 1-(assuming you adjust the pos and
> lengths) and if you want to handle LRECL (1 - 32760), then it would be
> a 5 byte resize.
>
> //***
> //** CREATE SAMPLE DATA WITH LRECL=101 AND RECFM=FB**
> //***
> //STEP0050 EXEC PGM=SORT
> //SYSOUT   DD SYSOUT=*
> //SORTIN   DD *
> H 01  COMMENT: "01" IS SIGNIFICANT DATA COLUMNS
> D 12345XYZ ABC DEF
> D 45678GHI JKL MNO
> H 05  COMMENT: "05" IS SIGNIFICANT DATA COLUMNS
> D 12345XYZ ABC DEF
> D 45678GHI JKL MNO
> H 10
> D 1234567890 ABCDEFGHIJKL
> D 9876543210 MNOPQWRSTUVWXYZ
> H 98
> Y A234567890 ABCDEFGHIJKL
> Y B876543210 MNOPQWRSTUVWXYZ
> Y C876543210 MNOPQWRSTUVWXYZ
> H 99
> Z A234567890 ABCDEFGHIJKL
> Z B876543210 MNOPQWRSTUVWXYZ
> Z C876543210 MNOPQWRSTUVWXYZ
> //SORTOUT  DD DSN=&,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
> //SYSINDD *
>   OPTION COPY
>   INREC IFOUTLEN=101,
> IFTHEN=(WHEN=(1,3,CH,EQ,C'Y A'),OVERLAY=(3:98C'A',C'@')),
> IFTHEN=(WHEN=(1,3,CH,EQ,C'Y B'),OVERLAY=(3:98C'B',C'#')),
> IFTHEN=(WHEN=(1,3,CH,EQ,C'Y C'),OVERLAY=(3:98C'C',C'$')),
> IFTHEN=(WHEN=(1,3,CH,EQ,C'Z A'),OVERLAY=(3:99C'X',C'@')),
> IFTHEN=(WHEN=(1,3,CH,EQ,C'Z B'),OVERLAY=(3:99C'Y',C'#')),
> IFTHEN=(WHEN=(1,3,CH,EQ,C'Z C'),OVERLAY=(3:99C'Z',C'$'))
> /*
> //***
> //** BLANK OUT THE DETAIL RECORD WITH LENGTH VALUE ON HEADER   **
> //***
> //STEP0100 EXEC PGM=ICETOOL
> //TOOLMSG  DD SYSOUT=*
> //DFSMSG   DD SYSOUT=*
> //INP  DD DISP=SHR,DSN=&
> //TMP  DD DSN=&,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
> //OUT  DD SYSOUT=*
> //TOOLIN   DD *
>   RESIZE FROM(INP) TO(TMP) TOLEN(004) USING(CTL1)
>   RESIZE FROM(TMP) TO(OUT) TOLEN(108) USING(CTL2)
> //CTL1CNTL DD *
>   OMIT COND=(3,2,ZD,LT,1)
>   INREC IFOUTLEN=108,
> IFTHEN=(WHEN=INIT,
>BUILD=(C'00',2X,1,101)),
> IFTHEN=(WHEN=GROUP,BEGIN=(5,1,CH,EQ,C'H'),
> PUSH=(03:7,2)),
> IFTHEN=(WHEN=INIT,
>  OVERLAY=(01:01,4,ZD,ADD,+2,EDIT=(),
>   01:5,1,CHANGE=(4,C'H',C'0101'),
> NOMATCH=(1,4)))
>
>   OUTFIL IFOUTLEN=4,
>  IFTHEN=(WHEN=GROUP,RECORDS=27,PUSH=(6:1,4,ID=8)),
>  IFTHEN=(WHEN=INIT,
>   OVERLAY=(20:SEQNUM,4,ZD,START=0,INCR=4,RESTART=(6,12),
>26:06,4,ZD,SUB,20,4,ZD,ZD,LENGTH=4)),
>  IFTHEN=(WHEN=(26,4,ZD,EQ,-1),OVERLAY=(4:1X)),
>  IFTHEN=(WHEN=(26,4,ZD,EQ,-2),OVERLAY=(3:2X)),
>  IFTHEN=(WHEN=(26,4,ZD,EQ,-3),OVERLAY=(2:3X)),
>  IFTHEN=(WHEN=(26,4,ZD,LE,-4),OVERLAY=(1:4X))
> /*
> //CTL2CNTL DD *
>   OUTFIL BUILD=(5,101)
> /*
>
> Thanks,
> Kolusu
>
>
> --
> 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


Re: Can I do variable field-length blanking with SORT?

2020-01-08 Thread Massimo Biancucci
Sri,

your view is always important to us.

The fix for 99 is not so difficult.
Please "light us" with the trick.

:D
Max

Il giorno mer 8 gen 2020 alle ore 15:09 Sri h Kolusu 
ha scritto:

> > this could be a more useful version:
>
> Massimo,
>
> Peter mentioned that  the input has a 2-byte zoned decimal "data length"
> value which identifies the number of SIGNIFICANT columns.  So the maximum
> value that a 2 byte zoned decimal  can hold is 99. Your job fails as the
> arithmetic  ends with a negative number
>
> Try this sample data
>
> H 99
> D
>
> 
> D
>
> 
> D
>
> 
>
>
> It is an easy fix, however note that your solution might not scalable for
> an bigger LRECL's as you are simply generating the IFTHEN statements for
> every unique length.   Imagine if you have unique lengths from 1 - 32760
> ( OP has only 2 bytes of zoned decimal but what if it was unsigned binary
> field?
>
> There is a trick to get this done without generating IFTHEN statements.
>
>
> Kolusu
>
> --
> 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


Re: Can I do variable field-length blanking with SORT?

2020-01-08 Thread Massimo Biancucci
Peter,

this could be a more useful version:

//ST020 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
H 05  COMMENT: "05" IS SIGNIFICANT DATA COLUMNS
D 12345 XYZ ABC DEF
D 45678 GHI JKL MNO
H 10
D 1234567890 ABCDEFGHIJKL
D 9876543210 MNOPQWRSTUVWXYZ
/*
//SORTOUT DD DSN=,DISP=(,PASS),SPACE=(TRK,(1,1,),RLSE)
//SYMNAMES DD *
LLREC,80 LLREC
LLREC1,+80   LLREC WITH + SIGN
S1,X'7D'
/*
//SYSIN DD *
 INCLUDE COND=(1,1,CH,EQ,C'H')
 INREC FIELDS=(3,2,
  3,2,ZD,ADD,+3,TO=ZD,LENGTH=2,
  LLREC1,SUB,3,2,ZD,TO=ZD,LENGTH=2,
  LLREC1,SUB,+0,TO=ZD,LENGTH=2)
 SORT FIELDS=(1,2,BI,A)
 SUM FIELDS=NONE
 OUTFIL FNAMES=SORTOUT,REMOVECC,
   OUTREC=(2X,C'IFTHEN=(WHEN=(81,2,CH,EQ,C',S1,
  1,2,S1,C'),BUILD=(1,',3,2,C',',5,2,C'X)),',80:X),
  TRAILER1=('  IFTHEN=(WHEN=NONE,BUILD=(1,',7,2,'))')
/*
//ST030 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
H 05  COMMENT: "05" IS SIGNIFICANT DATA COLUMNS
D 12345 XYZ ABC DEF
D 45678 GHI JKL MNO
H 10
D 1234567890 ABCDEFGHIJKL
D 9876543210 MNOPQWRSTUVWXYZ
/*
//SORTOUT DD SYSOUT=*
//SYSIN DD *
 INREC IFTHEN=(WHEN=GROUP,BEGIN=(1,1,CH,EQ,C'H'),
  PUSH=(81:3,2))
 SORT FIELDS=COPY
 OUTREC IFTHEN=(WHEN=(1,1,CH,EQ,C'H'),
  BUILD=(1,80)),
//  DD DSN=,DISP=(OLD,DELETE)


ST020 analyze only "H" records and builds one "build" statement per every
found length.
At the end (trailer1) inserts the WHEN=NONE statement needed to obtain the
right lrecl in output.

I assumed the value in the H records is always > 3.

Pls, let me know if it worked.

Best regards.
Max

Il giorno mer 8 gen 2020 alle ore 09:50 Massimo Biancucci 
ha scritto:

> Peter,
>
> I don't know how long is your record, assuming it's 80 and that the LL
> field in H record is between 1 and  99, this could be a solution:
>
> //SYSIN DD *
>  INREC IFTHEN=(WHEN=GROUP,BEGIN=(1,1,CH,EQ,C'H'),
>   PUSH=(81:3,2))
>  SORT FIELDS=COPY
>  OUTREC IFTHEN=(WHEN=(1,1,CH,EQ,C'H'),
>   BUILD=(1,80)),
>  IFTHEN=(WHEN=(81,2,CH,EQ,C'01'),
>   OVERLAY=(04:76X)),
>  IFTHEN=(WHEN=(81,2,CH,EQ,C'02'),
>   OVERLAY=(05:75X)),
>  IFTHEN=(WHEN=(81,2,CH,EQ,C'03'),
>   OVERLAY=(06:74X)),
>  IFTHEN=(WHEN=(81,2,CH,EQ,C'04'),
>   OVERLAY=(07:73X)),
>  IFTHEN=(WHEN=(81,2,CH,EQ,C'05'),
>   OVERLAY=(08:72X)),
>  IFTHEN=(WHEN=(81,2,CH,EQ,C'06'),
>   OVERLAY=(09:71X)),
>  IFTHEN=(WHEN=(81,2,CH,EQ,C'07'),
>   OVERLAY=(10:70X)),
>  IFTHEN=(WHEN=(81,2,CH,EQ,C'08'),
>   OVERLAY=(11:69X)),
>  IFTHEN=(WHEN=(81,2,CH,EQ,C'09'),
>   OVERLAY=(12:68X)),
>  IFTHEN=(WHEN=(81,2,CH,EQ,C'10'),
>   OVERLAY=(13:67X))
> /*
>
> I stopped writing the IFTHEN at length 10, you can code the other
> statements.
>
> It's possible to "pre-analyze" the "H" records and dynamically generate
> only the needed IFTHEN statements.
>
> This is the output:
>
> H 05  COMMENT: "05" IS SIGNIFICANT DATA COLUMNS
> D 12345
> D 45678
> H 10
> D 1234567890
> D 9876543210
>
> Hope this helps.
>
> Best regards.
> Max
>
> Il giorno mer 8 gen 2020 alle ore 01:34 Farley, Peter x23353 <
> peter.far...@broadridge.com> ha scritto:
>
>> I have a fixed-record-length data file which has "subsections" starting
>> with a "data characteristics" record (call it a "subsection header").  One
>> of the fields in the "subsection header" is a 2-byte zoned decimal "data
>> length" value which identifies the number of SIGNIFICANT columns in the
>> "data" portion of the records following the "subsection header".
>>
>> What I would like to do is to blank out the NON-significant data columns
>> in the data records that follow each "subsection header".  The data records
>> have suffered from some "data pollution" where non-significant data has
>> been accidentally stored beyond the significant data columns.
>>
>> Each "subsection header" may have a different "significant data" length
>> value for the following data records.
>>
>> Example INPUT data (column 1 = record type [H = header, D = data], data
>> starts in column 3 in each record):
>>
>> H 05  COMMENT: "05" IS SIGNIFICANT DATA COLUMNS
>> D 12345 XYZ ABC DEF
>> D 45678 GHI JKL MNO
>> H 10
>> D 1234567890 ABCDEFGHIJKL
>> D 9876543210 MNOPQWRSTUVWXYZ
>>
>> Example OUTPUT data (column 1 = record type [H = header, D = data], data
>> starts in column 3):
>>
>> H 05  COMMENT: "05" IS SIGNIFICANT DATA COLUMNS
>> D 12345
>> D 45678
>> H 10
>> D 1234567890
>> D 9876543210
>>
>> Obviously I can write a pretty simple script or program to accomplish
>> this "data cleaning" operation, but I wond

Re: Can I do variable field-length blanking with SORT?

2020-01-08 Thread Massimo Biancucci
Peter,

I don't know how long is your record, assuming it's 80 and that the LL
field in H record is between 1 and  99, this could be a solution:

//SYSIN DD *
 INREC IFTHEN=(WHEN=GROUP,BEGIN=(1,1,CH,EQ,C'H'),
  PUSH=(81:3,2))
 SORT FIELDS=COPY
 OUTREC IFTHEN=(WHEN=(1,1,CH,EQ,C'H'),
  BUILD=(1,80)),
 IFTHEN=(WHEN=(81,2,CH,EQ,C'01'),
  OVERLAY=(04:76X)),
 IFTHEN=(WHEN=(81,2,CH,EQ,C'02'),
  OVERLAY=(05:75X)),
 IFTHEN=(WHEN=(81,2,CH,EQ,C'03'),
  OVERLAY=(06:74X)),
 IFTHEN=(WHEN=(81,2,CH,EQ,C'04'),
  OVERLAY=(07:73X)),
 IFTHEN=(WHEN=(81,2,CH,EQ,C'05'),
  OVERLAY=(08:72X)),
 IFTHEN=(WHEN=(81,2,CH,EQ,C'06'),
  OVERLAY=(09:71X)),
 IFTHEN=(WHEN=(81,2,CH,EQ,C'07'),
  OVERLAY=(10:70X)),
 IFTHEN=(WHEN=(81,2,CH,EQ,C'08'),
  OVERLAY=(11:69X)),
 IFTHEN=(WHEN=(81,2,CH,EQ,C'09'),
  OVERLAY=(12:68X)),
 IFTHEN=(WHEN=(81,2,CH,EQ,C'10'),
  OVERLAY=(13:67X))
/*

I stopped writing the IFTHEN at length 10, you can code the other
statements.

It's possible to "pre-analyze" the "H" records and dynamically generate
only the needed IFTHEN statements.

This is the output:

H 05  COMMENT: "05" IS SIGNIFICANT DATA COLUMNS
D 12345
D 45678
H 10
D 1234567890
D 9876543210

Hope this helps.

Best regards.
Max

Il giorno mer 8 gen 2020 alle ore 01:34 Farley, Peter x23353 <
peter.far...@broadridge.com> ha scritto:

> I have a fixed-record-length data file which has "subsections" starting
> with a "data characteristics" record (call it a "subsection header").  One
> of the fields in the "subsection header" is a 2-byte zoned decimal "data
> length" value which identifies the number of SIGNIFICANT columns in the
> "data" portion of the records following the "subsection header".
>
> What I would like to do is to blank out the NON-significant data columns
> in the data records that follow each "subsection header".  The data records
> have suffered from some "data pollution" where non-significant data has
> been accidentally stored beyond the significant data columns.
>
> Each "subsection header" may have a different "significant data" length
> value for the following data records.
>
> Example INPUT data (column 1 = record type [H = header, D = data], data
> starts in column 3 in each record):
>
> H 05  COMMENT: "05" IS SIGNIFICANT DATA COLUMNS
> D 12345 XYZ ABC DEF
> D 45678 GHI JKL MNO
> H 10
> D 1234567890 ABCDEFGHIJKL
> D 9876543210 MNOPQWRSTUVWXYZ
>
> Example OUTPUT data (column 1 = record type [H = header, D = data], data
> starts in column 3):
>
> H 05  COMMENT: "05" IS SIGNIFICANT DATA COLUMNS
> D 12345
> D 45678
> H 10
> D 1234567890
> D 9876543210
>
> Obviously I can write a pretty simple script or program to accomplish this
> "data cleaning" operation, but I wondered if it would be possible using
> just SORT.
>
> The data volume is in the range of about 100K-200K records per file if
> that matters.
>
> TIA for any ideas you can offer.
>
> Peter
> --
>
>
>
> --
> 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


Re: Max Size of ISPF table?

2019-12-17 Thread Massimo Biancucci
Billy,

you can access DB2 table (or VSAM with a small trick) directly from your
REXX ISPF programs.
IMHO the table size you've described is better in a "DB-like" object.

Regards.
Max

Il giorno mar 17 dic 2019 alle ore 15:19 Billy Ashton <
bill00ash...@gmail.com> ha scritto:

> Hello, I am working with an application team, and they are creating an ISPF
> application. One of the options is to use an ISPF table for the data in one
> component, but they will have between 50,000 and 80,000 rows in the table.
>
> What are your experiences with large ISPF tables, and is a table of 80,000
> rows acceptable or practical? Another option is to write the ISPF
> application in COBOL and use VSAM or a database (although having only a
> single table in the database doesn't sound like the best course of action,
> either.) Data is loaded on a monthly basis (maybe 500-700 records) and
> otherwise this is a read-only ISPF application.
>
> Thanks for your thoughts.
>
> Billy.
>
> --
> 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


Re: Tracking called (non-main) programs using SMF records

2019-11-14 Thread Massimo Biancucci
Hi,

as other colleagues already said, no standard SMF way.

At my customers sites, they use TADz (it seems Ptracker gives more
information like the chain between caller and called) and for some of them
a product we developed to correlate CICS-Transactions with LINKed/CALLed
programs (written to SMF records).

About cleanup, if applicable, keep attention to static linked programs who
seem to be called by nobody.

Best regards.
Max

Il giorno mer 13 nov 2019 alle ore 17:07 Steff Gladstone <
steff.gladst...@gmail.com> ha scritto:

> We would like to clean up our load libraries by deleting unused programs.
>
> Is there any way to use SMF data to track real-time usage of programs which
> are not main programs but are called by other programs?
>
> We were under the impression  that only executions of main programs (PGM=)
>  were recorded with SMF.  Scanning program sources for called programs is
> unsatisfactory for us since the call could be dynamic (name of program
> contained in a variable) or conditional on a particular set of
> circumstances that never occurs in practice.
>
> Thanks in advance!
>
> Steff Gladstone
>
> --
> 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


Re: SYNCSORT Question: JFY a numeric field with leading zeroes?

2019-11-12 Thread Massimo Biancucci
Hi,

maybe this two ways can solve the problem:

OPTION COPY
 OUTREC PARSE=(%00=(ENDBEFR=C',',FIXLEN=9),
   %01=(ENDBEFR=C',',FIXLEN=7),
   %02=(ENDBEFR=C',',FIXLEN=8),
   %03=(ENDBEFR=C' ',FIXLEN=10)),
  BUILD=(%00,%01,%02,%03,JFY=(SHIFT=RIGHT,LEAD=C'00'),
 15X),CONVERT

or

OPTION COPY
INREC PARSE=(%00=(ENDBEFR=C',',FIXLEN=9),
 %01=(ENDBEFR=C',',FIXLEN=7),
 %02=(ENDBEFR=C',',FIXLEN=8),
 %03=(ENDBEFR=C' ',FIXLEN=10)),
 BUILD=(1,4,%00,%01,%02,%03)
OUTFIL FNAMES=SORTOUT,VTOF,
 OUTREC=(5,9,14,7,21,8,29,10,SFF,EDIT=('TT'),15X)

In both case the output if FB 49.

Best regards.
Max


Il giorno mar 12 nov 2019 alle ore 01:09 Farley, Peter x23353 <
peter.far...@broadridge.com> ha scritto:

> We currently use SYNCSORT and need to parse an input CSV file with a
> trailing number that we need to right-justify in a fixed-length field with
> leading zeroes instead of leading blanks.
>
> So far I have not been able to find an example that shows how to write out
> that trailing field as a right-justified number with leading zeroes instead
> of leading blanks.
>
> Current SORT control cards look like the below.  Please don't take the
> size of the input fields literally, they can be smaller.  I have just shown
> the example input line with maximum expected input field lengths.
>
> OPTION COPY
> OUTREC PARSE=(%00=(ENDBEFR=C',',FIXLEN=9),
>%01=(ENDBEFR=C',',FIXLEN=7),
>%02=(ENDBEFR=C',',FIXLEN=8),
>%03=(ENDBEFR=C' ',FIXLEN=10)),
>BUILD=(%00,%01,%02,%03,JFY=(SHIFT=RIGHT),
>   15X),CONVERT
>
> Input file is RECFM=VB,LRECL=259, output file is RECFM=FB,LRECL=49
>
> Sample input line:
>
> ABCDEFGH0,ABCDEF1,20190731,1000
>
> Current output line using above control cards:
>
> ABCDEFGH0ABCDEF120190731  1000
>
> Desired output line (15 trailing blanks):
>
> ABCDEFGH0ABCDEF120190731001000
>
> TIA for any advice or RTFM pointer you can provide.
>
> Peter
> --
>
>
>
> This message and any attachments are intended only for the use of the
> addressee and may contain information that is privileged and confidential.
> If the reader of the message is not the intended recipient or an authorized
> representative of the intended recipient, you are hereby notified that any
> dissemination of this communication is strictly prohibited. If you have
> received this communication in error, please notify us immediately by
> e-mail and delete the message and any attachments from your system.
>
> --
> 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


Re: Trying to put three reports together with SORT

2019-09-27 Thread Massimo Biancucci
Billy,

even simpler:

//SORT01   EXEC  PGM=SORT
//SYSOUTDD   SYSOUT=*
//SORTIN DD *
FRUIT ORANGES   FLORIDA   SKU#1
FRUIT ORANGES   ARIZONA   SKU#1
FRUIT ORANGES   ARIZONA   SKU#2
FRUIT GRAPESWISCONSIN SKU#3
FRUIT GRAPESIDAHO SKU#4
FRUIT GRAPESOREGONSKU#4
VEGETABLE CORN  IOWA  SKU#8
VEGETABLE CORN  KANSASSKU#8
VEGETABLE CARROTS   VERMONT   SKU#9
/*
//SORTK1   DD DSN=&,DISP=(,PASS),SPACE=(TRK,(1,1))
//SORTK2   DD DSN=&,DISP=(,PASS),SPACE=(TRK,(1,1))
//SORTK3   DD DSN=&,DISP=(,PASS),SPACE=(TRK,(1,1))
//SORTK4   DD DSN=&,DISP=(,PASS),SPACE=(TRK,(1,1))
//SORTK12  DD SYSOUT=*
//SORTK22  DD SYSOUT=*
//SORTK32  DD SYSOUT=*
//SORTK42  DD SYSOUT=*
//SYSIN DD   *
 INREC FIELDS=(1,80,SEQNUM,5,ZD)
 SORT FIELDS=COPY
 OUTFIL FNAMES=SORTK1,NODETAIL,REMOVECC,
  SECTIONS=(1,10,HEADER3=(1,10,11,10,21,10,31,10,X,81,5,X,C'1'))
 OUTFIL FNAMES=SORTK2,NODETAIL,REMOVECC,
  SECTIONS=(11,10,HEADER3=(10X,11,10,21,10,31,10,X,81,5,X,C'2'))
 OUTFIL FNAMES=SORTK3,NODETAIL,REMOVECC,
  SECTIONS=(21,10,HEADER3=(20X,21,10,31,10,X,81,5,X,C'3'))
 OUTFIL FNAMES=SORTK4,NODETAIL,REMOVECC,
  SECTIONS=(31,10,HEADER3=(30X,31,10,X,81,5,X,C'4'))
 OUTFIL FNAMES=SORTK12,NODETAIL,REMOVECC,
  SECTIONS=(1,10,HEADER3=(1,10,11,10,21,10,31,10,X,81,5,X,C'1'))
 OUTFIL FNAMES=SORTK22,NODETAIL,REMOVECC,
  SECTIONS=(11,10,HEADER3=(10X,11,10,21,10,31,10,X,81,5,X,C'2'))
 OUTFIL FNAMES=SORTK32,NODETAIL,REMOVECC,
  SECTIONS=(21,10,HEADER3=(20X,21,10,31,10,X,81,5,X,C'3'))
 OUTFIL FNAMES=SORTK42,NODETAIL,REMOVECC,
  SECTIONS=(31,10,HEADER3=(30X,31,10,X,81,5,X,C'4'))
/*
//SORT02   EXEC  PGM=SORT
//SYSOUTDD   SYSOUT=*
//SORTIN DD DSN=&,DISP=(OLD,DELETE)
//   DD DSN=&,DISP=(OLD,DELETE)
//   DD DSN=&,DISP=(OLD,DELETE)
//   DD DSN=&,DISP=(OLD,DELETE)
/*
//SORTOUT  DD SYSOUT=*
//SYSIN DD   *
 SORT FIELDS=(42,5,ZD,A),EQUALS
 SUM FIELDS=NONE
/*


Output is:

FRUIT ORANGES   FLORIDA   SKU#1  1 1
ARIZONA   SKU#1  2 3
  SKU#2  3 4
  GRAPESWISCONSIN SKU#3  4 2
IDAHO SKU#4  5 3
OREGONSKU#4  6 3
VEGETABLE CORN  IOWA  SKU#8  7 1
KANSASSKU#8  8 3
  CARROTS   VERMONT   SKU#9  9 2


Same as before, duplicate DD to "see what happens" and RECNUM maybe small
and dummy fields after RECNUM.

Best regards.
Max

Il giorno gio 26 set 2019 alle ore 15:15 Massimo Biancucci <
mad4...@gmail.com> ha scritto:

> Billy,
>
> it was a bit challenging and I'm not 100% sure it's so generalized .
> you've real file, try and let us know.
>
> Here a stream who (in theory) does the needed, I've left different useless
> output but understanding the flow:
>
> //*---
> //SORT01   EXEC  PGM=SORT
> //SYSOUTDD   SYSOUT=*
> //SORTIN DD *
> FRUIT ORANGES   FLORIDA   SKU#1
> FRUIT ORANGES   ARIZONA   SKU#1
> FRUIT ORANGES   ARIZONA   SKU#2
> FRUIT GRAPESWISCONSIN SKU#3
> FRUIT GRAPESIDAHO SKU#4
> FRUIT GRAPESOREGONSKU#4
> VEGETABLE CORN  IOWA  SKU#8
> VEGETABLE CORN  KANSASSKU#8
> VEGETABLE CARROTS   VERMONT   SKU#9
> /*
> //SORTOUT  DD DSN=&,DISP=(,PASS),SPACE=(TRK,(1,1))
> //SORTOU2  DD SYSOUT=*
> //SYSIN DD   *
>  INREC FIELDS=(1,80,SEQNUM,5,ZD)
>  SORT FIELDS=COPY
> *SORT FIELDS=(1,10,A,11,10,A,21,10,A,31,10,A),FORMAT=BI
>  OUTFIL FNAMES=SORTOUT,NODETAIL,REMOVECC,
>   SECTIONS=(1,10,HEADER3=(1,10,11,10,21,10,31,10,X,81,5,X,C'1'),
> 11,10,HEADER3=(10X,11,10,21,10,31,10,X,81,5,X,C'2'),
> 21,10,HEADER3=(20X,21,10,31,10,X,81,5,X,C'3'),
> 31,10,HEADER3=(30X,31,10,X,81,5,X,C'4'))
>  OUTFIL FNAMES=SORTOU2,NODETAIL,REMOVECC,
>   SECTIONS=(1,10,HEADER3=(1,10,11,10,21,10,31,10,X,81,5,X,C'1'),
> 11,10,HEADER3=(10X,11,10,21,10,31,10,X,81,5,X,C'2'),
> 21,10,HEADER3=(20X,21,10,31,10,X,81,5,X,C'3'),
> 31,10,HEADER3=(30X,31,10,X,81,5,X,C'4'))
> /*
> //*---
> //SORT02   EXEC  PGM=SORT
> //SYSOUTDD   SYSOUT=*
> //SORTIN   DD DSN=&,DISP=(OLD,DELETE)
> //SORTK12  DD SYSOUT=*
> //SORTK22  DD SYSOUT=*
> //SORTK32  DD SYSOUT=*
> //SORTK42  DD SYSOUT=*
> //SORTK1   DD DSN=&,DISP=(,PASS),SPACE=(TRK,(1,1))
> //SORTK2   DD DSN=&,DISP=(,PASS),SPACE=(TRK,(1,1))
> //SORTK3   DD DSN=&,DISP=(,PASS),SPACE=(TRK,(1,1))
> //SORTK4   DD DSN=&,DISP=(,PASS),SPACE=(TRK,(1,1))
> //SYSIN DD   *
>  SORT FIELDS=COPY
>  OUTFIL FNAMES=SORTK1,INCLUDE=(1,10,CH,NE,C'  ')
>  OUTFIL FNAMES=SORTK2,INCLUDE=(1,10,CH,EQ,C'  

  1   2   >