MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CSQUTIL: Is the RECFM of unloaded dataset always VBS ?

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> CICS and Middleware
View previous topic :: View next topic  
Author Message
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Thu Feb 23, 2006 5:29 am    Post subject: CSQUTIL: Is the RECFM of unloaded dataset always VBS ? Reply with quote

Hi,
I have a step to execute CSQUTIL in batch that unloads a queue to a dataset. I see that, the RECFM is set to VBS. I do not remember reading in the manual anywhere that says so.

Can we set it to something else?

Given the max length of the queue, can the VBS dataset be converted to a FB dataset where LRECL = max length of the queue ?
_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12376
Topics: 75
Location: San Jose

PostPosted: Thu Feb 23, 2006 5:37 am    Post subject: Reply with quote

Cogito-Ergo-Sum,

Just try hardcoding the FB DCB parameters on the CSQUOUT and see if it works.

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Thu Feb 23, 2006 5:43 am    Post subject: Reply with quote

Kolusu,
I did that as my first attempt. The DCB is overriden.

I am now exploring a DFSORT option to convert VBS dataset to FB or atleast VB. Till now, I have been getting this message:
Code:

ICE043A 3 INVALID DATA SET ATTRIBUTES SPECIFIED SORTIN   LRECL
ICE023A 0 NO LENGTH OPERAND                                   


It would have been so nice if CSQUTIL unloaded the queue as DSNTIAUL does for DB2 tables....
_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12376
Topics: 75
Location: San Jose

PostPosted: Thu Feb 23, 2006 5:49 am    Post subject: Reply with quote

Quote:

It would have been so nice if CSQUTIL unloaded the queue as DSNTIAUL does for DB2 tables....


Cogito,

Did you check this?

Copying queues into a data set while the queue manager is running (COPY)

Copying queues into a data set while the queue manager is not running (SCOPY)

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Thu Feb 23, 2006 5:56 am    Post subject: Reply with quote

Kolusu,
uh....well...that was the link I used to locate the COPY command for unloading the queues. I am executing the command in batch by using CSQUTIL program. Does it mention about RECFM and LRECL also? I do not remember seeing it...

Code:

//STEP002  EXEC PGM=CSQUTIL,                 
//            PARM='QMGR',                   
//            COND=(0,LT)                     
//STEPLIB  DD DSN=XXXX.MQM.SCSQANLE,DISP=SHR 
//         DD DSN=XXXX.MQM.SCSQAUTH,DISP=SHR 
//SYSIN    DD *                               
 COPY QUEUE(XXXXXX.XXXXX.Q00013) DDNAME(QOUT)
/*                                           
//SYSPRINT DD SYSOUT=*                       
//QOUT     DD DSN=XXXXXX.XXXXX.Q00013.UNLOAD,
//            DISP=(,CATLG,DELETE),           
//            UNIT=SYSDA,                     
//            SPACE=(CYL,1),                 
//            DCB=(RECFM=FB,LRECL=32,DSORG=PS)


The DCB as shown above is overridden to RECFM=VBS and LRECL=32768 and BLKSIZE=27998.
_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Thu Feb 23, 2006 6:20 am    Post subject: Reply with quote

After the CSQUTIL step above, I coded this step to do the conversion.
Code:

//STEP004  EXEC PGM=SORT,                       
//            COND=(0,LT)                       
//SYSIN    DD *                                 
 OPTION COPY                                   
 OUTFIL VTOF,OUTREC=(1:5,32)                   
/*                                             
//SORTIN   DD DSN=XXXXXX.XXXXX.Q00013.UNLOAD,   
//            DISP=SHR,                         
//            DCB=(RECFM=VB,LRECL=27998)       
//SORTOUT  DD DSN=XXXXXX.XXXXX.Q00013.UNLOAD.FB,
//            DISP=(,CATLG,DELETE),             
//            UNIT=SYSDA,                       
//            SPACE=(CYL,1),                   
//            DCB=(RECFM=FB)                   
//SYSOUT   DD SYSOUT=*                         


Why/how does the DCB on the SORTIN work ? If I do not code it, then I get a message about invalid LRECL for SORTIN.
_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12376
Topics: 75
Location: San Jose

PostPosted: Thu Feb 23, 2006 9:06 am    Post subject: Reply with quote

Quote:

Why/how does the DCB on the SORTIN work ? If I do not code it, then I get a message about invalid LRECL for SORTIN.

Cogito-Ergo-Sum,

You are only reading the first 27998 bytes only when you provided the LRECL. Basically you are overriding the DCB parameters. DFSORT can handle upto 32767 bytes for VBS.

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Thu Feb 23, 2006 9:12 am    Post subject: Reply with quote

With
Code:
//SORTIN   DD DSN=XXXXXX.XXXXX.Q00013.UNLOAD,
//            DISP=SHR,                     
//            DCB=(RECFM=VBS,LRECL=32767)   


I get a JCL ERROR as
Code:
SPECIFIED NUMERIC EXCEEDS MAXIMUM ALLOWED IN THE LRECL SUBPARAMETER OF THE DCB FIELD

_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12376
Topics: 75
Location: San Jose

PostPosted: Thu Feb 23, 2006 9:37 am    Post subject: Reply with quote

Cogito-Ergo-Sum,

Remove the LRECL and see if it runs. I have vbs dataset(lrecl=32760) which I copied without any lrecl override and it was successful.
Code:

SYSIN :                                                           
 SORT FIELDS=COPY                                                 
 OPTION STOPAFT=10                                                 
WER108I  SORTIN   : RECFM=VBS  ; LRECL= 32760; BLKSIZE= 23476     
WER110I  SORTOUT  : RECFM=VBS  ; LRECL= 32760; BLKSIZE= 23476     
WER449I  SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE                     
WER054I  RCD IN         10, OUT         10                         
WER169I  RELEASE 1.2 BATCH 0427 TPF LEVEL 0.0                     


Once I tried to override the lrecl with 32767, I got the same abend as you which is because our installation has the 32k(32768) limit for ISL size of 32K (32768). You will get a IEF638I message occurs during execution of jobs FSNIALOC or FSNIASAV if ISLSZ is defined with 32768 in parameter file FSNASPA1 in JCLLIB.

I am not sure if there is option in DFSORT which can be overriden.

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Thu Feb 23, 2006 10:05 am    Post subject: Reply with quote

Kolusu,
No luck. I get this:
Code:
ICE043A 3 INVALID DATA SET ATTRIBUTES SPECIFIED SORTIN   LRECL
ICE023A 0 NO LENGTH OPERAND                                   
as pasted in my earlier post.

The crux of the problem is, if I do not override the LRECL, I get the ICE messages. If I code, I cannot haev LRECL=32767. With LRECL=27998, it works.
_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> CICS and Middleware All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group