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 

Linking maps and program into one load module

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


Joined: 03 Jan 2003
Posts: 1014
Topics: 13
Location: Atlantis

PostPosted: Thu Dec 01, 2005 12:46 pm    Post subject: Linking maps and program into one load module Reply with quote

I have written a 'small' transaction, a couple of thousand lines, that is just a utility program to give some system info, search dfhrpl & steplib, etc (sort of a TASID for CICS) and to be able to make installation easy, I linked the MAPSET and program into a single load module. That works fine using the linkage editor statements below, but only if I put the single mapset first in the load module via an ORDER card. I assume that CICS does a load and then just uses the loaded address as the base for the structure of the map in storage, but... yes there is a question here... if I had more than 1 map set, would it be possible to place more than 1 mapset in a single load module? I realize that this is not something you would want to do in a production program, this is just a question out of curiosity.
Code:
//LKED.INCLUDE  DD  DSN=USER1.PRIVATE.OBJ,DISP=SHR     
//LKED.SYSIN    DD  *                                   
   ORDER DDNMAPS,DDNAMES,READMEM,FINDMEM               
   INCLUDE INCLUDE(DDNMAPS) <== map object code         
   INCLUDE INCLUDE(READMEM) <== program object code     
   INCLUDE INCLUDE(FINDMEM) <== program object code     
   ENTRY DDNMAPS                                       
   ALIAS DDNAMES                                       
   NAME DDNMAPS(R)                                     
/*
Back to top
View user's profile Send private message Visit poster's website
kolusu
Site Admin
Site Admin


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

PostPosted: Thu Dec 01, 2005 1:29 pm    Post subject: Reply with quote

Semigeezer,

I think you want more than 1 map in a mapset and not multiple [/b]mapsets[/b]. You can have more than 1 map in a mapset. YOu just need to code a new DFHMDI after the DFHMDF for the first map. Having more than 1 map in a mapset is quite common.

Hope this helps...

Cheers

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Manas Biswal
Intermediate


Joined: 29 Nov 2002
Posts: 382
Topics: 27
Location: Chennai, India

PostPosted: Thu Dec 01, 2005 2:25 pm    Post subject: Reply with quote

semigeezer,

I never knew that you could link a mapset and a program into a single load module and make it work as a CICS transaction. Thanks for the information.
I am sorry but instead of answering your question, I am posing you a new one.

I would assume that you have defined 1 PCT and 1 PPT entry for the load in your CICS region. So, am I correct in assuming that when you run your transaction which calls the program as well as the mapset (the program displays a map of the mapset), both are run properly. This is great. Never knew that it would work that way.

Thanks,
Manas
_________________
There is no path to peace. Peace is the path.
- Mahatma Gandhi (1869-1948)
Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
semigeezer
Supermod


Joined: 03 Jan 2003
Posts: 1014
Topics: 13
Location: Atlantis

PostPosted: Thu Dec 01, 2005 4:43 pm    Post subject: Reply with quote

Thanks Kolusu. I do actually have a couple of maps in the mapset. Manas, you are correct. This is the step following the link:
Code:
//DEFINE   EXEC PGM=DFHCSDUP,REGION=1024K,PARM='CSD(READWRITE)'
...
//SYSIN    DD *
   DELETE MAPSET(DDNMAPS)           GROUP(DGN)
   DEFINE MAPSET(DDNMAPS)           GROUP(DGN)
   DELETE PROGRAM(DDNAMES)          GROUP(DGN)
   DEFINE PROGRAM(DDNAMES)          GROUP(DGN) LANG(LE370)
   DELETE TRANS(DRPL)               GROUP(DGN)
   DEFINE TRANS(DRPL) PROG(DDNAMES) GROUP(DGN)
/*


(of course the deletes and redefines aren't really necessary, it just helps me keep all the source in one file and get 0 return codes).
Back to top
View user's profile Send private message Visit poster's website
Cogito-Ergo-Sum
Advanced


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

PostPosted: Fri Dec 02, 2005 12:29 am    Post subject: Reply with quote

semigeezer.
Any particular reason why you are using DFHCSDUP ? Generally, CEDA DEFINE is used (that is the online interface for defining resources to system).
_________________
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
semigeezer
Supermod


Joined: 03 Jan 2003
Posts: 1014
Topics: 13
Location: Atlantis

PostPosted: Fri Dec 02, 2005 2:44 am    Post subject: Reply with quote

Yes. The only reason for using DFHCSDUP is that I put everything in the same JCL file (assembles, compiles, links, and "RDO" statements) and I want the whole build process to be both a single action (submit the job) and be self documenting. CEDA would be fine, and this really only needs to be done once, but no harm is done by deleting and redefining as far as I know, at least for a transaction that isn't used very often. The only thing I can't do in the JCL is the install or newcopy/phasein because DFHCSDUP doesn't support that. Maybe there is some way to do it that I'm not aware of (EXCI, CICS SM, etc) but that is such a minor problem so I just reload the group manually. I'm just running on test systems or on a personal z/OS system anyway. If this were a controlled or production environment, or if this was more than just a small utility program, I'm sure the build process would be more involved.
Back to top
View user's profile Send private message Visit poster's website
Cogito-Ergo-Sum
Advanced


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

PostPosted: Fri Dec 02, 2005 4:18 am    Post subject: Reply with quote

Quote:
The only thing I can't do in the JCL is the install or newcopy/phasein because DFHCSDUP doesn't support that.

Actually, you can. This is supposed to work. As I have not tried, I cannot be sure.
Code:

//*
//ABC COMMAND 'F yourcics,CEMT SET NEW PROG(progname)'
//DUMMY EXEC PGM=IEFBR14       

_________________
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
semigeezer
Supermod


Joined: 03 Jan 2003
Posts: 1014
Topics: 13
Location: Atlantis

PostPosted: Fri Dec 02, 2005 5:57 pm    Post subject: Reply with quote

Thanks. I hadn't tried to issue a JES command in years so I didn't know about the COMMAND verb. I tried it and got
Code:
+DFHAC2015  NM40CICS Console INTERNAL has not been defined to CICS.
Input is ignored.
but it was a good suggestion none the less.
Back to top
View user's profile Send private message Visit poster's website
Cogito-Ergo-Sum
Advanced


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

PostPosted: Sat Dec 03, 2005 5:27 am    Post subject: Reply with quote

You are welcome, seemigeezer !
_________________
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