Quantcast
Channel: IBM Mainframe Computers Forums
Viewing all 9405 articles
Browse latest View live

COBOL Programming :: RE: ERROR - NO ESD ENTRIES, EXECUTION IMPOSSIBLE while linkedit

$
0
0
Author: steve-myers
Posted: Thu Jun 21, 2018 9:46 pm (GMT 5.5)

  • You must compile the source program. The input to the Linkage Editor in the DD statement with DD name SYSLIN is the contents of the data set specified by the DD statement with DD name SYSLIN in the compiler JCL. It is not the source program.
  • The no esd message is the Linkage Editor telling you there was no valid object input.
  • Why are you using the Linkage Editor? It was replaced by the Binder more than 20 years ago! The Binder is faster, it does not have some silly restrictions the Linkage Editor has, and it may produce a load module that may load a tiny bit faster than the load module produced by the Linkage Editor.


DB2 :: RE: Usage/Utiliy of Plan in DB2

$
0
0
Author: Robert Sample
Posted: Thu Jun 21, 2018 9:49 pm (GMT 5.5)

From https://www.ibm.com/support/knowledgecenter/en/SSEPEK_10.0.0/intro/src/tpc/db2z_packagesandapplicationplans.html with emphasis added by me
Quote:
An application plan contains one or both of the following elements:

A list of package names

DB2 applications require an application plan. Packages make application programs more flexible and easier to maintain.
When IBM says something is required, they pretty much always mean that it is not optional.
_________________
TANSTAAFL

The first rule of code reuse is that the code needs to be worth re-using.

"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil." -- Donald Knuth

DB2 :: RE: Usage/Utiliy of Plan in DB2

$
0
0
Author: Rohit Umarjikar
Posted: Thu Jun 21, 2018 10:10 pm (GMT 5.5)

You certainly required to go back to DB2 basics and therefor start from here.
Packages and application plans
_________________
Regards,
Rohit Umarjikar
A leader is one who knows the way, goes the way, and shows the way.

COBOL Programming :: RE: ERROR - NO ESD ENTRIES, EXECUTION IMPOSSIBLE while linkedit

$
0
0
Author: Ashishpanpaliya
Posted: Thu Jun 21, 2018 11:13 pm (GMT 5.5)

Hi Robert,

Quote:
without stating precisely what "compile successfully" means -- did it get a 0 step condition code? did it get a 4 step condition code? did it get some other step condition code? did it generate output in ADCDA.SAMPLE.OBJ?

Yes, I got the maxcc zero on compilation job and object code is created.
Quote:
Third, the IEW0123 error message implies that either ADCDA.SAMPLE.OBJ is empty, or that it has no ESD entries (that is, it is not a good object module that can be used to generate a load module). Either way, this indicates that your compile was not as successful as you think.

Member is created but not sure how to verify wheteher object module good or not.
Quote:
Fourth, have you used the ISPF batch compile option successfully in the past? If not, why not try a compile process that you have used successfully in the past rather than going with something new?

as I said this a new zOS instance were setup and we are doing POC to proof that it can be use as alternative to current development process.
Quote:
You must compile the source program. The input to the Linkage Editor in the DD statement with DD name SYSLIN is the contents of the data set specified by the DD statement with DD name SYSLIN in the compiler JCL. It is not the source program.

I tried doing this and an got below error. copying snippet of error.
Also, tried to use Binder but its too failing.
Code:
IEW0222

IEW0222                 {           {          u                               \
IEW0222
IEW0222
IEW0123
IEW0143
                                             DIAGNOSTIC MESSAGE DIRECTORY
   IEW0222 ERROR - CARD PRINTED CONTAINS INVALID INPUT FROM OBJECT MODULE.
   IEW0123 ERROR - NO ESD ENTRIES, EXECUTION IMPOSSIBLE.
   IEW0143 ERROR - NO TEXT.

Error while using Binder option
Code:
IEW2456E 9207 SYMBOL CEESTART UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE DESIGNATED CALL LIBRARY.
IEW2456E 9207 SYMBOL CEEBETBL UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE DESIGNATED CALL LIBRARY.
IEW2456E 9207 SYMBOL IGZXBST3 UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE DESIGNATED CALL LIBRARY.
IEW2456E 9207 SYMBOL IGZXPRS UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE DESIGNATED CALL LIBRARY.
IEW2456E 9207 SYMBOL IGZXCMSG UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE DESIGNATED CALL LIBRARY.
IEW2456E 9207 SYMBOL IGZXDSP UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE DESIGNATED CALL LIBRARY.
IEW2456E 9207 SYMBOL IGZXTREC UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE DESIGNATED CALL LIBRARY.
IEW2456E 9207 SYMBOL IGZXRT1 UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE DESIGNATED CALL LIBRARY.
IEW2456E 9207 SYMBOL CEESG004 UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE DESIGNATED CALL LIBRARY.
IEW2456E 9207 SYMBOL IGZXBS61 UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE DESIGNATED CALL LIBRARY.
IEW2606S 4B39 MODULE INCORPORATES VERSION 3 PROGRAM OBJECT FEATURES AND CANNOT BE SAVED IN LOAD MODULE FORMAT.

COBOL Programming :: RE: ERROR - NO ESD ENTRIES, EXECUTION IMPOSSIBLE while linkedit

$
0
0
Author: Robert Sample
Posted: Thu Jun 21, 2018 11:49 pm (GMT 5.5)

Quote:
Member is created but not sure how to verify wheteher object module good or not.
Browse it -- it contains 80-byte records starting with record identifiers (such as ESD, RLD, TXT).

The IEW0222 / IEW0123 / IEW0143 messages again indicate that you are not generating and using the object deck correctly. Run your compile again with the options LIST,DECK,NODLL,MAP to verify that you are generating an object deck. And browse the object deck to make sure that it has data in 80-byte records. If you have appropriate access on your system, you could run this job:
Code:
//JOBNAME JOB ...
//             EXEC     PGM=AMBLIST
//SYSPRINT     DD       SYSOUT=A
//OBJMOD       DD       DISP=SHR,DSN=ADCDA.SAMPLE.OBJ
//SYSIN        DD       *
    LISTOBJ         DDN=OBJMOD,
        TITLE=('OBJECT MODULE LISTING FOR MYJOB',25)
/*
If you don't have compile option DECK (or OBJECT) specified, you may well get a zero step condition code on the COBOL compile, but you won't get an object deck generated and hence you will NEVER be able to link (or execute) the module.

When you do your linkage edit / bind, you will need //SYSLIB DD DISP=SHR,DSN=CEE.SCEELKED (or whatever the LE linkage library is called on your system). The unresolved references are because you need to include LE modules and there's no source for them in your JCL.

Are you really sure you belong on this forum? The types of issues you are having indicate you may do better on Beginners and Students Forum as it is more oriented to people with the kinds of questions you have asked.
_________________
TANSTAAFL

The first rule of code reuse is that the code needs to be worth re-using.

"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil." -- Donald Knuth

All Other Mainframe Topics :: RE: RACF- How to find the Last access of a DELETED RACF userid

$
0
0
Author: vasanthz
Posted: Fri Jun 22, 2018 2:02 am (GMT 5.5)

Hi,
Quote:
Or use type 32 SMF records which records TSO activity.

I understand SMF would have the data, but it would require processing really large amount of data to get TSO activity.
It might be easier to look at SYSLOG data if it is available for the message,
Code:
$HASP373 <USERID>   STARTED

However if the user logs onto CICS directly without TSO, then SYSLOG might not have the CICS logon. Also Type 30 might not capture CICS logon, I am not sure.

I think the sure fire way is to process SMF type 80, to catch all type of logons like Direct DB2 access, CICS logon, TSO etc..

Please correct me if I am wrong.
Regards,
Vasanth.S
_________________
If you wear a sock inside out, the entire universe is wearing your sock except for you. **works only on socks, right legged only**

All Other Mainframe Topics :: RE: RACF- How to find the Last access of a DELETED RACF userid

$
0
0
Author: Robert Sample
Posted: Fri Jun 22, 2018 2:13 am (GMT 5.5)

Vasanthz, your approach would only work if the site retains the SYSLOG for more than 6 months; I'm not sure there's a lot of sites that do so. Most sites retain SMF records for quite a long time, but not SYSLOG. The topic started by asking about deleted userid, which I assume rules out CICS logons -- if not, then the answer becomes more complicated since the type 30 records do NOT include CICS logons.
Quote:
I understand SMF would have the data, but it would require processing really large amount of data to get TSO activity.
Processing the type 80 SMF records would require more -- last week we generated 343 type 32 records and 4,982 type 80 records so almost 15 times the type 80 records compared to type 32. And the type 80 records require more analysis since you have to extract the correct event / code qualifiers.
_________________
TANSTAAFL

The first rule of code reuse is that the code needs to be worth re-using.

"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil." -- Donald Knuth

All Other Mainframe Topics :: RE: RACF- How to find the Last access of a DELETED RACF userid

$
0
0
Author: vasanthz
Posted: Fri Jun 22, 2018 2:57 am (GMT 5.5)

Quote:
your approach would only work if the site retains the SYSLOG for more than 6 months;

Yes :-) It would work only if the user is lucky to have SYSLOG for the required duration. We have it archived in SAR for 1 year. Which is the first point of investigation we use, before going to SMF.

Thanks for the information Robert.
Quote:
Processing the type 80 SMF records would require more -- last week we generated 343 type 32 records and 4,982 type 80 records so almost 15 times the type 80 records compared to type 32.
Ya I agree there are a lot of type 80 records for several events.

I just extracted only SMF type 80, Event 1 for a day and there were 86K records. which is kind of a lot.

Regards,
Vasanth.S
_________________
If you wear a sock inside out, the entire universe is wearing your sock except for you. **works only on socks, right legged only**


DFSORT/ICETOOL :: RE: To remove spaces from a VB file using Sort

$
0
0
Author: Selvarajars
Subject: Reply to: To remove spaces from a VB file using Sort
Posted: Fri Jun 22, 2018 8:34 am (GMT 5.5)

Hi Rohit,

Thanks a lot for your response.

I tried your code and it worked. The output now is

|TEST|COUNCILTAXBANDS|06010000096|20081010|20
|TEST|COUNCILTAXBANDS|NOMATCHINGRECORDSFOUND

I still need a small change here. If you see the NO MATCHING RECORDS FOUND in the above response, there is no space in between. It needs to be like this

|TEST|COUNCIL TAX BANDS|06010000096|20081010|20
|TEST|COUNCIL TAX BANDS|NO MATCHING RECORDS FOUND.

Please help me with the above. Meanwhile let me try something on the same.

Also please note that this position where this NO MATCHING RECORDS FOUND starts is not fixed. It varies.

I tried below code and it didn't work

OPTION COPY
INREC IFTHEN=(WHEN=INIT,
FINDREP=(STARTPOS=1,ENDPOS=999,IN=C' |',OUT=C'|'))

Thanks in advance.

DFSORT/ICETOOL :: RE: To remove spaces from a VB file using Sort

$
0
0
Author: Rohit Umarjikar
Posted: Fri Jun 22, 2018 9:14 am (GMT 5.5)

How many spaces are there in between “NO MATCHING RECORD FOUND” ? I thought it’s just one space by looking at it.
_________________
Regards,
Rohit Umarjikar
A leader is one who knows the way, goes the way, and shows the way.

DFSORT/ICETOOL :: RE: To remove spaces from a VB file using Sort

$
0
0
Author: Selvarajars
Subject: Reply to: To remove spaces from a VB file using Sort
Posted: Fri Jun 22, 2018 10:04 am (GMT 5.5)

You are rite. Its just 1 space, but the output we got at the first instance is not have space at all.

I used below code,

OPTION COPY
OUTREC IFTHEN=(WHEN=INIT,
FINDREP=(STARTPOS=1,ENDPOS=422,IN=C' |',OUT=C'|')),
IFTHEN=(WHEN=INIT,
FINDREP=(STARTPOS=1,ENDPOS=399,IN=C' ',OUT=C''))

and it worked now.

Thanks once again Rohit. Appreciate your timely help, it was much helpful.

COBOL Programming :: RE: ERROR - NO ESD ENTRIES, EXECUTION IMPOSSIBLE while linkedit

$
0
0
Author: Ashishpanpaliya
Posted: Fri Jun 22, 2018 8:22 pm (GMT 5.5)

I created the loadlib as Library(PDSE) data type and job ran fine.

COBOL Programming :: RE: ERROR - NO ESD ENTRIES, EXECUTION IMPOSSIBLE while linkedit

$
0
0
Author: steve-myers
Posted: Fri Jun 22, 2018 9:10 pm (GMT 5.5)

Thank you for letting us know.

DB2 :: Need help - DB2 Dynamic SQL Program embeded in Cobol

$
0
0
Author: NikhilGuptaGaya
Subject: Need help - DB2 Dynamic SQL Program embeded in Cobol
Posted: Sat Jun 23, 2018 1:58 pm (GMT 5.5)

Hi All,

I will need your help in clearing my doubts that haunted me for each time I start studying DB2.

Got following queries -

1. Regarding Prepare statement, let's take below example -

MOVE "DELETE FROM SAMPLETABLE WHERE DEPTNO = 'A00'"
TO STRING-VARIABLE.

EXEC SQL
PREPARE STMT1 FROM :STRING-VARIABLE;
END-EXEC.

EXEC SQL
EXECUTE STMT1;
END-EXEC.

I didn't get where "STMT1" is declared/defined in Working Storage of cobol program. Does it require to be defined in the working storage or not? if yes then how and what should be it's picture clause and length.

2) It's regarding Dynamic SQL....

Move "SQL query" to WorkingStorge-HostVariable.

Above "SQL Query" can be given at runtime using SYSIN DD control statement of JCL?

3) If "YES" that sql query can be given to the program using SYSIN DD DATA statement of JCL then how SQLDA becomes useful?

also can you give me one complete example of it having step by step without any confusion or missing declaring/definition in the working storage?

4) It's regarding varying list select query....let's take below example -

SQL to execute: SELECT PROJNO, PROJNAME, RESPEMP
FROM DSN8810.PROJ
WHERE PROJNO = 'A00'
AND PRSTDATE = '1988-10-10';

Move the "SQL to execute" to STRING-VARIABLE

EXEC SQL DECLARE CSR3 CURSOR FOR VLSQL;

EXEC SQL
PREPARE VLSQL INTO SQLDA FROM :STRING-VARIABLE;
EXEC SQL OPEN CSR3;

Load storage addresses into the SQLDA

Loop until no more rows to FETCH
EXEC SQL FETCH CSR3 USING DESCRIPTOR SQLDA;

EXEC SQL CLOSE CSR3;

In above query, I'm not getting followings -

a. where VLSQL is defined in program? what's its picture clause and length?
b. How SQLDA is used to define & mapped column of select query?
c. fetch cursor using decriptor SQLDA.....how columns are mapped to host variable? is it not required to be declared in the working storage section?

also could you explain below code snippet - it's not clear to me....

EXEC SQL INCLUDE SQLDA
EXEC SQL INCLUDE MINSQLDA

Read "SQL to execute" from external source

Move the "SQL to execute" to STRING-VARIABLE

EXEC SQL DECLARE CSR3 CURSOR FOR VLSQL;

EXEC SQL
PREPARE VLSQL INTO MINSQLDA FROM :STRING-VARIABLE;

IF SQLD IN MINSQLDA = 0
EXECUTE IMMEDIATE (SQL statement was not a SELECT)
FINISHED.

EXEC SQL
PREPARE VLSQL INTO SQLDA FROM :STRING-VARIABLE;
EXEC SQL OPEN CSR3;

Load storage addresses into the SQLDA

Loop until no more rows to FETCH
EXEC SQL FETCH CSR3 USING DESCRIPTOR SQLDA;

EXEC SQL CLOSE CSR3;

Please suggest...

Thank you....
_________________
Regards,
Nikhil Gupta

DB2 :: RE: Need help - DB2 Dynamic SQL Program embeded in Cobol

$
0
0
Author: Rohit Umarjikar
Posted: Sun Jun 24, 2018 12:10 am (GMT 5.5)

Quote:
I didn't get where "STMT1" is declared/defined in Working Storage of cobol program. Does it require to be defined in the working storage or not? if yes then how and what should be it's picture clause and length.
You really need to clear concepts about dynamic sqls , you don't need to declare. also read more here.
PREPARE

Quote:
EXEC SQL DECLARE CSR3 CURSOR FOR VLSQL;

VLSQL its part of Prepare statement, so no declaration.
_________________
Regards,
Rohit Umarjikar
A leader is one who knows the way, goes the way, and shows the way.


DB2 :: RE: Need help - DB2 Dynamic SQL Program embeded in Cobol

$
0
0
Author: NikhilGuptaGaya
Subject: Reply to: Need help - DB2 Dynamic SQL Program embeded in Cobol
Posted: Sun Jun 24, 2018 12:47 am (GMT 5.5)

Thank you Rohit for your response and time.

STMT1 ------> I picked it from the below snippet ---

MOVE "DELETE FROM SAMPLETABLE WHERE DEPTNO = 'A00'"
TO STRING-VARIABLE.

EXEC SQL
PREPARE STMT1 FROM :STRING-VARIABLE;
END-EXEC.

Now I am not understanding that where STMT1 is defined in cobol program and where it need to be defined? what's its picture clause & length?

As I understand that prepare "STMT1" from it came? somewhere stmt1 need to be declared as variable in the program as it's statement where best access path is stored and prepared from "host variable containing sql query".

Please suggest.
_________________
Regards,
Nikhil Gupta

DB2 :: RE: Need help - DB2 Dynamic SQL Program embeded in Cobol

$
0
0
Author: prino
Subject: Re: Reply to: Need help - DB2 Dynamic SQL Program embeded in Cobol
Posted: Sun Jun 24, 2018 1:46 am (GMT 5.5)

NikhilGuptaGaya wrote:
Please suggest.

This is a forum for experts, and experts are not afraid to RTFM.

DO SO, NOW!

And don't waste our time repeating the same question (that has already been answered) again!
_________________
Robert AH Prins
robert.ah.prins @ the.17+Gb.Google thingy
At last, a tiny bit of programming here... icon_smile.gif

DB2 :: RE: Need help - DB2 Dynamic SQL Program embeded in Cobol

$
0
0
Author: enrico-sorichetti
Subject: Reply to: Need help - DB2 Dynamic SQL Program embeded in Cobol
Posted: Sun Jun 24, 2018 1:47 am (GMT 5.5)

search the IDUG freebies for CSNTEPC
_________________
When I tell somebody to RTFM or STFW I usually have the page open in another tab/window of my browser,
so that I am sure that the information requested can be reached with a very small effort icon_cool.gif

DB2 :: RE: Need help - DB2 Dynamic SQL Program embeded in Cobol

$
0
0
Author: NikhilGuptaGaya
Subject: Reply to: Need help - DB2 Dynamic SQL Program embeded in Cobol
Posted: Sun Jun 24, 2018 3:05 pm (GMT 5.5)

Thank you Prino and also I apologies for my knowledge gap.

Thank you Enrico. I didn't get CSNTEPC meant for? I got IDUG community site over google and started going through it as well.

For now, I understood that "statement-name" followed prepare can be any word name that doesn't required to be declared/defined in the whole program. This need to be used directly and DB2 handles it own internally.

Thank you. Further, still above all I want to take your help in learning. please explain me below queries which I got after going through the code mentioned also below after the questions.

a) Why Prepare statement into SQLDA? Why can't I simply write Prepare Statement from :Host-Variable instead Prepare Statement into SQLDA from :Host-Variable?.

b) How "Load storage addresses into the SQLDA" is possible?

c) how parameter marker can be used in varying list select sql query?

d) I understand that for varying list sql query is not known beforehand. The query can be supplied at the run time in the program. For each run, sql query can vary also in the program or user can input any query at runtime using JCL control statement. Am I correct?

e) Why MINSQLDA is used? and also I've noticed at google that MinSQLDA < 50 or > 50 based on which we need to redefine whole prepare statement again into SQLDA descriptor. Why?

EXEC SQL INCLUDE SQLDA
EXEC SQL INCLUDE MINSQLDA

Read "SQL to execute" from external source

Move the "SQL to execute" to STRING-VARIABLE

EXEC SQL DECLARE CSR3 CURSOR FOR VLSQL;

EXEC SQL
PREPARE VLSQL INTO MINSQLDA FROM :STRING-VARIABLE;

IF SQLD IN MINSQLDA = 0
EXECUTE IMMEDIATE (SQL statement was not a SELECT)
FINISHED.

EXEC SQL
PREPARE VLSQL INTO SQLDA FROM :STRING-VARIABLE;
EXEC SQL OPEN CSR3;

Load storage addresses into the SQLDA

Loop until no more rows to FETCH
EXEC SQL FETCH CSR3 USING DESCRIPTOR SQLDA;

EXEC SQL CLOSE CSR3;
_________________
Regards,
Nikhil Gupta

All Other Mainframe Topics :: RE: RACF- How to find the Last access of a DELETED RACF userid

$
0
0
Author: rahul shanmuganatan
Posted: Mon Jun 25, 2018 12:10 pm (GMT 5.5)

Thanks All,

We used SMF record type 80 to 83 to find the last login , and Used ICETOOL to sort them properly.

Also we have a DB2 Table which contain all the CICS Programs and sessions used by User.

Were able to write some SQL and fetch the data from DB2 Table.

Thanks All ... It was really help full ..!

Regads,
Rahul
_________________
Rahul sham

Viewing all 9405 articles
Browse latest View live