IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

How to Allocate SYSEXEC


IBM Mainframe Forums -> TSO/ISPF
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
ezio vin

New User


Joined: 16 Aug 2012
Posts: 44
Location: india

PostPosted: Wed Dec 19, 2012 4:06 pm
Reply with quote

I have developed ISREDIT macros and I’m using it in all the session.

i don’t have access to add the macros to default SYSEXEC libraries.

every time i login i supposed to allocate the rexx library to SYSEXEC in 6 "ISPF Command Shell" is there any way to allocate once i login
Back to top
View user's profile Send private message
Pandora-Box

Global Moderator


Joined: 07 Sep 2006
Posts: 1592
Location: Andromeda Galaxy

PostPosted: Wed Dec 19, 2012 4:20 pm
Reply with quote

Ask some Admin person to edit a member a do a

ALLOC FI(SYSEXEC) for you

So every time you login your library gets allocated as well
Back to top
View user's profile Send private message
prino

Senior Member


Joined: 07 Feb 2009
Posts: 1306
Location: Vilnius, Lithuania

PostPosted: Wed Dec 19, 2012 5:45 pm
Reply with quote

Many sites will do this automagically if your datasets have certain pre-defined names. Ask your support.
Back to top
View user's profile Send private message
Anbarasan D

New User


Joined: 20 Apr 2010
Posts: 21
Location: USA

PostPosted: Fri Dec 21, 2012 12:29 am
Reply with quote

I added the below code to my startup CLIST
Code:
<userid>.TSOUTIL.CLIST(STARTUP)


Code:
ADDRESS TSO                                         
"ALTLIB DEACTIVATE APPL(EXEC)"                     
"ALTLIB ACTIVATE APPL(EXEC) DA('<your personal CLIST library>')"
ISPF                                               


it might help for you.
Back to top
View user's profile Send private message
Gary McDowell

Active User


Joined: 15 Oct 2012
Posts: 139
Location: USA

PostPosted: Sat Dec 22, 2012 12:01 am
Reply with quote

Just to be sure you are viewing all sysproc datasets allocated to you I would do…
TSO ISRDDN
Find sysproc

Maybe, just maybe there is a dataset you have write-access to?
If not, possibly change your =6 execution to a lesser used F-key (13-24 (i.e. Shift/F8 for F20)) for faster access.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Sat Dec 22, 2012 1:34 am
Reply with quote

Hello,

The places i've supported that allow people to write REXX for general use have a separate "user-contributed" library for these.

When one signs on to the system, the "user" library is automatically made part of the lib concatenation.
Back to top
View user's profile Send private message
Michael Jakob

New User


Joined: 13 Mar 2011
Posts: 17
Location: Switzerland

PostPosted: Fri Jan 11, 2013 5:34 am
Reply with quote

Hi Ezio

Maybe, you have acess to the function ISPSETUP. You may try

TSO ISPSETUP
--> EXTRAS
--> SYSPROC
--> A - Add an allocation
...
SAVE allocation by point and shoot options.

With kind regards

Michael
Back to top
View user's profile Send private message
ezio vin

New User


Joined: 16 Aug 2012
Posts: 44
Location: india

PostPosted: Fri Jan 11, 2013 8:17 am
Reply with quote

Michael Jakob

thanks for you valuable information.

when i try this command im getting error message

Code:
IKJ56500I COMMAND ISPSETUP NOT FOUND
*** 


maybe it will be helpfull for others.

All,

i have tried your suggestions. i did not get what i expect.

Thanks,
Ezio.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Fri Jan 11, 2013 8:35 am
Reply with quote

Hello,

To get what you want you most likely need to talk with the people who support your tso/ispf system. This was mentioned earlier in the topic . . .

Explain you have a genral use REXX and want to learn how to have this available to others.
Back to top
View user's profile Send private message
ezio vin

New User


Joined: 16 Aug 2012
Posts: 44
Location: india

PostPosted: Fri Jan 11, 2013 9:04 am
Reply with quote

Thanks Dick,

Super i copy your sentence !!!!

But in our organization there is no chance to get in touch with support team. need to get many approvals and lots of procedures.

Thanks,
Ezio.
Back to top
View user's profile Send private message
Ranjithkumar

New User


Joined: 10 Sep 2008
Posts: 93
Location: India

PostPosted: Fri Jan 11, 2013 2:14 pm
Reply with quote

Ezio

Have you tried using the COMMAND option is TSO LOGON Screen?
In the COMMAND field of the logon panel, you can enter a single command of upto 80 characters long. You can type the command here to allocate your dataset to SYSEXEC.
Back to top
View user's profile Send private message
xknight

Active User


Joined: 22 Jan 2008
Posts: 117
Location: Liberty city

PostPosted: Fri Jan 11, 2013 5:45 pm
Reply with quote

ezio vin,

All you need to do is Concatenate your macro residing PDS to the SYSEXEC library via the BPXWDYN routine. There are many examples in the forum suggested by enrico on making use of it.

If you dont know where to append the concatenante statement , try looking for your USER.* (may be USERID.LOGON or USERID.CLIST or something related like that)

Note: Im assuming the given PDS is used for logon startups at your site.

So once you have included the statement in the startup member, every time you login your MACRO pds will be concatenated to the SYSEXEC library by itself.

Post it if you have still issues.
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Fri Jan 11, 2013 5:50 pm
Reply with quote

Quote:
Note: Im assuming the given PDS is used for logon startups at your site.

So once you have included the statement in the startup member, every time you login your MACRO pds will be concatenated to the SYSEXEC library by itself.


if the TS organization has a <setup> Rexx/Clist defined in the logon procedure
the only way is to execute the <override> command manually
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Mon Jan 14, 2013 1:55 pm
Reply with quote

enrico-sorichetti wrote:
if the TS organization has a <setup> Rexx/Clist defined in the logon procedure
the only way is to execute the <override> command manually
That's how it is set-up at my shop and that's what I do.
Back to top
View user's profile Send private message
xknight

Active User


Joined: 22 Jan 2008
Posts: 117
Location: Liberty city

PostPosted: Thu Jan 17, 2013 3:03 pm
Reply with quote

Quote:
the only way is to execute the <override> command manually


enrico

but if the logon procedure is able to get customized, then it is possible to override automatically isn't it.

P.S Sorry for the delay.
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Thu Jan 17, 2013 5:20 pm
Reply with quote

Quote:
but if the logon procedure is able to get customized, then it is possible to override automatically isn't it.


NO!

we are taking about some Simple Joe providing its overrides

all depends on how the setup has been planned.

for example

ALL my logon procedures are almost empty ...
required TSO ddnames

SYSPROC
STEPLIB

all the dataset allocation gets done dynamically in the <setup> Rexx

in my case if ...

<userid>.ISPF.EXEC
<userid>.ISPF.PANELS
<userid>.ISPF.MSGS
<userid>.ISPF.SKELS
<userid>.ISPF.TABLES

are found

they are properly concatenated

BUT AS I SAID ALL DEPENDS ON THE STANDARDS AND IMPLEMENTATION
Back to top
View user's profile Send private message
xknight

Active User


Joined: 22 Jan 2008
Posts: 117
Location: Liberty city

PostPosted: Thu Jan 17, 2013 5:56 pm
Reply with quote

Quote:
all the dataset allocation gets done dynamically in the <setup> Rexx


Quote:
BUT AS I SAID ALL DEPENDS ON THE STANDARDS AND IMPLEMENTATION


Point taken. Thanks a bunch enrico!!
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Thu Jan 17, 2013 6:21 pm
Reply with quote

since I am in a very good mood here is my setup Rexx

Code:


 EDIT       xxxx.xxxx.xxxx($SETUP) - 01.49                  Columns 00001 00072
 Command ===>                                                  Scroll ===> CSR
 ****** ***************************** Top of Data ******************************
 000001 /*REXX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
 000002 /*                                                                   */
 000003 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
 000004 Trace  "O"
 000005 Numeric Digits 24
 000006 Parse Source _sys _how _cmd .
 000007 parse arg args
 000008 args = space(args)
 000009 argc = words(args)
 000010 if argc = 0 then ,
 000011    xopt = "OPT(CTBADD)"
 000012 else ,
 000013    xopt = ""
 000014 If sysvar(SYSISPF) = "ACTIVE"  Then Do
 000015    zretc    = 4
 000016    zerralrm = "YES"
 000017    zerrhm   = "ISR2MACR"
 000018    zerrsm   = "ISPF already active"
 000019    zerrlm   = left(_cmd,8)"- Should run outside ISPF "
 000020    call   $ispex "SETMSG MSG(ISRZ002) "
 000021    exit
 000022 End
 000023 Address TSO "ZCLEAR"
 000024 xmsg = msg("OFF")
 000025 call $tsoex "PROFILE NOWTPMSG "
 000026 user = strip(Sysvar("SYSUID"))
 000027 pref = strip(Sysvar("SYSPREF"))
 000028 if pref = "" then ,
 000029    pref = "NOPREFIX"
 000030 else ,
 000031    call $tsoex "PROFILE NOPREFIX "
 000032
 000033 list = "ISPPROF DITPROF"
 000034 suff = "PROFILE DITPROF"
 000035 do i = 1 to words(list)
 000036    ddnm = word(list,i)
 000037    dsnm = $listdd(ddnm)
 000038    if dsnm = "" then do
 000039       dsnm = "'"|| user || ".ISPF." || word(suff,i) ||"'"
 000040       if 0 = listdsi(dsnm ) then ,
 000041          misc = ""
 000042       else ,
 000043          misc = "SPACE(8 0) CYLINDERS DIR(44) UNIT(SYSDA) " || ,
 000044                  "DSORG(PO) RECFM(F B) LRECL(80) BLKSIZE(27920) " || ,
 000045                  "NEW CATALOG "
 000046       call $alloc ddnm, dsnm, misc
 000047    end
 000048 end
 000049
 000050 list = "SYSPROC ISPPLIB ISPMLIB ISPSLIB ISPTLIB"
 000051 suff = "EXEC    PANELS  MSGS    SKELS   TABLES"
 000052 do i = 1 to words(list)
 000053    ddnm = word(list,i)
 000054    dsnm = "'"|| user || ".ISPF." || word(suff,i) ||"' "
 000055    if 0 = listdsi(dsnm) then ,
 000056       call $concat ddnm, dsnm, "BEFORE"
 000057 end
 000058
 000059 list = "ISPTABL ISPPARM "
 000060 suff = "TABLES  PARMS   "
 000061 do i = 1 to words(list)
 000062    ddnm = word(list,i)
 000063    dsnm = "'"|| user || ".ISPF." || word(suff,i) ||"'"
 000064    if 0 = listdsi(dsnm) then ,
 000065       call $alloc ddnm, dsnm, "SHR REUSE"
 000066 end
 000067 /* ditto       */
 000068 if 0 = listdsi("'DIT130.SDITMOD1'") then do
 000069    call $alloc  "DITPLIB", "DIT130.SDITPLIB", "SHR REUSE"
 000070    call $concat "ISPLLIB", "DIT130.SDITMOD1"
 000071 end
 000072
 000073 /* Rexx        */
 000074 if 0 = listdsi("'FAN140.SFANPENU'") then do
 000075    call $concat "SYSPROC", "FAN140.SFANCMD"
 000076    call $concat "ISPPLIB", "FAN140.SFANPENU"
 000077    call $concat "ISPMLIB", "FAN140.SFANMSEU"
 000078    call $concat "ISPSLIB", "FAN140.SFANSKL"
 000079 end
 000080
 000081 /* Filemanager */
 000082 if 0 = listdsi("'FMN810.SFMNMOD1'") then do
 000083    call $concat "ISPLLIB", "FMN810.SFMNMOD1"
 000084    call $concat "SYSPROC", "FMN810.SFMNEXEC"
 000085    call $concat "ISPPLIB", "FMN810.SFMNPENU"
 000086    call $concat "ISPMLIB", "FMN810.SFMNMENU"
 000087    call $concat "ISPSLIB", "FMN810.SFMNSLIB"
 000088    call $concat "ISPTLIB", "FMN810.SFMNTENU"
 000089 end
 000090
 000091 /* COBOL       */
 000092 if 0 = listdsi("'IGY410.SIGYCOMP'") then do
 000093    call $concat "ISPLLIB", "IGY410.SIGYCOMP"
 000094 end
 000095
 000096 /*             */
 000097 Address TSO "ISPSTART PANEL(ISRZPRIM)" xopt "NOLOGO NEWAPPL(ISR)"
 000098
 000099 if pref /= "NOPREFIX" then ,
 000100    call $tsoex "PROFILE PREFIX("pref") "
 000101
 000102 Exit 0
 000103
 000104 /* $tsoex      */
 000105 $tsoex:
 000106    tso_0tr = trace("O")
 000107    Address TSO arg(1)
 000108    tso_0rc = rc
 000109    trace value(tso_0tr)
 000110    return tso_0rc
 000111
 000112 /* $ispex      */
 000113 $ispex:
 000114    isp_0tr = trace("O")
 000115    Address ISPEXEC arg(1)
 000116    isp_0rc = rc
 000117    trace value(isp_0tr)
 000118    return isp_0rc
 000119
 000120 /* $alloc      */
 000121 $alloc:procedure
 000122    alc_0tr = trace("O")
 000123    alc_0ms = msg("OFF")
 000124    parse upper arg ddnm, dsnm, misc
 000125    ddnm = strip(ddnm)
 000126    dsnm = strip(dsnm)
 000127    dsnm = "DA("dsnm") "
 000128    misc = space(misc)
 000129    Address TSO "FREE  FI("ddnm") "
 000130    Address TSO "ALLOC FI("ddnm") " dsnm misc
 000131    alc_0rc = rc
 000132    z = msg(alc_0ms)
 000133    trace value(alc_0tr)
 000134    Return alc_0rc
 000135
 000136 /* $concat     */
 000137 $concat:procedure
 000138    cat_0tr = trace("O")
 000139    Parse upper arg ddnm, dsnm, posn
 000140    if strip(posn) = "BEFORE" then ,
 000141       temp = dsnm $listdd(ddnm)
 000142    else ,
 000143       temp = $listdd(ddnm) dsnm
 000144    temp = translate(temp," ","'")
 000145    temp = space(temp)
 000146    list = ""
 000147    Do i = 1 to words(temp)
 000148       work = word(temp,i)
 000149       work = "'"|| strip(work) ||"'"
 000150       if wordpos(work,list) = 0 then ,
 000151          list = list work
 000152    end
 000153    list = space(list)
 000154    Address TSO "FREE  FI("ddnm") "
 000155    Address TSO "ALLOC FI("ddnm") DA("list") SHR REUSE"
 000156    trace value(cat_0tr)
 000157    Return
 000158
 000159 /* $listdd     */
 000160 $listdd:procedure
 000161    Trace "O"
 000162    parse arg ddnm
 000163    ddnm      = translate(strip(ddnm))
 000164    list      = ""
 000165    if ddnm = ""      then ,
 000166       return list
 000167    tiotptr=24+ptr32(12+ptr32(ptr32(ptr32(16))))
 000168    tioelen=c2d(stg(tiotptr,1))
 000169    do until ( tioelen = 0 | tioeddn = ddnm )
 000170        tioeddn = strip(stg(tiotptr+4,8))
 000171        if tioeddn \= ddnm then ,
 000172            tiotptr=tiotptr+tioelen
 000173        tioelen=c2d(stg(tiotptr,1))
 000174    end
 000175    if tioeddn = ddnm then ,
 000176    Do Until ( tioelen=0 | stg(4+tiotptr,1) \= " " )
 000177       jfcb = swareq(stg(tiotptr+12,3))
 000178       list = list      strip(stg(jfcb,44))
 000179       tiotptr=tiotptr+tioelen
 000180       tioelen=c2d(stg(tiotptr,1))
 000181    End
 000182    list = space(list)
 000183    return list
 000184
 000185 /* $ctlblks    */
 000186 ptr32: Return c2d(Storage(d2x(Arg(1)),4))
 000187 ptr64: Return c2d(Storage(d2x(Arg(1)),8))
 000188 stg:   Return Storage(d2x(Arg(1)),Arg(2))
 000189
 000190 /* swareq      */
 000191 swareq:procedure
 000192     If right(c2x(Arg(1)),1) \= 'F' Then
 000193        return c2d(Arg(1))+16
 000194     sva = c2d(Arg(1))
 000195     tcb = ptr32(540)
 000196     jscb = ptr32(tcb+180)
 000197     qmpl = ptr32(jscb+244)                                           
 000198     qmat = ptr32(qmpl+24)
 000199     do while (sva>65536)
 000200       qmat = ptr32(qmat+12)
 000201       sva = sva - 65536
 000202     end
 000203     return ptr32(qmat+sva+1)+16
 ****** **************************** Bottom of Data ****************************


it works with a PRIMARY ISPF PANEL modified to accept the command CTBADD
to create a customized command table
Back to top
View user's profile Send private message
xknight

Active User


Joined: 22 Jan 2008
Posts: 117
Location: Liberty city

PostPosted: Fri Jan 18, 2013 12:18 pm
Reply with quote

Awesome. This would be pretty useful to many of us.

Thank you again for the snippet. icon_biggrin.gif
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Fri Jan 18, 2013 3:56 pm
Reply with quote

follow on ...
if somebody uses also the SYSEXEC ddname
just change

Code:
000050 list = "SYSPROC ISPPLIB ISPMLIB ISPSLIB ISPTLIB"
000051 suff = "EXEC    PANELS  MSGS    SKELS   TABLES"


to
Code:
000050 list = "SYSEXEC SYSPROC ISPPLIB ISPMLIB ISPSLIB ISPTLIB"
000051 suff = "EXEC    EXEC    PANELS  MSGS    SKELS   TABLES"
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> TSO/ISPF

 


Similar Topics
Topic Forum Replies
No new posts Is it possible to allocate DA dataset... All Other Mainframe Topics 5
No new posts Difference between sysexec and sysproc CLIST & REXX 6
No new posts How to force ISPF to allocate ISPF te... TSO/ISPF 9
This topic is locked: you cannot edit posts or make replies. Unable to allocate Message Library in... CLIST & REXX 13
No new posts Need to allocate SDSNLOAD for DSNREXX... DB2 16
Search our Forums:

Back to Top