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 

EQQMLIB DD STATEMENT MISSING

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> TSO and ISPF
View previous topic :: View next topic  
Author Message
misi01
Advanced


Joined: 02 Dec 2002
Posts: 629
Topics: 176
Location: Stockholm, Sweden

PostPosted: Fri Jan 21, 2011 5:43 am    Post subject: EQQMLIB DD STATEMENT MISSING Reply with quote

I have written 2 edit macros, one that massages cobol source, and the other that takes a backup of the current file being edited. If I run the BACKUP program in EDIT, no problem (it copies the file using LM services).

If I run the first edit macro on its own, it massages the data as expected.

However, if I call the backup macro from the first one, I get the following error message
Quote:

IEC130I EQQMLIB DD STATEMENT MISSING
IRX0250E System abend code 66D, reason code 00000002.
IRX0253E Abend in external function BACKUP.
IEA995I SYMPTOM DUMP OUTPUT
SYSTEM COMPLETION CODE=66D REASON CODE=00000002
TIME=11.38.11 SEQ=13146 CPU=0087 ASID=0315
PSW AT TIME OF ERROR 071C0000 8AA61CDA ILC 2 INTC 0D
NO ACTIVE MODULE FOUND
NAME=UNKNOWN
DATA AT PSW 0AA61CD4 - 41F00002 0A0D5850 B2444160
GR 0: 80000005 1: 0466D000
2: 008F4000 3: 00000000
4: 008AC658 5: 008F3A88
6: 00000001 7: 00F4D580
8: 8AA61C0A 9: 0000001A
A: 0AA637D8 B: 7F6155E0
C: 8AA61034 D: 7F6155E0
E: 00000019 F: 00000002
END OF SYMPTOM DUMP
32 +++ rc = backup()
IRX0040I Error running BOKACOPY, line 32: Incorrect call to routine


Is there some special method of calling the second macro from the first.

(I should mention that BACKUP contains (as its first line)
trace ?a
but I don't see any trace output at all)
Back to top
View user's profile Send private message Send e-mail
taltyman
JCL Forum Moderator
JCL Forum Moderator


Joined: 02 Dec 2002
Posts: 310
Topics: 8
Location: Texas

PostPosted: Fri Jan 21, 2011 9:43 am    Post subject: Reply with quote

My guess is that your call to backup is actually getting the Tivoli Workload Scheduler code instead of your macro. As a google search of EQQMLIB and BACKUP points to setting up ISPF to have that DD allocated. Can you just combine your 2 macros into one?
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


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

PostPosted: Fri Jan 21, 2011 11:14 am    Post subject: Re: EQQMLIB DD STATEMENT MISSING Reply with quote

misi01 wrote:


Is there some special method of calling the second macro from the first.

(I should mention that BACKUP contains (as its first line)
trace ?a
but I don't see any trace output at all)


The trace is done. You have an error on line 32.

Code:

    32 +++ rc = backup()                                           
IRX0040I Error running BOKACOPY, line 32: Incorrect call to routine


Also as taltyman pointed out , do not use the same names which might be system macros. Try renaming the macro to misibkcp and see if it works.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
misi01
Advanced


Joined: 02 Dec 2002
Posts: 629
Topics: 176
Location: Stockholm, Sweden

PostPosted: Mon Jan 24, 2011 4:51 am    Post subject: Thanks guys (so far) Reply with quote

Taltyman - don't want to combine the 2 macros for obvious reasons (potential double maintenance)

Copying the script to MISIBCKP and calling it via
Code:

rc = misibckp()

worked fine, but the command BACKUP is known now - don't really want to have to rename it and spread the information if not needed.

Isn't there some form of call like
Code:

exe 'xxxxxx.private.code(BACKUP)'

that I can use ????
Back to top
View user's profile Send private message Send e-mail
prino
Banned


Joined: 01 Feb 2007
Posts: 45
Topics: 5
Location: Oostende

PostPosted: Mon Jan 24, 2011 6:39 am    Post subject: Re: Thanks guys (so far) Reply with quote

misi01 wrote:
Taltyman - don't want to combine the 2 macros for obvious reasons (potential double maintenance)


Excuse me for being stupid, but if you combine them you would only have to maintain one single macro!
Back to top
View user's profile Send private message
misi01
Advanced


Joined: 02 Dec 2002
Posts: 629
Topics: 176
Location: Stockholm, Sweden

PostPosted: Mon Jan 24, 2011 6:58 am    Post subject: Reply with quote

Not so. Both macros can be (and are) run independently of each other. So if the user wants to run BACKUP, they can. If they want to run BOKACOPY (which CALLS backup) they can.

If I combined the 2, how would they run backup ? (And if the answer is to have that as a separate script, the you're back to maintaining 2 copies of the same code - one in BOKACOPY, one in BACKUP)
_________________
Michael
Back to top
View user's profile Send private message Send e-mail
prino
Banned


Joined: 01 Feb 2007
Posts: 45
Topics: 5
Location: Oostende

PostPosted: Wed Jan 26, 2011 9:08 am    Post subject: Reply with quote

misi01 wrote:
Not so. Both macros can be (and are) run independently of each other. So if the user wants to run BACKUP, they can. If they want to run BOKACOPY (which CALLS backup) they can.

If I combined the 2, how would they run backup ? (And if the answer is to have that as a separate script, the you're back to maintaining 2 copies of the same code - one in BOKACOPY, one in BACKUP)


Excuse me for being stupid again, but I have dozens of one-line macros/execs that all all a common back-end with a single parameter, allowing me to keep all common code in just a single member:

New BACKUP:
Code:
/* REXX */
call whatever 'backup'

New BOKACOPY:
Code:
/* REXX */
call whatever 'bokacopy'


Now, was that so difficult?
Back to top
View user's profile Send private message
misi01
Advanced


Joined: 02 Dec 2002
Posts: 629
Topics: 176
Location: Stockholm, Sweden

PostPosted: Wed Jan 26, 2011 10:26 am    Post subject: Reply with quote

Aha - now I'm with you !!! Too clever for me Very Happy

Having said that - SURELY there's a way of specifying which library a script should be run from, something like exe 'a.b.c(myscript)' or similar ?????
Back to top
View user's profile Send private message Send e-mail
Nic Clouston
Advanced


Joined: 01 Feb 2007
Posts: 1075
Topics: 7
Location: At Home

PostPosted: Wed Jan 26, 2011 2:33 pm    Post subject: Reply with quote

there is - and you just typed it. I had to use the same method the other day as my exec was called DB2 and that conflicted with DB2 itself. However, I do not know if EXE is allowed - probably is but I always use the long version, EXEC, so EXE looks strange to me!
_________________
Utility and Program control cards are NOT, repeat NOT, JCL.
Back to top
View user's profile Send private message
misi01
Advanced


Joined: 02 Dec 2002
Posts: 629
Topics: 176
Location: Stockholm, Sweden

PostPosted: Thu Jan 27, 2011 1:42 am    Post subject: Well - the idea was good in theory .... Reply with quote

I changed the code to
Code:

address TSO exec "'a.b.c(BACKUP)'"

and backup started to run. Trouble is, BACKUP contains code like ...
Code:

Parse Source . calltype .                               
If calltype = 'FUNCTION' ! calltype = 'SUBROUTINE' ! , 
   calltype = 'COMMAND' then                           
  /* Called from another script */                     
  parse arg calling_script, parms                       
Else                                                   
  /* Called from the command line */                   
  'isredit macro (parms) NOPROCESS'                     
.....
Address ISREDIT '(MEMB) = MEMBER' 


and the (MEMB) line failed with RC = 20 (after which the LM services failed as well).

I assume there's some way of setting up the environment so that a script called from another script still works.
The way I look at it, I have 3 options:-

1 Do what prino suggested and incorporate both scripts into one (lot of work I think)
2 Investigate what can be done to ensure BACKUP can be called from another script when in edit mode
3 Cheat and simply do a SAY to ask them if they've created a backup of their code - only YES allows them to continue.

I'm going to go with 3 as being the easiest
Back to top
View user's profile Send private message Send e-mail
prino
Banned


Joined: 01 Feb 2007
Posts: 45
Topics: 5
Location: Oostende

PostPosted: Thu Jan 27, 2011 9:05 am    Post subject: Reply with quote

You cannot use the ISREDIT environment outside the ISPF editor and that is exactly what you are now trying to do by invoking it using "ex 'what.ever.dsn(mymac)'"
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 -> TSO and ISPF 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