¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

Re: Cross Memory Address space data exchange/communication

 

Dear Bob, Mark, Dennis, Jo?o, Silvio and Wally,

I'm simply overwhelmed by the number of responses on my initial post and the pointers in various directions. Lot's of ideas to delve deeper into as well as having a closer look at NJE38's source code as Bob suggested. Bob's post illustrates to me the solution to the hen/egg problem: how to tell some other address space what the address of e.g. an ECB or some other structure in common storage is. If I get it right Bob is using the XM Post ENQ/DEQ pattern to pass small tokens of information from the client to the server while the massive data is passed through spooling on disk.?

It's not only out of curiosity I'm looking for this information. However, for the time being my assembler skills are merely useful for doing some brain jogging (one has to remember the current use of all those registers :-) ) rather than being able to implement something really useful.
Bob's NJE38 lured me into envisioning something really daring (for my skill level) but that's for a different topic.?

I learned that fiddling with SRB is not for the faint-hearted. Tommy Sprinkle hinted in his MVS Systems programming that one could easily take down the entire system but that's probably also due to the need of running in supervisor mode.?

Again, thanks to everybody for the input.?
hugs and kisses
Michael

--
TK4- on virtual x86 Ubuntu LTS 22.04
VM/370 on virtual x86 Ubuntu LTS 22.04

Die Katze l?sst das Mausen nicht,
Die Jungfern bleiben Coffeeschwestern.
Die Mutter liebt den Coffee Brauch,
Die Gro?mama trank solchen auch.
Wer will da auf die T?chter l?stern?
J.S.Bach "Kaffee-Kantate" (BWV 211)


Re: COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

 

Frank,

if you enter /d u on the hercules montor, you will see:-

130 2314 OFFLINE 131 2314 OFFLINE
132 2314 OFFLINE 133 2314 OFFLINE
134 2314 OFFLINE 135 2314 OFFLINE
136 2314 OFFLINE 137 2314 OFFLINE
138 2314 OFFLINE 139 2314 OFFLINE
13A 2314 OFFLINE 13B 2314 OFFLINE
13C 2314 OFFLINE 13D 2314 OFFLINE
13E 2314 OFFLINE 13F 2314 OFFLINE

Chris

--
<cjar1950@...>



----------------------------------------------------------------------------------------------------------------------------------
On Fri, 1 Mar 2024 08:44:27 -0500
"Frank D. Engel, Jr." <fde101@...> wrote:
Do you happen to know what CUUs are defined for 2314 in TK5?

I did add 2314s to my config and was able to create VTOCs on them but they are not mounting.

Even if they are no longer required I would be interested in completing the exercise of getting these added if only for educational/experience purposes.


On 3/1/24 07:32, Ed Liss wrote:
On Wed, Feb 28, 2024 at 07:42 AM, Dagfinn Hammar wrote:

Is this a general problem with TK5 that makes it difficult to use
cobol/sort/merge or have Rob Prince made a different solution with
the new DASD's?in TK5.
It seems you have followed the steps to add these sort DASD
correctly. The adding of these files to the TK5 config is also
needed but you may already have done this. If so I think Rob can
help you with?this better than anyone.

The problem is the UNIT=2314 in the JCL.? The sort/merge utility in
TK5 works with any DASD.? Try UNIT=SYSDA in your jcl since TK5 does
not have 2311 or 2314 volumes defined in the Hercules config files.?
Yes, the IOGEN has the 23xx units defined but the Hercules config does
not define any 23xx units.

When I converted from Tk4 to TK5, all I had to do to get the sort to
work was change UNIT=2314 to UNIT=SYSDA in the JCL.



Re: Cross Memory Address space data exchange/communication

 

Hi Wally and Silvio,

In NJE38's case, the ENQ is not used for serialization at all.? No other ENQs are issues by any NJE38 component.? Rather, the ENQ's purpose is simply to place a QCB entry into the system, so the QCB chain can be searched to identify NJE38's outstanding ENQ and grab the Rname data from it.

As for CVTUSER, I have always resisted using this field as well as TCBUSER or ASCBUSER.? One can never be certain whether some other piece of software is going to also use it.?? If NJE38 did use CVTUSER, then anyone running Silvio's XM POST program (for example) would cripple NJE38.?? With all of the software written for TK3, TK4 and TK5 over the years, I can't be certain of what is out there.? For me personally, using these fields is risky and I don't do it.

I also chose to obtain my CSA data areas in key 0, so that an unauthorized program could not alter it, either deliberately or by accident.?? In z/OS nowadays, you cannot obtain storage in CSA in a user key. This security hole was closed.? MVS 3.8 still allows user key CSA storage but it doesn't mean we have to use it.

Regards,
Bob


Re: COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

 

¿ªÔÆÌåÓý

Do you happen to know what CUUs are defined for 2314 in TK5?

I did add 2314s to my config and was able to create VTOCs on them but they are not mounting.

Even if they are no longer required I would be interested in completing the exercise of getting these added if only for educational/experience purposes.


On 3/1/24 07:32, Ed Liss wrote:

On Wed, Feb 28, 2024 at 07:42 AM, Dagfinn Hammar wrote:
Is this a general problem with TK5 that makes it difficult to use cobol/sort/merge or have Rob Prince made a different solution with the new DASD's?in TK5.
?
It seems you have followed the steps to add these sort DASD correctly. The adding of these files to the TK5 config is also needed but you may already have done this. If so I think Rob can help you with?this better than anyone.
?
The problem is the UNIT=2314 in the JCL.? The sort/merge utility in TK5 works with any DASD.? Try UNIT=SYSDA in your jcl since TK5 does not have 2311 or 2314 volumes defined in the Hercules config files.? Yes, the IOGEN has the 23xx units defined but the Hercules config does not define any 23xx units.

When I converted from Tk4 to TK5, all I had to do to get the sort to work was change UNIT=2314 to UNIT=SYSDA in the JCL.


Re: Cross Memory Address space data exchange/communication

 

¿ªÔÆÌåÓý

The ENQ/DEQ is not to serialize the request but to save the CSA ECB address in the RNAME.
You need it in order to use the cross memory POST/WAIT.
In z/OS V2 you can use a TOKEN instead of ENQ/DEQ to save it until you delete the TOKEN and free the CSA..

?

De: [email protected] <[email protected]> Em nome de Silvio Losa
Enviada em: sexta-feira, 1 de mar?o de 2024 06:44
Para: [email protected]
Assunto: Re: [H390-MVS] Cross Memory Address space data exchange/communication

?

Dear all,

I did multiple implementations of Cross memory communications. To give some concrete idea how to bring the very good theory from the posts in this area here in the group, I include a txt file with 3 code snippets.

The first is a simple SVC that creates a "user CVT" and puts the address in the CVTUSER field as was mentioned earlier by Dennis. You might wonder why the GETMAIN for the area looks somewhat complicated. I allocate the area in common storage, subpool 228 and Key=8. Unfortunately there is no easy way to specify the Storage-Key in a "normal" GETMAIN macro. so I had to use the branch entry and since I ask for common storage it's necessary to get the global lock first. The reason for Key=8 is that it allows the users to modify the area or wait on an ECB without the need to use a MODESET KEY=ZERO which needs at least APF authorization.?

Code snippet 2 is from a "server" program that initializes a communication area with ECB's and put the address in the
user CVT.

Finally the last excerpt is from a "client" that builds a "request" and hand it over by a cross memory post.?
In my case the implementation is architecturally limited to 1:1 communication, so there was no need to?
surround it with ENQ/DEQ to serialize the "client" cross memory post.

Silvio

PS: I am not native in english language, so it might sound rather rusty sometimes. Sorry for that.?


--
att.
Jo?o


Re: COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

 

On Wed, Feb 28, 2024 at 07:42 AM, Dagfinn Hammar wrote:
Is this a general problem with TK5 that makes it difficult to use cobol/sort/merge or have Rob Prince made a different solution with the new DASD's?in TK5.
?
It seems you have followed the steps to add these sort DASD correctly. The adding of these files to the TK5 config is also needed but you may already have done this. If so I think Rob can help you with?this better than anyone.
?
The problem is the UNIT=2314 in the JCL.? The sort/merge utility in TK5 works with any DASD.? Try UNIT=SYSDA in your jcl since TK5 does not have 2311 or 2314 volumes defined in the Hercules config files.? Yes, the IOGEN has the 23xx units defined but the Hercules config does not define any 23xx units.

When I converted from Tk4 to TK5, all I had to do to get the sort to work was change UNIT=2314 to UNIT=SYSDA in the JCL.


Re: Cross Memory Address space data exchange/communication

 

Dear all,

I did multiple implementations of Cross memory communications. To give some concrete idea how to bring the very good theory from the posts in this area here in the group, I include a txt file with 3 code snippets.

The first is a simple SVC that creates a "user CVT" and puts the address in the CVTUSER field as was mentioned earlier by Dennis. You might wonder why the GETMAIN for the area looks somewhat complicated. I allocate the area in common storage, subpool 228 and Key=8. Unfortunately there is no easy way to specify the Storage-Key in a "normal" GETMAIN macro. so I had to use the branch entry and since I ask for common storage it's necessary to get the global lock first. The reason for Key=8 is that it allows the users to modify the area or wait on an ECB without the need to use a MODESET KEY=ZERO which needs at least APF authorization.?

Code snippet 2 is from a "server" program that initializes a communication area with ECB's and put the address in the
user CVT.

Finally the last excerpt is from a "client" that builds a "request" and hand it over by a cross memory post.?
In my case the implementation is architecturally limited to 1:1 communication, so there was no need to?
surround it with ENQ/DEQ to serialize the "client" cross memory post.

Silvio

PS: I am not native in english language, so it might sound rather rusty sometimes. Sorry for that.?


Re: Cross Memory Address space data exchange/communication

 

¿ªÔÆÌåÓý

Instead of using ENQ a better way to is to use 2 different ECBs.

?

The caller POSTs the first one and then WAITs on the second. The request processor just does the opposite.

?

Wally

?

?

From: [email protected] <[email protected]> On Behalf Of Dennis Stone
Sent: Thursday, February 29, 2024 04:38 PM
To: [email protected]
Subject: Re: [H390-MVS] Cross Memory Address space data exchange/communication

?

Hi all,

I just wanted to add a little to this conversation. Another way to pass the address of the CSA area is to utilize the CVTUSER field in the CVT. We did this at a former job. We would allocate what we called a vector table in CSA and put that address in the CVTUSER field. That table would then contain addresses of any number of CSA areas for any number of uses. We created a macro that mapped the vector table and it is a simple matter to get this address from the CVT.

Just offering another option.

Thanks,
Dennis

On 2/29/24 14:47, Bob Polmanter wrote:

Hi Michael,

To follow on with what Mark posted, there are other ways to perform cross-memory (XM) communication that do not need SRBs.? Everything Mark posted is correct.? But there are easier ways.? SRBs are a whole other animal and have a litany of rules and regulations in order to use them or issue macros from them.? For example, you can't just issue a POST macro from an SRB? (because POST issues an SVC instruction, which are taboo in SRBs) so you have to use a special interface called 'branch entry to POST'.? And depending on what kind of POST you need issued, you may have to issue a SETLOCK macro in the SRB as well, and so on and so forth.? It often just gets more complex.

Fortunately, in MVS 3.8 a cross-memory POST (XM POST) is provided and can be issued from user programming without needing SRBs.

Whether you use XM POST directly or use an SRB to do it for you, one of the big problems of getting XM communication established is how do you let the other address space know where (address) your ECB is located.? Common storage (CSA) is your friend.

So using CSA, you can set up a small storage area that would be addressable to all address spaces, and this area can contain your ECB, and some space for control information or whatever message you wish to pass along to the other address space when you post the ECB.? This 'other address space' has issued a WAIT against that ECB, waiting for someone to POST it and pass the message along.

The remaining problem is how to tell the other address spaces that will be POSTing this ECB exactly where this storage area is located.? One way to do this is using an ENQ macro.? So the creator of the CSA storage area (usually the address space that will be WAITing on the ECB), creates the area and initializes it, and then issues an ENQ macro with the Rname field containing the CSA storage address of the area.? The Qname field is some unique name that other address spaces can search for.? Once the ENQ is issued, the system puts the Qname and Rname values in a queue of all of the ENQs currently issued.? It is a simple search to locate this queue and look for the Qname that the creator used and once you find that then the Rname is right there.? You now have the address of the storage area and you could issue XM POST to wake up the creator.?

I realize this is somewhat simplified and glossed over rather quickly.? But, you have the actual code available that you can look at where these things are done:? NJE38.? In the source code, the NJE38 started-task is the creator, and it builds a CSA area and issues the ENQ.? Then other address spaces like a TSO user who is doing a TRANSMIT command will eventually search the ENQ queue to find NJE38's QNAME/RNAME and get the CSA address, so it can issue XM POST to let NJE38 know that a new file as been placed in the NJE38 spool and is ready for transmission.? NJE38 wakes up from the post and sees the request and begins its work to transmit the file to another node, if it can.

In addition to just issuing XM POST to wake up NJE38, these other address spaces that wish to wake up NJE38 also put some control information in CSA as well, which I call a 'work request' so that when NJE38 wakes up it sees the work request and then knows why it was woken up and can begin to process it.? So TSO TRANSMIT for example:
1. writes the file to be transmitted to the NJE38 spool.
2. Looks up "NJE38" QNAME in the ENQ queues.
3. Creates a work request in CSA and marks it up with "new spool file available" in essence.
4. Issues XM POST against the ECB in the CSA that was identified by the NJE38 QNAME.

When NJE38 is done processing the work request, it FREEMAINs the work request in CSA (that TRANSMIT created) and goes back to sleep with another WAIT on that same ECB in CSA.

In this way many address spaces can communicate with a single 'mother task' such as NJE38.? It makes NJE38 a type of server, and TSO users are a type of client.? A batch job can also be a client (or a server too; it is all in how you set it up and for what purpose).

The macros discussed here and in Mark's prior post, such as SRB, SETLOCK, POST (including XM POST) are documented in GC28-0628-3 OS/VS2 System Programming Library: Supervisor.? Note, XM post is not a unique macro; it is the same old POST macro used for everything else.? It just has additional parameters that have to be specified to make it a XM POST.? If you look in NJE38 source for these POSTs, I call them CM POST usually, not XM POST, in the comments.? The code to create the CSA area and issue the ENQ is close to the beginning of module NJEINIT.? The code to search the ENQ queues is in NJESYS.? The code for TRANSMIT (NJETRN) as previously mentioned also calls NJESYS to search the queues and then issue XM POST.

In modern times, such as with z/OS, XM communication is much easier because of new facilities available to facilitate it, but I'm not going to get into it here.? The methods are the same, e.g., XM POSTing ECBs, and using CSA, as well as new stuff like primary/secondary address spaces, access registers, name/token pairs, and lots more.? But we have to use what MVS 3.8 offers us and work around the limitations.

Regards,
Bob

?


Virus-free.


Re: Cross Memory Address space data exchange/communication

 

¿ªÔÆÌåÓý

Hi all,

I just wanted to add a little to this conversation. Another way to pass the address of the CSA area is to utilize the CVTUSER field in the CVT. We did this at a former job. We would allocate what we called a vector table in CSA and put that address in the CVTUSER field. That table would then contain addresses of any number of CSA areas for any number of uses. We created a macro that mapped the vector table and it is a simple matter to get this address from the CVT.

Just offering another option.

Thanks,
Dennis

On 2/29/24 14:47, Bob Polmanter wrote:

Hi Michael,

To follow on with what Mark posted, there are other ways to perform cross-memory (XM) communication that do not need SRBs.? Everything Mark posted is correct.? But there are easier ways.? SRBs are a whole other animal and have a litany of rules and regulations in order to use them or issue macros from them.? For example, you can't just issue a POST macro from an SRB? (because POST issues an SVC instruction, which are taboo in SRBs) so you have to use a special interface called 'branch entry to POST'.? And depending on what kind of POST you need issued, you may have to issue a SETLOCK macro in the SRB as well, and so on and so forth.? It often just gets more complex.

Fortunately, in MVS 3.8 a cross-memory POST (XM POST) is provided and can be issued from user programming without needing SRBs.

Whether you use XM POST directly or use an SRB to do it for you, one of the big problems of getting XM communication established is how do you let the other address space know where (address) your ECB is located.? Common storage (CSA) is your friend.

So using CSA, you can set up a small storage area that would be addressable to all address spaces, and this area can contain your ECB, and some space for control information or whatever message you wish to pass along to the other address space when you post the ECB.? This 'other address space' has issued a WAIT against that ECB, waiting for someone to POST it and pass the message along.

The remaining problem is how to tell the other address spaces that will be POSTing this ECB exactly where this storage area is located.? One way to do this is using an ENQ macro.? So the creator of the CSA storage area (usually the address space that will be WAITing on the ECB), creates the area and initializes it, and then issues an ENQ macro with the Rname field containing the CSA storage address of the area.? The Qname field is some unique name that other address spaces can search for.? Once the ENQ is issued, the system puts the Qname and Rname values in a queue of all of the ENQs currently issued.? It is a simple search to locate this queue and look for the Qname that the creator used and once you find that then the Rname is right there.? You now have the address of the storage area and you could issue XM POST to wake up the creator.?

I realize this is somewhat simplified and glossed over rather quickly.? But, you have the actual code available that you can look at where these things are done:? NJE38.? In the source code, the NJE38 started-task is the creator, and it builds a CSA area and issues the ENQ.? Then other address spaces like a TSO user who is doing a TRANSMIT command will eventually search the ENQ queue to find NJE38's QNAME/RNAME and get the CSA address, so it can issue XM POST to let NJE38 know that a new file as been placed in the NJE38 spool and is ready for transmission.? NJE38 wakes up from the post and sees the request and begins its work to transmit the file to another node, if it can.

In addition to just issuing XM POST to wake up NJE38, these other address spaces that wish to wake up NJE38 also put some control information in CSA as well, which I call a 'work request' so that when NJE38 wakes up it sees the work request and then knows why it was woken up and can begin to process it.? So TSO TRANSMIT for example:
1. writes the file to be transmitted to the NJE38 spool.
2. Looks up "NJE38" QNAME in the ENQ queues.
3. Creates a work request in CSA and marks it up with "new spool file available" in essence.
4. Issues XM POST against the ECB in the CSA that was identified by the NJE38 QNAME.

When NJE38 is done processing the work request, it FREEMAINs the work request in CSA (that TRANSMIT created) and goes back to sleep with another WAIT on that same ECB in CSA.

In this way many address spaces can communicate with a single 'mother task' such as NJE38.? It makes NJE38 a type of server, and TSO users are a type of client.? A batch job can also be a client (or a server too; it is all in how you set it up and for what purpose).

The macros discussed here and in Mark's prior post, such as SRB, SETLOCK, POST (including XM POST) are documented in GC28-0628-3 OS/VS2 System Programming Library: Supervisor.? Note, XM post is not a unique macro; it is the same old POST macro used for everything else.? It just has additional parameters that have to be specified to make it a XM POST.? If you look in NJE38 source for these POSTs, I call them CM POST usually, not XM POST, in the comments.? The code to create the CSA area and issue the ENQ is close to the beginning of module NJEINIT.? The code to search the ENQ queues is in NJESYS.? The code for TRANSMIT (NJETRN) as previously mentioned also calls NJESYS to search the queues and then issue XM POST.

In modern times, such as with z/OS, XM communication is much easier because of new facilities available to facilitate it, but I'm not going to get into it here.? The methods are the same, e.g., XM POSTing ECBs, and using CSA, as well as new stuff like primary/secondary address spaces, access registers, name/token pairs, and lots more.? But we have to use what MVS 3.8 offers us and work around the limitations.

Regards,
Bob


Re: Cross Memory Address space data exchange/communication

 

Hi Michael,

To follow on with what Mark posted, there are other ways to perform cross-memory (XM) communication that do not need SRBs.? Everything Mark posted is correct.? But there are easier ways.? SRBs are a whole other animal and have a litany of rules and regulations in order to use them or issue macros from them.? For example, you can't just issue a POST macro from an SRB? (because POST issues an SVC instruction, which are taboo in SRBs) so you have to use a special interface called 'branch entry to POST'.? And depending on what kind of POST you need issued, you may have to issue a SETLOCK macro in the SRB as well, and so on and so forth.? It often just gets more complex.

Fortunately, in MVS 3.8 a cross-memory POST (XM POST) is provided and can be issued from user programming without needing SRBs.

Whether you use XM POST directly or use an SRB to do it for you, one of the big problems of getting XM communication established is how do you let the other address space know where (address) your ECB is located.? Common storage (CSA) is your friend.

So using CSA, you can set up a small storage area that would be addressable to all address spaces, and this area can contain your ECB, and some space for control information or whatever message you wish to pass along to the other address space when you post the ECB.? This 'other address space' has issued a WAIT against that ECB, waiting for someone to POST it and pass the message along.

The remaining problem is how to tell the other address spaces that will be POSTing this ECB exactly where this storage area is located.? One way to do this is using an ENQ macro.? So the creator of the CSA storage area (usually the address space that will be WAITing on the ECB), creates the area and initializes it, and then issues an ENQ macro with the Rname field containing the CSA storage address of the area.? The Qname field is some unique name that other address spaces can search for.? Once the ENQ is issued, the system puts the Qname and Rname values in a queue of all of the ENQs currently issued.? It is a simple search to locate this queue and look for the Qname that the creator used and once you find that then the Rname is right there.? You now have the address of the storage area and you could issue XM POST to wake up the creator.?

I realize this is somewhat simplified and glossed over rather quickly.? But, you have the actual code available that you can look at where these things are done:? NJE38.? In the source code, the NJE38 started-task is the creator, and it builds a CSA area and issues the ENQ.? Then other address spaces like a TSO user who is doing a TRANSMIT command will eventually search the ENQ queue to find NJE38's QNAME/RNAME and get the CSA address, so it can issue XM POST to let NJE38 know that a new file as been placed in the NJE38 spool and is ready for transmission.? NJE38 wakes up from the post and sees the request and begins its work to transmit the file to another node, if it can.

In addition to just issuing XM POST to wake up NJE38, these other address spaces that wish to wake up NJE38 also put some control information in CSA as well, which I call a 'work request' so that when NJE38 wakes up it sees the work request and then knows why it was woken up and can begin to process it.? So TSO TRANSMIT for example:
1. writes the file to be transmitted to the NJE38 spool.
2. Looks up "NJE38" QNAME in the ENQ queues.
3. Creates a work request in CSA and marks it up with "new spool file available" in essence.
4. Issues XM POST against the ECB in the CSA that was identified by the NJE38 QNAME.

When NJE38 is done processing the work request, it FREEMAINs the work request in CSA (that TRANSMIT created) and goes back to sleep with another WAIT on that same ECB in CSA.

In this way many address spaces can communicate with a single 'mother task' such as NJE38.? It makes NJE38 a type of server, and TSO users are a type of client.? A batch job can also be a client (or a server too; it is all in how you set it up and for what purpose).

The macros discussed here and in Mark's prior post, such as SRB, SETLOCK, POST (including XM POST) are documented in GC28-0628-3 OS/VS2 System Programming Library: Supervisor.? Note, XM post is not a unique macro; it is the same old POST macro used for everything else.? It just has additional parameters that have to be specified to make it a XM POST.? If you look in NJE38 source for these POSTs, I call them CM POST usually, not XM POST, in the comments.? The code to create the CSA area and issue the ENQ is close to the beginning of module NJEINIT.? The code to search the ENQ queues is in NJESYS.? The code for TRANSMIT (NJETRN) as previously mentioned also calls NJESYS to search the queues and then issue XM POST.

In modern times, such as with z/OS, XM communication is much easier because of new facilities available to facilitate it, but I'm not going to get into it here.? The methods are the same, e.g., XM POSTing ECBs, and using CSA, as well as new stuff like primary/secondary address spaces, access registers, name/token pairs, and lots more.? But we have to use what MVS 3.8 offers us and work around the limitations.

Regards,
Bob


Re: COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

 

Hi
I read Jay Moseley's FAQ about the cobol sort utility so that is why I was pre-allocating the files. When reading the cobol -74 manual I was able to sort out that it was not needed. The program from the manual works fine. So does the program I initially received the "insufficient work units" message from.

"Cobol -74 is portable."

Thanks again for all your help.


"Why do I receive the message:?IER040A INSUFFICIENT WORK UNITS?when I attempt to use the MVT Sort/Merge program under MVS 3.8?

The MVT Sort/Merge utility requires at least three (and may use up to a maximum of 32) intermediate storage datasets.? Unlike current Sort/Merge utilities (such as DFSORT or Syncsort), the MVT Sort/Merge is unable to dynamically allocate datasets for use as intermediate storage.? You must supply DD statements for the DD Names SORTWK01, SORTWK02, SORTWK03 ... SORTWK32.? Also the SORTWK?? datasets must reside on 2311/2314 DASD.? Although some efforts have been reported of using tape datasets with the MVT Sort/Merge under Hercules, it is probably a better idea to utilize DASD for the SORTWK?? datasets.? If the MVT Sort/Merge is called indirectly (as by a COBOL program that includes the SORT verb), you must also supply SORTWK?? DD cards to the EXEC step.

[July 2020] If you are using an MVS system built following my?, there are six 2314 DASD volumes defined as SORTW1 through SORTW6 and are assigned with the esoteric device name SORTDA."


------------------------------------------------

Dagfinn D. Hammar


On Wed, 28 Feb 2024 at 17:21, Jeff Bassett <bassettj@...> wrote:

Dagfinn,

What is the purpose of the GO.SORTDD statement??

You are allocating a new data set ¨C but did NOT specify a volume serial

Also, you should NOT need a COB.SYSLIB ¨C this would be input to the COBOL step

?

?

Your GO.INDD and GO.OUT DD appear to be the input file and the output file

?

I see that you have made progress and I am replying to a previous post ¨C

I simply wanted to follow up with your question.?

?

-J-

?

Jeff Bassett

Bassettj@...

(301) 424-3362 (office)

(240) 388-7148 Cell

?

Time spent flying? - is NOT deducted from one¡¯s lifespan

?

From: [email protected] <[email protected]> On Behalf Of Dagfinn Hammar via
Sent: Wednesday, February 28, 2024 2:44 AM
To: [email protected]
Subject: Re: [H390-MVS] COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

?

If i run this without the GO,SORTDD?statement?i get the following error:

+IER036I - B = ? 90 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER037I - G = ?2488 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER038I - NMAX = ? 88920 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER046A - SORT CAPACITY EXCEEDED ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER066A - APROX RCD CNT 0089011 ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IKF888I UNSUCCESSFUL SORT FOR SORTDA ? ? ? ? ? ? ? ? ? ? ?
+IEW1991 ERROR - USER PROGRAM HAS ABNORMALLY TERMINATED ? ?
IEF450I HERC0101 GO STEP06 - ABEND S0C4 U0000 - TIME=08.39.4
HERC0101 ? STEP06 ? ?GO ? ? ? ?LOADER ? ?AB S0C4 ? ? ? ? ? ?
IEF404I HERC0101 -?

?

On Wed, 28 Feb 2024 at 08:35, Dagfinn Hammar via <dagfinndh33=[email protected]> wrote:

Again - thank you for helping to solve this task. I have made some progress but receive a message about offline units needed. My jcl for cobol/sort and messages from sysout-console:

/* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//COB.SYSLIB ?DD DSNAME=SYS1.COBLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTLIB ?DD DSNAME=SYS1.SORTLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSUDUMP DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTDD ? DD DSNAME=HERC01.TEST.SORT.FILE, ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DISP=(NEW,PASS,DELETE), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=800), ? ? ? ?
// ? ? ? ? ? ? UNIT=SORT,SPACE=(TRK,(200,1)) ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01 ? ? ?
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02 ? ? ?
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ?
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ?
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ?
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06 ? ? ?
//GO.SYSOUT ? DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSPRINT DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.INDD ? ? DD DSN=HERC01.TEST.FILE00XX,DISP=SHR ? ? ? ? ? ? ? ? ?
//GO.OUT1 ? ? DD DSN=HERC01.TEST.FILE00YY,DISP=SHR ? ? ? ? ? ? ? ? ?


IEF244I HERC0101 GO STEP06 - UNABLE TO ALLOCATE 1 UNIT(S) ?
? ? ? ? AT LEAST 1 OFFLINE UNIT(S) NEEDED. ? ? ? ? ? ? ? ? ?
IEF489I HERC0101 - 1 UNIT(S) NEEDED FOR SORTDD ? ? ? ? ? ? ?
IEF247I HERC0101 - 130,137,138,139,13A,13B,13C,13D,13E,13F,2
IEF247I HERC0101 - 232,233,234,235,236,237,238,239,23A,23B,2
IEF247I HERC0101 - 23E,23F,330,331,332,333,334,335,336,337,3
IEF247I HERC0101 - 33A,33B,33C,33D,33E,33F OFFLINE ? ? ? ? ?
01 IEF238D HERC0101 - REPLY DEVICE NAME OR 'CANCEL'. ? ? ? ?
R 01,CANCEL? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

?

So if you see any obvious corrections feel fre to comment.

?

----------------------------------------

Dagfinn D. Hammar?

?

On Wed, 28 Feb 2024 at 02:04, Joe Monk <joemonk64@...> wrote:

//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01? ???
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02? ? ? ? ? ? ???
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ? ? ? ? ??
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ? ? ? ? ??
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ? ? ? ? ??
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06?

//GO.SORTLIB ? ? DD ? DSN=SYS1.SORTLIB,DISP=SHR

?

When dealing with a PROC (LIKE COBUCG), to supply missing DDNAMES you have to put in the stepname...

?

Also, MVT COBOL sort routine cannot use extents on a volume, so code a really big value for the primary, cause thats all you'll get.

?

I THINK that sortlib is right, but you can check it.

?

Joe

?


Re: COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

 

¿ªÔÆÌåÓý

Dagfinn,

What is the purpose of the GO.SORTDD statement??

You are allocating a new data set ¨C but did NOT specify a volume serial

Also, you should NOT need a COB.SYSLIB ¨C this would be input to the COBOL step

?

?

Your GO.INDD and GO.OUT DD appear to be the input file and the output file

?

I see that you have made progress and I am replying to a previous post ¨C

I simply wanted to follow up with your question.?

?

-J-

?

Jeff Bassett

Bassettj@...

(301) 424-3362 (office)

(240) 388-7148 Cell

?

Time spent flying? - is NOT deducted from one¡¯s lifespan

?

From: [email protected] <[email protected]> On Behalf Of Dagfinn Hammar via groups.io
Sent: Wednesday, February 28, 2024 2:44 AM
To: [email protected]
Subject: Re: [H390-MVS] COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

?

If i run this without the GO,SORTDD?statement?i get the following error:

+IER036I - B = ? 90 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER037I - G = ?2488 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER038I - NMAX = ? 88920 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER046A - SORT CAPACITY EXCEEDED ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER066A - APROX RCD CNT 0089011 ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IKF888I UNSUCCESSFUL SORT FOR SORTDA ? ? ? ? ? ? ? ? ? ? ?
+IEW1991 ERROR - USER PROGRAM HAS ABNORMALLY TERMINATED ? ?
IEF450I HERC0101 GO STEP06 - ABEND S0C4 U0000 - TIME=08.39.4
HERC0101 ? STEP06 ? ?GO ? ? ? ?LOADER ? ?AB S0C4 ? ? ? ? ? ?
IEF404I HERC0101 -?

?

On Wed, 28 Feb 2024 at 08:35, Dagfinn Hammar via <dagfinndh33=[email protected]> wrote:

Again - thank you for helping to solve this task. I have made some progress but receive a message about offline units needed. My jcl for cobol/sort and messages from sysout-console:

/* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//COB.SYSLIB ?DD DSNAME=SYS1.COBLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTLIB ?DD DSNAME=SYS1.SORTLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSUDUMP DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTDD ? DD DSNAME=HERC01.TEST.SORT.FILE, ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DISP=(NEW,PASS,DELETE), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=800), ? ? ? ?
// ? ? ? ? ? ? UNIT=SORT,SPACE=(TRK,(200,1)) ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01 ? ? ?
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02 ? ? ?
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ?
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ?
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ?
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06 ? ? ?
//GO.SYSOUT ? DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSPRINT DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.INDD ? ? DD DSN=HERC01.TEST.FILE00XX,DISP=SHR ? ? ? ? ? ? ? ? ?
//GO.OUT1 ? ? DD DSN=HERC01.TEST.FILE00YY,DISP=SHR ? ? ? ? ? ? ? ? ?


IEF244I HERC0101 GO STEP06 - UNABLE TO ALLOCATE 1 UNIT(S) ?
? ? ? ? AT LEAST 1 OFFLINE UNIT(S) NEEDED. ? ? ? ? ? ? ? ? ?
IEF489I HERC0101 - 1 UNIT(S) NEEDED FOR SORTDD ? ? ? ? ? ? ?
IEF247I HERC0101 - 130,137,138,139,13A,13B,13C,13D,13E,13F,2
IEF247I HERC0101 - 232,233,234,235,236,237,238,239,23A,23B,2
IEF247I HERC0101 - 23E,23F,330,331,332,333,334,335,336,337,3
IEF247I HERC0101 - 33A,33B,33C,33D,33E,33F OFFLINE ? ? ? ? ?
01 IEF238D HERC0101 - REPLY DEVICE NAME OR 'CANCEL'. ? ? ? ?
R 01,CANCEL? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

?

So if you see any obvious corrections feel fre to comment.

?

----------------------------------------

Dagfinn D. Hammar?

?

On Wed, 28 Feb 2024 at 02:04, Joe Monk <joemonk64@...> wrote:

//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01? ???
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02? ? ? ? ? ? ???
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ? ? ? ? ??
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ? ? ? ? ??
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ? ? ? ? ??
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06?

//GO.SORTLIB ? ? DD ? DSN=SYS1.SORTLIB,DISP=SHR

?

When dealing with a PROC (LIKE COBUCG), to supply missing DDNAMES you have to put in the stepname...

?

Also, MVT COBOL sort routine cannot use extents on a volume, so code a really big value for the primary, cause thats all you'll get.

?

I THINK that sortlib is right, but you can check it.

?

Joe

?


Re: COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

 

¿ªÔÆÌåÓý

Frank

You can look at SYS1.SYSGEN.SOURCE(IOGEN)

On MY TK5 here is what I see

//*? DASD devices????????????????????????????????????????????????????????

//*??????????????????????????????????????????????????????????? ???????????

//*? ! Devt ! Cua - Cua ! Cua - Cua ! Cua - Cua ! Cua - Cua ! Cua - Cua !

//*? !------+-----------+-----------+-----------+-----------!-----------!

//*? ! 2314 !?????????? ! 130 - 13F ! 230 - 23F ! 330 - 33F !?????????? !

//*? ! 3350 !????? ?????! 140 - 14F ! 240 - 24F ! 340 - 34F !?????????? !

//*? ! 3330 !?????????? ! 150 - 15F ! 250 - 25F ! 350 - 35F !?????????? !

//*? ! 3340 !?????????? ! 160 - 16F ! 260 - 26F ! 360 - 36F !?????????? !

//*? ! 3375 !?????????? ! 170 - 17F ! 270 - 27F ! 370 - 37F !?????????? !

//*? ! 3380 !?????????? ! 180 - 18F ! 280 - 28F ! 380 - 38F !?????????? !

//*? ! 3390 !?????????? ! 190 - 19F ! 290 - 29F ! 390 - 39F !?????????? !

//*? !????? !?????????? !?????????? !?????????? !?????????? !?????????? !

//*? !????? !?????????? !? Shared?? !? Shared?? !?????????? !?????????? !

//*? !????? !?????????? !? DASD???? !? DASD???? !?????????? !?????????? !

//*? !????? !?????????? !?????????? !?????????? !?????????? !?????????? !

//*????????????????????????????????? ?????????????????????????????????????

//*??????????????????????????????????????????????????????????????????????

?

-J-

?

Jeff Bassett

Bassettj@...

(301) 424-3362 (office)

(240) 388-7148 Cell

?

Time spent flying? - is NOT deducted from one¡¯s lifespan

?

From: [email protected] <[email protected]> On Behalf Of Frank D. Engel, Jr. via groups.io
Sent: Wednesday, February 28, 2024 7:20 AM
To: [email protected]
Subject: Re: [H390-MVS] COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

?

I decided to go through the exercise of trying to add these volumes to my TK5 installation.

?

I was able to successfully add the VTOC to the six volumes using ICKDSF, and was able to vary the volumes online, but they are refusing to mount.

?

I updated VATLST00 within SYS1.PARMLIB to define the new volumes:

SORT* ,0,2,2314??? ,N????????????????? Sortwork space

?

After stopping and restarting MVS, I do not see these in VATLST01 (not sure if I need to manually add them there as well or where that gets updated?), and the volumes are not mounted.

?

After varying them online, the mount attempt:

?

m 331,vol=(sl,sort01),use=private

?

results in:

12.59.55 STC? 303? IEF403I MOUNT - STARTED - TIME=12.59.55?? ?
12.59.55 STC? 303? IEF503I INCORRECT VOLUME LABEL OR I/O ERROR
12.59.55 STC? 303? IEF234E D 331???????????????????????????? ?
12.59.55 STC? 303 *IEF233A M 331,SORT01,,MOUNT,331?????????? ?
13.03.24?????????? IGF991E? MOUNT PENDING FOR DEVICE 331?????

?

?

Here is an example of how I wrote the VTOC:

//INITS01 EXEC PGM=ICKDSF,REGION=4096K???????????????????????? ?
//SYSPRINT DD SYSOUT=*???????????????????????????????????????? ?
//SYSIN??? DD *??????????????????????????????????????????????? ?
? INIT UNITADDRESS(331) NOVERIFY VOLID(SORT01) OWNER(HERCULES) -
?????????????? VTOC(0,1,19)??????????????????????????????????? ?
/*?????????????????????????????????????????????????????????????

?

?

When I perform a "d u" command I am only seeing devices listed through 153, which makes me wonder if the 331-336 definitions were not included with the TK5 sysgen?

?

If that is the case, how would I go about adding them?? I can find instructions online for doing an MVS 3.8j sysgen from scratch, but not for how to update it afterward.

?

Or am I missing something else?

?

?

On 2/28/24 04:42, Frank D. Engel, Jr. wrote:

Did you create the 2314 DASD volumes you are asking it to use?

SORT01, SORT02, etc. do not exist in the TK5 distribution as shipped.

?

On 2/28/24 02:43, Dagfinn Hammar wrote:

If i run this without the GO,SORTDD?statement?i get the following error:

+IER036I - B = ? 90 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER037I - G = ?2488 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER038I - NMAX = ? 88920 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER046A - SORT CAPACITY EXCEEDED ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER066A - APROX RCD CNT 0089011 ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IKF888I UNSUCCESSFUL SORT FOR SORTDA ? ? ? ? ? ? ? ? ? ? ?
+IEW1991 ERROR - USER PROGRAM HAS ABNORMALLY TERMINATED ? ?
IEF450I HERC0101 GO STEP06 - ABEND S0C4 U0000 - TIME=08.39.4
HERC0101 ? STEP06 ? ?GO ? ? ? ?LOADER ? ?AB S0C4 ? ? ? ? ? ?
IEF404I HERC0101 -?

?

On Wed, 28 Feb 2024 at 08:35, Dagfinn Hammar via <dagfinndh33=[email protected]> wrote:

Again - thank you for helping to solve this task. I have made some progress but receive a message about offline units needed. My jcl for cobol/sort and messages from sysout-console:

/* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//COB.SYSLIB ?DD DSNAME=SYS1.COBLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTLIB ?DD DSNAME=SYS1.SORTLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSUDUMP DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTDD ? DD DSNAME=HERC01.TEST.SORT.FILE, ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DISP=(NEW,PASS,DELETE), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=800), ? ? ? ?
// ? ? ? ? ? ? UNIT=SORT,SPACE=(TRK,(200,1)) ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01 ? ? ?
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02 ? ? ?
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ?
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ?
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ?
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06 ? ? ?
//GO.SYSOUT ? DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSPRINT DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.INDD ? ? DD DSN=HERC01.TEST.FILE00XX,DISP=SHR ? ? ? ? ? ? ? ? ?
//GO.OUT1 ? ? DD DSN=HERC01.TEST.FILE00YY,DISP=SHR ? ? ? ? ? ? ? ? ?


IEF244I HERC0101 GO STEP06 - UNABLE TO ALLOCATE 1 UNIT(S) ?
? ? ? ? AT LEAST 1 OFFLINE UNIT(S) NEEDED. ? ? ? ? ? ? ? ? ?
IEF489I HERC0101 - 1 UNIT(S) NEEDED FOR SORTDD ? ? ? ? ? ? ?
IEF247I HERC0101 - 130,137,138,139,13A,13B,13C,13D,13E,13F,2
IEF247I HERC0101 - 232,233,234,235,236,237,238,239,23A,23B,2
IEF247I HERC0101 - 23E,23F,330,331,332,333,334,335,336,337,3
IEF247I HERC0101 - 33A,33B,33C,33D,33E,33F OFFLINE ? ? ? ? ?
01 IEF238D HERC0101 - REPLY DEVICE NAME OR 'CANCEL'. ? ? ? ?
R 01,CANCEL? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

?

So if you see any obvious corrections feel fre to comment.

?

----------------------------------------

Dagfinn D. Hammar?

?

On Wed, 28 Feb 2024 at 02:04, Joe Monk <joemonk64@...> wrote:

//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01? ???
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02? ? ? ? ? ? ???
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ? ? ? ? ??
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ? ? ? ? ??
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ? ? ? ? ??
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06?

//GO.SORTLIB ? ? DD ? DSN=SYS1.SORTLIB,DISP=SHR

?

When dealing with a PROC (LIKE COBUCG), to supply missing DDNAMES you have to put in the stepname...

?

Also, MVT COBOL sort routine cannot use extents on a volume, so code a really big value for the primary, cause thats all you'll get.

?

I THINK that sortlib is right, but you can check it.

?

Joe

?


Re: COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

 

¿ªÔÆÌåÓý

The issue is the OLDER Sort Merge ¨C did not support the newer DASD and Dynamic allocation

?

When the TK5 was built ¨C the newer product was installed and will now no longer require 2311 and 2314

And support Dynamic allocation ¨C

?

?

-J-

?

Jeff Bassett

Bassettj@...

(301) 424-3362 (office)

(240) 388-7148 Cell

?

Time spent flying? - is NOT deducted from one¡¯s lifespan

?

From: [email protected] <[email protected]> On Behalf Of Dagfinn Hammar via groups.io
Sent: Wednesday, February 28, 2024 8:42 AM
To: [email protected]
Subject: Re: [H390-MVS] COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

?

Is this a general problem with TK5 that makes it difficult to use cobol/sort/merge or have Rob Prince made a different solution with the new DASD's?in TK5.

?

It seems you have followed the steps to add these sort DASD correctly. The adding of these files to the TK5 config is also needed but you may already have done this. If so I think Rob can help you with?this better than anyone.

?

----------------------------------------

Dagfinn

?

On Wed, 28 Feb 2024 at 13:20, Frank D. Engel, Jr. <fde101@...> wrote:

I decided to go through the exercise of trying to add these volumes to my TK5 installation.

?

I was able to successfully add the VTOC to the six volumes using ICKDSF, and was able to vary the volumes online, but they are refusing to mount.

?

I updated VATLST00 within SYS1.PARMLIB to define the new volumes:

SORT* ,0,2,2314??? ,N????????????????? Sortwork space

?

After stopping and restarting MVS, I do not see these in VATLST01 (not sure if I need to manually add them there as well or where that gets updated?), and the volumes are not mounted.

?

After varying them online, the mount attempt:

?

m 331,vol=(sl,sort01),use=private

?

results in:

12.59.55 STC? 303? IEF403I MOUNT - STARTED - TIME=12.59.55?? ?
12.59.55 STC? 303? IEF503I INCORRECT VOLUME LABEL OR I/O ERROR
12.59.55 STC? 303? IEF234E D 331???????????????????????????? ?
12.59.55 STC? 303 *IEF233A M 331,SORT01,,MOUNT,331?????????? ?
13.03.24?????????? IGF991E? MOUNT PENDING FOR DEVICE 331?????

?

?

Here is an example of how I wrote the VTOC:

//INITS01 EXEC PGM=ICKDSF,REGION=4096K???????????????????????? ?
//SYSPRINT DD SYSOUT=*???????????????????????????????????????? ?
//SYSIN??? DD *??????????????????????????????????????????????? ?
? INIT UNITADDRESS(331) NOVERIFY VOLID(SORT01) OWNER(HERCULES) -
?????????????? VTOC(0,1,19)??????????????????????????????????? ?
/*?????????????????????????????????????????????????????????????

?

?

When I perform a "d u" command I am only seeing devices listed through 153, which makes me wonder if the 331-336 definitions were not included with the TK5 sysgen?

?

If that is the case, how would I go about adding them?? I can find instructions online for doing an MVS 3.8j sysgen from scratch, but not for how to update it afterward.

?

Or am I missing something else?

?

?

On 2/28/24 04:42, Frank D. Engel, Jr. wrote:

Did you create the 2314 DASD volumes you are asking it to use?

SORT01, SORT02, etc. do not exist in the TK5 distribution as shipped.

?

On 2/28/24 02:43, Dagfinn Hammar wrote:

If i run this without the GO,SORTDD?statement?i get the following error:

+IER036I - B = ? 90 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER037I - G = ?2488 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER038I - NMAX = ? 88920 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER046A - SORT CAPACITY EXCEEDED ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER066A - APROX RCD CNT 0089011 ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IKF888I UNSUCCESSFUL SORT FOR SORTDA ? ? ? ? ? ? ? ? ? ? ?
+IEW1991 ERROR - USER PROGRAM HAS ABNORMALLY TERMINATED ? ?
IEF450I HERC0101 GO STEP06 - ABEND S0C4 U0000 - TIME=08.39.4
HERC0101 ? STEP06 ? ?GO ? ? ? ?LOADER ? ?AB S0C4 ? ? ? ? ? ?
IEF404I HERC0101 -?

?

On Wed, 28 Feb 2024 at 08:35, Dagfinn Hammar via <dagfinndh33=[email protected]> wrote:

Again - thank you for helping to solve this task. I have made some progress but receive a message about offline units needed. My jcl for cobol/sort and messages from sysout-console:

/* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//COB.SYSLIB ?DD DSNAME=SYS1.COBLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTLIB ?DD DSNAME=SYS1.SORTLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSUDUMP DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTDD ? DD DSNAME=HERC01.TEST.SORT.FILE, ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DISP=(NEW,PASS,DELETE), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=800), ? ? ? ?
// ? ? ? ? ? ? UNIT=SORT,SPACE=(TRK,(200,1)) ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01 ? ? ?
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02 ? ? ?
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ?
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ?
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ?
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06 ? ? ?
//GO.SYSOUT ? DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSPRINT DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.INDD ? ? DD DSN=HERC01.TEST.FILE00XX,DISP=SHR ? ? ? ? ? ? ? ? ?
//GO.OUT1 ? ? DD DSN=HERC01.TEST.FILE00YY,DISP=SHR ? ? ? ? ? ? ? ? ?


IEF244I HERC0101 GO STEP06 - UNABLE TO ALLOCATE 1 UNIT(S) ?
? ? ? ? AT LEAST 1 OFFLINE UNIT(S) NEEDED. ? ? ? ? ? ? ? ? ?
IEF489I HERC0101 - 1 UNIT(S) NEEDED FOR SORTDD ? ? ? ? ? ? ?
IEF247I HERC0101 - 130,137,138,139,13A,13B,13C,13D,13E,13F,2
IEF247I HERC0101 - 232,233,234,235,236,237,238,239,23A,23B,2
IEF247I HERC0101 - 23E,23F,330,331,332,333,334,335,336,337,3
IEF247I HERC0101 - 33A,33B,33C,33D,33E,33F OFFLINE ? ? ? ? ?
01 IEF238D HERC0101 - REPLY DEVICE NAME OR 'CANCEL'. ? ? ? ?
R 01,CANCEL? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

?

So if you see any obvious corrections feel fre to comment.

?

----------------------------------------

Dagfinn D. Hammar?

?

On Wed, 28 Feb 2024 at 02:04, Joe Monk <joemonk64@...> wrote:

//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01? ???
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02? ? ? ? ? ? ???
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ? ? ? ? ??
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ? ? ? ? ??
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ? ? ? ? ??
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06?

//GO.SORTLIB ? ? DD ? DSN=SYS1.SORTLIB,DISP=SHR

?

When dealing with a PROC (LIKE COBUCG), to supply missing DDNAMES you have to put in the stepname...

?

Also, MVT COBOL sort routine cannot use extents on a volume, so code a really big value for the primary, cause thats all you'll get.

?

I THINK that sortlib is right, but you can check it.

?

Joe

?


Re: COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

 

¿ªÔÆÌåÓý

Yes, the DASD are listed in the Hercules config file as well as (since I am running under VM) the VM directory for the MVS virtual machine.

No problems there as the ICKDSF worked; I can also see them in the active VM configuration with a #cp q dasd:

CP Q DASD????????? ?
DASD 247 ON DASD 247
DASD 248 ON DASD 248
DASD 249 ON DASD 249
DASD 331 ON DASD 331?? <====
DASD 332 ON DASD 332
DASD 333 ON DASD 333
DASD 334 ON DASD 334
DASD 335 ON DASD 335
DASD 336 ON DASD 336
DASD 380 ON DASD 380



On 2/28/24 08:42, Dagfinn Hammar wrote:

Is this a general problem with TK5 that makes it difficult to use cobol/sort/merge or have Rob Prince made a different solution with the new DASD's?in TK5.

It seems you have followed the steps to add these sort DASD correctly. The adding of these files to the TK5 config is also needed but you may already have done this. If so I think Rob can help you with?this better than anyone.

----------------------------------------
Dagfinn

On Wed, 28 Feb 2024 at 13:20, Frank D. Engel, Jr. <fde101@...> wrote:

I decided to go through the exercise of trying to add these volumes to my TK5 installation.


I was able to successfully add the VTOC to the six volumes using ICKDSF, and was able to vary the volumes online, but they are refusing to mount.


I updated VATLST00 within SYS1.PARMLIB to define the new volumes:

SORT* ,0,2,2314??? ,N????????????????? Sortwork space


After stopping and restarting MVS, I do not see these in VATLST01 (not sure if I need to manually add them there as well or where that gets updated?), and the volumes are not mounted.


After varying them online, the mount attempt:


m 331,vol=(sl,sort01),use=private


results in:

12.59.55 STC? 303? IEF403I MOUNT - STARTED - TIME=12.59.55?? ?
12.59.55 STC? 303? IEF503I INCORRECT VOLUME LABEL OR I/O ERROR
12.59.55 STC? 303? IEF234E D 331???????????????????????????? ?
12.59.55 STC? 303 *IEF233A M 331,SORT01,,MOUNT,331?????????? ?
13.03.24?????????? IGF991E? MOUNT PENDING FOR DEVICE 331?????



Here is an example of how I wrote the VTOC:

//INITS01 EXEC PGM=ICKDSF,REGION=4096K???????????????????????? ?
//SYSPRINT DD SYSOUT=*???????????????????????????????????????? ?
//SYSIN??? DD *??????????????????????????????????????????????? ?
? INIT UNITADDRESS(331) NOVERIFY VOLID(SORT01) OWNER(HERCULES) -
?????????????? VTOC(0,1,19)??????????????????????????????????? ?
/*?????????????????????????????????????????????????????????????



When I perform a "d u" command I am only seeing devices listed through 153, which makes me wonder if the 331-336 definitions were not included with the TK5 sysgen?


If that is the case, how would I go about adding them?? I can find instructions online for doing an MVS 3.8j sysgen from scratch, but not for how to update it afterward.


Or am I missing something else?



On 2/28/24 04:42, Frank D. Engel, Jr. wrote:

Did you create the 2314 DASD volumes you are asking it to use?

SORT01, SORT02, etc. do not exist in the TK5 distribution as shipped.


On 2/28/24 02:43, Dagfinn Hammar wrote:
If i run this without the GO,SORTDD?statement?i get the following error:
+IER036I - B = ? 90 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER037I - G = ?2488 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER038I - NMAX = ? 88920 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER046A - SORT CAPACITY EXCEEDED ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER066A - APROX RCD CNT 0089011 ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IKF888I UNSUCCESSFUL SORT FOR SORTDA ? ? ? ? ? ? ? ? ? ? ?
+IEW1991 ERROR - USER PROGRAM HAS ABNORMALLY TERMINATED ? ?
IEF450I HERC0101 GO STEP06 - ABEND S0C4 U0000 - TIME=08.39.4
HERC0101 ? STEP06 ? ?GO ? ? ? ?LOADER ? ?AB S0C4 ? ? ? ? ? ?
IEF404I HERC0101 -?

On Wed, 28 Feb 2024 at 08:35, Dagfinn Hammar via <dagfinndh33=[email protected]> wrote:
Again - thank you for helping to solve this task. I have made some progress but receive a message about offline units needed. My jcl for cobol/sort and messages from sysout-console:
/* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//COB.SYSLIB ?DD DSNAME=SYS1.COBLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTLIB ?DD DSNAME=SYS1.SORTLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSUDUMP DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTDD ? DD DSNAME=HERC01.TEST.SORT.FILE, ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DISP=(NEW,PASS,DELETE), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=800), ? ? ? ?
// ? ? ? ? ? ? UNIT=SORT,SPACE=(TRK,(200,1)) ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01 ? ? ?
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02 ? ? ?
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ?
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ?
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ?
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06 ? ? ?
//GO.SYSOUT ? DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSPRINT DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.INDD ? ? DD DSN=HERC01.TEST.FILE00XX,DISP=SHR ? ? ? ? ? ? ? ? ?
//GO.OUT1 ? ? DD DSN=HERC01.TEST.FILE00YY,DISP=SHR ? ? ? ? ? ? ? ? ?


IEF244I HERC0101 GO STEP06 - UNABLE TO ALLOCATE 1 UNIT(S) ?
? ? ? ? AT LEAST 1 OFFLINE UNIT(S) NEEDED. ? ? ? ? ? ? ? ? ?
IEF489I HERC0101 - 1 UNIT(S) NEEDED FOR SORTDD ? ? ? ? ? ? ?
IEF247I HERC0101 - 130,137,138,139,13A,13B,13C,13D,13E,13F,2
IEF247I HERC0101 - 232,233,234,235,236,237,238,239,23A,23B,2
IEF247I HERC0101 - 23E,23F,330,331,332,333,334,335,336,337,3
IEF247I HERC0101 - 33A,33B,33C,33D,33E,33F OFFLINE ? ? ? ? ?
01 IEF238D HERC0101 - REPLY DEVICE NAME OR 'CANCEL'. ? ? ? ?
R 01,CANCEL? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

So if you see any obvious corrections feel fre to comment.

----------------------------------------
Dagfinn D. Hammar?

On Wed, 28 Feb 2024 at 02:04, Joe Monk <joemonk64@...> wrote:
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01? ???
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02? ? ? ? ? ? ???
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ? ? ? ? ??
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ? ? ? ? ??
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ? ? ? ? ??
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06?
//GO.SORTLIB ? ? DD ? DSN=SYS1.SORTLIB,DISP=SHR

When dealing with a PROC (LIKE COBUCG), to supply missing DDNAMES you have to put in the stepname...

Also, MVT COBOL sort routine cannot use extents on a volume, so code a really big value for the primary, cause thats all you'll get.

I THINK that sortlib is right, but you can check it.

Joe


Re: COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

 

Is this a general problem with TK5 that makes it difficult to use cobol/sort/merge or have Rob Prince made a different solution with the new DASD's?in TK5.

It seems you have followed the steps to add these sort DASD correctly. The adding of these files to the TK5 config is also needed but you may already have done this. If so I think Rob can help you with?this better than anyone.

----------------------------------------
Dagfinn

On Wed, 28 Feb 2024 at 13:20, Frank D. Engel, Jr. <fde101@...> wrote:

I decided to go through the exercise of trying to add these volumes to my TK5 installation.


I was able to successfully add the VTOC to the six volumes using ICKDSF, and was able to vary the volumes online, but they are refusing to mount.


I updated VATLST00 within SYS1.PARMLIB to define the new volumes:

SORT* ,0,2,2314??? ,N????????????????? Sortwork space


After stopping and restarting MVS, I do not see these in VATLST01 (not sure if I need to manually add them there as well or where that gets updated?), and the volumes are not mounted.


After varying them online, the mount attempt:


m 331,vol=(sl,sort01),use=private


results in:

12.59.55 STC? 303? IEF403I MOUNT - STARTED - TIME=12.59.55?? ?
12.59.55 STC? 303? IEF503I INCORRECT VOLUME LABEL OR I/O ERROR
12.59.55 STC? 303? IEF234E D 331???????????????????????????? ?
12.59.55 STC? 303 *IEF233A M 331,SORT01,,MOUNT,331?????????? ?
13.03.24?????????? IGF991E? MOUNT PENDING FOR DEVICE 331?????



Here is an example of how I wrote the VTOC:

//INITS01 EXEC PGM=ICKDSF,REGION=4096K???????????????????????? ?
//SYSPRINT DD SYSOUT=*???????????????????????????????????????? ?
//SYSIN??? DD *??????????????????????????????????????????????? ?
? INIT UNITADDRESS(331) NOVERIFY VOLID(SORT01) OWNER(HERCULES) -
?????????????? VTOC(0,1,19)??????????????????????????????????? ?
/*?????????????????????????????????????????????????????????????



When I perform a "d u" command I am only seeing devices listed through 153, which makes me wonder if the 331-336 definitions were not included with the TK5 sysgen?


If that is the case, how would I go about adding them?? I can find instructions online for doing an MVS 3.8j sysgen from scratch, but not for how to update it afterward.


Or am I missing something else?



On 2/28/24 04:42, Frank D. Engel, Jr. wrote:

Did you create the 2314 DASD volumes you are asking it to use?

SORT01, SORT02, etc. do not exist in the TK5 distribution as shipped.


On 2/28/24 02:43, Dagfinn Hammar wrote:
If i run this without the GO,SORTDD?statement?i get the following error:
+IER036I - B = ? 90 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER037I - G = ?2488 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER038I - NMAX = ? 88920 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER046A - SORT CAPACITY EXCEEDED ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER066A - APROX RCD CNT 0089011 ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IKF888I UNSUCCESSFUL SORT FOR SORTDA ? ? ? ? ? ? ? ? ? ? ?
+IEW1991 ERROR - USER PROGRAM HAS ABNORMALLY TERMINATED ? ?
IEF450I HERC0101 GO STEP06 - ABEND S0C4 U0000 - TIME=08.39.4
HERC0101 ? STEP06 ? ?GO ? ? ? ?LOADER ? ?AB S0C4 ? ? ? ? ? ?
IEF404I HERC0101 -?

On Wed, 28 Feb 2024 at 08:35, Dagfinn Hammar via <dagfinndh33=[email protected]> wrote:
Again - thank you for helping to solve this task. I have made some progress but receive a message about offline units needed. My jcl for cobol/sort and messages from sysout-console:
/* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//COB.SYSLIB ?DD DSNAME=SYS1.COBLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTLIB ?DD DSNAME=SYS1.SORTLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSUDUMP DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTDD ? DD DSNAME=HERC01.TEST.SORT.FILE, ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DISP=(NEW,PASS,DELETE), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=800), ? ? ? ?
// ? ? ? ? ? ? UNIT=SORT,SPACE=(TRK,(200,1)) ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01 ? ? ?
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02 ? ? ?
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ?
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ?
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ?
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06 ? ? ?
//GO.SYSOUT ? DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSPRINT DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.INDD ? ? DD DSN=HERC01.TEST.FILE00XX,DISP=SHR ? ? ? ? ? ? ? ? ?
//GO.OUT1 ? ? DD DSN=HERC01.TEST.FILE00YY,DISP=SHR ? ? ? ? ? ? ? ? ?


IEF244I HERC0101 GO STEP06 - UNABLE TO ALLOCATE 1 UNIT(S) ?
? ? ? ? AT LEAST 1 OFFLINE UNIT(S) NEEDED. ? ? ? ? ? ? ? ? ?
IEF489I HERC0101 - 1 UNIT(S) NEEDED FOR SORTDD ? ? ? ? ? ? ?
IEF247I HERC0101 - 130,137,138,139,13A,13B,13C,13D,13E,13F,2
IEF247I HERC0101 - 232,233,234,235,236,237,238,239,23A,23B,2
IEF247I HERC0101 - 23E,23F,330,331,332,333,334,335,336,337,3
IEF247I HERC0101 - 33A,33B,33C,33D,33E,33F OFFLINE ? ? ? ? ?
01 IEF238D HERC0101 - REPLY DEVICE NAME OR 'CANCEL'. ? ? ? ?
R 01,CANCEL? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

So if you see any obvious corrections feel fre to comment.

----------------------------------------
Dagfinn D. Hammar?

On Wed, 28 Feb 2024 at 02:04, Joe Monk <joemonk64@...> wrote:
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01? ???
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02? ? ? ? ? ? ???
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ? ? ? ? ??
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ? ? ? ? ??
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ? ? ? ? ??
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06?
//GO.SORTLIB ? ? DD ? DSN=SYS1.SORTLIB,DISP=SHR

When dealing with a PROC (LIKE COBUCG), to supply missing DDNAMES you have to put in the stepname...

Also, MVT COBOL sort routine cannot use extents on a volume, so code a really big value for the primary, cause thats all you'll get.

I THINK that sortlib is right, but you can check it.

Joe


Re: COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

 

¿ªÔÆÌåÓý

I decided to go through the exercise of trying to add these volumes to my TK5 installation.


I was able to successfully add the VTOC to the six volumes using ICKDSF, and was able to vary the volumes online, but they are refusing to mount.


I updated VATLST00 within SYS1.PARMLIB to define the new volumes:

SORT* ,0,2,2314??? ,N????????????????? Sortwork space


After stopping and restarting MVS, I do not see these in VATLST01 (not sure if I need to manually add them there as well or where that gets updated?), and the volumes are not mounted.


After varying them online, the mount attempt:


m 331,vol=(sl,sort01),use=private


results in:

12.59.55 STC? 303? IEF403I MOUNT - STARTED - TIME=12.59.55?? ?
12.59.55 STC? 303? IEF503I INCORRECT VOLUME LABEL OR I/O ERROR
12.59.55 STC? 303? IEF234E D 331???????????????????????????? ?
12.59.55 STC? 303 *IEF233A M 331,SORT01,,MOUNT,331?????????? ?
13.03.24?????????? IGF991E? MOUNT PENDING FOR DEVICE 331?????



Here is an example of how I wrote the VTOC:

//INITS01 EXEC PGM=ICKDSF,REGION=4096K???????????????????????? ?
//SYSPRINT DD SYSOUT=*???????????????????????????????????????? ?
//SYSIN??? DD *??????????????????????????????????????????????? ?
? INIT UNITADDRESS(331) NOVERIFY VOLID(SORT01) OWNER(HERCULES) -
?????????????? VTOC(0,1,19)??????????????????????????????????? ?
/*?????????????????????????????????????????????????????????????



When I perform a "d u" command I am only seeing devices listed through 153, which makes me wonder if the 331-336 definitions were not included with the TK5 sysgen?


If that is the case, how would I go about adding them?? I can find instructions online for doing an MVS 3.8j sysgen from scratch, but not for how to update it afterward.


Or am I missing something else?



On 2/28/24 04:42, Frank D. Engel, Jr. wrote:

Did you create the 2314 DASD volumes you are asking it to use?

SORT01, SORT02, etc. do not exist in the TK5 distribution as shipped.


On 2/28/24 02:43, Dagfinn Hammar wrote:
If i run this without the GO,SORTDD?statement?i get the following error:
+IER036I - B = ? 90 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER037I - G = ?2488 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER038I - NMAX = ? 88920 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER046A - SORT CAPACITY EXCEEDED ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER066A - APROX RCD CNT 0089011 ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IKF888I UNSUCCESSFUL SORT FOR SORTDA ? ? ? ? ? ? ? ? ? ? ?
+IEW1991 ERROR - USER PROGRAM HAS ABNORMALLY TERMINATED ? ?
IEF450I HERC0101 GO STEP06 - ABEND S0C4 U0000 - TIME=08.39.4
HERC0101 ? STEP06 ? ?GO ? ? ? ?LOADER ? ?AB S0C4 ? ? ? ? ? ?
IEF404I HERC0101 -?

On Wed, 28 Feb 2024 at 08:35, Dagfinn Hammar via <dagfinndh33=[email protected]> wrote:
Again - thank you for helping to solve this task. I have made some progress but receive a message about offline units needed. My jcl for cobol/sort and messages from sysout-console:
/* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//COB.SYSLIB ?DD DSNAME=SYS1.COBLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTLIB ?DD DSNAME=SYS1.SORTLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSUDUMP DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTDD ? DD DSNAME=HERC01.TEST.SORT.FILE, ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DISP=(NEW,PASS,DELETE), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=800), ? ? ? ?
// ? ? ? ? ? ? UNIT=SORT,SPACE=(TRK,(200,1)) ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01 ? ? ?
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02 ? ? ?
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ?
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ?
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ?
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06 ? ? ?
//GO.SYSOUT ? DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSPRINT DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.INDD ? ? DD DSN=HERC01.TEST.FILE00XX,DISP=SHR ? ? ? ? ? ? ? ? ?
//GO.OUT1 ? ? DD DSN=HERC01.TEST.FILE00YY,DISP=SHR ? ? ? ? ? ? ? ? ?


IEF244I HERC0101 GO STEP06 - UNABLE TO ALLOCATE 1 UNIT(S) ?
? ? ? ? AT LEAST 1 OFFLINE UNIT(S) NEEDED. ? ? ? ? ? ? ? ? ?
IEF489I HERC0101 - 1 UNIT(S) NEEDED FOR SORTDD ? ? ? ? ? ? ?
IEF247I HERC0101 - 130,137,138,139,13A,13B,13C,13D,13E,13F,2
IEF247I HERC0101 - 232,233,234,235,236,237,238,239,23A,23B,2
IEF247I HERC0101 - 23E,23F,330,331,332,333,334,335,336,337,3
IEF247I HERC0101 - 33A,33B,33C,33D,33E,33F OFFLINE ? ? ? ? ?
01 IEF238D HERC0101 - REPLY DEVICE NAME OR 'CANCEL'. ? ? ? ?
R 01,CANCEL? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

So if you see any obvious corrections feel fre to comment.

----------------------------------------
Dagfinn D. Hammar?

On Wed, 28 Feb 2024 at 02:04, Joe Monk <joemonk64@...> wrote:
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01? ???
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02? ? ? ? ? ? ???
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ? ? ? ? ??
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ? ? ? ? ??
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ? ? ? ? ??
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06?
//GO.SORTLIB ? ? DD ? DSN=SYS1.SORTLIB,DISP=SHR

When dealing with a PROC (LIKE COBUCG), to supply missing DDNAMES you have to put in the stepname...

Also, MVT COBOL sort routine cannot use extents on a volume, so code a really big value for the primary, cause thats all you'll get.

I THINK that sortlib is right, but you can check it.

Joe


Re: COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

 

Hi again
I had to dig into this strange error message. So I went to our beloved cobol-74 manual and started reading about sort/merge statements. I read the example program in the manual and after a few tries was able to do a sort and print/display console without any problems.

So I went back to my original?program and did some bug-hunting and now it runs as it should.

Thanks again for?the?needed info and feedback.?

------------------------------
Dagfinn

On Wed, 28 Feb 2024 at 11:32, Dagfinn Hammar via <dagfinndh33=[email protected]> wrote:
Hi
I am running this on my TK4 instance. The sort01-06?are in the dasd directory.
So I am a bit?confused and suspect there are some parameters missing i jcl/parm.

------------------------------
Dagfinn

On Wed, 28 Feb 2024 at 10:43, Frank D. Engel, Jr. <fde101@...> wrote:

Did you create the 2314 DASD volumes you are asking it to use?

SORT01, SORT02, etc. do not exist in the TK5 distribution as shipped.


On 2/28/24 02:43, Dagfinn Hammar wrote:
If i run this without the GO,SORTDD?statement?i get the following error:
+IER036I - B = ? 90 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER037I - G = ?2488 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER038I - NMAX = ? 88920 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER046A - SORT CAPACITY EXCEEDED ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER066A - APROX RCD CNT 0089011 ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IKF888I UNSUCCESSFUL SORT FOR SORTDA ? ? ? ? ? ? ? ? ? ? ?
+IEW1991 ERROR - USER PROGRAM HAS ABNORMALLY TERMINATED ? ?
IEF450I HERC0101 GO STEP06 - ABEND S0C4 U0000 - TIME=08.39.4
HERC0101 ? STEP06 ? ?GO ? ? ? ?LOADER ? ?AB S0C4 ? ? ? ? ? ?
IEF404I HERC0101 -?

On Wed, 28 Feb 2024 at 08:35, Dagfinn Hammar via <dagfinndh33=[email protected]> wrote:
Again - thank you for helping to solve this task. I have made some progress but receive a message about offline units needed. My jcl for cobol/sort and messages from sysout-console:
/* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//COB.SYSLIB ?DD DSNAME=SYS1.COBLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTLIB ?DD DSNAME=SYS1.SORTLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSUDUMP DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTDD ? DD DSNAME=HERC01.TEST.SORT.FILE, ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DISP=(NEW,PASS,DELETE), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=800), ? ? ? ?
// ? ? ? ? ? ? UNIT=SORT,SPACE=(TRK,(200,1)) ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01 ? ? ?
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02 ? ? ?
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ?
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ?
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ?
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06 ? ? ?
//GO.SYSOUT ? DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSPRINT DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.INDD ? ? DD DSN=HERC01.TEST.FILE00XX,DISP=SHR ? ? ? ? ? ? ? ? ?
//GO.OUT1 ? ? DD DSN=HERC01.TEST.FILE00YY,DISP=SHR ? ? ? ? ? ? ? ? ?


IEF244I HERC0101 GO STEP06 - UNABLE TO ALLOCATE 1 UNIT(S) ?
? ? ? ? AT LEAST 1 OFFLINE UNIT(S) NEEDED. ? ? ? ? ? ? ? ? ?
IEF489I HERC0101 - 1 UNIT(S) NEEDED FOR SORTDD ? ? ? ? ? ? ?
IEF247I HERC0101 - 130,137,138,139,13A,13B,13C,13D,13E,13F,2
IEF247I HERC0101 - 232,233,234,235,236,237,238,239,23A,23B,2
IEF247I HERC0101 - 23E,23F,330,331,332,333,334,335,336,337,3
IEF247I HERC0101 - 33A,33B,33C,33D,33E,33F OFFLINE ? ? ? ? ?
01 IEF238D HERC0101 - REPLY DEVICE NAME OR 'CANCEL'. ? ? ? ?
R 01,CANCEL? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

So if you see any obvious corrections feel fre to comment.

----------------------------------------
Dagfinn D. Hammar?

On Wed, 28 Feb 2024 at 02:04, Joe Monk <joemonk64@...> wrote:
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01? ???
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02? ? ? ? ? ? ???
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ? ? ? ? ??
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ? ? ? ? ??
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ? ? ? ? ??
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06?
//GO.SORTLIB ? ? DD ? DSN=SYS1.SORTLIB,DISP=SHR

When dealing with a PROC (LIKE COBUCG), to supply missing DDNAMES you have to put in the stepname...

Also, MVT COBOL sort routine cannot use extents on a volume, so code a really big value for the primary, cause thats all you'll get.

I THINK that sortlib is right, but you can check it.

Joe


Re: COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

 

Hi
I am running this on my TK4 instance. The sort01-06?are in the dasd directory.
So I am a bit?confused and suspect there are some parameters missing i jcl/parm.

------------------------------
Dagfinn

On Wed, 28 Feb 2024 at 10:43, Frank D. Engel, Jr. <fde101@...> wrote:

Did you create the 2314 DASD volumes you are asking it to use?

SORT01, SORT02, etc. do not exist in the TK5 distribution as shipped.


On 2/28/24 02:43, Dagfinn Hammar wrote:
If i run this without the GO,SORTDD?statement?i get the following error:
+IER036I - B = ? 90 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER037I - G = ?2488 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER038I - NMAX = ? 88920 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER046A - SORT CAPACITY EXCEEDED ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER066A - APROX RCD CNT 0089011 ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IKF888I UNSUCCESSFUL SORT FOR SORTDA ? ? ? ? ? ? ? ? ? ? ?
+IEW1991 ERROR - USER PROGRAM HAS ABNORMALLY TERMINATED ? ?
IEF450I HERC0101 GO STEP06 - ABEND S0C4 U0000 - TIME=08.39.4
HERC0101 ? STEP06 ? ?GO ? ? ? ?LOADER ? ?AB S0C4 ? ? ? ? ? ?
IEF404I HERC0101 -?

On Wed, 28 Feb 2024 at 08:35, Dagfinn Hammar via <dagfinndh33=[email protected]> wrote:
Again - thank you for helping to solve this task. I have made some progress but receive a message about offline units needed. My jcl for cobol/sort and messages from sysout-console:
/* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//COB.SYSLIB ?DD DSNAME=SYS1.COBLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTLIB ?DD DSNAME=SYS1.SORTLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSUDUMP DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTDD ? DD DSNAME=HERC01.TEST.SORT.FILE, ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DISP=(NEW,PASS,DELETE), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=800), ? ? ? ?
// ? ? ? ? ? ? UNIT=SORT,SPACE=(TRK,(200,1)) ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01 ? ? ?
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02 ? ? ?
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ?
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ?
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ?
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06 ? ? ?
//GO.SYSOUT ? DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSPRINT DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.INDD ? ? DD DSN=HERC01.TEST.FILE00XX,DISP=SHR ? ? ? ? ? ? ? ? ?
//GO.OUT1 ? ? DD DSN=HERC01.TEST.FILE00YY,DISP=SHR ? ? ? ? ? ? ? ? ?


IEF244I HERC0101 GO STEP06 - UNABLE TO ALLOCATE 1 UNIT(S) ?
? ? ? ? AT LEAST 1 OFFLINE UNIT(S) NEEDED. ? ? ? ? ? ? ? ? ?
IEF489I HERC0101 - 1 UNIT(S) NEEDED FOR SORTDD ? ? ? ? ? ? ?
IEF247I HERC0101 - 130,137,138,139,13A,13B,13C,13D,13E,13F,2
IEF247I HERC0101 - 232,233,234,235,236,237,238,239,23A,23B,2
IEF247I HERC0101 - 23E,23F,330,331,332,333,334,335,336,337,3
IEF247I HERC0101 - 33A,33B,33C,33D,33E,33F OFFLINE ? ? ? ? ?
01 IEF238D HERC0101 - REPLY DEVICE NAME OR 'CANCEL'. ? ? ? ?
R 01,CANCEL? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

So if you see any obvious corrections feel fre to comment.

----------------------------------------
Dagfinn D. Hammar?

On Wed, 28 Feb 2024 at 02:04, Joe Monk <joemonk64@...> wrote:
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01? ???
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02? ? ? ? ? ? ???
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ? ? ? ? ??
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ? ? ? ? ??
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ? ? ? ? ??
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06?
//GO.SORTLIB ? ? DD ? DSN=SYS1.SORTLIB,DISP=SHR

When dealing with a PROC (LIKE COBUCG), to supply missing DDNAMES you have to put in the stepname...

Also, MVT COBOL sort routine cannot use extents on a volume, so code a really big value for the primary, cause thats all you'll get.

I THINK that sortlib is right, but you can check it.

Joe


Re: COBOL Sort - - +IER040A - INSUFFICIENT WORK UNITS

 

¿ªÔÆÌåÓý

Did you create the 2314 DASD volumes you are asking it to use?

SORT01, SORT02, etc. do not exist in the TK5 distribution as shipped.


On 2/28/24 02:43, Dagfinn Hammar wrote:

If i run this without the GO,SORTDD?statement?i get the following error:
+IER036I - B = ? 90 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER037I - G = ?2488 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER038I - NMAX = ? 88920 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER046A - SORT CAPACITY EXCEEDED ? ? ? ? ? ? ? ? ? ? ? ? ?
+IER066A - APROX RCD CNT 0089011 ? ? ? ? ? ? ? ? ? ? ? ? ? ?
+IKF888I UNSUCCESSFUL SORT FOR SORTDA ? ? ? ? ? ? ? ? ? ? ?
+IEW1991 ERROR - USER PROGRAM HAS ABNORMALLY TERMINATED ? ?
IEF450I HERC0101 GO STEP06 - ABEND S0C4 U0000 - TIME=08.39.4
HERC0101 ? STEP06 ? ?GO ? ? ? ?LOADER ? ?AB S0C4 ? ? ? ? ? ?
IEF404I HERC0101 -?

On Wed, 28 Feb 2024 at 08:35, Dagfinn Hammar via <dagfinndh33=[email protected]> wrote:
Again - thank you for helping to solve this task. I have made some progress but receive a message about offline units needed. My jcl for cobol/sort and messages from sysout-console:
/* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//COB.SYSLIB ?DD DSNAME=SYS1.COBLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTLIB ?DD DSNAME=SYS1.SORTLIB,DISP=SHR ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSUDUMP DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTDD ? DD DSNAME=HERC01.TEST.SORT.FILE, ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DISP=(NEW,PASS,DELETE), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
// ? ? ? ? ? ? DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=800), ? ? ? ?
// ? ? ? ? ? ? UNIT=SORT,SPACE=(TRK,(200,1)) ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01 ? ? ?
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02 ? ? ?
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ?
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ?
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ?
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06 ? ? ?
//GO.SYSOUT ? DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.SYSPRINT DD SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//GO.INDD ? ? DD DSN=HERC01.TEST.FILE00XX,DISP=SHR ? ? ? ? ? ? ? ? ?
//GO.OUT1 ? ? DD DSN=HERC01.TEST.FILE00YY,DISP=SHR ? ? ? ? ? ? ? ? ?


IEF244I HERC0101 GO STEP06 - UNABLE TO ALLOCATE 1 UNIT(S) ?
? ? ? ? AT LEAST 1 OFFLINE UNIT(S) NEEDED. ? ? ? ? ? ? ? ? ?
IEF489I HERC0101 - 1 UNIT(S) NEEDED FOR SORTDD ? ? ? ? ? ? ?
IEF247I HERC0101 - 130,137,138,139,13A,13B,13C,13D,13E,13F,2
IEF247I HERC0101 - 232,233,234,235,236,237,238,239,23A,23B,2
IEF247I HERC0101 - 23E,23F,330,331,332,333,334,335,336,337,3
IEF247I HERC0101 - 33A,33B,33C,33D,33E,33F OFFLINE ? ? ? ? ?
01 IEF238D HERC0101 - REPLY DEVICE NAME OR 'CANCEL'. ? ? ? ?
R 01,CANCEL? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

So if you see any obvious corrections feel fre to comment.

----------------------------------------
Dagfinn D. Hammar?

On Wed, 28 Feb 2024 at 02:04, Joe Monk <joemonk64@...> wrote:
//GO.SORTWK01 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT01? ???
//GO.SORTWK02 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT02? ? ? ? ? ? ???
//GO.SORTWK03 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT03 ? ? ? ? ? ? ??
//GO.SORTWK04 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT04 ? ? ? ? ? ? ??
//GO.SORTWK05 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT05 ? ? ? ? ? ? ??
//GO.SORTWK06 DD ?UNIT=2314,SPACE=(TRK,(200,1)),VOL=SER=SORT06?
//GO.SORTLIB ? ? DD ? DSN=SYS1.SORTLIB,DISP=SHR

When dealing with a PROC (LIKE COBUCG), to supply missing DDNAMES you have to put in the stepname...

Also, MVT COBOL sort routine cannot use extents on a volume, so code a really big value for the primary, cause thats all you'll get.

I THINK that sortlib is right, but you can check it.

Joe