Re: SQLCODE=-904 during RUN

2016-11-04 Thread Janet Graff
>Dropping any table required by a package will invalidate that package. And 
>creating a new table, even if it has the same name, will not right your 
>>package, because that new table is a _different_ object.

>Why not simply TRUNCATE your tables if you want to empty them out before your 
>test run?

>Cheers,

>Jantje.

Jan!

Thanks!  Replacement the DROP/CREATE with the TRUNCATE statement has allowed 
the process to complete succesfully!

Thank you so much!
Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: SQLCODE=-904 during RUN

2016-11-04 Thread Janet Graff
>HI Janet,
>I noticed that the bind is binding DALLASA.DB2ZP.ZPDB2
>but the error is for DB2ZP.ZPDB2.1A320A2A009C519E.

>It looks like a mis-match between local and remote versions of the package.

>Regards,
> Ron

I've been looking for a way to have both the BIND and the RUN statements agree 
on the location of the package.

The BIND statement has this syntax

BIND PACKAGE__(_ ___ _.collection-id)__ _ 
_> |
   | |_location-name_|  
|_OWNER(authorization-id)_|   |

where I could specify a location-name on the collection id.  But DALLASA is the 
correct location so I don't need to change the BIND statement.


The RUN STATEMENT doesn't even specify a collection-id and has no syntax to 
specify the location

 | >>__RUN__ _PROGRAM(program-name)__ _ _ __> |
   |  ||_PLAN(plan-name)_| ||
   |  |_CP__PLAN(plan-name)||
   ||
   | >__ ___ __ _ ___>< |
   ||_LIBRARY(library-name)_|  |_PARMS(parameter-string)_|  |

So how do I get the RUN statement to use the right package?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: SQLCODE=-904 during RUN

2016-11-02 Thread Janet Graff
>I am not getting the DROP/CREATE table part here... Are these the tables that 
>are used in your program? Because if they are, then dropping them >will 
>invalidate all packages accessing them. And re-creating the tables will *not* 
>rebind your packages. After all, even if they have the same name, >your tables 
>will be different, new objects. And any program that uses the invalidated 
>packages will fail...

>Cheers,

>Jantje.

Jan,

Yes this is part of my test automation so to make sure the result sets are 
clean I am dropping and recreating the tables every time through.

Are you saying I need to sequence this?  So the Drop/Create is done and THEN 
then BIND?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: SQLCODE=-904 during RUN

2016-11-02 Thread Janet Graff
>HI Janet,
 >I noticed that the bind is binding DALLASA.DB2ZP.ZPDB2
>but the error is for DB2ZP.ZPDB2.1A320A2A009C519E.
>
>It looks like a mis-match between local and remote versions of the package.
>
>Regards,
 > Ron

Ron,

What step do I fix that on and what keyword do I specify?

Thanks!
Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: SQLCODE=-904 during RUN

2016-11-01 Thread Janet Graff
>On Fri, 28 Oct 2016 18:12:01 -0500, Janet Graff <janet.gr...@yahoo.com> wrote:

>>I have the program pre-compile, compile, pre-linking, linking and binding all 
>>with return code zeros.
>Can we see the JCL, or better still, the entire job log?

...

>Jantje.

Here's the output from the bind
Again JES data truncated on the right

13.57.58 JOB03253  MONDAY,31 OCT 2016   
13.57.58 JOB03253  IRR010I  USERID JIG  IS ASSIGNED TO THIS JOB.
13.57.59 JOB03253  ICH70001I JIG  LAST ACCESS AT 13:57:42 ON MONDAY, OCTOBER
13.57.59 JOB03253  $HASP373 JIGDB2   STARTED - INIT 2- CLASS A - SYS S0W1   
13.58.00 JOB03253  -  -TIMINGS (MINS.)--
13.58.00 JOB03253  -STEPNAME PROCSTEPRC   EXCP   CONN   TCB   SRB  C
13.58.00 JOB03253  -RUN  00212 30   .00   .00   
13.58.00 JOB03253  -JIGDB2   ENDED.  NAME- TOTAL TCB CPU TIM
13.58.00 JOB03253  $HASP395 JIGDB2   ENDED  
-- JES2 JOB STATISTICS --   
  31 OCT 2016 JOB EXECUTION DATE
   39 CARDS READ
  174 SYSOUT PRINT RECORDS  
0 SYSOUT PUNCH RECORDS  
7 SYSOUT SPOOL KBYTES   
 0.01 MINUTES EXECUTION TIME
1 //JIGDB2 JOB MSGCLASS=H,MSGLEVEL=(1,1),NOTIFY= 
  IEFC653I SUBSTITUTION JCL - MSGCLASS=H,MSGLEVEL=(1,1),NOTIFY=JIG  
2 //RUN  EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)  
3 //STEPLIB   DD  DISP=SHR,DSN=DSNA10.DBAG.RUNLIB.LOAD  
4 //SYSLIBDD  DISP=SHR,DSN=JIG.BASE710.LOAD 
5 //  DD  DISP=SHR,DSN=DSNA10.DBAG.RUNLIB.LOAD  
6 //DBRMLIB   DD  DISP=SHR,DSN=JIG.DBAG.DBRMLIB.DATA
7 //SYSTSPRT  DD  SYSOUT=*  
8 //SYSPRINT  DD  SYSOUT=*  
9 //CEEDUMP   DD  SYSOUT=*  
  //*SYSUDUMP  DD  SYSOUT=* 
   10 //ZPIDWAGA  DD  SYSOUT=*  
   11 //SYSOUTDD  SYSOUT=*  
   12 //REPORTDD  SYSOUT=*  
   13 //SYSIN DD  * 
  //*   
   14 //SYSTSIN   DD  * 
  //*   
ICH70001I JIG  LAST ACCESS AT 13:57:42 ON MONDAY, OCTOBER 31, 2016  
IEF236I ALLOC. FOR JIGDB2 RUN
IEF237I 18C7 ALLOCATED TO STEPLIB
IEF237I 0D39 ALLOCATED TO SYSLIB 
IEF237I 18C7 ALLOCATED TO
IEF237I 0D37 ALLOCATED TO DBRMLIB
IEF237I JES2 ALLOCATED TO SYSTSPRT   
IEF237I JES2 ALLOCATED TO SYSPRINT   
IEF237I JES2 ALLOCATED TO CEEDUMP
IEF237I JES2 ALLOCATED TO ZPIDWAGA   
IEF237I JES2 ALLOCATED TO SYSOUT 
IEF237I JES2 ALLOCATED TO REPORT 
IEF237I JES2 ALLOCATED TO SYSIN  
IEF237I JES2 ALLOCATED TO SYSTSIN
IEF237I 18C7 ALLOCATED TO SYS1   
IEF285I   DSNA10.DBAG.RUNLIB.LOAD  KEPT  
IEF285I   VOL SER NOS= VPDA1D.   
IEF142I JIGDB2 RUN - STEP WAS EXECUTED - COND CODE   
IEF285I   DSNA10.DBAG.RUNLIB.LOAD  KEPT  
IEF285I   VOL SER NOS= VPDA1D.   
IEF285I   JIG.BASE710.LOAD KEPT  
IEF285I   VOL SER NOS= VPWRKJ.   
IEF285I   DSNA10.DBAG.RUNLIB.LOAD  KEPT  
IEF285I   VOL SER NOS= VPDA1D.   
IEF285I   J

Re: SQLCODE=-904 during RUN

2016-10-31 Thread Janet Graff
>On Fri, 28 Oct 2016 18:12:01 -0500, Janet Graff <janet.gr...@yahoo.com> wrote:

>>I have the program pre-compile, compile, pre-linking, linking and binding all 
>>with return code zeros.
>Can we see the JCL, or better still, the entire job log?

>>
>>But when I try to RUN I get a -904 indicating that the resource is 
>>unavailable because the package is in a non-executable state.  Since the BIND 
>>>output all says it completed successfully I must be misspecifying something.
>>
>Same thing: can we see the complete run?

>Cheers,

>Jantje.

Truncations on the right side of the JES output, let me know if you need that 
data


   J E S 2  J O B  L O G  --  S Y S T E M  S 0 W 1  --  N O D E 

14.00.14 JOB03255  MONDAY,31 OCT 2016   
14.00.14 JOB03255  IRR010I  USERID JIG  IS ASSIGNED TO THIS JOB.
14.00.14 JOB03255  ICH70001I JIG  LAST ACCESS AT 13:59:56 ON MONDAY, OCTOBER
14.00.14 JOB03255  $HASP373 JIGDB2R  STARTED - INIT 2- CLASS A - SYS S0W1   
14.00.16 JOB03255  -  -TIMINGS (MINS.)--
14.00.16 JOB03255  -STEPNAME PROCSTEPRC   EXCP   CONN   TCB   SRB  C
14.00.16 JOB03255  -RUN  00   2757528   .00   .00   
14.00.16 JOB03255  -JIGDB2R  ENDED.  NAME- TOTAL TCB CPU TIM
14.00.16 JOB03255  $HASP395 JIGDB2R  ENDED  
-- JES2 JOB STATISTICS --   
  31 OCT 2016 JOB EXECUTION DATE
   31 CARDS READ
  107 SYSOUT PRINT RECORDS  
0 SYSOUT PUNCH RECORDS  
7 SYSOUT SPOOL KBYTES   
 0.02 MINUTES EXECUTION TIME
1 //JIGDB2R JOB MSGCLASS=H,MSGLEVEL=(1,1),NOTIFY=,REGION=0M  
  //*   
  IEFC653I SUBSTITUTION JCL - MSGCLASS=H,MSGLEVEL=(1,1),NOTIFY=JIG,REGIO
2 //JOBLIB  DD  DSN=DSNA10.SDSNLOAD,DISP=SHR
3 //DD  DSN=CEE.SCEERUN,DISP=SHR
  //*   
  //* GRANT AND CREATE TABLE
  //* SEPARATE FROM EXECUTION OF PROGRAM
  //*   
  //*   
4 //RUN  EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)  
  //*SYSLIBDD  DISP=SHR,DSN=JIG.BASE710.LOAD
  //* DD  DISP=SHR,DSN=DSNA10.DBAG.RUNLIB.LOAD  
5 //SYSLIBDD  DISP=SHR,DSN=DSNA10.DBAG.RUNLIB.LOAD  
6 //DBRMLIB   DD  DISP=SHR,DSN=JIG.DBAG.DBRMLIB.DATA
  //*DBRMLIB   DD  DISP=SHR,DSN=DSNA10.DBAG.DBRMLIB.DATA
7 //SYSTSPRT  DD  SYSOUT=*  
8 //SYSPRINT  DD  SYSOUT=*  
9 //CEEDUMP   DD  SYSOUT=*  
J E S 2  J O B  L O G  --  S Y S T E M  S 0 W 1  --  N O D 
E 

14.00.14 JOB03255  MONDAY,31 OCT 2016   
14.00.14 JOB03255  IRR010I  USERID JIG  IS ASSIGNED TO THIS JOB.
14.00.14 JOB03255  ICH70001I JIG  LAST ACCESS AT 13:59:56 ON MONDAY, OCTOBER
14.00.14 JOB03255  $HASP373 JIGDB2R  STARTED - INIT 2- CLASS A - SYS S0W1   
14.00.16 JOB03255  -  -TIMINGS (MINS.)--
14.00.16 JOB03255  -STEPNAME PROCSTEPRC   EXCP   CONN   TCB   SRB  C
14.00.16 JOB03255  -RUN  00   2757528   .00   .00   
14.00.16 JOB03255  -JIGDB2R  ENDED.  NAME- TOTAL TCB CPU TIM
14.00.16 JOB03255  $HASP395 JIGDB2R  ENDED  
-- JES2 JOB STATISTICS --   
  31 OCT 2016 JOB EXECUTION DATE
   31 CARDS READ
  107 SYSOUT PRINT RECORDS  
0 SYSOUT PUNCH RECORDS  
7 SYSOUT SPOOL K

SQLCODE=-904 during RUN

2016-10-28 Thread Janet Graff
I have written a simple DB2 program that I'd like to run from Batch.  I'm on 
IBM's Dallas service so I have a limited access to certain datasets.
I have the program pre-compile, compile, pre-linking, linking and binding all 
with return code zeros.

But when I try to RUN I get a -904 indicating that the resource is unavailable 
because the package is in a non-executable state.  Since the BIND output all 
says it completed successfully I must be misspecifying something.

Here's the error

SQLCODE=446704536 -904  
 DSNT408I SQLCODE = -904, ERROR:  UNSUCCESSFUL EXECUTION CAUSED BY AN 
UNAVAILABLE RESOURCE. REASON 00E30305, TYPE OF
  RESOURCE 0801, AND RESOURCE NAME DB2ZP.ZPDB2.1A320A2A009C519E 
 DSNT418I SQLSTATE   = 57011 SQLSTATE RETURN CODE   
 DSNT415I SQLERRP= DSNXEAAL SQL PROCEDURE DETECTING ERROR   
 DSNT416I SQLERRD= -160  0  0  -1  0  0 SQL DIAGNOSTIC INFORMATION  
 DSNT416I SQLERRD= X'FF60'  X''  X''  X''  
X''  X'' SQL DIAGNOSTIC
  INFORMATION

These are the run statements

 DSN SYSTEM(DBAG)   
 RUN  PROGRAM(ZPDB2) PLAN(DB2ZP) -  
  LIB('JIG.BASE710.LOAD')   
 END   

Here's the bind output

READY   
 DSN SYSTEM(DBAG)   
DSN 
 BIND PACKAGE(DB2ZP) MEMBER(ZPDB2) ACT(REP) ISO(CS) CURRENTDATA(YES) 
ENCODING(EBCDIC)  
 DSNT254I  -DBAG DSNTBCM2 BIND OPTIONS FOR   
PACKAGE = DALLASA.DB2ZP.ZPDB2.() 
ACTIONREPLACE
OWNER JIG
QUALIFIER JIG
VALIDATE  RUN
EXPLAIN   NO 
ISOLATION CS 
RELEASE  
COPY 
APREUSE  
APCOMPARE
APRETAINDUP  
QUERYACCELERATION
GETACCELARCHIVE  
 DSNT255I  -DBAG DSNTBCM2 BIND OPTIONS FOR   
PACKAGE = DALLASA.DB2ZP.ZPDB2.() 
SQLERROR  NOPACKAGE  
CURRENTDATA   YES
DEGREE1  
DYNAMICRULES 
DEFER
NOREOPT   VARS   
KEEPDYNAMIC   NO 
IMMEDWRITEINHERITFROMPLAN
DBPROTOCOLDRDA   
OPTHINT  
ENCODING  EBCDIC(01047)  
PLANMGMT  OFF
PLANMGMTSCOPE STATIC 
CONCURRENTACCESSRESOLUTION   
EXTENDEDINDICATOR
PATH   
 DSNT232I  -DBAG SUCCESSFUL BIND FOR  
PACKAGE = DALLASA.DB2ZP.ZPDB2.()  
 DSN  
  BIND PLAN(DB2ZP) PKLIST(DB2ZP.*) ACT(REP) ISO(CS) CURRENTDATA(YES) 
ENCODING(EBCDIC)
 DSNT252I  -DBAG DSNTBCM1 BIND OPTIONS FOR PLAN DB2ZP 
ACTIONREPLACE 
OWNER JIG 
VALIDATE  RUN 
ISOLATION CS  
ACQUIRE   USE 
RELEASE   COMMIT  
EXPLAIN   NO  
DYNAMICRULES  RUN 
 DSNT253I  -DBAG DSNTBCM1 BIND OPTIONS FOR PLAN DB2ZP 
NODEFER   PREPARE 
CACHESIZE 3072
QUALIFIER JIG 
1   CURRENTSERVER 
CURRENTDATA   YES 
DEGREE1   
SQLRULES 

Re: Changing the primary AUTHID using RACROUTE

2016-10-13 Thread Janet Graff
>For simplicity and safety,you could attach a subtask, and do the VERIFY (and 
>the cross-memory call) from that subtask. Then, on the VERIFY, if you >omit 
>the ACEE parameter RACF will (as documented in the RACROUTE book) put the ACEE 
>address into TCBSENV for you. If the cross-memory server >is setup correctly 
>it should find the ACEE there.

>-- 
>Walt

Walt (and everyone else!)

Thank you so much!  That did it.  My test program is exhibiting the same 
behaviors that I get when invoking my system level task from CICS etc.

I can't thank you enough for all your help!

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Changing the primary AUTHID using RACROUTE

2016-10-13 Thread Janet Graff
>I'm afraid we still don't know enough about how your cross-memory server is 
>operating. In an earlier post you implied that it will choose whether to >use 
>the primary or secondary ID. How does it make that choice? And how does it 
>find both of them.

>If you change ASXBSENV you are changing the primary ID, not creating a 
>secondary one as (I think) you mentioned. That is dangerous and may ?>have 
>side effects you haven't thought about.

>For simplicity and safety,you could attach a subtask, and do the VERIFY (and 
>the cross-memory call) from that subtask. Then, on the VERIFY, if you >omit 
>the ACEE parameter RACF will (as documented in the RACROUTE book) put the ACEE 
>address into TCBSENV for you. If the cross-memory server >is setup correctly 
>it should find the ACEE there.

>-- 
>Walt

Thanks Walt!

The cross memory server is designed to handle callers from CICS, IDMS and other 
environments like that.  For my test program I want to simulate the secondary 
ACEE that occurs in those environments without the test harness overhead of 
using those actual environments.  So really do need a primary ACEE and a 
secondary ACEE.

I will code up the attached subtask.

For my clarification,  I current have just the one main task that does a 
RACROUTE REQUEST=VERIFY,ENVIR=CREATE that specifies the USERID, PASSWORD and 
the ACEE as follows

 RACROUTE REQUEST=VERIFY,WORKA=(R7),SYSTEM=YES,PASSCHK=YES,X
   ENVIR=CREATE,USERID=(R5),PASSWRD=(R6),ACEE=(R8),X
   GROUP=(R10),X
   RELEASE=1.9.2,MF=(E,RACRWORK)

And you are advising me to put this in an attached subtask to my test program 
and remove the ACEE parameter?  Will I need to specify additional parameters in 
that case?  ISTR that without the ACEE parameter I was getting the '*' in the 
ACEE's userid as per the doc (sort of), but that was when I was running the 
VERIFY in the main task.

"1. If you omit USERID, GROUP, and PASSWRD and if you code ENVIR=CREATE or if 
ENVIR=CREATE is used as the default, you receive a return code of X'00' and 
obtain an ACEE that contains an asterisk (*) (X'5C') in place of the USERID and 
group name. "

Thanks!
Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Changing the primary AUTHID using RACROUTE

2016-10-12 Thread Janet Graff
>>Put the address of the new ACEE in ASCBSENV and/or TCBSENV as appropriate?

>>J R

>I think it's ASXBSENV. 

>For my test application TCBSENV is 0.

>I get a S0C4 when I do attempt to replace ASXBSENV despite being authorized 
>and in supervisor mode.  It feels like there is a RACROUTE macro or 
>>equivalent that says "start using this ACEE" which will put the value in 
>ASXBSENV and probably update ASXBUSER?  

>I see references to the RACINIT macro which has similar parameters but it 
>appears to be a parallel function to RACROUTE ENVIR=CREATE and not a 
>>sequencing thing, that is you aren't supposed to do RACROUTE ENVIR=CREATE and 
>then RACINIT ENVIR=CREATE. 

>For what I'm trying to do, that is create a new secondary ACEE and run under 
>this new ACEE's authority, would the RACINIT macro be more >appropriate?

>Janet

Aha, I just released I have to be in Key 0 to store into the ASXB.  Can someone 
confirm that to change the ACEE in use, I have to update ASXBSENV? That there 
is no macro that will do this for me?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Changing the primary AUTHID using RACROUTE

2016-10-12 Thread Janet Graff
>Put the address of the new ACEE in ASCBSENV and/or TCBSENV as appropriate?

>J R

I think it's ASXBSENV. 

For my test application TCBSENV is 0.

I get a S0C4 when I do attempt to replace ASXBSENV despite being authorized and 
in supervisor mode.  It feels like there is a RACROUTE macro or equivalent that 
says "start using this ACEE" which will put the value in ASXBSENV and probably 
update ASXBUSER?  

I see references to the RACINIT macro which has similar parameters but it 
appears to be a parallel function to RACROUTE ENVIR=CREATE and not a sequencing 
thing, that is you aren't supposed to do RACROUTE ENVIR=CREATE and then RACINIT 
ENVIR=CREATE. 

For what I'm trying to do, that is create a new secondary ACEE and run under 
this new ACEE's authority, would the RACINIT macro be more appropriate?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Changing the primary AUTHID using RACROUTE

2016-10-12 Thread Janet Graff
>Thanks for the info. It helps a bit, but not enough. 

>First, just to make sure you know, you can't do a RACROUTE REQUEST=VERIFY 
>while running in cross-memory mode. You would need to create a >request for 
>another task running in your server primary, queue the request to the task, 
>and suspend the cross-memory task until you have an >answer.

>Next, doing a VERIFY for a user ID is not  really sufficient in the general 
>case, as there are many other aspects of the user's security environment >that 
>could affect the answer to an authorization check (group name, terminal name 
>or other port of entry, SECLABEL etc.). At a minimum you should >use the 
>UTOKEN as input to the VERIFY (if you have to create a new ACEE) but even that 
>is not sufficient in some cases. So, if you're doing this for a >product (as 
>opposed to a bit of home-grown code just for your own company's use) then you 
>need to rethink how much data you capture. For >example, it may be much better 
>to use a RACROUTE REQUEST=EXTRACT TYPE=ENVRXTR to get a copy of the user's 
>ACEE, and then recreate it in >your address space using RACROUTE 
>REQUEST=VERIFY that specifies ENVIRIN.

>But even before that, what kind of checks do you plan to make using the ACEE 
>once you have it? (What resource class, for example?) If you're lucky >they 
>will be checks that you could perform using the existing user's ACEE rather 
>than rebuilding one. That would be both more efficient, and give you >a much 
>simpler overall design.

-- 
>Walt

Walt,

Thanks for the reply!

The cross memory mode for the system level task code is all written and has 
been in the field for many years.  (chances are I'm going to bolix up this 
explanation but I'll give it a go) The system level code uses an RACROUTE 
FASTAUTH or AUTH to verify General Resource Profiles with a pointer to the 
callers ACEE for it's own use.  It doesn't EXTRACT anything from the ACEE but 
uses it for authorization checks. In any case my little test program doesn't 
get involved in all that.  

What I'm trying to write is a stand alone assembler test program, that runs in 
Batch under a userid.  The test program creates a secondary ACEE using a hard 
coded userid and password that is just used for testing purposes.  Then using 
this secondary ACEE it invokes the cross memory services support to the system 
level task that will eventually use either the primary or the secondary ACEE to 
validate access to resources.

So I've got the return zero creating the secondary ACEE, but it appears that 
after that, when I invoke the cross memory services it's done using the ACEE 
from the primary id.  What do I have to do to switch to using the secondary 
ACEE?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Changing the primary AUTHID using RACROUTE

2016-10-12 Thread Janet Graff
>It would help to know why you want to do that, and what you intend to do after 
>you have the ACEE. It's possible that there are alternatives that >would be 
>better, which we might recommend if  we had some more information.

>However, you don't _need_ a  TERMID unless you're doing a RACROUTE 
>REQUEST=VERIFY for a user's TSO session. It's certainly not related to the 
>>error message you're getting, which is quite clearly due to an invalid user 
>ID. You probably got that error message because you've said that the >ength of 
>the user ID is 8, but MYUSER is only 6 characters long. That won't work.

>-- 
>Walt

Walt,

I am writing a test program for a system level task.  The system level task 
accepts cross memory service calls from various address spaces including CICS, 
IDMS and IMS so it needs to be able to handle secondary ACEEs.  Instead of 
bringing up a more complicated subsystem in my automation tests I'd like to 
write a neat standalone assembler program that creates a secondary ACEE and 
then uses it to make the cross memory services call.

With your's and Charles' help I now have the ENVIR=CREATE working and I've 
determined that the ENVIR=CHANGE does me no good because it can only modify the 
GROUP and the not the userid.

I expected that the ENVIR=CREATE would create the ACEE and start using it.  
However I'm still getting indications after the ENVIR=CREATE that the cross 
memory services call is still using the initial userid and not the userid from 
the secondary ACEE.

Is there another step I should do before performing the cross memory services 
call to make the new ACEE active?  I also expected to get a message from RACF 
indicating the switch to the new ACEE with maybe an ICH message showing the new 
userid, which I'm not getting and is leading me to believe that I haven't 
actually switched to the new ACEE.

Thanks!
Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Changing the primary AUTHID using RACROUTE

2016-10-12 Thread Janet Graff
>From your current ACEE?

>http://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.ichb200/ich2b2_ACEE_and_related_control_blocks.htm
> 

>52 (34) ADDRESS 4 ACEETRMP Address that points to the terminal ID. The field is
>zero for non-terminal users.

>Charles

Yes, the Batch job is run under the job's userid.  I want to then 
programmatically change to a second userid and create an ACEE.

Do I have to get hold of my current ACEE and update the USERID/PASSWRD/GROUP 
fields or can I just issue the code I specified in my original post?

I changed the TERMID to point to a D'0' but I'm getting the same error message

ICH408I JOB(JIGRACF ) STEP(RUN )  944
  LOGON/JOB INITIATION - USER AT TERMINAL  NOT RACF-DEFINED  
IRR012I  VERIFICATION FAILED. USER PROFILE NOT FOUND.

Which I think implies that it thinks I'm a terminal user, even though it has 
binary zeros for the TERMINAL value in the ICH408I message.
Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Changing the primary AUTHID using RACROUTE

2016-10-12 Thread Janet Graff
I have an application and I want to change the the userid.  I have the RACF 
macros coded but I'm having trouble coming up with the source of TERMID.  Where 
do I get the TERMID?

The code in question looks like this:

 MODESET MODE=SUP
 LAR7,RACFWORK
 MVC   RACRWORK,RACRLIST
 MVC   USERLEN,8
 MVC   USERID,=CL8'MYUSER   '
 MVC   PSWLEN,8
 MVC   PASSWD,=CL8''
 MVC   MYACEE,=F'0'
 MVC   MYTERM,=CL8''  < clearly I need a value here

 LAR5,USERLEN
 LAR6,PSWLEN
 LAR8,MYACEE
 LAR9,MYTERM
 RACROUTE REQUEST=VERIFY,WORKA=(R7),SYSTEM=YES,PASSCHK=YES,X
   ENVIR=CREATE,USERID=(R5),PASSWRD=(R6),ACEE=(R8), 
   X
   TERMID=(R9), 
   X
   RELEASE=1.9.2,MF=(E,RACRWORK)
 STR15,RC
...
 MVC   RACRWORK,RACRLIS2
 LAR8,MYACEE
 RACROUTE REQUEST=VERIFY,WORKA=(R7),SYSTEM=YES,PASSCHK=NO, X
   ENVIR=CHANGE,ACEE=(R8),  
   X
   RELEASE=1.9.2,MF=(E,RACRWORK)
 STR15,RC
 MODESET MODE=PROB

The error I'm getting is this

ICH408I JOB(JIGRACF ) STEP(RUN )  790
  LOGON/JOB INITIATION - USER AT TERMINAL  NOT RACF-DEFINED  

Which clearly says I need to provide a TERMID (or equivalent) on the 
ENVIR=CREATE.

Where do I get the TERMID?

Also I suspect I might be archaic by using RELEASE=1.9.2, is there a more 
appropriate value for this decade?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Dump in 64 bit mode "Storage around GPR2 is invalid."

2016-08-29 Thread Janet Graff
Charles,

It doesn't appear that the register conventions for XPLINK and non-XPLINK are 
compatible.  If one were marketing an Assembler API would you have to deliver 
two versions?  One XPLINK and one non-XPLINK?

Janet

>@Janet, it occurred to me that you are talking about both C and "XGR." That to 
>me implies that you are calling assembler from C (or perhaps vice >versa) -- 
>is that right?

>If so, do you know that XPLINK (which I believe is implied by AMODE 64) is 
>something you *do* have to know about? It's another brave new world: >you 
>can't just do STM R14,R12,12(R13) any more.

>Search the KC for EDCXPRLG.

>Charles

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Dump in 64 bit mode "Storage around GPR2 is invalid."

2016-08-25 Thread Janet Graff
Thanks Charles!

>Why are you using the AIX compiler reference? There is a z/OS compiler 
>reference manual, you know. Covers USS as well as legacy MVS.
>http://www-01.ibm.com/support/docview.wss?uid=swg27036892 

>Charles

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Dump in 64 bit mode "Storage around GPR2 is invalid."

2016-08-25 Thread Janet Graff
I don't know if I'm XPLINK or standard linkage.
I'm using the following command to link

xlc -o MY64.exe -q64 VSHVOLTG.o VSHVOLT.o VSHMSG.o MY64.o

where would I look to see if XPLINK is turned on?  How would I turn it off?  I 
can't find XPLINK mentioned in the Compiler Reference V10.1 IBM XL C for AIX, 
V10.1 http://www-01.ibm.com/support/docview.wss?uid=swg27012874=1.

Regarding overlays, anything is possible but it's highly unlikely.  I've been 
forcing dumps every couple of instructions to make sure things are clean. The 
registers in the downstack area don't all reflect the actual state of things 
when I force the abends.  Can do a LA R5,186 and the dump will still show R5 
containing all Beees.

 I wish I could use TSO TEST but I don't know how to get it to run on a USS 
executable.

Janet

>Are you XPLINK or standard linkage?

>Any *possibility* that you have overlaid the stacked save areas in your code? 
>R12:R15 = 404040... looks mighty suspicious to me.

>Charles

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Dump in 64 bit mode "Storage around GPR2 is invalid."

2016-08-25 Thread Janet Graff
Here's an example

  Parameters, Registers, and Variables for Active Routines: 
main (DSA address 0048082FEA20):
  DOWNSTACK DSA 
  Saved Registers:  
GPR0.   GPR1.   GPR2. 
*  GPR3. 
GPR4. 0048082FEA20  GPR5.   GPR6. 
1AC0E618  GPR7. 0048082FF2C8
GPR8. 0005  GPR9.   GPR10 
0001  GPR11 0004
GPR12 4040404040404040  GPR13 4040404040404040  GPR14 
4040404040404040  GPR15 4040404040404040

...

GPREG STORAGE:  
  Storage around GPR0  is invalid.  
  Storage around GPR1  is invalid.  
  Storage around GPR2  is invalid.  
  Storage around GPR3  is invalid.  
  Storage around GPR4 (0048082FEA20)
+0800 0048082FF220  0048 082FF260 0048 08600060  |..2-..

I have XGR'd GPR2 and GPR3 before the abend and GPR5 definitely does not 
contain a bunch Beees.

The program was compiled using xlc on the USS side.

The other issue I have is that the top of stack is not my main() so the PSW and 
"Storage dump near condition, beginning at location" is of CEEHDSP instead of 
main so I can't see what instruction in my program caused the abend.

I assume the registers are modified up stack which is why I can't see them.  
Can I get the dump at the actual abend location?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Dump in 64 bit mode "Storage around GPR2 is invalid."

2016-08-24 Thread Janet Graff
When I get a CEEDUMP while running in 64 bit mode some of the register summary 
shows things like  "GPR2. ".  Why does this happen and how 
do I get the value of the register?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Loading Java dump into IPCS

2016-08-23 Thread Janet Graff
Thanks Eileen!

Janet

> -X options would probably go into the the STDENV IBM_JAVA_OPTIONS parm 

>Eileen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Loading Java dump into IPCS

2016-08-22 Thread Janet Graff
When running from the USS command line I can specifiy -Xdump:none and suppress 
the Java dumps and traces.  Then if I get an abend I get the CEEDUMP which is 
much more useful.  Where do I specify -Xdump:none in the EXEC=JVMLDM66 JCL?  
Does it go in the STDENV or is it an argument?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Loading Java dump into IPCS

2016-08-22 Thread Janet Graff
Aha! I found an operator message with an MVS file name that I could load into 
IPCS.  It doesn't have an abend summary though.  Can someone point me to a 
manual on how to read a JVM dump?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Loading Java dump into IPCS

2016-08-22 Thread Janet Graff
I abended a Java/JNI/Assembler program and it generated a few output files.

They are named
-  Snap.20160822.132237.65637.0003.trc
- javacore.20160822.132237.65637.0002.txt

The Snap looks like an IPCS Snap trace but I don't know how to load the dump 
into IPCS.  It doesn't appear to take USS filenames or paths.

Any help?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: JZOS calling a 64 bit class

2016-08-18 Thread Janet Graff
Kirk,

Wonderful!  It JVMLDM66 is indeed in the mvstools directory.

Thank you!  That will save me time!

Janet

>You say that you have the Unix directory for the 64-bit SDK, so depending
>on how it was installed you may also have the JVMLDMx6 module in the
>"mvstools" subdirectory.

>You can use this by copying this to your own PDSE load module library:

>cp -X JVMLDM76 "//'HLQ.MY.PDSE.LOADLIB'"

>Kirk Wolf

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: JZOS calling a 64 bit class

2016-08-18 Thread Janet Graff
The class libraries were successfully created with the 64 bit Java libraries on 
the USS side.  When run they report the bitmode as 64 bit and load the 
appropriate .so library containing my 64 bit JNI code.  I can run the class 
from the USS prompt but I can't run it from batch using JVMLDM* because I only 
have the 32 bit load module JVMLDM60 in my JVA*.SIEALNKE library.  I am waiting 
for my sysprog to install the 64 bit JVM load modules.

Janet

>I wondered what Janet meant by that, but figured I'd missed one of the
>many changes going on in the Java world lately. She said "The class
>I'm invoking is definitely 64 bit and I've confirmed that by printing
>out the bitmode in the program and running it from the USS command
>prompt." So what does this mean?

>Tony H.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: JZOS calling a 64 bit class

2016-08-17 Thread Janet Graff
Edward,

Thank you!  My STEPLIB only contains JVMLDM60 so I'll get with the sysprogs to 
get the 64 bit version installed.

Thanks!
Janet
>On 8/17/2016 4:42 PM, Janet Graff wrote:
>> JAVAJVM EXEC PGM=JVMLDM60

>When you run a 64-bit JVM, the JZOS launcher name must end with six 
>('6') not zero ('0'). Try JVMLDM66 instead.

>BTW, that's the launcher for Java 6 -- a pretty darn slow release. We're 
>using JVMLDM86 for Java 8.

>-- 
>Edward E Jaffe

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: JZOS calling a 64 bit class

2016-08-17 Thread Janet Graff
JAVAJVM EXEC PGM=JVMLDM60

>What program name are you invoking on EXEC PGM= ?

>-- 
>Edward E Jaffe

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


JZOS calling a 64 bit class

2016-08-17 Thread Janet Graff
I have Batch JCL to call the JVM to invoke 31 bit java classes.

I have generated the 64 bit version of the java classes and I'm trying to 
convert my JCL to invoke the 64 bit class.

I am getting this error

 CEE3588S A call was made to a function in the AMODE 64 DLL libjvm.so from an 
AMODE 31 caller.   
  From entry point JzosVM::initializeVMArgs() at compile unit offset 
+0094 at entry offset +0094 at  
  address 1AA03D2C. 
 

so it looks like the jvm is 64 bit.  The class I'm invoking is definitely 64 
bit and I've confirmed that by printing out the bitmode in the program and 
running it from the USS command prompt.

Is there anything special I have to do to convert the 31 bit java invocation 
JCL to 64 bit other than change all the paths to point to the 64 bit java 
libraries and to point to my 64 bit java classes?

Is there any way to tell from the CEEDUMP what AMODE 31 caller is causing the 
problem?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: C/C++ maximum number of arguments on a function prototype

2016-08-12 Thread Janet Graff
z/OS 2.1 - V1.12 z/OS XL C 

Janet

>What version of the compiler are you running?
>What OS and OS Level?

>Lizette

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


C/C++ maximum number of arguments on a function prototype

2016-08-12 Thread Janet Graff
Is there a maximum number of arguments on a function/function prototype?  I am 
getting a CCN3099 on the 276th parameter of a function that crazily takes 303 
parameters.  I don't see anything wrong but I wonder if the compiler just can't 
handle that many parameters?  

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


codepage restrictions on IBM applications

2016-07-25 Thread Janet Graff
I understand that IBM left it up to the product owners to decide what NLS 
support meant to their products.

Can anyone give me information on how codepages are supported by some of the 
more popular products ( like DB2, IMS, CICS)?

Since WTO is restricted to CP-37 displayable EBCDIC characters this means that 
the system console messages, and the job log messages are restricted to 
readable EBCDIC characters.  That codepage does define accented and non-English 
characters so this would mean that some of these products could issue latin 
codepage messages that were non-English.

Can anyone confirm that they do that?  If configured properly, will 
DB2/IMS/CICS issue non-English messages to the console or job logs?

In the local output files (non-console or job log) for the products do they go 
beyond CP-37?  Do they have output in non-latin codepages? Might they contain 
DBCS?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: codepage restrictions on the system console

2016-07-25 Thread Janet Graff
John,

Thanks, I looked up WTO and for the TEXT parameter it says "only standard 
printable EBCDIC characters are passed to MCS-managed display devices. "

Not quite at the codepage level but good enough for me.

Janet

>On Mon, Jul 25, 2016 at 3:03 PM, Janet Graff <
>004dc9e91b6d-dmarc-requ...@listserv.ua.edu> wrote:

>> I have a theory question rather than a how-to-implement question.
>>
>> Does anyone know what the codepage restrictions are on the system console?
>> Can you have a French console and have messages containing letters with
>> french accents?
>> What about non-latin codepages?  Can you have a Kanji, Katakana or Urdu
>> system console with those non-latin characters?
>> How about DBCS?  Can you have Kanji DBCS system messages on the console
>> and have them readable?
>>

​>You talking z/OS? As I recall, the WTO interface in z/OS only allows
>"printable" CP-037 characters. ​



>>
>>
>> Thanks!
> Janet
>>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


codepage restrictions on the system console

2016-07-25 Thread Janet Graff
I have a theory question rather than a how-to-implement question.

Does anyone know what the codepage restrictions are on the system console?
Can you have a French console and have messages containing letters with french 
accents?
What about non-latin codepages?  Can you have a Kanji, Katakana or Urdu system 
console with those non-latin characters?
How about DBCS?  Can you have Kanji DBCS system messages on the console and 
have them readable?


Thanks!
Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


S0D6 RC=27 using Latches

2016-04-15 Thread Janet Graff
I have an application that is using latches.  In general it appears to be 
working fine.  The latch set is kept in an LE C global variable in a subroutine 
that is used to manage the locking functions.  At some point in the code I 
rebuild a bunch of my data structures and (not the first after I rebuild the 
data structures) a following ISGLOBT fails with a S0D6 RC=27.  After I rebuild 
the data structures I reattempt the ISGLCRT which gets an RC=4.  I then call 
lSGLPRG in case there are any left over latches from the previous execution.  
The ISGLPRG gets a return code 0.

The Obtain Latch that fails is for a latch that has been obtained and released 
several times since the recreation of the data structures.

I don't see how my managing of my other data structures has affected the the PC 
number used  by the code underlying the ISGLOBT.  And why is the PC number good 
for several obtain and release cycles and then suddenly fails?

Does anyone have any ideas?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: JVM FindClass returning Null

2016-04-04 Thread Janet Graff
Ray,

Thank you!  I also figured out I wasn't in the working directory I thought I 
was in.  The code now looks like this:

chdir("/u/vendor/jig/DOMYAPI3");   
dirPtr = getcwd(mydir,sizeof(mydir)); 
printf("current working directory is %s'\n", mydir);  

printf("calling FindClass\n");
#pragma convert(819)
zprotect_class = (*env)->FindClass(env, 
 "com/mycomp/mysetset/enterprise/zclass"); 
#pragma convert(0)  
if (zprotect_class == NULL) 
{   
   (*env)->ExceptionDescribe(env);  
   printf("findClass  returned NULL\n"); 
   rc = ERR_NO_CLASS;   
}   

the output in SYSPRINT looks like this

current working directory is /u/vendor/jig/DOMYAPI3'  
calling FindClass  
findClass returned NULL  

I'm not sure what I should be fiddling with at this point.  Is this affected by 
the classpath?  Is there a way to list all the available classes?

Janet



>The class name needs to be fully qualified (but *without* that leading /)
>It might be easier to use #pragma convert(819) to get a UTF-8 string.

>#pragma convert(819)
>zclass_class = (*env)->FindClass(env, "com/mycomp/mysetset/enterprise/zclass");
>#pragma convert(0)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Running an MVS executable using a .so library

2016-03-30 Thread Janet Graff
This was the problem.  Apparently I didn't need to specify a classpath.

I changed the code to

JNIEnv* create_vm(JavaVM **jvm)
{  
JNIEnv* env;   
JavaVMInitArgs args;   
JavaVMOption options;  
args.version = JNI_VERSION_1_6;
args.nOptions = 0; 
args.options =
args.ignoreUnrecognized = 0;   
int rv;
rv = JNI_CreateJavaVM(jvm, (void**), );   
if (rv < 0 || !env)
printf("Unable to Launch JVM %d\n",rv);
else   
printf("Launched JVM! :)\n");  
return env;
}  

and now the JVM comes up!

Thank you all for your help!
Janet
>Why does the JNI_CreateJavaVM have a classpath?  Isn't there one already 
>specified in the _CEE_ENVFILE?  Maybe I don't need this?

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Running an MVS executable using a .so library

2016-03-30 Thread Janet Graff
Heres' the C source code calling JNI_CreateJavaVM that is getting the "Unable 
to Launch JVM -6".  I pretty much copied it from various web pages on "how to 
call JNI from C".

Why does the JNI_CreateJavaVM have a classpath?  Isn't there one already 
specified in the _CEE_ENVFILE?  Maybe I don't need this?



JNIEnv* create_vm(JavaVM **jvm)
{  
JNIEnv* env;   
JavaVMInitArgs args;   
JavaVMOption options;  
args.version = JNI_VERSION_1_6;
args.nOptions = 1; 
options.optionString = 
 "-Djava.class.path=.:/u/vendor/jig/DOZAPI3";  
args.options =
args.ignoreUnrecognized = 0;   
int rv;
rv = JNI_CreateJavaVM(jvm, (void**), );   
if (rv < 0 || !env)
printf("Unable to Launch JVM %d\n",rv);
else   
printf("Launched JVM! :)\n");  
return env;
}  

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Running an MVS executable using a .so library

2016-03-30 Thread Janet Graff
clearly not as that constant isn't even defined in the jni.h.  I'll stick with 
JNI_VERSION_1_6.

Janet

>ooh my JNI_CreateJavaVM has a options string.  I'm currently passing 

>args.version = JNI_VERSION_1_6; 

>maybe that's was JNI_ENOINVAL?

>How do I determine what the proper version is of this call?

>Since my classpath has /u/Java6_31/J6.0... I'm assuming I'm running 
>JNI_VERSION_6_31 but I've no idea if that's actually how these things work.

>Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Running an MVS executable using a .so library

2016-03-30 Thread Janet Graff
David,

my _CEE_ENVFILE file  contains

export JAVA_HOME=/u/Java6_31/J6.0

I'm not sure if the export statement is necessary here.

Janet

>Do you need to set the JAVA_HOME environment variable to point to the JVM?

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Running an MVS executable using a .so library

2016-03-30 Thread Janet Graff
ooh my JNI_CreateJavaVM has a options string.  I'm currently passing 

args.version = JNI_VERSION_1_6; 

maybe that's was JNI_ENOINVAL?

How do I determine what the proper version is of this call?

Since my classpath has /u/Java6_31/J6.0... I'm assuming I'm running 
JNI_VERSION_6_31 but I've no idea if that's actually how these things work.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Running an MVS executable using a .so library

2016-03-30 Thread Janet Graff
Frank,

That's the right idea, unfortuantely it was the JNI_CreateJavaVM() invocation 
that got the JNI_EINVAL.  So I'm lost how, on z/OS, to get the 
JNI_CreateJavaVM() call to work.

Janet

>Does this help?
>http://www.developer.com/java/data/how-to-create-a-jvm-instance-in-jni.html

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Running an MVS executable using a .so library

2016-03-30 Thread Janet Graff
Frank,

That was magnificent and got me past my problem.

Unfortunately I now get "Unable to Launch JVM -6 ".

Which I believe is JNI_EINVAL which I believe means the JVM isn't running.

I've been googling around and I haven't found how to tell if the JVM is running 
on z/OS.  When I installed Rational Developer I made sure that RSED and some 
other job was running but clearly I missed the JVM itself?

Can someone point me to the z/OS JVM manual?

Janet

>I think you need a LIBPATH environment variable to point to it

>I got the following from the Enterprise COBOL manual:

>http://www.ibm.com/support/knowledgecenter/SS6SG3_4.2.0/com.ibm.entcobol.doc_4.2/PGandLR/ref/rpooo10e.htm
>http://www.ibm.com/support/knowledgecenter/SS6SG3_4.2.0/com.ibm.entcobol.doc_4.2/PGandLR/tasks/tpooo08.htm

>//RUN EXEC PGM=CALLJAVA,REGION=0M,COND=(4,LT),
>// PARM='ENVAR("_CEE_ENVFILE=/u/userid/javaenv") POSIX(ON)/'
>//STEPLIB DD DISP=SHR,DSN=JIG.BASE710.LOAD
>// DD DISP=SHR,DSN=CEE.SCEERUN
>// DD DISP=SHR,DSN=CEE.SCEERUN2

>/u/userid/javaenv would be a Unix file with something like the following:
>PATH=/bin:/u/Java6_31/J6.0/bin
>LIBPATH=/lib:/usr/lib:/u/Java6_31/J6.0/bin:/u/Java6_31/J6.0/bin/j9vm
>CLASSPATH=/u/userid/[something]

>Note that I added SCEERUN2 to your STEPLIB.  Not sure if it's necessary, but 
>its in the example.
>Looks like you may also need to have DD's named JAVAIN, JAVAOUT and JAVAERR, 
>as detailed in the second link above.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Running an MVS executable using a .so library

2016-03-30 Thread Janet Graff
I am writing a C program to invoke the JVM to call an existing JNI package.  I 
have the program compiled and linked but I am having trouble getting libjvm.so 
loaded at run time.

Is this the right STEPLIB?  ISTR that mixing MVS and USS files on a DD 
allocation is not allowed but I'm not sure how else to do this?

//RUN  EXEC PGM=CALLJAVA,REGION=0M,COND=(4,LT),  
//PARM='POSIX(ON)/' 
//STEPLIB  DD DISP=SHR,DSN=JIG.BASE710.LOAD  
// DD DISP=SHR,DSN=CEE.SCEERUN   
// DD  PATH='/u/Java6_31/J6.0/bin/j9vm/',
//   PATHDISP=(KEEP,KEEP)
//SYSTSPRT DD SYSOUT=*   
//SYSPRINT DD SYSOUT=*   
//SYSOUT   DD SYSOUT=*   
//STDERR   DD SYSOUT=*   

CEE3501S The module libjvm.so was not found. 

Also I'm not sure if the ending slash is necessary.  I get the same result 
whether it's there or not.  Is there a run time option that affects this?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Resolving JNI_CreateJavaVM

2016-03-30 Thread Janet Graff
It turns out I was missing the DLL option on the compile step.

Thanks for everyone's help!
Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Resolving JNI_CreateJavaVM

2016-03-24 Thread Janet Graff
I switched to LIST(IMP)


>Try running LIST(IMP) to see that the binder is reading the side deck
>correctly.

z/OS V1 R12 BINDER 13:45:21 THURSDAY MARCH 24, 2016  
BATCH EMULATOR  JOB(JIGJAVA ) STEP(LKED) PGM= IEWBLINK   
IEW2278I B352 INVOCATION PARAMETERS - LIST(IMP),AMODE=31,MAP,RENT,DYNAM(DLL),
IEW2292E B403 OPTION VALUE MISSING OR INVALID FOR OPTION LIST.   
IEW2322I 1220  1INCLUDE  '/u/Java6_31/J6.0/bin/j9vm/libjvm.x'   
  
IEW2322I 1220  2IMPORT CODE,'libjvm.so','addHarmonyPortLibToVMArgs' 
...
IEW2322I 1220  52IMPORT CODE,'libjvm.so','JNI_CreateJavaVM'
...
IEW2322I 1220  157IMPORT CODE,'libjvm.so','JVM_Write'
IEW2322I 1220  158IMPORT CODE,'libjvm.so','JVM_ZipHook'  
IEW2322I 1220  159IMPORT CODE,'libjvm.so','NewStringPlatform'
IEW2322I 1220  160INCLUDE OBJECT 
IEW2322I 1220  161NAMECALLJAVA(R)
IEW2456E 9207 SYMBOL JNI_CreateJavaVM UNRESOLVED.  MEMBER COULD NOT BE INCLUDED 
FROM THE DESIGNATED CALL LIBRARY.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Resolving JNI_CreateJavaVM

2016-03-24 Thread Janet Graff
Frank,

I added CASE(MIXED) but got the same result 

IEW2278I B352 INVOCATION PARAMETERS - 
LIST(NOIMP),AMODE=31,MAP,RENT,DYNAM(DLL),CASE(MIXED)
IEW2322I 1220  1INCLUDE'/u/Java6_31/J6.0/bin/j9vm/libjvm.x' 
IEW2322I 1220  160INCLUDE OBJECT
IEW2322I 1220  161NAMECALLJAVA(R)   
IEW2456E 9207 SYMBOL JNI_CreateJavaVM UNRESOLVED.  MEMBER COULD NOT BE INCLUDED 
 FROM THE DESIGNATED CALL LIBRARY. 

I looked at the file and it didn't seem to contain any line endings.  But this 
statement is in the file 

 IMPORT CODE,'libjvm.so','JNI_CreateJavaVM'

Here's a complete list of my active binder options

 ALIASES NO   
 ALIGN2  NO   
 AMODE31  
 CALLYES  
 CASEMIXED
 COMPAT  UNSPECIFIED  
 COMPRESSAUTO 
 DCBSNO   
 DYNAM   DLL  
 EXTATTR UNSPECIFIED  
 EXITS:  NONE 
 FILLNONE 
 GID UNSPECIFIED  
 HOBSET  NO   
 INFONO   
 LET 04   
 LINECT  060  
 LISTSUMMARY  
 LISTPRIVNO   
 LONGPARMNO   
 MAP YES  
 MAXBLK  032760   
 MODMAP  NO   
 MSGLEVEL00   
 OVLYNO   
 PRINT   YES  
 RES NO   
 REUSABILITY REENTRANT
 RMODE   UNSPECIFIED  
 SIGNNO   
 STORENX NOREPLACE
 STRIPCL NO   
 STRIPSECNO   
 TERMNO   
 TRAPON   
 UID UNSPECIFIED  
 UPCASE  NO   
 WKSPACE 00K,00K
  XCALNO   
  XREFNO   

Thank you!  
Janet

>Try adding CASE(MIXED) to your binder parms.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Resolving JNI_CreateJavaVM

2016-03-24 Thread Janet Graff
Thanks Don!

I switched the SYSLIN to include the .x file

//SYSLIN   DD  * 
 INCLUDE   '/u/Java6_31/J6.0/bin/j9vm/libjvm.x'  
 INCLUDE OBJECT  
 NAMECALLJAVA(R) 
//*  

The binder output shows this now

IEW2278I B352 INVOCATION PARAMETERS - LIST(NOIMP),AMODE=31,MAP,RENT,DYNAM(DLL)  
IEW2322I 1220  1INCLUDE   '/u/Java6_31/J6.0/bin/j9vm/libjvm.x'  
IEW2322I 1220  160INCLUDE OBJECT
IEW2322I 1220  161NAMECALLJAVA(R)   
IEW2456E 9207 SYMBOL JNI_CreateJavaVM UNRESOLVED.  MEMBER COULD NOT BE INCLUDED 

Why isn't JNI_CreateJavaVM resolved by libjvm.x?

Janet

>It's the .x file that needs to be included in SYSLIN. I've never heard of
>SIDEFILE as a DD name. The .so file is the "shared object" or DLL file. 
>That's only needed at run-time. If you're using some Apace SDK, I would
>look for a side file that comes with it. Again, you'd also need the Apache
>.so file available somewhere at run-time. Make sure you set the DYNAM(DLL)
>binder option.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Resolving JNI_CreateJavaVM

2016-03-24 Thread Janet Graff
Actually I've had the JNI code finished for a while.  I'm trying to call the 
JNI Code from a C program at this point.

Janet

>It sounds like you're trying to build a JNI program that hasn't been ported
>to z/OS rather than just writing new code. This can be very complex and you
>should probably start with getting a JNI "hello world" program working.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Resolving JNI_CreateJavaVM

2016-03-23 Thread Janet Graff
Don,

That helped! I added
//SIDEFILE DD PATH='/u/Java6_31/J6.0/bin/j9vm/libjvm.x',  
//PATHDISP=(KEEP,KEEP)
//SYSLIN   DD  *  
 INCLUDE   '/u/Java6_31/J6.0/bin/j9vm/libjvm.so'  
 INCLUDE OBJECT   
 NAMECALLJAVA(R)  
//*   
which adds the sidefile and the library

Unfortunately this results in unresolved on things like atoe_printf which  
gather are apache function in the apache version of stdio? ref 
http://svn.apache.org/repos/asf/harmony/enhanced/java/trunk/classlib/modules/portlib/src/main/native/a2e/unix/headers/stdio.h

Is there a manual on how to do this (i.e. Have LE C call Java on z/OS) and 
resolve all my linkedit issues?

Janet

>That function lives in a DLL. So you just need the side file for the
>ink. libjvm.x is the side file. Something like:

>INCLUDE   '/java16_64/bin/j9vm/libjvm.x'  
>ENTRY CELQSTRT
>NAME MYPROG(R)

>-- 
>Don Poitras

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Rational Developer for z Systems and Java Maven integration

2016-03-23 Thread Janet Graff
What version of Rational Developer for z/OS do you have.  Mine doesn't have a 
Maven plugin. 
Or alternatively, where do you get the Maven plugin for Rational Developer for 
z/OS?

Janet

>I use RDz and I just installed the maven plugin. Works great.

>David

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Resolving JNI_CreateJavaVM

2016-03-23 Thread Janet Graff
I am writing an application in C that calls Java methods.  I have followed the 
instructions for load the library and gaining access to the methods and this is 
all compiling great.  I need help on the link.  What library would 
JNI_CreateJavaVM be in?  It seems like it would be in a C library somewhere but 
I no finding it in my LE SCEELKED libraries.  It doesn't make sense to me that 
this would be in a /u/lpp/java* library as this should be a C resolution.

Can anyone help direct me to the product that contains the binder resolutions 
for the JVM?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Rational Developer for z Systems and Java Maven integration

2016-03-22 Thread Janet Graff
I want to build a java package on the mainframe.  The code comes supplied with 
a maven build.  I have Rational Developer 9.5.1.  This page says Rational 
Developer has maven support, 
http://www.ibm.com/developerworks/rational/library/rational-ide-v9/ as of V9.  
Is this only for Windows and *nix?  I don't see the Maven import for the 
Rational Developer for z Systems.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Resolving Java import statements

2016-03-19 Thread Janet Graff
Andrew,

Yes! that fixed it.  I knew if I had it in a script I'd need that.  I didn't 
realize doing this from the command line would require the export command.

Thank you!
Janet

>You probably need to export the CLASSPATH definition:
>export 
>CLASSPATH=$CLASSPATH:/usr/lpp/zWebSphere/V7R0/optionalLibraries/Apache/Struts/1.1/commons-logging.jar

>Due to the idiosyncrasies of unix shells, without "export" it only 
>creates the variable in the sub-process running the command which ends 
>as soon as the CLASSPATH= command ends. "export" makes it stick for 
>subsequent commands.

>Adding $CLASSPATH to the start will add the jar to the end of any 
>existing definition instead of replacing it.

>Andrew Rowley

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Resolving Java import statements

2016-03-15 Thread Janet Graff
Andrew,

Thank you all so much for your help.

I searched for commons-logging*.jar and found several copies. I tried the 
following in the directory with the .java file

CLASSPATH=/usr/lpp/zWebSphere/V7R0/optionalLibraries/Apache/Struts/1.1/commons-logging.jar
javac RemoteServer.java

which resulted in the same error message

RemoteServer.java:19: package org.apache.commons.logging does not exist
import org.apache.commons.logging.Log;

I then downloaded the jar from the web site to my windows machine, then I 
uploaded it to the mainframe in binary to the same directory as my .java file

CLASSPATH=/u/vendor/jig/jrobotremoteserver-master/commons-logging-1.2.jar
javac RemoteServer.java

and got the same error message.

I'm doing something wrong I know it.
Any help?

Janet


>Apache Commons is a project creating various reusable Java components. 
>It's not part of the Apache web server. It doesn't surprise me if most 
>of Apache Commons is not distributed with z/OS (I'm more surprised if 
>much is).

>I wouldn't expect to find logging in the org.apache.commons.codec jar. 
>Codec is various encoders and decoders. The logging jar should be called 
>commons-logging*.jar.

>You may have to download it from Apache Commons. Apache commons is at:
>https://commons.apache.org/
>Apache Commons logging is at
>https://commons.apache.org/proper/commons-logging/

>Being Java, you should be able to just download the jar, do a binary 
>transfer to z/OS and it should work.

>Andrew Rowley

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Resolving Java import statements

2016-03-15 Thread Janet Graff
Janet Graff wrote:
> I set my CLASSPATH to one of the directories (the last as it happens)
>
> CLASSPATH=/usr/lpp/zWebSphere_OM/V7R0/FPW20M/web2mobilefep_1.1/optionalLibraries/jaxrs_1.X

jars themselves don't get added to classpath by their dir being added to 
classpath
Jack,

Sorry for not following you here.  I finally found a web page that explained 
that this was a batch job filling in the STDENV DD as indicated on this page 
http://www.ibm.com/developerworks/systems/library/es-java-batchz.html.

I was actually logged on to the USS side and couldn't figure out where this 
script would go.
I was planning on a make file with the classpath statically filled in and was 
somewhat daunted by the idea of specifying every single jar file that I might 
need.

Is this easier to do in batch than native USS because of this scripting?

Janet

>Each jar must appear in the classpath.

>Either add all the jars in your apache dir to the classpath, e.g, in a script:

>for jar in /somedir/*.jar
>   do
> export CLASSPATH=$CLASSPATH:$jar
>   done

>or use the jar tool to look for the missing class and add the jar you find it 
>in to CLASSPATH, e.g.,

>for jar in /somedir/*.jar
>do
> echo $jar
> jar tf $jar | grep someclass
> echo "***"
>done

>-- 
>Jack J. Woehr

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Resolving Java import statements

2016-03-15 Thread Janet Graff
I searched for the commons-code*.class files and didn't find them.  Does 
WebSphere and/or Rational Developer not provide the class files for these 
common java routines?

Janet

>Hi Janet,

>yes the individual jars need to be on the classpath. The directory only works 
>if the individual *.class files are in the directory tree and not in the jars. 
>A >directory on the classpath is never searched for jars.

>dg

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Resolving Java import statements

2016-03-15 Thread Janet Graff
Sorry Jack, not following the intent.  Are you saying I need to add the 
individual jar files to the CLASSPATH definition?
The CLASSPATH does have the directory containing the required jar file.

Janet

>Jack J. Woehr wrote:
>> for jar in /somedir/*.jar
>>do
>> export CLASSPATH=$CLASSPATH:$jar
>>done 

>Oops, this should say export CLASSPATH=$CLASSPATH:/somedir/$jar

>-- 
>Jack J. Woehr

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


RobotFramework Java XML-RPC server

2016-03-15 Thread Janet Graff
I need to run the Java XML-RPC server on z/OS to support a windows based 
RobotFramework testing of my z/OS system.
I have downloaded jrobotremoteserver-3.0-standalone.jar.  I understand that 
I'll most likely have to update it to do the ASCII/EBCDIC translations on the 
HTTP sends and receives.
It's Java so it should on z/OS work at some level but looking through some 
sample programs I have some concerns.
Does anyone else have the Java XML-RPC server running on z/OS?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


What STOGROUP does a table belong to

2016-02-11 Thread Janet Graff
I've been combing through the SYSIBM tables looking for this answer.   I need 
to figure out what STOGROUP my tables belong to.  I realize SYSTABLES has 
TSNAME to tell me what TABLESPACE the table belongs to.  But I can't get from 
TABLESPACE to STOGROUP.  How do I figure out what STOGROUP my tables are 
allocated in?

Thank you!
Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: What STOGROUP does a table belong to

2016-02-11 Thread Janet Graff
Thanks Jan!  I'll look into that.

Janet


>I think the column STORNAME in SYSTABLEPART is what you're looking for. This 
>also implies that an entire tablespace doesn't necessarily reside in a >single 
>storage group. 
 
>Regards, 
>Jan

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: memory leak doing gsk_environment_open()

2016-02-04 Thread Janet Graff
That was an awesome suggestion!  I am having a great time going through my code 
and finding a couple of leaks.  I do note that I have several leaks on 
setlocale().  It's only 828 bytes but since I call it once per thread it might 
add up.

I have another leak on dllinit() for 155CC0 bytes

Does anyone have any suggestions for freeing that memory?

Janet

>Try the following runtime option HEAPCHK(ON,1,0,10,10). It will produce 
>a dump with a trace of all memory allocations that have no free.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


memory leak doing gsk_environment_open()

2016-02-02 Thread Janet Graff
I have a long running STC that does an HTTP sequence using secure sockets.  I 
can monitor the memory usage throughout my calls.  I note that my above the 
line storage shows a 1M increase after the gsk_environement_open().  That 
memory is not freed after the gsk_environment_shutdown(), 
gsk_environment_close() or any of the other APIs that close the socket.

Has anyone else noticed this?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: memory leak doing gsk_environment_open()

2016-02-02 Thread Janet Graff
I have run RPTSTG on the application several times in the past and tuned 
things.   I can do this again.  However I can see this leak every time I run 
through an HTTP creation of socket, request, and socket termination.  Which is 
what makes me believe that either the memory isn't cleaned up or the sequence 
of functions I am calling is incorrect.

I see the memory usage on every gsk_environment_open() but I never see the 
memory freed on any of the close or shutdown calls.

This is indeed C.

Janet

 replied to message ---
Janet,

I assume this is a C application by the long and lower-case function names you 
mentioned.  Have you run it with the LE RPTSTG option turned on?  Maybe your 
HEAP parameters cause LE to request that 1M storage as a secondary heap chunk 
because the "gsk_*" routines need some heap storage, and I do not believe that 
heap chunks are freed until termination of the enclave, even if there are no 
current storage allocations in the chunk(s).  RPTSTG output may help you tune 
the initial heap size so that secondary chunks are not needed.

Just a thought.

Peter

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


SRB Mode and C functions

2016-01-22 Thread Janet Graff
We recently found that a pthread_mutex_lock() issues an SVC under the covers 
which causes our code in SRB Mode to abend with a S0F8-004.

Does anyone have a list of C functions (POSIX as well as stdlib) that are 
illegal in SRB Mode?

Thanks!
Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: SMFxTME field

2016-01-08 Thread Janet Graff
Sorry, I don't see how to quote a prior message.  

This is what worked for me from Charles.

"Divide by 100 -- remainder is hundredths of a second.
Divide quotient by 60 -- remainder is seconds.
Divide quotient by 60 -- remainder is minutes.
Quotient is hours (24 hour clock).

SMFxxDTE is in an amusing packed format:

0cyydddF where c is the century offset by 19 -- that is, 01 => 2000; yy is the 
low order digits of the year; and ddd is the "Julian" day number of the year: 
001 = January 1, ... 365 = December 31 (366 for leap years).
"

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: SMFxTME field

2016-01-07 Thread Janet Graff
That worked.  Now I have the time formatted very nicely.

Thank you!
Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: SMFxTME field

2016-01-05 Thread Janet Graff
What macro would we use to convert TIME BIN to a readable DATE TIME?  It 
doesn't look like STCKCONV to CONVTOD take input of a 32-bit unsigned binary.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: PL/I and optional parameters

2015-11-02 Thread Janet Graff
Jon,

Is there a way to keep the type checking on the required parameters and also 
allow the trailing parameters to not be specified?

The type checking is extremely useful to my customers and I'd hate to lose it 
completely.  I'd prefer some syntax where I can say 

99(char (*) optional,
  char (*) optional,
  Fixed Bin(31) optional)

or some variation that keeps both the type checking and the number of 
parameters checking.  I can live with losing the type checking on the optional 
parameters, as long as I can keep the type checking on the required parameters.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


BIND PACKAGE running application with FIELDPROC

2015-11-02 Thread Janet Graff
When executing a BIND PACKAGE against a program that performs Inserts into a 
table where the columns are defined with FIELDPROC.  The program is run.  I 
don't see an option on the BIND PACKAGE for this and the detail information 
about when a FIELDPROC is run does not include BIND time.  What am I missing?

If I define the table without FIELDPROC on the columns, then issue BIND 
PACKAGE, the Inserts do not happen into the table, so I conclude that the 
program is not run.

Why would the BIND PACKAGE with FIELDPROC run the program?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


PL/I and optional parameters

2015-10-27 Thread Janet Graff
I have a PL/I subroutine call that has 297 optional parameters.  That is the 
function has a parameter list with up to 100 tuples of parameters.  The first 
tuple is required, and tuple 2 through 100 are optional.

In C the function signature looks like this

int myFunc( int *numDescriptorEntries,
   int *numBufferEntries,
   char *errorBuffer,
   char *descriptor,
   char *Buffer,
   int  *Length,
   ...);

In PL/I I'd like to do this

   Declare myFunc External('VSHPARR') Entry(
   Fixed Bin(31) byaddr, /* Number of Descriptors */
   Fixed Bin(31) byaddr,/* Number of Entries */
   Char(*) byaddr,   /* Error msg buffer */
   Char (*) byaddr,   /* descriptor*/
   Char (*) byaddr,  /*Buffer */
   Fixed Bin(31) byaddr,  /*  Length */
* optional,
   )
   returns( byvalue Fixed Bin(31) )   /* Return code */
   options ( nodescriptor, linkage(system) );


But PL/I flags this call as an error because I need all three "*optional" 
declarations

   rc = myFunc (numDescriptorEntries,
numBufferEntries,
error,
Descriptor1,
Buffer1,
Length1,
Descriptor2,
Buffer2,
Length2);

Which means I have to declare this

   Declare myFunc External('VSHPARR') Entry(
   Fixed Bin(31) byaddr, /* Number of Descriptors */
   Fixed Bin(31) byaddr,/* Number of Entries */
   Char(*) byaddr,   /* Error msg buffer */
   Char (*) byaddr,   /* descriptor*/
   Char (*) byaddr,  /*Buffer */
   Fixed Bin(31) byaddr,  /*  Length */
* optional,
* optional,
* optional
   )
   returns( byvalue Fixed Bin(31) )   /* Return code */
   options ( nodescriptor, linkage(system) );

So for 100 repeats of the tuple, this function declaration is going to get 
quite lengthy with loads of "* optional" parameters.
Is there a shorter way of declaring 297 optional parameters in PL/I?

Thank you!
Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: AMASPZAP to C main marked as $private

2015-09-09 Thread Janet Graff
I found the solution.  The C Compile parameter NOCSECT was turned on.  Using 
CSECT named the CSECT which allows me to zap it.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: AMASPZAP to C main marked as $private

2015-09-09 Thread Janet Graff
NAME TESTDCAL * C_CODE 
  VER 01DE 5820,3208 
 AMA106I ATTEMPTING TO VER/REP OUTSIDE LIMITS OF SECTION 

You can't zap a module using a CSECT of *.  * is a generic CSECT indicator and 
there are multiple CSECTS in the load module.  I just want to get $PRIVATE or 
alternatively, name the main CSECT something other than $PRIVATE.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


AMASPZAP to C main marked as $private

2015-09-08 Thread Janet Graff
I'm trying to create a zap for a C main.  The binder has designated the C main 
is in a $private code.  What's the AMASPZAP NAME card for private code?  
Alternatively can I force a name on the CSECT?

Here's the link map output from the binder 

   OFFSET   OFFSET  NAMETYPELENGTH  DDNAME   SEQ  MEMBER   

 0  $PRIV10CSECT   410  XMLRPC01  TESTDCAL 
   88   88 main   LABEL

The name card should be something like

NAME TESTDCAL TESTDCAL C_CODE

but that doesn't work.  A CSECT name of $PRIVATE, $PRIV10, or anything else 
I can think of doesn't work either.

Can anyone help?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: AMASPZAP to C main marked as $private

2015-09-08 Thread Janet Graff
AMBLIST says that the Control Section is $PRIV10.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: AMASPZAP to C main marked as $private

2015-09-08 Thread Janet Graff
A DUMPT of the module of all the C_CODE CSECTSs shows the CSECT I want as

**RECORD LENGTH: 04C0 CLASS: C_CODE   MEMBER NAME: TESTDCAL
  CSECT NAME:  $PRIVATE CODE   
  F2F0 F1F5  F0F9 F0F8  F1F4 F0F4  F3F5 F0F1 F1F2 F0F0  0070 0802  

But I don't know how to specify $PRIVATE CODE on the NAME card.  Nothing I've 
tried works.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Python FTP binary object file upload

2015-06-24 Thread Janet Graff
Sadly, python rejected the quote prefix for the site command.

*cmd* 'QUOTE SITE RECFM=FM LRECL=80 BLKSIZE=3200'
*put* 'QUOTE SITE RECFM=FM LRECL=80 BLKSIZE=3200'\r\n
*get* '500 unknown command QUOTE'
*resp* '500 unkown command QUOTE'

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Python FTP binary object file upload

2015-06-24 Thread Janet Graff
I am using a cross compiler to produce Object files on Windows.My automation 
uses OOREXX to upload the files via FTP to z/OS to an object PDS.I am upgrading 
my automation to be run by RobotFramework using Python and I am having trouble 
converting the OOREXX to use the Python ftplib storbinary.  The file upload 
properly as binary but I cannot get the blocking to work properly.  The first 
14 records are blocked correctly but then the following lines are off by 3 
bytes.  The file being uploaded is the same for the OOREXX and the python so 
the problem isn’t in the source dataset. My python looks like this (leaving out 
the error handling and the local file opening) ftp = FTP(ZOS_IPADDR,
  ZOS_USERID,      ZOS_PASSWORD)    
ftp.sendcmd('SITE RECFM=FB LRECL=80 BLKSIZE=3200')    ftp.storbinary('STOR  
'+member_name, temp_handle, 3200) The Python trace shows this (somewhat 
sanitized to remove userid and IP address) *cmd* 'PWD'*put* 'PWD\r\n'*get* '257 
\'XXX.\' is working directory.\r\n'*resp* '257 \'XXX.\' is working 
directory.'*cmd* uCWD 'XXX.CUNIT.OBJECT'*put* uCWD 
'XXX.CUNIT.OBJECT'\r\n*get* '250 The working directory XXX.CUNIT.OBJECT is a 
partitioned data set\r\n'*resp* '250 The working directory XXX.CUNIT.OBJECT 
is a partitioned data set'*cmd* 'SITE RECFM=FB LRECL=80 BLKSIZE=3200'*put* 
'SITE RECFM=FB LRECL=80 BLKSIZE=3200\r\n'*get* '200 SITE command was 
accepted\r\n'*resp* '200 SITE command was accepted'*cmd* 'TYPE I' *put* 'TYPE 
I\r\n'*get* '200 Representation type is Image\r\n'*resp* '200 Representation 
type is Image'*cmd* 'PASV' *put* 'PASV\r\n'*get* '227 Entering Passive Mode 
(192,nn,nn,nn,19,248)\r\n'*resp* '227 Entering Passive Mode 
(192,nn,nn,nn,19,248)'*cmd* u'STOR HTODECKS' *put* u'STOR HTODECKS\r\n'*get* 
'125 Storing data set XXX.CUNIT.OBJECT(HTODECKS)\r\n'*resp* '125 Storing data 
set XXX.CUNIT.OBJECT(HTODECKS)'*get* '250 Transfer completed 
successfully.\r\n'*resp* '250 Transfer completed successfully.' done storing 
file HTODECKS*cmd* 'QUIT' *put* 'QUIT\r\n'*get* '221 Quit command received. 
Goodbye.\r\n'*resp* '221 Quit command received. Goodbye.' Does anyone else have 
experience with this?  I’ve tried it with the blocking on the storbinary as 
3200, 80, and default and it doesn’t see to affect the output. The DCB 
information for the target dataset is correct. Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Python FTP binary object file upload

2015-06-24 Thread Janet Graff
John

I am

ftp.sendcmd('SITE RECFM=FB LRECL=80 BLKSIZE=3200')

I just looked back at my original post and I apologize that the formatting is 
so messed up.

I'll try again and see if it looks better

--

My python looks like this (leaving out the error handling and the local file 
opening)

 ftp = FTP(ZOS_IPADDR,
ZOS_USERID,  
ZOS_PASSWORD)
 ftp.sendcmd('SITE RECFM=FB LRECL=80 BLKSIZE=3200')   
 ftp.storbinary('STOR  '+member_name, temp_handle, 3200) 

The Python trace shows this (somewhat sanitized to remove userid and IP 
address) 

*cmd* 'PWD'*put* 'PWD\r\n'
*get* '257 \'XXX.\' is working directory.\r\n'
*resp* '257 \'XXX.\' is working directory.'
*cmd* uCWD 'XXX.CUNIT.OBJECT'
*put* uCWD 'XXX.CUNIT.OBJECT'\r\n
*get* '250 The working directory XXX.CUNIT.OBJECT is a partitioned data 
set\r\n'
*resp* '250 The working directory XXX.CUNIT.OBJECT is a partitioned data set
*cmd* 'SITE RECFM=FB LRECL=80 BLKSIZE=3200'
*put* 'SITE RECFM=FB LRECL=80 BLKSIZE=3200\r\n'
*get* '200 SITE command was accepted\r\n'
*resp* '200 SITE command was accepted'
*cmd* 'TYPE I' 
*put* 'TYPE I\r\n'
*get* '200 Representation type is Image\r\n'
*resp* '200 Representation type is Image'
*cmd* 'PASV' 
*put* 'PASV\r\n'
*get* '227 Entering Passive Mode (192,nn,nn,nn,19,248)\r\n'
*resp* '227 Entering Passive Mode (192,nn,nn,nn,19,248)'
*cmd* u'STOR HTODECKS' 
*put* u'STOR HTODECKS\r\n'
*get* '125 Storing data set XXX.CUNIT.OBJECT(HTODECKS)\r\n'
*resp* '125 Storing data set XXX.CUNIT.OBJECT(HTODECKS)'
*get* '250 Transfer completed successfully.\r\n'
*resp* '250 Transfer completed successfully.' done storing file HTODECKS
*cmd* 'QUIT' *put* 'QUIT\r\n'
*get* '221 Quit command received. Goodbye.\r\n'
*resp* '221 Quit command received. Goodbye.' 

The blocking on the target file is incorrect.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Python FTP binary object file upload

2015-06-24 Thread Janet Graff
John,

Fantastic!  That fixed the problem.  I was opening the local file with 'r'.  
When I switched to 'rb' it was fixed.

Thank you!
Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: STCK question

2015-06-12 Thread Janet Graff
As these things go, I have found new uses for my little routine.  It's strong 
enough to find the elapsed time for larger numbers than I intended.  So much 
so, I thought I'd add a function to show the elapsed time since the beginning 
of my started task.  The time is working wonderfully but when I cross the more 
than a day boundary I'd like to display the number of days since the start of 
the program.

I wound up using the 

STCK-STCK  difference in times since the start of the started task
+ 1972/01/01 add in base STCK time to get a STCK value again
STCKCONV   convert that to DATE=MMDD TIME=DEC
ED   make it character based

sequence so I have

1972/01/03 23:15:06.238744

What I'd like is

2 days 23:15:06.238744

I can calculate the date difference by hand (in C based off of the character 
representation of the date) of course.  Unless someone knows of a nifty method 
to get the elapsed number of days from the data that I have?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: STCK question

2015-06-11 Thread Janet Graff
Ooh I am liking the ED instruction.  But I'm missing something.

My pattern is this

=XL15'20207A20207A20204B202020202020'

My data is this

=XL8'00308208'

And the result I'm getting is this

' 308208'

What I want is this

'   0.308208'

What can I do to the pattern mask to force the decimal point, and at the least 
the zeros between the decimal and the first significant digit, and maybe one 
zero before the decimal point?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: STCK question

2015-06-11 Thread Janet Graff
Thank you Charles, both were excellent suggestions that worked wonderfully!

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: STCK question

2015-06-09 Thread Janet Graff
Thanks for everyone's suggestions!  I did ask for formatting so the output 
looks like time but I think the decimal output will be useful as well.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


STCK question

2015-06-08 Thread Janet Graff
I need my product to report on the amount of clock time aprocedure took.  I 
have captured the STCK before and after theprocedure.  The procedures take very 
little time and I want to show theelapsed time to the end user.


 
As two examples


 
Start Time CF115F56BCCEB945 

End Time  CF115F57 1ED82BC3  

difference 6209727E 


 
Start Time CF115F58 19228AC5  

End Time   CF115F582B2F8951  

difference  120CFE8C    


 
I’d like to display this elapsed time in my job log as anice readable value but 
I am unsure how this difference in STCK should beformatted.  Since it’s the 
difference between two STCK a STCKCONV doesn’tseem appropriate anymore.


 
I’d like to show this as “Your procedure took nn.nn.n.n microseconds”,or some 
variation on this theme.


 
Any suggestions?


 
Janet                   



--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Steps for diagnosing a S378

2015-04-29 Thread Janet Graff
What’s the best method for diagnosing a S378-14?  I’vetried looking at dumps 
for various getmain/freemain failures and I have troublenarrowing down the code 
that was executing when the failure happens.  If Iget a SYSMDUMP what’s the 
quickest sequence for locating the abending FREEMAIN?


 
Janet Graff



--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Steps for diagnosing a S378

2015-04-29 Thread Janet Graff
I've asked the customer to send me an IPCS SYSMDUMP.  I will try all these 
suggestions when I get it.  Once I find which STORAGE RELEASE is causing the 
abend is there an easy way to tell what address was being released?  Would I 
have the registers at the time of the STORAGE RELEASE?

Janet Graff

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: _FEEDBACK tok_isi interpretation

2015-02-25 Thread Janet Graff
I thank Tony and Lizette.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: _FEEDBACK tok_isi interpretation

2015-02-25 Thread Janet Graff
My apologies.  I'm not trying to solve the U121.  I generated that on purpose.  
I'm working on writing a robust abend handler. It's reporting S0C4 abends 
nicely but this User abend is coming out as a CEE3250C.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: _FEEDBACK tok_isi interpretation

2015-02-25 Thread Janet Graff
Thanks!  I will look into that.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


_FEEDBACK tok_isi interpretation

2015-02-24 Thread Janet Graff
I have an abend handler that is catching a U121 abend.  The LE Abend Handler is 
telling me that the facility_id is CEE and the tok_msgno is 3250 giving me 

CEE3250C The system or user abend abend-code was issued.

abend-code in the message description is in italics in the LE Run-time Messages 
manual which makes me think I can get hold of the actual U121 abend code.  
Looking at the _FEEDBACK structure I see a field tok_isi which is documented as 
 the instance specific information (ISI) but I can't find any doc that tells 
me how this 64 byte field is formatted.

Does anyone know what the tok_isi contains and how to translate it to get the 
instance specific information?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: CEE3SRP/CEEMRCE example in LE C?

2015-02-24 Thread Janet Graff
thank Charles.  I have various other LE calls working but I was off an 
addressing level of the parameters to CEE3SRP and CEEMRCE and a C example would 
have helped tremendously.

I'm pretty sure I have it with:

/* my structure that I want to pass back and forth between main line and abend 
handler */
 struct tokenStruct  
 {   
inthandled;  
_INT4  resumePoint;  

 };  
void badHandler(_FEEDBACK *cond,  
_INT4 *input_token,   
_INT4 *result,
_FEEDBACK *new_cond)  
{ 
   _FEEDBACK fc; 
   ...
   struct tokenStruct **tokenStructPtr =
   (struct tokenStruct **)input_token;   
   struct tokenStruct *tokenStruct = *input_token;  
   
   /* logic to decide whether to RESUME or not */   
   
   *result = 10;/* 10 = RESUME right after CEE3SRP call */
   tokenStruct-handled = tokenStruct-handled + 1; 
CEEMRCE((tokenStruct-resumePoint), fc); 
} 

int main()
{
   _FEEDBACK feedback;
   struct tokenStruct myTokenStruct; 
   struct tokenStruct *tokenPtr = myTokenStruct;
   tokenPtr = myTokenStruct;
   _ENTRY pgmptr;

   pgmptr.address = (_POINTER)badHandler; 
   pgmptr.nesting = NULL;

   tokenPtr-handled = 0;  
   CEE3SRP((tokenPtr-resumePoint), feedback); 
   CEEHDLR(pgmptr, tokenPtr, feedback);
   if (tokenPtr-handled  0)
   {
   /* code to handle abend and get this program moving on it's way */
   }
   /* execute code that abends here */
   CEEHDLU(pgmptr, feedback);
   return 0;
}

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: SMFxTME field

2015-02-23 Thread Janet Graff
Thank you to everyone for your help.  It turns out my content was correct but 
my timing was off.  I was filling in the SMFxTME with the correct Time 
component of TIME BIN but I was doing it when my server started.  I need to 
change my code to fill in the SMFxTME with the correct Time component of TIME 
BIN at the time the SMF record is written.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


CEE3SRP/CEEMRCE example in LE C?

2015-02-23 Thread Janet Graff
The LE Programming Guide has examples of using CEE3SRP and CEEMRCE in Cobol and 
PL/I.  I have mine coded in C.  Does anyone have a sample of calling for a 
resume in C that I can compare my attempt to?  I've got something funky about 
my addressing.  The proper token address is passed to the abend handler and the 
token points to my structure but my structure elements aren't formatted 
properly in the abend handler.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


SMFxTME field

2015-02-20 Thread Janet Graff
We just noticed our product was setting the SMFxTME field inappropriately using 
the TIME BIN macro.  What should we be using to set the SMFxTME field?

The doc says

   06 06   SMFxTME4binary  Time since midnight, in
   hundredths of a second, record
   was moved into the SMF buffer.
   In record types 2 and 3 this
   field indicates the time that
   the record was moved to the
   dump data set.

TIME MIC appears to be the right information but it produces 8 bytes and not 4 
bytes of information.

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Dynalloc with FREE=CLOSE,SPIN=UNALLOC

2014-09-08 Thread Janet Graff
I have it working now but I have to say, examples of calling dynalloc() from C 
code using text units is a decidedly badly documented interface.  

For anyone who attempts this in the future, here is a sample, this subroutine 
takes a char * containing the intended ddname like, DD:LOG01.  It must 
remove the DD: before calling dynalloc()/dynfree(). The RBX is what allows 
the IKJ messages to be printed to the JESYSMSG (which is really handy).  Note 
that the DUNSPIN text unit is only useful on the dynfree() call and will give 
an error (900) if specified on the dynalloc() call.  Some of the parameters I 
have specified on the dynfree are probably unnecessary but I left them there 
for documentation purposes.

By the way this line

 ip.__miscitems = miscitems;

gets a compiler warning for imcompatible pointers.  Anyone who can tell me how 
to cast this properly I'll be very grateful.

void myDynFree(char *ddname)
{
 __dyn_t ip;
 __S99rbx_t myrbx;
 memcpy(myrbx.__S99EID, S99RBX, 6);
 myrbx.__S99EVER = 0x01;
 myrbx.__S99EOPTS = 0x84;
 myrbx.__S99ESUBP = 0x00;
 myrbx.__S99EKEY = 0x00;
 myrbx.__S99EMGSV = 0x00;
 myrbx.__S99ENMSG = 0x00;
 myrbx.__S99ECPPL = 0;
 myrbx.__S99ERES = 0x00;
 myrbx.__S99ERCO = 0x00;
 myrbx.__S99ERCF = 0x00;
 myrbx.__S99EWRC = 0;
 myrbx.__S99EMSGP = 0;
 myrbx.__S99EERR = (short)0;
 myrbx.__S99EINFO = (short)0; 

 int textUnitSpin1 = 0x80130001;  /* DUNSPIN text unit*/
 int textUnitSpin2 = 0x00018000;
 int textUnitUnalc = 0x0007;  /* DUNUNALC text unit*/
 int miscitems[2];

 miscitems[0] = (int)textUnitUnalc;
 miscitems[0]= miscitems[0] | 0x8000;

 dyninit(ip);
 ip.__rbx = myrbx;
 ip.__sysout = 'H';
 ip.__ddname = ddname+3;/* passed in DD name without the DD: prefix 
*/ 
 ip.__misc_flags = __RELEASE  __CONTIG  __CLOSE;  /*   RLSE,CONTIG, 
CLOSE)  */
 ip.__dsorg = __DSORG_PO; /* DCB=(DSORG=PO,  */
 ip.__recfm = _F_ + _B_;/*RECFM=FB,   */
 ip.__lrecl = 255;/*  LRECL=255, */
 ip.__blksize = 25500;/*  BLKSIZE=25500) */
 ip.__miscitems = miscitems;
 dynfree(ip);
}

Janet 

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Dynalloc with FREE=CLOSE,SPIN=UNALLOC

2014-09-05 Thread Janet Graff
I have a Started Task with a log file.  I'd like to SPIN off the log files from 
my C program and allow the users to delete them when there is too much spool 
output or the log file is no longer needed.

The C program is calling dynalloc() to allocate the file but I don't see any 
flags for SPIN=UNALLOC.  I am currently using 
ip.__misc_flags = __RELEASE  __CONTIG  __CLOSE;  
but that leaves the DD associated with the running step and not 
purgable/deletable.

Does anyone know whether dynalloc() supports FREE=CLOSE,SPIN=UNALLOC?

Janet Graff

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: using ./Configure to generate listing files

2013-11-05 Thread Janet Graff
Kirk,

Yes!  That excellent thread is what enabled me to get as far as I did and 
produce my needed libcrypto.a library.

I've been through that thread multiple times in the last three weeks but I 
don't recall a discussion of changing the ./Configure settings to produce 
listing files for every source code module compiled during the make phase.

Do you know that there is a reference to listing files in that thread (in which 
case I will go back through the thread again line by line) or was that a 
reference to general topic equivalence?

Thanks!
Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: using ./Configure to generate listing files

2013-11-05 Thread Janet Graff
Mike,

This particular usage of openssl is specifically for the bignum support.  
AT-TLS is for the SSL support which we aren't using.  Do you know of a bignum 
replacement for openssl for z/OS?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: using ./Configure to generate listing files

2013-11-05 Thread Janet Graff
The -Wc,LIST(filename) option would work fine to indicate that I want a 
listing file.  But without a file name it defaults to STDOUT.  The specific 
filename doesn't adjust for different source code files.  Is there a 
replacement variable for ./Configure that says use the source code file name 
so that I can add something like -Wc,LIST(${source}) to my options and get a 
seperate listing file for each source file?

Janet

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


  1   2   >