Re: Looking for help with an obscure C integer problem

2013-07-22 Thread David Crayford
I can see nothing obviously wrong with your code.  Because the function 
is inlined there could be a subtle bug near where the function is 
called. Can you reproduce the problem with a simple test driver?


FWIW, I implemented ffs64() like this.

static inline int ffs64( uint64_t word )
{
if ( word == 0 ) return 0;
int bit = 1;
if ( ( word  0x ) == 0 )
{
word = 32;
bit += 32;
}
if ( ( word  0x ) == 0 )
{
word = 16;
bit += 16;
}
if ( ( word  0xFF ) == 0 )
{
word = 8;
bit += 8;
}
if ( ( word  0xF ) == 0 )
{
word = 4;
bit += 4;
}
if ( ( word  0x3 ) == 0 )
{
word = 2;
bit += 2;
}
if ( ( word  0x1 ) == 0 )
{
bit += 1;
}
return bit;
}


On 22/07/2013 11:57 AM, Charles Mills wrote:

Here is exact cut and paste with zero editing, complete with a typo in the
second comment. The code is unit tested on MS Visual Studio -- hence the two
#ifdef's.

// Find First Set
static inline int Ffs64(unsigned long long valueToTest)
{
// returns index of first set bit. Uses UNIX convention
where bit 1 is LSB of word for compatibilit with z/OS ffs()

static const unsigned long long lswMask =
0x;

// note Windows provides a _BitScanForward64() but I did it
this way to make it more z/OS-like for test purposes
// if we ever needed Windows efficiency, or if IBM provides
an ffs64(), then this should be re-written to take advantage

if ( valueToTest == 0 ) return 0;

unsigned int testWord;
testWord = valueToTest  lswMask;
if ( testWord != 0 )
{
// _BitScanForward returns base 0
#ifdef WIN32
unsigned long index;
_BitScanForward(index, testWord);
return index+1;
#else
return ffs(testWord);
#endif
}
else
{
testWord = valueToTest  32;
#ifdef WIN32
unsigned long index;
_BitScanForward(index, testWord);
return index+33;
#else
return ffs(testWord) + 32;
#endif

}
}

I have strong -- but not utterly conclusive; you know what debugging a
complex program is like -- that for the value I had in the OP --
0x0034? -- the method returns 32, implying that the final ffs()
was called with testWord = 0.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of David Crayford
Sent: Sunday, July 21, 2013 8:31 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Looking for help with an obscure C integer problem

I'm struggling to see what is wrong with testWord = valueToTest  32.
There are no side effects and the sequence point is at the end of the full
expression. Can anybody enlighten me?
Charles, is the code snippet you supplied the exact test cast that is
resulting in undefined behaviour? I cannot recreate the problem and I've
tried it on five different C++ compilers, including z/OS v1.13.

On 22/07/2013 2:33 AM, Charles Mills wrote:

Right. There are two things here:

1. Resolving the immediate problem (and understanding exactly why it
fails might be a good first step).

2. The quality of the code. You are right; it is poor code. I try to
write pretty good code. I take no pride in avoiding the use of
unnecessary parentheses. I confess, I (a.) failed to consider that
testWord = valueToTest  32 would not reliably operate as intended;
and (b.) I was completely satisfied when the function passed basic
unit tests and though no more of it. Lesson learned, hopefully. Not
certain exactly what the lesson is, but I will be more careful in the
future. I have learned to be cautious about integer type conversions,
but obviously not cautious enough. I guess the lesson is just like for
sequences of logical operators: use parentheses to force what you expect.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU]
On Behalf Of Harry Wahl
Sent: Sunday, July 21, 2013 11:21 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Looking for help with an obscure C integer problem

Charles,
Hi, here is my opinion (and this definitely falls under the category
of obscure C):
You are not considering the implications of sequence points in your

C/C++.

Sequence points should not be confused with operator precedence.
Operator precedence is determinate, sequence points are not.
I believe IBM XLC is at the C++11 level of C/C++. The C/C++ level is
relevant here because there are sometimes subtle, and sometimes not so
subtle, differences in how sequence points apply between various
levels of
C++.
While C++11 

Re: ACS routine imbed/include function?

2013-07-22 Thread Vernooij, CP - SPLXM
Thanks,
I will have a look at it.

Kees.

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Lizette Koehler
Sent: Saturday, July 20, 2013 17:08
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ACS routine imbed/include function?

Also here

Additional Storage Administration Functions

z/OS V1R11.0 DFSMSdfp Storage Administration z/OS V1R10.0-V1R11.0 SC26-7402-13

The following are additional storage administration functions:

QSAVE and QRETRIEV ISMF commands

The QSAVE and QRETRIEV ISMF commands let you save a query of frequently 
used parameters under ISMF. You can then retrieve the parameters by their query 
names. The QSAVE and QRETRIEV ISMF commands can be used while running the ISMF 
data set list or volume list options, interactively or in batch.
Model Command Generator (ACBQFLM1 EXEC for saved ISMF lists and ACBQADM2 
EXEC for DCOLLECT data)

The Model Command Generator option creates a model command against each 
entry in a data set saved ISMF list, a saved ISMF volume list, or from DCOLLECT 
data. NaviQuest does the symbolic substitution.
COPYFILT macro

Using the COPYFILT macro you can create synchronized filter lists (FILTLISTs) 
that can be applied across all ACS routines. Create a FILTLIST member in your 
ACS routine source data set. Make all filter list updates there. Then call the 
COPYFILT macro from the command line to have the changes replicated across all 
of the ACS routines.

Lizette

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Lizette Koehler
Sent: Saturday, July 20, 2013 8:06 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ACS routine imbed/include function?

I found the Naviquest Manual has some info on COPYFILT in it

International Technical Support Organization NaviQuest Demonstration and 
Hands-On Usage Guide April 1996  SG24-4720

· Use COPYFILT for ACS filters
Commonly the ACS changes that you make to include a new data subtype to be 
SMS-managed are to FILTLISTs. The DFSMS FIT process recommends that you have a 
single member that includes all FILTLISTs used by all ACS routines. You then 
make changes to the FILTLISTs in this single member.
After all changes are made, you can move all FILTLISTs from the single member 
to each of the ACS routines.

NaviQuest has a COPYFILT command to help you in the maintenance of FILTLISTs. 
The COPYFILT command automatically moves the FILTLISTs from a single PDS member 
to each of your ACS routines. COPYFILT also enforces change control 
documentation.


Lizette


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Elardus Engelbrecht
Sent: Monday, July 15, 2013 6:21 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ACS routine imbed/include function?

Vernooij, CP wrote:

So I probably mixed some historical info in my memory. It would be nice to 
have, e.g. for dsname- of volser-filtlists used in more than one routine. 
However, there are not many enhancements in ACS routines the last decades, so 
I expect this will remain a wish. 

You've got my curiousity turned on and I searched my *ss off since your first 
post! It was indeed a long time I saw any announcement for ACS enhancements if 
at all. 

But then I wonder if you were thinking about 'COPYFILT macro: COPYLIB facility 
for FILTLISTs'. Granted that is for initial SMS setup.

On the otherside, I wonder if you were refering to FILTERDD in DFDSS. There you 
can probably concatenate at your leisure...

Hmmm, perhaps time for a Share thing? Think of it: one set of Include/exclude 
for DB2 folks, another for other dbas, etc.

Groete / Greetings
Elardus Engelbrecht

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

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

For information, services and offers, please visit our web site: 
http://www.klm.com. This e-mail and any attachment may contain confidential and 
privileged material intended for the addressee only. If you are not the 
addressee, you are notified that no part of the e-mail or any attachment may be 
disclosed, copied or distributed, and that any other action related to this 
e-mail or attachment is strictly prohibited, and may be unlawful. If you have 
received this e-mail by error, please notify the sender immediately by return 
e-mail, and delete this message. 

Koninklijke Luchtvaart Maatschappij NV (KLM), its subsidiaries and/or its 
employees shall not be liable for the incorrect or incomplete transmission of 
this e-mail or any attachments, nor responsible for any delay 

Re: DCOLLECT QUESTION -RESULTS PUZZLING -

2013-07-22 Thread David Devine
Hi Esmee,
It is a little convoluted, but if you follow the code in the job deck, you can 
see it calls ACBQBAR7, check that code and you find that it calls ACBQADR3 and 
in there you find this:- 

 DO WHILE(eof = 'no')
   dcolrec = rec.1  
   /* check to see if this a D record   */  
  IF ((SUBSTR(dcolrec,5,1) = 'D')  (SUBSTR(dcolrec,5,2) ¬= 'DC')) THEN 
   DO   
  /***/ 
  /*initialize variables */ 
  /***/ 

So it's only even going to select D types.

Regards,
  Dave

***

Dave,
 
Thanks for the info.  However I cannot find where I am selecting the D type 
records.  Could you point it out?
 
Thanks

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


Re: Looking for help with an obscure C integer problem

2013-07-22 Thread David Crayford

On 22/07/2013 12:17 PM, Charles Mills wrote:
   
#  0 and NOINLINE TEST or 2 and INLINE NOTEST

#  OPT(0) NOINLINE   TEST   GONUMBER
OPT(2)   INLINE NOTEST NOGONUMBER COMPRESS


Are you concerned about the size of your load modules? I can understand 
that in C++ code that uses STL templates but I would trade off bigger 
load modules

for the better diagnostics that OFFSET GONUMBER give me.


#  Turn on the LIST option - pseudo-assembler listing
#  LIST
#  Experiment for  - does not seem to hurt anything
DLL(CBA)

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of Charles Mills
Sent: Sunday, July 21, 2013 8:57 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Looking for help with an obscure C integer problem

Here is exact cut and paste with zero editing, complete with a typo in the
second comment. The code is unit tested on MS Visual Studio -- hence the two
#ifdef's.

// Find First Set
static inline int Ffs64(unsigned long long valueToTest)
{
// returns index of first set bit. Uses UNIX convention
where bit 1 is LSB of word for compatibilit with z/OS ffs()

static const unsigned long long lswMask =
0x;

// note Windows provides a _BitScanForward64() but I did it
this way to make it more z/OS-like for test purposes
// if we ever needed Windows efficiency, or if IBM provides
an ffs64(), then this should be re-written to take advantage

if ( valueToTest == 0 ) return 0;

unsigned int testWord;
testWord = valueToTest  lswMask;
if ( testWord != 0 )
{
// _BitScanForward returns base 0
#ifdef WIN32
unsigned long index;
_BitScanForward(index, testWord);
return index+1;
#else
return ffs(testWord);
#endif
}
else
{
testWord = valueToTest  32;
#ifdef WIN32
unsigned long index;
_BitScanForward(index, testWord);
return index+33;
#else
return ffs(testWord) + 32;
#endif

}
}

I have strong -- but not utterly conclusive; you know what debugging a
complex program is like -- that for the value I had in the OP --
0x0034? -- the method returns 32, implying that the final ffs()
was called with testWord = 0.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of David Crayford
Sent: Sunday, July 21, 2013 8:31 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Looking for help with an obscure C integer problem

I'm struggling to see what is wrong with testWord = valueToTest  32.
There are no side effects and the sequence point is at the end of the full
expression. Can anybody enlighten me?
Charles, is the code snippet you supplied the exact test cast that is
resulting in undefined behaviour? I cannot recreate the problem and I've
tried it on five different C++ compilers, including z/OS v1.13.

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


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


Re: [MVS-OE] Looking for help with an obscure C integer problem

2013-07-22 Thread Tom Russell

Well I think it is a bug.
the following source:
#include stdio.h
#include stdlib.h
#include stdint.h
#include string.h
int main( int argc, char **argv )
{
   uint64_t n = 0x0034LLU;
   uint32_t b = n  32;

   printf( %08X %08X\n, b);
}


With OPT(0) it generated:
  LARL r5,F'46'
*  {
* uint64_t n = 0x0034LLU;
  IILL r0,H'0'
  IILH r0,H'52'
  ST   r0,n(,r13,160)
  LA   r2,0
  ST   r2,n(,r13,164)
* uint32_t b = n  32;
  Lr6,n(,r13,160)
  Lr7,n(,r13,164)
  SRDL r6,32
  LR   r0,r7
  ST   r0,b(,r13,168)
*
* printf( %08X %08X\n, b);
  Lr15,=V(PRINTF)(,r3,102)
  LR   r4,r5
  LA   r1,#MX_TEMP1(,r13,152)
  ST   r4,#MX_TEMP1(,r13,152)
  ST   r0,#MX_TEMP1(,r13,156)
  BASR r14,r15
  LR   r15,r2

and printed: 0034*0034*

With OPT(3) it generated:
*  {
* uint64_t n = 0x0034LLU;
  IILL r0,H'0'
  IILH r0,H'52'
* uint32_t b = n  32;
*
* printf( %08X %08X\n, b);
  LARL r1,F'26'
  Lr15,=V(PRINTF)(,r3,74)
  ST   r1,#MX_TEMP1(,r13,152)
  ST   r0,#MX_TEMP1(,r13,156)
  LA   r1,#MX_TEMP1(,r13,152)
  BASR r14,r15* {
* uint64_t n = 0x0034LLU;
  IILL r0,H'0'
  IILH r0,H'52'
* uint32_t b = n  32;
*
* printf( %08X %08X\n, b);
  LARL r1,F'26'
  Lr15,=V(PRINTF)(,r3,74)
  ST   r1,#MX_TEMP1(,r13,152)
  ST   r0,#MX_TEMP1(,r13,156)
  LA   r1,#MX_TEMP1(,r13,152)
  BASR r14,r15
*  }
  LA   r15,0

and printed: 0034 *1000*

This is z/OS 1.13.  I am not sure about the C compiler maintenance 
level, but I can check.


regards, Tom



On 2013-07-22 12:00 AM, IBM-MAIN automatic digest system wrote:
Date: Sun, 21 Jul 2013 20:42:54 +0800 From: David Crayford 
dcrayf...@gmail.com Subject: Re: [MVS-OE] Looking for help with an 
obscure C integer problem On 21/07/2013 8:40 PM, Shmuel Metz (Seymour 
J.) wrote:

In51eb3a4c.8010...@gmail.com, on 07/21/2013
 at 09:33 AM, David Crayforddcrayf...@gmail.com  said:


I don't like it because it's a hack to work around an puzzling
issue. I  want to know why the optimizer is not generating the
correct code.

Why not report it as a bug?


We don't know if it is a bug without seeing Charles code asis.


--
G. Tom Russell

“Stay calm. Be brave. Wait for the signs.” — Jasper FriendlyBear
“... and remember to leave good news alone.” — Gracie HeavyHand

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


Re: [MVS-OE] Looking for help with an obscure C integer problem

2013-07-22 Thread David Crayford
The bug is in your code. Your only passing one argument to printf(). 

On 22/07/2013, at 8:38 PM, Tom Russell tom_russ...@sympatico.ca wrote:

 Well I think it is a bug.
 the following source:
 #include stdio.h
 #include stdlib.h
 #include stdint.h
 #include string.h
 int main( int argc, char **argv )
 {
   uint64_t n = 0x0034LLU;
   uint32_t b = n  32;
 
   printf( %08X %08X\n, b);
 }
 
 
 With OPT(0) it generated:
  LARL r5,F'46'
 *  {
 * uint64_t n = 0x0034LLU;
  IILL r0,H'0'
  IILH r0,H'52'
  ST   r0,n(,r13,160)
  LA   r2,0
  ST   r2,n(,r13,164)
 * uint32_t b = n  32;
  Lr6,n(,r13,160)
  Lr7,n(,r13,164)
  SRDL r6,32
  LR   r0,r7
  ST   r0,b(,r13,168)
 *
 * printf( %08X %08X\n, b);
  Lr15,=V(PRINTF)(,r3,102)
  LR   r4,r5
  LA   r1,#MX_TEMP1(,r13,152)
  ST   r4,#MX_TEMP1(,r13,152)
  ST   r0,#MX_TEMP1(,r13,156)
  BASR r14,r15
  LR   r15,r2
 
 and printed: 0034*0034*
 
 With OPT(3) it generated:
 *  {
 * uint64_t n = 0x0034LLU;
  IILL r0,H'0'
  IILH r0,H'52'
 * uint32_t b = n  32;
 *
 * printf( %08X %08X\n, b);
  LARL r1,F'26'
  Lr15,=V(PRINTF)(,r3,74)
  ST   r1,#MX_TEMP1(,r13,152)
  ST   r0,#MX_TEMP1(,r13,156)
  LA   r1,#MX_TEMP1(,r13,152)
  BASR r14,r15* {
 * uint64_t n = 0x0034LLU;
  IILL r0,H'0'
  IILH r0,H'52'
 * uint32_t b = n  32;
 *
 * printf( %08X %08X\n, b);
  LARL r1,F'26'
  Lr15,=V(PRINTF)(,r3,74)
  ST   r1,#MX_TEMP1(,r13,152)
  ST   r0,#MX_TEMP1(,r13,156)
  LA   r1,#MX_TEMP1(,r13,152)
  BASR r14,r15
 *  }
  LA   r15,0
 
 and printed: 0034 *1000*
 
 This is z/OS 1.13.  I am not sure about the C compiler maintenance level, but 
 I can check.
 
 regards, Tom
 
 
 
 On 2013-07-22 12:00 AM, IBM-MAIN automatic digest system wrote:
 Date: Sun, 21 Jul 2013 20:42:54 +0800 From: David Crayford 
 dcrayf...@gmail.com Subject: Re: [MVS-OE] Looking for help with an obscure 
 C integer problem On 21/07/2013 8:40 PM, Shmuel Metz (Seymour J.) wrote:
 In51eb3a4c.8010...@gmail.com, on 07/21/2013
  at 09:33 AM, David Crayforddcrayf...@gmail.com  said:
 
 I don't like it because it's a hack to work around an puzzling
 issue. I  want to know why the optimizer is not generating the
 correct code.
 Why not report it as a bug?
 
 We don't know if it is a bug without seeing Charles code asis.
 
 -- 
 G. Tom Russell
 
 “Stay calm. Be brave. Wait for the signs.” — Jasper FriendlyBear
 “... and remember to leave good news alone.” — Gracie HeavyHand
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

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


PSO Dataspace of JES2

2013-07-22 Thread Mil Hashoul
Hi,
I would like to retrive information reside in the PSO dataspace of JES2, I
have done the following:

 USING HCCT,R5
 MVC   WSAJTOK,CCTJSTKN
 ALESERV ADD, add STOKEN to ALET   X
   STOKEN=WSAJTOK, X
   ALET=WSAJESA,   X
   CHKEAX=NO,  X
   MF=(E,WSALL)

So now I have the ALET of the JES address space.

but the PSO datascape is related to the JES2 address space, I found that
$PSOTOK have the ALET of the PSO dataspace but when I am doing the:

LAM AR3,AR3,$PSOTOK
SAC   512 GET INTO AR M
L R3,CCTPAD  START OF PAD C
L R1,$HCCT   GET THE HCCT B
LAE   R3,CCTPAD-HCCT-(PADPAD-PAD)(R1,0)
MVC   JTX_PROC_DD,PADNAME


I got the S0E0-29 ABEND : An ALET specified an access list entry (ALE) that
is not valid.

I think that I should also do the ALESERV also for the PSO dataspace, but
then I need to have the STOKN of it.

Any one can help?

Regards
Milad

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


Re: Looking for help with an obscure C integer problem

2013-07-22 Thread retired-mainfra...@q.com
Are you coding in C or C++?  static_cast is a C++ feature.

- Original Message -
From: Charles Mills charl...@mcn.org
To: IBM-MAIN@LISTSERV.UA.EDU
Sent: Saturday, July 20, 2013 5:36:01 PM
Subject: Re: Looking for help with an obscure C integer problem

Thanks. How would I solve this with a cast? I can force it to be wrong LOL
but can I force it to be right?

It seems to me like testWord = static_castunsigned long long(valueToTest
 32) might not solve the problem because that cast seems to me to imply
that the expression inside the parentheses is *not* 64 bits.

Frankly, I am now leaning toward

union {
unsigned long long ll;
struct {unsigned int hi; unsigned int lo} s; } u;

u.ll = valueToTest;

and then using u.s.hi where I now use testWord.

I generally avoid unions because they can be a tad problematic. I think the
above actually violates the C standard which says you can't assign to member
x and then read member y (which pretty much negates the whole purpose of
unions other than, as Stroustrup suggests, saving space in memory). 

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of David Crayford
Sent: Saturday, July 20, 2013 2:28 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Looking for help with an obscure C integer problem

As a general ROT I always use explicit casts.

On 21/07/2013, at 4:24 AM, Charles Mills charl...@mcn.org wrote:

 Cross-posted to IBM-MAIN and MVS-OE.
 
 I have the following code fragment in an inline function, compiled by 
 the IBM XLC compiler as C++:
 
 unsigned long long valueToTest;
 unsigned int testWord;
 testWord = valueToTest  32;
 
 It *appears* to me (from somewhat circumstantial evidence in a much 
 more complex big picture) when valueToTest has a value of 
 0x0034 then
 
 - If I compile Opt(0),NoInline then testWord gets the value I expect, 
 0x0034; but
 - If I compile Opt(2),Inline then testWord gets a value of 0.
 
 Questions: 
 
 1. Does that seem plausible? That the code would work as intended 
 Opt(0),NoInline but that with Opt(2),Inline the compiler would (I am 
 guessing here) first cast valueToTest to an int of 0, then shift it 
 right 32, and then assign it to testWord?
 
 2. What should I code to avoid that? I guess I could shift valueToTest 
 first (I don't need it again) and then in a separate statement assign 
 it to testWord. Is that the proper coding technique?
 
 It's fairly involved to test the whole thing so I took the liberty of 
 imposing on you folks rather than just trying stuff. Thanks much.
 
 Charles
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions, send 
 email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

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

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

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


Re: [MVS-OE] Looking for help with an obscure C integer problem

2013-07-22 Thread retired-mainfra...@q.com
Since the evaluated expression is automatically converted to the type of the 
left operand aspart of the assignment process, what purpose does the cast serve?

- Original Message -
From: David Crayford dcrayf...@gmail.com
To: IBM-MAIN@LISTSERV.UA.EDU
Sent: Saturday, July 20, 2013 8:06:37 PM
Subject: Re: [MVS-OE] Looking for help with an obscure C integer problem

Your casting a uint64_t to a uint64_t which is pointless. You should 
cast to the return value (uint32_t).

I've just tried your example and I can't recreate the problem, with or 
without casts and compiled with both OPT and NOOPT.

#include stdio.h
#include stdlib.h
#include stdint.h
#include string.h

int main( int argc, char **argv )
{
   uint64_t n = 0x0034LLU;
   uint32_t b = n  32;
   uint32_t c = static_castuint32_t(n  32);
   printf( %08X %08X\n, b, c );
}

I can only assume that the optimizer is throwing away valueToTest for 
some arcane reason. I've seen this happen with convoluted code with lots 
of pointers to pointers etc.
Try qualifying valueToTest with volatile, which should disable 
optimizations on that variable.

On 21/07/2013 8:27 AM, Charles Mills wrote:
 Hmmm. Not following your logic but I may give it a try.

 Charles

 -Original Message-
 From: MVS OpenEdition [mailto:mvs...@vm.marist.edu] On Behalf Of David
 Crayford
 Sent: Saturday, July 20, 2013 4:51 PM
 To: mvs...@vm.marist.edu
 Subject: Re: [MVS-OE] Looking for help with an obscure C integer problem

 If static_castuint32_t(valueToTest  32) doesn't fix it then the compiler
 is broken. Note the cast to uint32_t not uint64_t.

 On 21/07/2013, at 6:36 AM, Charles Mills charl...@mcn.org wrote:

 Thanks. How would I solve this with a cast? I can force it to be wrong
 LOL but can I force it to be right?

 It seems to me like testWord = static_castunsigned long
 long(valueToTest
 32) might not solve the problem because that cast seems to me to
 imply
 that the expression inside the parentheses is *not* 64 bits.

 Frankly, I am now leaning toward

 union {
 unsigned long long ll;
 struct {unsigned int hi; unsigned int lo} s; } u;

 u.ll = valueToTest;

 and then using u.s.hi where I now use testWord.

 I generally avoid unions because they can be a tad problematic. I
 think the above actually violates the C standard which says you can't
 assign to member x and then read member y (which pretty much negates
 the whole purpose of unions other than, as Stroustrup suggests, saving
 space in memory).
 Charles

 -Original Message-
 From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU]
 On Behalf Of David Crayford
 Sent: Saturday, July 20, 2013 2:28 PM
 To: IBM-MAIN@LISTSERV.UA.EDU
 Subject: Re: Looking for help with an obscure C integer problem

 As a general ROT I always use explicit casts.

 On 21/07/2013, at 4:24 AM, Charles Mills charl...@mcn.org wrote:

 Cross-posted to IBM-MAIN and MVS-OE.

 I have the following code fragment in an inline function, compiled by
 the IBM XLC compiler as C++:

 unsigned long long valueToTest;
 unsigned int testWord;
 testWord = valueToTest  32;

 It *appears* to me (from somewhat circumstantial evidence in a much
 more complex big picture) when valueToTest has a value of
 0x0034 then

 - If I compile Opt(0),NoInline then testWord gets the value I expect,
 0x0034; but
 - If I compile Opt(2),Inline then testWord gets a value of 0.

 Questions:

 1. Does that seem plausible? That the code would work as intended
 Opt(0),NoInline but that with Opt(2),Inline the compiler would (I am
 guessing here) first cast valueToTest to an int of 0, then shift it
 right 32, and then assign it to testWord?

 2. What should I code to avoid that? I guess I could shift
 valueToTest first (I don't need it again) and then in a separate
 statement assign it to testWord. Is that the proper coding technique?
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

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

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


Re: [MVS-OE] Looking for help with an obscure C integer problem

2013-07-22 Thread John McKown
I use them so that the reader of the code knows for certain sure that I did
intend to change from one precision to another, with possible loss of
information. Also, I like to compile with all messages enabled and still
get no warnings. I do a fair amount of unnecessary coding to get an RC of
0, rather than 4. I'm a bit OCD about that. I compile open source software
on Linux some times and just cringe at all the warnings that are produced.

On Mon, Jul 22, 2013 at 8:23 AM, retired-mainfra...@q.com 
retired-mainfra...@q.com wrote:

 Since the evaluated expression is automatically converted to the type of
 the left operand aspart of the assignment process, what purpose does the
 cast serve?


-- 
This is a test of the Emergency Broadcast System. If this had been an
actual emergency, do you really think we'd stick around to tell you?

Maranatha! 
John McKown

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


Re: Looking for help with an obscure C integer problem

2013-07-22 Thread retired-mainfra...@q.com
You remember incorrectly.  The expr4essions of the right are evaluated 
accoriding to the normal rules.  Only the final result is coerced into the 
type of the left operand.

- Original Message -
From: Bernd Oppolzer bernd.oppol...@t-online.de
To: IBM-MAIN@LISTSERV.UA.EDU
Sent: Sunday, July 21, 2013 11:44:11 AM
Subject: Re: Looking for help with an obscure C integer problem

BTW:

I think I remember from an old book on C programming:

if the target of an assignment is int, all operands on the right side
are converted to int - if the target of an assignment is long, all operands
on the right side are converted to long

If I remember correctly, this would perfectly explain the behaviour you see
(of course, it makes more sense for data types being shorter than the
type of the assignment target, but if it's done as written above, you 
have it
for longer types, too).

Kind regards

Bernd




Am 21.07.2013 18:32, schrieb Bernd Oppolzer:
 Sorry for jumping late into this thread.

 Why not spend another variable of type long long to do the shift there?

 like

 unsigned long long valueToTest;
 unsigned int testWord;
 unsigned long long x;

 x = valueToTest  32;   /* here */
 testWord = (int) x;


 If now in the expression marked with /* here */ the compiler
 does not do the shift as a true 64 bit shift, there is no excuse
 and you should report this as a bug. The cast to int is done
 in the next statement.

 In the other case there may be some strange language rules
 that allow the long long variable to be casted to int before the
 shift - I don't know, but why lose time and think much about it?

 Kind regards

 Bernd




 Am 20.07.2013 22:24, schrieb Charles Mills:
 Cross-posted to IBM-MAIN and MVS-OE.

 I have the following code fragment in an inline function, compiled by 
 the
 IBM XLC compiler as C++:

 unsigned long long valueToTest;
 unsigned int testWord;
 testWord = valueToTest  32;

 It *appears* to me (from somewhat circumstantial evidence in a much more
 complex big picture) when valueToTest has a value of 
 0x0034 then

 - If I compile Opt(0),NoInline then testWord gets the value I expect,
 0x0034; but
 - If I compile Opt(2),Inline then testWord gets a value of 0.

 Questions:

 1. Does that seem plausible? That the code would work as intended
 Opt(0),NoInline but that with Opt(2),Inline the compiler would (I am
 guessing here) first cast valueToTest to an int of 0, then shift it 
 right
 32, and then assign it to testWord?

 2. What should I code to avoid that? I guess I could shift 
 valueToTest first
 (I don't need it again) and then in a separate statement assign it to
 testWord. Is that the proper coding technique?

 It's fairly involved to test the whole thing so I took the liberty of
 imposing on you folks rather than just trying stuff. Thanks much.

 Charles

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


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


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

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


Re: Encryption of data written to disks FICON channels

2013-07-22 Thread Phil Smith
R.S. asked:
BTW: What's wrong with whole disk encryption? Why field-level encryption is 
better? IMHO it addresses different needs.

Arye Shemer wrote:
First I 'll try to explain the reasoning behind my request.

1. Encryption of 'Data In Rest' is a requirement by local PCI regulation
2. Encryption of 'Data In Rest' is just one step (in probably of many) of
data protection required by this regulation
3. Field encryption by DB2 is good solution but it does not covers files or
reports (sysouts) which require another solution
4. Disk encryption is probaly the best and simple solution for encryption
of 'Data In Rest' , but (there always are some buts)
If you do not have disks which are encryption enable you have to buy
them, it might be expensive

So we thought that in order to comply with the regulation requirements
we'll use (if exist) some device which encrypt/decrypt
the data going/coming from the disks.

R.S.: Right. But I suspected (and Arye has confirmed) that this was PCI or 
other regulation-driven.

There are a couple of problems with whole-disk encryption for regulatory 
compliance:

1)  Lack of Separation of Duties controls: since it's all-or-nothing, it's 
not really possible to say This user can see THIS data, but not THAT data 
using the encryption as a control. So now you have to add MORE controls.

2)  Weaker security in terms of attack points. If you think of a stack, 
bottom to top, of hardware/OS(filesystem)/database/middleware/application, and 
think about encryption applied at each of those levels, each only protects the 
levels BELOW it. So if you encrypt at the application level, you're providing 
the most security: an attacker has to break the application to get at the real 
data. At the other extreme (hardware), all they need to break into is the 
machine. And so forth.

Ron Hawkins noted:
I don't have any problem with field, record or file level encryption, but
there is a downside if you are doing remote copy over a network, as it
encrypted data usually compresses very poorly. It's not a problem for
everyone.

Warning: Voltage-specific information follows.

If you encrypt to binary, true. If you use Format-Preserving Encryption 
technology, the output looks like the input, and thus compresses just fine. AES 
FFX modehttp://csrc.nist.gov/groups/ST/toolkit/BCM/modes_development.html (in 
final stages of NIST approval as an official mode of AES) provides this. 
Provably secure, vetted by third parties, etc. (hence NIST's willingness to 
adopt it as a standard). For z/OS, we have a number of native solutions, 
providing both Format-Preserving Encryption and Secure Stateless Tokenization 
technologies through the same API, with proper z/OS-style centralized control, 
ESM integration, etc.
--
...phsiii

Phil Smith III
p...@voltage.commailto:p...@voltage.com
Voltage Security, Inc.
www.voltage.comhttp://www.voltage.com/

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


Re: PSO Dataspace of JES2

2013-07-22 Thread Rob Scott
Ouch.

There are quite a few issues with what you are trying to do :

(1) Adding the STOKEN of a foreign ASID to your PASN-AL or DU-AL using 
CHKEAX=NO is violating z/OS system integrity.
(2) The ALET that a foreign ASID uses to address data in a non-common dataspace 
will be completely different to the ALET value that your PASN will have to use 
for the same dataspace.
(3) The JES PSO dataspace is owned by the JES2AUX ASID and not the JES2 address 
space.

What are you attempting to achieve ?   

There is no real IBM-supported way of gathering private area data from an 
address space that you do not have a valid cross-memory bind - however the 
accepted safe way of doing it is via SRB/FRR rather than the AR-mode 
technique you have tried to use.

I suggest that you take a look at the IEAMSCHD service and re-read the Auth ASM 
Services and Extended Addressability manuals.

You might also want to search the IBM-Main archives as this has been discussed 
a few times over the years.  

Rob Scott
Lead Developer
Rocket Software
77 Fourth Avenue . Suite 100 . Waltham . MA 02451-1468 . USA
Tel: +1.781.684.2305
Email: rsc...@rs.com
Web: www.rocketsoftware.com

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Mil Hashoul
Sent: 22 July 2013 14:04
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: PSO Dataspace of JES2

Hi,
I would like to retrive information reside in the PSO dataspace of JES2, I have 
done the following:

 USING HCCT,R5
 MVC   WSAJTOK,CCTJSTKN
 ALESERV ADD, add STOKEN to ALET   X
   STOKEN=WSAJTOK, X
   ALET=WSAJESA,   X
   CHKEAX=NO,  X
   MF=(E,WSALL)

So now I have the ALET of the JES address space.

but the PSO datascape is related to the JES2 address space, I found that 
$PSOTOK have the ALET of the PSO dataspace but when I am doing the:

LAM AR3,AR3,$PSOTOK
SAC   512 GET INTO AR M
L R3,CCTPAD  START OF PAD C
L R1,$HCCT   GET THE HCCT B
LAE   R3,CCTPAD-HCCT-(PADPAD-PAD)(R1,0)
MVC   JTX_PROC_DD,PADNAME


I got the S0E0-29 ABEND : An ALET specified an access list entry (ALE) that is 
not valid.

I think that I should also do the ALESERV also for the PSO dataspace, but then 
I need to have the STOKN of it.

Any one can help?

Regards
Milad

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

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


Re: [MVS-OE] Looking for help with an obscure C integer problem

2013-07-22 Thread David Crayford
No purpose at all. Merely clutching at straws trying to circumvent Charles 
rather baffling problem. It's not uncommon to see casts like that but it is 
unnecessary. Of course going the other way does require casts for conversion. 

unsigned int anUInt = 0xc000;
long long aLongLong = (long long)anUInt  2; // 0x3 (correct)

C/C++ integral promotion rules can be a pitfall for the novice. 


On 22/07/2013, at 9:23 PM, retired-mainfra...@q.com 
retired-mainfra...@q.com wrote:

 Since the evaluated expression is automatically converted to the type of the 
 left operand aspart of the assignment process, what purpose does the cast 
 serve?
 
 - Original Message -
 From: David Crayford dcrayf...@gmail.com
 To: IBM-MAIN@LISTSERV.UA.EDU
 Sent: Saturday, July 20, 2013 8:06:37 PM
 Subject: Re: [MVS-OE] Looking for help with an obscure C integer problem
 
 Your casting a uint64_t to a uint64_t which is pointless. You should 
 cast to the return value (uint32_t).
 
 I've just tried your example and I can't recreate the problem, with or 
 without casts and compiled with both OPT and NOOPT.
 
 #include stdio.h
 #include stdlib.h
 #include stdint.h
 #include string.h
 
 int main( int argc, char **argv )
 {
   uint64_t n = 0x0034LLU;
   uint32_t b = n  32;
   uint32_t c = static_castuint32_t(n  32);
   printf( %08X %08X\n, b, c );
 }
 
 I can only assume that the optimizer is throwing away valueToTest for 
 some arcane reason. I've seen this happen with convoluted code with lots 
 of pointers to pointers etc.
 Try qualifying valueToTest with volatile, which should disable 
 optimizations on that variable.
 
 On 21/07/2013 8:27 AM, Charles Mills wrote:
 Hmmm. Not following your logic but I may give it a try.
 
 Charles
 
 -Original Message-
 From: MVS OpenEdition [mailto:mvs...@vm.marist.edu] On Behalf Of David
 Crayford
 Sent: Saturday, July 20, 2013 4:51 PM
 To: mvs...@vm.marist.edu
 Subject: Re: [MVS-OE] Looking for help with an obscure C integer problem
 
 If static_castuint32_t(valueToTest  32) doesn't fix it then the compiler
 is broken. Note the cast to uint32_t not uint64_t.
 
 On 21/07/2013, at 6:36 AM, Charles Mills charl...@mcn.org wrote:
 
 Thanks. How would I solve this with a cast? I can force it to be wrong
 LOL but can I force it to be right?
 
 It seems to me like testWord = static_castunsigned long
 long(valueToTest
 32) might not solve the problem because that cast seems to me to
 imply
 that the expression inside the parentheses is *not* 64 bits.
 
 Frankly, I am now leaning toward
 
 union {
 unsigned long long ll;
 struct {unsigned int hi; unsigned int lo} s; } u;
 
 u.ll = valueToTest;
 
 and then using u.s.hi where I now use testWord.
 
 I generally avoid unions because they can be a tad problematic. I
 think the above actually violates the C standard which says you can't
 assign to member x and then read member y (which pretty much negates
 the whole purpose of unions other than, as Stroustrup suggests, saving
 space in memory).
 Charles
 
 -Original Message-
 From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU]
 On Behalf Of David Crayford
 Sent: Saturday, July 20, 2013 2:28 PM
 To: IBM-MAIN@LISTSERV.UA.EDU
 Subject: Re: Looking for help with an obscure C integer problem
 
 As a general ROT I always use explicit casts.
 
 On 21/07/2013, at 4:24 AM, Charles Mills charl...@mcn.org wrote:
 
 Cross-posted to IBM-MAIN and MVS-OE.
 
 I have the following code fragment in an inline function, compiled by
 the IBM XLC compiler as C++:
 
 unsigned long long valueToTest;
 unsigned int testWord;
 testWord = valueToTest  32;
 
 It *appears* to me (from somewhat circumstantial evidence in a much
 more complex big picture) when valueToTest has a value of
 0x0034 then
 
 - If I compile Opt(0),NoInline then testWord gets the value I expect,
 0x0034; but
 - If I compile Opt(2),Inline then testWord gets a value of 0.
 
 Questions:
 
 1. Does that seem plausible? That the code would work as intended
 Opt(0),NoInline but that with Opt(2),Inline the compiler would (I am
 guessing here) first cast valueToTest to an int of 0, then shift it
 right 32, and then assign it to testWord?
 
 2. What should I code to avoid that? I guess I could shift
 valueToTest first (I don't need it again) and then in a separate
 statement assign it to testWord. Is that the proper coding technique?
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to 

Re: Looking for help with an obscure C integer problem

2013-07-22 Thread Charles Mills
C++ per OP.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of retired-mainfra...@q.com
Sent: Monday, July 22, 2013 6:20 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Looking for help with an obscure C integer problem

Are you coding in C or C++?  static_cast is a C++ feature.

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


Re: Looking for help with an obscure C integer problem

2013-07-22 Thread Charles Mills
Update:

- parentheses did not fix the problem: testWord = (valueToTest = 32);

- splitting it into two instructions did not fix the problem:

valueToTest = 32;
testWord = valueToTest;

- recompiling just the single module with Opt(0) rather than Opt(2) did fix
the problem. 

Everything else 100% the same. It may well be the surrounding code that
causes the problem but I don't have the time at this point to try a hundred
different test cases.

I think we definitely have a compiler bug here.

I may try the union approach, or the pure C (no call to ffs()) code that
David suggested. I might try un-inlining the function, although that is
basically a part of the try a hundred different things approach.

Also, thanks David, not sure why I pulled that GONUMBER out of there. I will
give that some thought.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of David Crayford
Sent: Monday, July 22, 2013 4:22 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Looking for help with an obscure C integer problem

On 22/07/2013 12:17 PM, Charles Mills wrote:

 #  0 and NOINLINE TEST or 2 and INLINE NOTEST
 #  OPT(0) NOINLINE   TEST   GONUMBER
 OPT(2)   INLINE NOTEST NOGONUMBER COMPRESS

Are you concerned about the size of your load modules? I can understand that
in C++ code that uses STL templates but I would trade off bigger load
modules for the better diagnostics that OFFSET GONUMBER give me.

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


Re: Looking for help with an obscure C integer problem

2013-07-22 Thread Paul Gilmartin
On Sun, 21 Jul 2013 17:03:55 -0400, John Gilmore wrote:

begin extract
It is at the compiler's and optimizer's discretion to decide the order
of execution for code that the C++ standard does not specifically
define. This includes overlapping execution.
/end extract

and this may be conceded.  What is not in the compiler's and
optimizer's discretion is to produce different final numerical or
string results for different levels of optimization.

Agreed, with an exception.

Long ago, with a different language from a different vendor
my program program checked when optimized.  In debug
mode it ran successfully and produced the result I intended.

Reported to vendor who replied (correctly) that I had relied
(inadvertently) on a construct described the reference as
undefined, allowing the behavior to differ between different
levels of optimization.  I went away unsatisfied.

The only permissible exception is that an error should be
reported in debugging mode when the result is undefined
and no error is reported in optimized mode.

( the problem occurred because in debugging mode the
compiler generated the sequence:

STH(truncating the value)
LH   (lest a breakpoint be set here)
SLA

In optimized mode, only the:

SLA(with fixed-point overflow detected,)

I consider it a shortcoming of aboriginal S/360 design that
neither MH nor STH generates a fixed-point overflow error
when appropriate.)

-- gil

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


Re: [MVS-OE] Looking for help with an obscure C integer problem

2013-07-22 Thread Charles Mills
With the constant 0x0034... as a literal in the code the compiler is able to 
short-circuit the shift entirely.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Tom Russell
Sent: Monday, July 22, 2013 5:39 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: [MVS-OE] Looking for help with an obscure C integer problem

Well I think it is a bug.
the following source:
#include stdio.h
#include stdlib.h
#include stdint.h
#include string.h
int main( int argc, char **argv )
{
uint64_t n = 0x0034LLU;
uint32_t b = n  32;

printf( %08X %08X\n, b);
}


With OPT(0) it generated:
   LARL r5,F'46'
*  {
* uint64_t n = 0x0034LLU;
   IILL r0,H'0'
   IILH r0,H'52'
   ST   r0,n(,r13,160)
   LA   r2,0
   ST   r2,n(,r13,164)
* uint32_t b = n  32;
   Lr6,n(,r13,160)
   Lr7,n(,r13,164)
   SRDL r6,32
   LR   r0,r7
   ST   r0,b(,r13,168)
*
* printf( %08X %08X\n, b);
   Lr15,=V(PRINTF)(,r3,102)
   LR   r4,r5
   LA   r1,#MX_TEMP1(,r13,152)
   ST   r4,#MX_TEMP1(,r13,152)
   ST   r0,#MX_TEMP1(,r13,156)
   BASR r14,r15
   LR   r15,r2

and printed: 0034*0034*

With OPT(3) it generated:
*  {
* uint64_t n = 0x0034LLU;
   IILL r0,H'0'
   IILH r0,H'52'
* uint32_t b = n  32;
*
* printf( %08X %08X\n, b);
   LARL r1,F'26'
   Lr15,=V(PRINTF)(,r3,74)
   ST   r1,#MX_TEMP1(,r13,152)
   ST   r0,#MX_TEMP1(,r13,156)
   LA   r1,#MX_TEMP1(,r13,152)
   BASR r14,r15* {
* uint64_t n = 0x0034LLU;
   IILL r0,H'0'
   IILH r0,H'52'
* uint32_t b = n  32;
*
* printf( %08X %08X\n, b);
   LARL r1,F'26'
   Lr15,=V(PRINTF)(,r3,74)
   ST   r1,#MX_TEMP1(,r13,152)
   ST   r0,#MX_TEMP1(,r13,156)
   LA   r1,#MX_TEMP1(,r13,152)
   BASR r14,r15
*  }
   LA   r15,0

and printed: 0034 *1000*

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


Re: Looking for help with an obscure C integer problem

2013-07-22 Thread Bernd Oppolzer

Before complaining somewhere about a compiler error,
I would strongly recommend to take a look at the assembly listing.
Not one look, but better: have another person take a second look.
It once happened to me that by looking at the assembly listing
I believed to see the evidence of a compiler error, when another person
- maybe on this list - showed me that the IMO missing instruction appeared
some thirty instructions later which made the code correct. And the error
finally turned out to be a very simple error on my part.

Kind regards

Bernd


Am 22.07.2013 16:54, schrieb Charles Mills:

Update:

- parentheses did not fix the problem: testWord = (valueToTest = 32);

- splitting it into two instructions did not fix the problem:

valueToTest = 32;
testWord = valueToTest;

- recompiling just the single module with Opt(0) rather than Opt(2) did fix
the problem.

Everything else 100% the same. It may well be the surrounding code that
causes the problem but I don't have the time at this point to try a hundred
different test cases.

I think we definitely have a compiler bug here.

I may try the union approach, or the pure C (no call to ffs()) code that
David suggested. I might try un-inlining the function, although that is
basically a part of the try a hundred different things approach.

Also, thanks David, not sure why I pulled that GONUMBER out of there. I will
give that some thought.

Charles



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


Re: BLKSIZE=3120

2013-07-22 Thread Lizette Koehler
Ed,

That is a very small subset these days.

AFAIK - OBJ Decks from compilers, TSO XMIT datasets, TRSMAIN (though I think
this is 6k) and a few others are still dependent on 3120 blksize.  However,
I would think allowing your users to specify BLKSIZE=0 would be a benefit.
Unless you have one of the above, should be okay.  Most Mainframe Storage
ADMINs, could probably have ACS code that will override the SDB to the
appropriate BLKSIZE based on the function.  Or change control products
(CHANGEMAN, ENDEVOR) could also override the specification of BLKSIZE=0.


Just my 2 cents worth.
Lizette


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of Ed Jaffe
Sent: Monday, July 22, 2013 9:08 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: BLKSIZE=3120

A customer (mildly) complained thatsome of our product allocations still use
BLKSIZE=3120. I vaguely remember trying to change all of them to
BLKSIZE=0 many years ago (probably before OS/390) and running into some
issues with certain IBM utilities. Unfortunately, I can't remember the
specifics.

In starting to revisit this again, I noticed numerousoccurrences of '3120'
in IBM help and documentation. For example, the TSO/E RECEIVE command HELP
claims that the log data set must be BLKSIZE=3120:

TSO/E RECEIVE command HELP
LOGDATASET   You may specify an alternate data set to be
  used for the logging of the transmitted data.
  This data set will be created if it does not
  exist.  The data set should be created with
  a logical record length of 255, a record format
  of VB and a blocksize of 3120.
...

LOGDSNAMEYou may specify an alternate data set to be
  used for the logging of the transmitted data.
  This data set will be created if it does not
  exist.  The data set should be created with
  a logical record length of 255, a record format
  of VB and a blocksize of 3120.
/TSO/E RECEIVE command HELP

Is this just outdated help? Or does this restriction still exist?

is z/OS still a mine field filled with subtle dependencies on
BLKSIZE=3120?

If such restrictions are known to still exist, can anyone help with any
specifics?

Thanks in advance...

--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
http://www.phoenixsoftware.com/

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


Re: Looking for help with an obscure C integer problem

2013-07-22 Thread retired-mainfra...@q.com
The right operand in this case is the result of evaluating the expression.  The 
quoted text is not meant to imply that operands are converted before the right 
hand expression is evaluated.  If that were the case, then 
   int x = 14.0/2.1;
would evaluate to 7 which is demonstrably not the case.

- Original Message -
From: Charles Mills charl...@mcn.org
To: IBM-MAIN@LISTSERV.UA.EDU
Sent: Sunday, July 21, 2013 1:26:54 PM
Subject: Re: Looking for help with an obscure C integer problem

You are 100% correct. You nailed it. Stroustrup p. 263: If both operands
have arithmetic type, the right operand is converted to the type of the left
preparatory to the assignment.

That explains why it fails, but not why it works Opt(0). I am going to
*guess* that Opt(0) it compiles as though I had coded testWord =
static_castunsigned int(valueToTest  32) while with Opt(2) it compiles
as though I had coded testWord = static_castunsigned int(valueToTest) 
32;

In your earlier post you suggested wasting another long long. Yes, that's
an approach. Actually I am finished with valueToTest and can just do things
in two steps without wasting a variable:

valueToTest = 32;
testWord = valueToTest;

I am busy with other things perhaps until sometime this week but the first
thing I am going to try is simply using parentheses to attempt to force
the Opt(0) interpretation:

testWord = (valueToTest  32);

If that fails I will move on to more elaborate approaches. The two
statement approach will either work or else it is a very clear bug and I
will re-group. Will probably try the union approach at that point.

Thanks!

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of Bernd Oppolzer
Sent: Sunday, July 21, 2013 9:44 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Looking for help with an obscure C integer problem

BTW:

I think I remember from an old book on C programming:

if the target of an assignment is int, all operands on the right side are
converted to int - if the target of an assignment is long, all operands on
the right side are converted to long

If I remember correctly, this would perfectly explain the behaviour you see
(of course, it makes more sense for data types being shorter than the type
of the assignment target, but if it's done as written above, you have it for
longer types, too).

Kind regards

Bernd




Am 21.07.2013 18:32, schrieb Bernd Oppolzer:
 Sorry for jumping late into this thread.

 Why not spend another variable of type long long to do the shift there?

 like

 unsigned long long valueToTest;
 unsigned int testWord;
 unsigned long long x;

 x = valueToTest  32;   /* here */
 testWord = (int) x;

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

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


BLKSIZE=3120

2013-07-22 Thread Ed Jaffe
A customer (mildly) complained thatsome of our product allocations still 
use BLKSIZE=3120. I vaguely remember trying to change all of them to 
BLKSIZE=0 many years ago (probably before OS/390) and running into some 
issues with certain IBM utilities. Unfortunately, I can't remember the 
specifics.


In starting to revisit this again, I noticed numerousoccurrences of 
'3120' in IBM help and documentation. For example, the TSO/E RECEIVE 
command HELP claims that the log data set must be BLKSIZE=3120:


TSO/E RECEIVE command HELP
LOGDATASET   You may specify an alternate data set to be
 used for the logging of the transmitted data.
 This data set will be created if it does not
 exist.  The data set should be created with
 a logical record length of 255, a record format
 of VB and a blocksize of 3120.
...

LOGDSNAMEYou may specify an alternate data set to be
 used for the logging of the transmitted data.
 This data set will be created if it does not
 exist.  The data set should be created with
 a logical record length of 255, a record format
 of VB and a blocksize of 3120.
/TSO/E RECEIVE command HELP

Is this just outdated help? Or does this restriction still exist?

is z/OS still a mine field filled with subtle dependencies on 
BLKSIZE=3120?


If such restrictions are known to still exist, can anyone help with any 
specifics?


Thanks in advance...

--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
http://www.phoenixsoftware.com/

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


Re: BLKSIZE=3120

2013-07-22 Thread Skip Robinson
Last time I explored this issue, the problem went beyond 'help'. In many 
cases of 'product allocated' files, existing output blocksize was 
overridden by 3120 regardless of how it was set ahead of time. I really 
don't think that BLKSIZE=0 will cause a problem. You just may not get what 
you bargained for. 

.
.
JO.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler 
SHARE MVS Program Co-Manager
626-302-7535 Office
323-715-0595 Mobile
jo.skip.robin...@sce.com



From:   Charles Mills charl...@mcn.org
To: IBM-MAIN@LISTSERV.UA.EDU, 
Date:   07/22/2013 09:28 AM
Subject:Re: BLKSIZE=3120
Sent by:IBM Mainframe Discussion List IBM-MAIN@LISTSERV.UA.EDU



I took the giant leap several years ago and stopped using 3120 for TSO 
XMIT.
I hard-code 27920. Not as wonderful as 0, but better than 3120. Several
years now with no issues.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of Ed Jaffe
Sent: Monday, July 22, 2013 9:08 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: BLKSIZE=3120

A customer (mildly) complained thatsome of our product allocations still 
use
BLKSIZE=3120. I vaguely remember trying to change all of them to
BLKSIZE=0 many years ago (probably before OS/390) and running into some
issues with certain IBM utilities. Unfortunately, I can't remember the
specifics.

In starting to revisit this again, I noticed numerousoccurrences of '3120'
in IBM help and documentation. For example, the TSO/E RECEIVE command HELP
claims that the log data set must be BLKSIZE=3120:

TSO/E RECEIVE command HELP
LOGDATASET   You may specify an alternate data set to be
  used for the logging of the transmitted data.
  This data set will be created if it does not
  exist.  The data set should be created with
  a logical record length of 255, a record format
  of VB and a blocksize of 3120.
...

LOGDSNAMEYou may specify an alternate data set to be
  used for the logging of the transmitted data.
  This data set will be created if it does not
  exist.  The data set should be created with
  a logical record length of 255, a record format
  of VB and a blocksize of 3120.
/TSO/E RECEIVE command HELP

Is this just outdated help? Or does this restriction still exist?


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


Re: BLKSIZE=3120

2013-07-22 Thread Ed Jaffe

On 7/22/2013 9:28 AM, Charles Mills wrote:

I took the giant leap several years ago and stopped using 3120 for TSO XMIT.
I hard-code 27920. Not as wonderful as 0, but better than 3120. Several
years now with no issues.


Good to know. I suppose for errors in help, rather than in the manual, 
I've got to go the PMR/APAR route as opposed to an RFC.


--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
http://www.phoenixsoftware.com/

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


Re: BLKSIZE=3120

2013-07-22 Thread John P Kalinich
Gilbert has a zap on CBT file 183 to overlay 3120 with zero in the OUTPUT
DCB of XMIT.  It may have to be reworked.

Regards,
John K

IBM Mainframe Discussion List IBM-MAIN@listserv.ua.edu wrote on
07/22/2013 11:28:26 AM:

 From: Charles Mills charl...@mcn.org
 To: IBM-MAIN@listserv.ua.edu
 Date: 07/22/2013 11:28 AM
 Subject: Re: BLKSIZE=3120
 Sent by: IBM Mainframe Discussion List IBM-MAIN@listserv.ua.edu

 I took the giant leap several years ago and stopped using 3120 for TSO
XMIT.
 I hard-code 27920. Not as wonderful as 0, but better than 3120. Several
 years now with no issues.

 Charles

 -Original Message-
 From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
 Behalf Of Ed Jaffe
 Sent: Monday, July 22, 2013 9:08 AM
 To: IBM-MAIN@LISTSERV.UA.EDU
 Subject: BLKSIZE=3120

 A customer (mildly) complained thatsome of our product allocations still
use
 BLKSIZE=3120. I vaguely remember trying to change all of them to
 BLKSIZE=0 many years ago (probably before OS/390) and running into some
 issues with certain IBM utilities. Unfortunately, I can't remember the
 specifics.

 In starting to revisit this again, I noticed numerousoccurrences of
'3120'
 in IBM help and documentation. For example, the TSO/E RECEIVE command
HELP
 claims that the log data set must be BLKSIZE=3120:

 TSO/E RECEIVE command HELP
 LOGDATASET   You may specify an alternate data set to be
   used for the logging of the transmitted data.
   This data set will be created if it does not
   exist.  The data set should be created with
   a logical record length of 255, a record format
   of VB and a blocksize of 3120.
 ...

 LOGDSNAMEYou may specify an alternate data set to be
   used for the logging of the transmitted data.
   This data set will be created if it does not
   exist.  The data set should be created with
   a logical record length of 255, a record format
   of VB and a blocksize of 3120.
 /TSO/E RECEIVE command HELP

 Is this just outdated help? Or does this restriction still exist?

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


Re: BLKSIZE=3120

2013-07-22 Thread R.S.

W dniu 2013-07-22 18:08, Ed Jaffe pisze:
A customer (mildly) complained thatsome of our product allocations 
still use BLKSIZE=3120. I vaguely remember trying to change all of 
them to BLKSIZE=0 many years ago (probably before OS/390) and running 
into some issues with certain IBM utilities. Unfortunately, I can't 
remember the specifics.


In starting to revisit this again, I noticed numerousoccurrences of 
'3120' in IBM help and documentation. For example, the TSO/E RECEIVE 
command HELP claims that the log data set must be BLKSIZE=3120:


TSO/E RECEIVE command HELP
LOGDATASET   You may specify an alternate data set to be
 used for the logging of the transmitted data.
 This data set will be created if it does not
 exist.  The data set should be created with
 a logical record length of 255, a record format
 of VB and a blocksize of 3120.
...

LOGDSNAMEYou may specify an alternate data set to be
 used for the logging of the transmitted data.
 This data set will be created if it does not
 exist.  The data set should be created with
 a logical record length of 255, a record format
 of VB and a blocksize of 3120.
/TSO/E RECEIVE command HELP

Is this just outdated help? Or does this restriction still exist?

is z/OS still a mine field filled with subtle dependencies on 
BLKSIZE=3120?


Well, IMHO it's not restriction, it is just allocation default. Good 
default in very old days, but not very bad today.
Note, The difference between ~3k and optimal ~27k seem to be large, but 
the effects (performance, space used) give no big difference.
BTW: DB2, LOGGER, MQ, and many many VSAM exploiters do use blocks 4kB. 
Is it far from 3kB?
Of course you can try the above datasets with other (SDB) blocksize, and 
I bet nothing will break. Why didn't they change it? Well, it time to 
re-start the following subthreads:

- TSO is moribound
- if it isn't broken don't fix it (see latest implementation as IMBED 
for catalogs).



Regards

--
Radoslaw Skorupka
Lodz, Poland






--
Tre tej wiadomoci moe zawiera informacje prawnie chronione Banku 
przeznaczone wycznie do uytku subowego adresata. Odbiorc moe by jedynie 
jej adresat z wyczeniem dostpu osób trzecich. Jeeli nie jeste adresatem 
niniejszej wiadomoci lub pracownikiem upowanionym do jej przekazania 
adresatowi, informujemy, e jej rozpowszechnianie, kopiowanie, rozprowadzanie 
lub inne dziaanie o podobnym charakterze jest prawnie zabronione i moe by 
karalne. Jeeli otrzymae t wiadomo omykowo, prosimy niezwocznie 
zawiadomi nadawc wysyajc odpowied oraz trwale usun t wiadomo 
wczajc w to wszelkie jej kopie wydrukowane lub zapisane na dysku.

This e-mail may contain legally privileged information of the Bank and is intended solely for business use of the addressee. This e-mail may only be received by the addressee and may not be disclosed to any third parties. If you are not the intended addressee of this e-mail or the employee authorised to forward it to the addressee, be advised that any dissemination, copying, distribution or any other similar activity is legally prohibited and may be punishable. If you received this e-mail by mistake please advise the sender immediately by using the reply facility in your e-mail software and delete permanently this e-mail including any copies of it either printed or saved to hard drive. 


BRE Bank SA, 00-950 Warszawa, ul. Senatorska 18, tel. +48 (22) 829 00 00, fax 
+48 (22) 829 00 33, www.brebank.pl, e-mail: i...@brebank.pl
Sd Rejonowy dla m. st. Warszawy XII Wydzia Gospodarczy Krajowego Rejestru Sdowego, nr rejestru przedsibiorców KRS 025237, NIP: 526-021-50-88. 
Wedug stanu na dzie 01.01.2013 r. kapita zakadowy BRE Banku SA (w caoci wpacony) wynosi 168.555.904 zotych.



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


Re: Looking for help with an obscure C integer problem

2013-07-22 Thread Bernd Oppolzer

That is another case, because the right side operands are not ints.

For ints, I saw references that all operands are promoted to ints,
if they can be represented as an int (that is true for chars, shorts etc.).

Don't know for sure about longs, for example; if long differs in size
from int, and there are longs on the right side, will they be promoted 
(that is: truncated)

to int, if there is an int on the left side, or will they be evaluated as
longs? That's the key question IMHO, and there should be a reference
in the C language description that makes it clear without doubt - but I
did not yet find such a reference - had not much time to look for it.

(IMO, it would be no good language design if such a core question
is left to the compiler builder - I don't believe it is so).

Kind regards

Bernd



Am 22.07.2013 18:27, schrieb retired-mainfra...@q.com:

The right operand in this case is the result of evaluating the expression.  The 
quoted text is not meant to imply that operands are converted before the right 
hand expression is evaluated.  If that were the case, then
int x = 14.0/2.1;
would evaluate to 7 which is demonstrably not the case.



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


Re: BLKSIZE=3120

2013-07-22 Thread Thomas Conley

On 7/22/2013 12:08 PM, Ed Jaffe wrote:

A customer (mildly) complained thatsome of our product allocations still
use BLKSIZE=3120. I vaguely remember trying to change all of them to
BLKSIZE=0 many years ago (probably before OS/390) and running into some
issues with certain IBM utilities. Unfortunately, I can't remember the
specifics.

In starting to revisit this again, I noticed numerousoccurrences of
'3120' in IBM help and documentation. For example, the TSO/E RECEIVE
command HELP claims that the log data set must be BLKSIZE=3120:

TSO/E RECEIVE command HELP
LOGDATASET   You may specify an alternate data set to be
  used for the logging of the transmitted data.
  This data set will be created if it does not
  exist.  The data set should be created with
  a logical record length of 255, a record format
  of VB and a blocksize of 3120.
...

LOGDSNAMEYou may specify an alternate data set to be
  used for the logging of the transmitted data.
  This data set will be created if it does not
  exist.  The data set should be created with
  a logical record length of 255, a record format
  of VB and a blocksize of 3120.
/TSO/E RECEIVE command HELP

Is this just outdated help? Or does this restriction still exist?

is z/OS still a mine field filled with subtle dependencies on
BLKSIZE=3120?

If such restrictions are known to still exist, can anyone help with any
specifics?

Thanks in advance...



Ed,

If there are any restrictions, they should be APAR'ed.  3120, 6160, 
6144, etc. is SO 20th century.  It's amazing to me how many IBM and OEM 
products still ship these crappy blocksizes.  It's why I submitted a 
SHARE requirement to have AMATERSE support SDB.  Isn't it ironic that a 
utility designed to save DASD space uses a 6144 blocksize and actually 
wastes DASD?


Regards,
Tom Conley

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


Re: BLKSIZE=3120

2013-07-22 Thread Charles Mills
Hmm. I *may* need to take back what I said. It looks like for XMIT I specify
27920 but it forces 3120. Would need to do more research and no time at the
moment.

I *know* I tell customers to allocate a file 27920, upload from the PC, and
run RECEIVE against it, so I know that works -- or at least I am not getting
customer complaints.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of R.S.
Sent: Monday, July 22, 2013 10:18 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: BLKSIZE=3120

W dniu 2013-07-22 18:08, Ed Jaffe pisze:
 A customer (mildly) complained thatsome of our product allocations 
 still use BLKSIZE=3120. I vaguely remember trying to change all of 
 them to BLKSIZE=0 many years ago (probably before OS/390) and running 
 into some issues with certain IBM utilities. Unfortunately, I can't 
 remember the specifics.

 In starting to revisit this again, I noticed numerousoccurrences of 
 '3120' in IBM help and documentation. For example, the TSO/E RECEIVE 
 command HELP claims that the log data set must be BLKSIZE=3120:

 TSO/E RECEIVE command HELP
 LOGDATASET   You may specify an alternate data set to be
  used for the logging of the transmitted data.
  This data set will be created if it does not
  exist.  The data set should be created with
  a logical record length of 255, a record format
  of VB and a blocksize of 3120.
 ...

 LOGDSNAMEYou may specify an alternate data set to be
  used for the logging of the transmitted data.
  This data set will be created if it does not
  exist.  The data set should be created with
  a logical record length of 255, a record format
  of VB and a blocksize of 3120.
 /TSO/E RECEIVE command HELP

 Is this just outdated help? Or does this restriction still exist?

 is z/OS still a mine field filled with subtle dependencies on 
 BLKSIZE=3120?

Well, IMHO it's not restriction, it is just allocation default. Good default
in very old days, but not very bad today.
Note, The difference between ~3k and optimal ~27k seem to be large, but the
effects (performance, space used) give no big difference.
BTW: DB2, LOGGER, MQ, and many many VSAM exploiters do use blocks 4kB. 
Is it far from 3kB?
Of course you can try the above datasets with other (SDB) blocksize, and I
bet nothing will break. Why didn't they change it? Well, it time to re-start
the following subthreads:
- TSO is moribound
- if it isn't broken don't fix it (see latest implementation as IMBED for
catalogs).

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


Re: NFS automount help requested

2013-07-22 Thread Neil Duffee
Take this with a large bucketful of salt 'cause I haven't got my own automount 
set up yet but someone will likely stomp on it if it's blatantly incorrect.

I think I recall (from feb) that you can't include directories in the name 
option ie. name cics/wsbind is not valid.  I believe you have to set-up your 
map for /u/cics, such as ucics.map, then use name wsbind there.  Give it a 
quick shot to confirm or shoot-down.

ps.  I'm also on the daily digest so I won't see list discussion/replies until 
tomorrow.  It works for me.  *grin*

  signature = 6 lines follows  
Neil Duffee, Joe Sysprog, uOttawa, Ottawa, Ont, Canada
telephone:1 613 562 5800 x4585  fax:1 613 562 5161
mailto:NDuffee of uOttawa.ca http:/ /aix1.uOttawa.ca/ ~nduffee
How *do* you plan for something like that?  Guardian Bob, Reboot
For every action, there is an equal and opposite criticism.
Systems Programming: Guilty, until proven innocent  John Norgauer 2004

-Original Message-
From: Alan Field [mailto:alan_c_fi...@bluecrossmn.com] 
Sent: July 19, 2013 15:11
Subject: NFS automount help requested

[snip]

But I really want this to be automounted on LPAR B.

On LPAR B I have a /u/cics/wsbinds defined. 

I update my u.map file with 

name  cics/wsbinds 
type  NFS 
[snip]

No matter what I try I cannot get this to automount. 

Given the MOUNT command works I suspect I have some confusion over the u.map 
definitions but hours of googling haven't resulted in anything useful.

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


Re: Partition a VTS 7720

2013-07-22 Thread Mike Wood
Jerry,  The partitioning available to the host systems is only by category 
numbers.
You dont have to partition, but reasons to create 2 partitions in your case 
include:
- tape management system - if not a single VMF shared between test/prod
- TCDB - this must be shared to avoid conflicts of volume status
- ICF catalogs containing tape data sets - if not online to both partitions you 
can get inconsistencies after tape management returns a volume to scratch, or a 
data set is created  on 1 lpar but managed from another.
That is why most people partition their system managed tape libraries including 
those which are virtual and have the dasd cache online to all system.

Mike Wood

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


Re: Partition a VTS 7720

2013-07-22 Thread Mike Wood
Radoslaw,

#4) rmm use of REJECT ANYUSE had some limitations. You now have the option of 
using PRTITION statements in rmm parmlib for more effective partitioning. Use 
in conjunction with OPENRULE.

Mike

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


Re: BLKSIZE=3120

2013-07-22 Thread Mike Schwab
3120 * 15 = 46800 / 55996 = 83.58% of maximum.

On Mon, Jul 22, 2013 at 12:41 PM, Charles Mills charl...@mcn.org wrote:
 Hmm. I *may* need to take back what I said. It looks like for XMIT I specify
 27920 but it forces 3120. Would need to do more research and no time at the
 moment.

 I *know* I tell customers to allocate a file 27920, upload from the PC, and
 run RECEIVE against it, so I know that works -- or at least I am not getting
 customer complaints.

 Charles

-- 
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?

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


Re: BLKSIZE=3120

2013-07-22 Thread Ed Jaffe

On 7/22/2013 10:41 AM, Charles Mills wrote:

Hmm. I *may* need to take back what I said. It looks like for XMIT I specify
27920 but it forces 3120. Would need to do more research and no time at the
moment.


This finding is consistent with John Kalinich's post where he describes 
the availability of a ZAP on CBT File 183 to change XMIT's hard-coded 
BLKSIZE=3120 to BLKSIZE=0. The hard-coded BLKSIZE=3120 in XMIT's DCB 
will override (and replace) the customer BLKSIZE=27920 specification in 
the Format-1 disk label.


--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
http://www.phoenixsoftware.com/

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


Re: IBM getting out of the Ed business?

2013-07-22 Thread Alan Altmark
On Sat, 20 Jul 2013 23:26:36 -0500, Ed Gould edgould1...@comcast.net wrote:
Big Blue cedes software and systems training biz to partners
 http://www.channelregister.co.uk/2013/07/16/
ibm_software_systems_training_channel/

*IF* this is true... is Z/os may not be far behind.

Eh?  What do you mean by z/OS may not be far behind.?

The introduction of IBM Global Training Partners will provide clients with more 
options and opportunities to receive IBM-authorized training.  

Please watch the videos at http://www.ibm.com/training/us?lnk=ushpcs2

Alan Altmark
Sr. Managing z/VM and Linux Consultant
IBM Lab Services and Training

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


Re: BLKSIZE=3120

2013-07-22 Thread Charles Mills
83.58% is hardly the end of the world IMHO.

27920 x 2 ~= 99.7%

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of Mike Schwab
Sent: Monday, July 22, 2013 11:30 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: BLKSIZE=3120

3120 * 15 = 46800 / 55996 = 83.58% of maximum.

On Mon, Jul 22, 2013 at 12:41 PM, Charles Mills charl...@mcn.org wrote:
 Hmm. I *may* need to take back what I said. It looks like for XMIT I 
 specify
 27920 but it forces 3120. Would need to do more research and no time 
 at the moment.

 I *know* I tell customers to allocate a file 27920, upload from the 
 PC, and run RECEIVE against it, so I know that works -- or at least I 
 am not getting customer complaints.

 Charles

--
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?

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

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


Re: BLKSIZE=3120

2013-07-22 Thread Duffy Nightingale
Hello,

I see another developer on here.  And we send our product out using TSO XMIT.  
Which gives rise to a question.  I saw some techie state that he would not 
install a product unless he could use SMP/E.  Is this something us developers 
should explore or is it a big headache that is not worth it?

Thanks, 

Duffy Nightingale
Sound Software Printing, Inc.
www.soundsoftware.us
du...@soundsoftware.us
Phone: 360.385.3456
Fax: 973.201.8921
 
The information in this e-mail, and any attachment therein
is confidential and for use by the addressee only. If you are
not the intended recipient, please return the e-mail to the
sender and delete it from your computer. Although Sound
Software Printing, Inc. attempts to sweep e-mail and
attachments for viruses, it does not guarantee that either
are virus-free and accepts no liability for any damage
sustained as a result of viruses.


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of R.S.
Sent: Monday, July 22, 2013 10:18 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: BLKSIZE=3120

W dniu 2013-07-22 18:08, Ed Jaffe pisze:
 A customer (mildly) complained thatsome of our product allocations 
 still use BLKSIZE=3120. I vaguely remember trying to change all of 
 them to BLKSIZE=0 many years ago (probably before OS/390) and running 
 into some issues with certain IBM utilities. Unfortunately, I can't 
 remember the specifics.

 In starting to revisit this again, I noticed numerousoccurrences of 
 '3120' in IBM help and documentation. For example, the TSO/E RECEIVE 
 command HELP claims that the log data set must be BLKSIZE=3120:

 TSO/E RECEIVE command HELP
 LOGDATASET   You may specify an alternate data set to be
  used for the logging of the transmitted data.
  This data set will be created if it does not
  exist.  The data set should be created with
  a logical record length of 255, a record format
  of VB and a blocksize of 3120.
 ...

 LOGDSNAMEYou may specify an alternate data set to be
  used for the logging of the transmitted data.
  This data set will be created if it does not
  exist.  The data set should be created with
  a logical record length of 255, a record format
  of VB and a blocksize of 3120.
 /TSO/E RECEIVE command HELP

 Is this just outdated help? Or does this restriction still exist?

 is z/OS still a mine field filled with subtle dependencies on 
 BLKSIZE=3120?

Well, IMHO it's not restriction, it is just allocation default. Good default in 
very old days, but not very bad today.
Note, The difference between ~3k and optimal ~27k seem to be large, but the 
effects (performance, space used) give no big difference.
BTW: DB2, LOGGER, MQ, and many many VSAM exploiters do use blocks 4kB. 
Is it far from 3kB?
Of course you can try the above datasets with other (SDB) blocksize, and I bet 
nothing will break. Why didn't they change it? Well, it time to re-start the 
following subthreads:
- TSO is moribound
- if it isn't broken don't fix it (see latest implementation as IMBED for 
catalogs).


Regards

--
Radoslaw Skorupka
Lodz, Poland






--
Tre tej wiadomoci moe zawiera informacje prawnie chronione Banku 
przeznaczone wycznie do uytku subowego adresata. Odbiorc moe by jedynie 
jej adresat z wyczeniem dostpu osób trzecich. Jeeli nie jeste adresatem 
niniejszej wiadomoci lub pracownikiem upowanionym do jej przekazania 
adresatowi, informujemy, e jej rozpowszechnianie, kopiowanie, rozprowadzanie 
lub inne dziaanie o podobnym charakterze jest prawnie zabronione i moe by 
karalne. Jeeli otrzymae t wiadomo omykowo, prosimy niezwocznie 
zawiadomi nadawc wysyajc odpowied oraz trwale usun t wiadomo 
wczajc w to wszelkie jej kopie wydrukowane lub zapisane na dysku.

This e-mail may contain legally privileged information of the Bank and is 
intended solely for business use of the addressee. This e-mail may only be 
received by the addressee and may not be disclosed to any third parties. If you 
are not the intended addressee of this e-mail or the employee authorised to 
forward it to the addressee, be advised that any dissemination, copying, 
distribution or any other similar activity is legally prohibited and may be 
punishable. If you received this e-mail by mistake please advise the sender 
immediately by using the reply facility in your e-mail software and delete 
permanently this e-mail including any copies of it either printed or saved to 
hard drive. 

BRE Bank SA, 00-950 Warszawa, ul. Senatorska 18, tel. +48 (22) 829 00 00, fax 
+48 (22) 829 00 33, www.brebank.pl, e-mail: i...@brebank.pl
Sd Rejonowy dla m. st. Warszawy XII Wydzia Gospodarczy Krajowego Rejestru 
Sdowego, nr rejestru przedsibiorców KRS 025237, NIP: 526-021-50-88. 
Wedug stanu na dzie 01.01.2013 r. kapita 

Re: BLKSIZE=3120

2013-07-22 Thread Jim Mulder
 If there are any restrictions, they should be APAR'ed.  3120, 6160, 
 6144, etc. is SO 20th century.  It's amazing to me how many IBM and OEM 
 products still ship these crappy blocksizes.  It's why I submitted a 
 SHARE requirement to have AMATERSE support SDB.  Isn't it ironic that a 
 utility designed to save DASD space uses a 6144 blocksize and actually 
 wastes DASD?


  I have seen an AMATERSE requirement that was submitted for this and
we did investigate the AMATERSE code.

  AMATERSE doesn't require the blocksize of the output data set
for a pack operation to be 6144.  If a blocksize has not already
been determined before AMATERSE tries to OPEN the data set, then 
AMATERSE assigns a blocksize of 6144, which was a reasonable thing
to do when AMATERSE was designed (before the existence of SDB). 
If you explicitly assign a blocksize when you allocate the
data set, AMATERSE will use your blocksize.

 Changing AMATERSE to avoid assigning a blocksize of 6144, so
that SDB can to its thing, appears to be a fairly easy code 
change, and I do anticipate that it will get done at some point in
the future.



Jim Mulder   z/OS System Test   IBM Corp.  Poughkeepsie,  NY

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


Re: Looking for help with an obscure C integer problem

2013-07-22 Thread retired-mainfra...@q.com
When performing integer (not int) arithmetic with integer operands of rank 
lower than int, the operands will be promoted to either int or unsigned int.  
When adding two short or two char or a char and a short, both operands will be 
promoted to int before the addition and the result will be an int.

When any operand is of rank greater or equal to int, all operands are promoted 
to the highest rank in the expression and the arithmetic is performed on that 
type.

Operands of rank greater than int are not demoted to int.  The expression in 
question involves shifting an unsigned long long and the result will be an 
unsigned long long.  When the result is assigned to the left operand, it will 
be converted to the type of that operand.  This is true regardless of the type 
of the left operand.


- Original Message -
From: Bernd Oppolzer bernd.oppol...@t-online.de
To: IBM-MAIN@LISTSERV.UA.EDU
Sent: Monday, July 22, 2013 12:18:25 PM
Subject: Re: Looking for help with an obscure C integer problem

That is another case, because the right side operands are not ints.

For ints, I saw references that all operands are promoted to ints,
if they can be represented as an int (that is true for chars, shorts etc.).

Don't know for sure about longs, for example; if long differs in size
from int, and there are longs on the right side, will they be promoted 
(that is: truncated)
to int, if there is an int on the left side, or will they be evaluated as
longs? That's the key question IMHO, and there should be a reference
in the C language description that makes it clear without doubt - but I
did not yet find such a reference - had not much time to look for it.

(IMO, it would be no good language design if such a core question
is left to the compiler builder - I don't believe it is so).

Kind regards

Bernd



Am 22.07.2013 18:27, schrieb retired-mainfra...@q.com:
 The right operand in this case is the result of evaluating the expression.  
 The quoted text is not meant to imply that operands are converted before the 
 right hand expression is evaluated.  If that were the case, then
 int x = 14.0/2.1;
 would evaluate to 7 which is demonstrably not the case.


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

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


Re: BLKSIZE=3120

2013-07-22 Thread Dave Salt
A few months ago I assisted a customer who was having difficulty installing 
SimpList. The installation instructions specify the sequential data set the 
XMIT files are uploaded to MUST be allocated as BLKSIZE=3120, but the installer 
specified BLKSIZE=0. I don't remember exactly what problem this caused, but I 
do know that once the BLKSIZE was changed to 3120 the installation went 
smoothly.

Dave Salt

SimpList(tm) - try it; you'll get it! 

http://www.mackinney.com/products/program-development/simplist.html  


 Date: Mon, 22 Jul 2013 15:32:37 -0400
 From: d10j...@us.ibm.com
 Subject: Re: BLKSIZE=3120
 To: IBM-MAIN@LISTSERV.UA.EDU
 
  If there are any restrictions, they should be APAR'ed.  3120, 6160, 
  6144, etc. is SO 20th century.  It's amazing to me how many IBM and OEM 
  products still ship these crappy blocksizes.  It's why I submitted a 
  SHARE requirement to have AMATERSE support SDB.  Isn't it ironic that a 
  utility designed to save DASD space uses a 6144 blocksize and actually 
  wastes DASD?
 
 
   I have seen an AMATERSE requirement that was submitted for this and
 we did investigate the AMATERSE code.
 
   AMATERSE doesn't require the blocksize of the output data set
 for a pack operation to be 6144.  If a blocksize has not already
 been determined before AMATERSE tries to OPEN the data set, then 
 AMATERSE assigns a blocksize of 6144, which was a reasonable thing
 to do when AMATERSE was designed (before the existence of SDB). 
 If you explicitly assign a blocksize when you allocate the
 data set, AMATERSE will use your blocksize.
 
  Changing AMATERSE to avoid assigning a blocksize of 6144, so
 that SDB can to its thing, appears to be a fairly easy code 
 change, and I do anticipate that it will get done at some point in
 the future.
 
 
 
 Jim Mulder   z/OS System Test   IBM Corp.  Poughkeepsie,  NY
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
  
--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: BLKSIZE=3120

2013-07-22 Thread John McKown
I, personally, as a z/OS system programmer tend to like SMP/E. IBM has made
installation simple via ShopzSeries. I put in my order. I eventually get an
email saying it is ready. I log on to get the download information that I
need and run a single SMP/E job which downloads and sets it up (RECEIVE),
ready to customize and install. CA is similar, but we haven't gone to using
MSM yet (don't know why).

But the other 2 sysprogs here tend to prefer to get XMIT type files,
perhaps packaged in a zip file. One simply prefers XMIT format, but will
work with the CA stuff, which is downloaded to a UNIX subdirectory when he
is forced to (compressed PAX format). The second really despises anything
other than simple XMIT. But, then, he really dislikes z/OS UNIX.

On Mon, Jul 22, 2013 at 2:16 PM, Duffy Nightingale
du...@soundsoftware.uswrote:

 Hello,

 I see another developer on here.  And we send our product out using TSO
 XMIT.  Which gives rise to a question.  I saw some techie state that he
 would not install a product unless he could use SMP/E.  Is this something
 us developers should explore or is it a big headache that is not worth it?

 Thanks,

 Duffy Nightingale
 Sound Software Printing, Inc.
 www.soundsoftware.us
 du...@soundsoftware.us
 Phone: 360.385.3456
 Fax: 973.201.8921


-- 
This is a test of the Emergency Broadcast System. If this had been an
actual emergency, do you really think we'd stick around to tell you?

Maranatha! 
John McKown

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


Re: BLKSIZE=3120

2013-07-22 Thread Duffy Nightingale
Interesting.  Thanks much!

Duffy Nightingale
Sound Software Printing, Inc.
www.soundsoftware.us
du...@soundsoftware.us
Phone: 360.385.3456
Fax: 973.201.8921
 
The information in this e-mail, and any attachment therein
is confidential and for use by the addressee only. If you are
not the intended recipient, please return the e-mail to the
sender and delete it from your computer. Although Sound
Software Printing, Inc. attempts to sweep e-mail and
attachments for viruses, it does not guarantee that either
are virus-free and accepts no liability for any damage
sustained as a result of viruses.


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of John McKown
Sent: Monday, July 22, 2013 1:01 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: BLKSIZE=3120

I, personally, as a z/OS system programmer tend to like SMP/E. IBM has made 
installation simple via ShopzSeries. I put in my order. I eventually get an 
email saying it is ready. I log on to get the download information that I need 
and run a single SMP/E job which downloads and sets it up (RECEIVE), ready to 
customize and install. CA is similar, but we haven't gone to using MSM yet 
(don't know why).

But the other 2 sysprogs here tend to prefer to get XMIT type files, perhaps 
packaged in a zip file. One simply prefers XMIT format, but will work with 
the CA stuff, which is downloaded to a UNIX subdirectory when he is forced to 
(compressed PAX format). The second really despises anything other than simple 
XMIT. But, then, he really dislikes z/OS UNIX.

On Mon, Jul 22, 2013 at 2:16 PM, Duffy Nightingale
du...@soundsoftware.uswrote:

 Hello,

 I see another developer on here.  And we send our product out using 
 TSO XMIT.  Which gives rise to a question.  I saw some techie state 
 that he would not install a product unless he could use SMP/E.  Is 
 this something us developers should explore or is it a big headache that is 
 not worth it?

 Thanks,

 Duffy Nightingale
 Sound Software Printing, Inc.
 www.soundsoftware.us
 du...@soundsoftware.us
 Phone: 360.385.3456
 Fax: 973.201.8921


--
This is a test of the Emergency Broadcast System. If this had been an actual 
emergency, do you really think we'd stick around to tell you?

Maranatha! 
John McKown

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

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


Re: BLKSIZE=3120

2013-07-22 Thread Charles Mills
FTP has some bizarre default, something like RECFM=U, BLKSIZE=511.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of Dave Salt
Sent: Monday, July 22, 2013 12:58 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: BLKSIZE=3120

A few months ago I assisted a customer who was having difficulty installing
SimpList. The installation instructions specify the sequential data set the
XMIT files are uploaded to MUST be allocated as BLKSIZE=3120, but the
installer specified BLKSIZE=0. I don't remember exactly what problem this
caused, but I do know that once the BLKSIZE was changed to 3120 the
installation went smoothly.

Dave Salt

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


Re: BLKSIZE=3120

2013-07-22 Thread Jerry Whitteridge
We prefer to have SMP/E installs for all our program products and specifically 
ask when researching new products to be selected.

Jerry Whitteridge
Lead Systems Programmer
Safeway Inc.
925 951 4184

If you feel in control
you just aren't going fast enough.

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Duffy Nightingale
Sent: Monday, July 22, 2013 12:16 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: BLKSIZE=3120

Hello,

I see another developer on here.  And we send our product out using TSO XMIT.  
Which gives rise to a question.  I saw some techie state that he would not 
install a product unless he could use SMP/E.  Is this something us developers 
should explore or is it a big headache that is not worth it?

Thanks, 

Duffy Nightingale

Email Firewall made the following annotations.
--

Warning: 
All e-mail sent to this address will be received by the corporate e-mail 
system, and is subject to archival and review by someone other than the 
recipient.  This e-mail may contain proprietary information and is intended 
only for the use of the intended recipient(s).  If the reader of this message 
is not the intended recipient(s), you are notified that you have received this 
message in error and that any review, dissemination, distribution or copying of 
this message is strictly prohibited.  If you have received this message in 
error, please notify the sender immediately.   
 
==

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


Re: BLKSIZE=3120

2013-07-22 Thread Gibney, Dave
Small product with just a few libraries and fairly stand-alone is ok via XMIT. 
Especially if it is mostly maintained by replacement.
Anything more complex is helped by SMP/E, but even with IBM (and CA) when done 
with SMP/E, there is still usually half or more of the install doing 
configurations and tailoring.

Dave Gibney
Information Technology Services
Washington State University

 -Original Message-
 From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU]
 On Behalf Of Duffy Nightingale
 Sent: Monday, July 22, 2013 1:04 PM
 To: IBM-MAIN@LISTSERV.UA.EDU
 Subject: Re: BLKSIZE=3120
 
 Interesting.  Thanks much!
 
 Duffy Nightingale
 Sound Software Printing, Inc.
 www.soundsoftware.us
 du...@soundsoftware.us
 Phone: 360.385.3456
 Fax: 973.201.8921
 
 The information in this e-mail, and any attachment therein
 is confidential and for use by the addressee only. If you are
 not the intended recipient, please return the e-mail to the
 sender and delete it from your computer. Although Sound
 Software Printing, Inc. attempts to sweep e-mail and
 attachments for viruses, it does not guarantee that either
 are virus-free and accepts no liability for any damage
 sustained as a result of viruses.
 
 
 -Original Message-
 From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU]
 On Behalf Of John McKown
 Sent: Monday, July 22, 2013 1:01 PM
 To: IBM-MAIN@LISTSERV.UA.EDU
 Subject: Re: BLKSIZE=3120
 
 I, personally, as a z/OS system programmer tend to like SMP/E. IBM has
 made installation simple via ShopzSeries. I put in my order. I eventually get 
 an
 email saying it is ready. I log on to get the download information that I need
 and run a single SMP/E job which downloads and sets it up (RECEIVE), ready
 to customize and install. CA is similar, but we haven't gone to using MSM yet
 (don't know why).
 
 But the other 2 sysprogs here tend to prefer to get XMIT type files, perhaps
 packaged in a zip file. One simply prefers XMIT format, but will work with
 the CA stuff, which is downloaded to a UNIX subdirectory when he is forced to
 (compressed PAX format). The second really despises anything other than
 simple XMIT. But, then, he really dislikes z/OS UNIX.
 
 On Mon, Jul 22, 2013 at 2:16 PM, Duffy Nightingale
 du...@soundsoftware.uswrote:
 
  Hello,
 
  I see another developer on here.  And we send our product out using
  TSO XMIT.  Which gives rise to a question.  I saw some techie state
  that he would not install a product unless he could use SMP/E.  Is
  this something us developers should explore or is it a big headache that is
 not worth it?
 
  Thanks,
 
  Duffy Nightingale
  Sound Software Printing, Inc.
  www.soundsoftware.us
  du...@soundsoftware.us
  Phone: 360.385.3456
  Fax: 973.201.8921
 
 
 --
 This is a test of the Emergency Broadcast System. If this had been an actual
 emergency, do you really think we'd stick around to tell you?
 
 Maranatha! 
 John McKown
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions, send email to
 lists...@listserv.ua.edu with the message: INFO IBM-MAIN
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

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


Re: BLKSIZE=3120

2013-07-22 Thread Paul Gilmartin
On Mon, 22 Jul 2013 15:32:37 -0400, Jim Mulder  wrote:

AMATERSE assigns a blocksize of 6144, which was a reasonable thing
to do when AMATERSE was designed (before the existence of SDB).
If you explicitly assign a blocksize when you allocate the
data set, AMATERSE will use your blocksize.
 
ITYM TRSMAIN.

-- gil

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


Re: BLKSIZE=3120

2013-07-22 Thread Tom Marchant
On Mon, 22 Jul 2013 12:16:00 -0700, Duffy Nightingale wrote:

we send our product out using TSO XMIT.  Which gives rise to a 
question.  I saw some techie state that he would not install a 
product unless he could use SMP/E.  Is this something us developers 
should explore or is it a big headache that is not worth it?

IMO, well-implemented SMP/E packaging is preferable to non-SMP/E.

However, non-SMP/E packaging is far preferable to poorly implemented 
SMP/E packaging.  Getting it right is difficult and some vendors do a very 
poor job of it.  IMO if a vendor doesn't do their SMP/E packaging correctly, 
it is better that they not bother.

AFAIK, Innovation (FDR, etc.) still ships their products without SMP/E, and 
their installation is (IMO) one of the best.  IIRC, Quickref is another that is 
not installed with SMP/E.

-- 
Tom Marchant

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


SR Policy

2013-07-22 Thread Paul Gilmartin
I just got a reply to an SR asking for more information about the
problem, then adding the text:

Please also let me know what impact this issue has on your day
to day business so we can understand the situation better.
I look forward to your reply and clarification. Thanks!

Am I to infer that IBM no longer believes in repairing defects simply
because it's the right thing to do?

This rather blurs the line between an SR and a requirement.

-- gil

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


Re: BLKSIZE=3120

2013-07-22 Thread Dave Salt
 Tom Marchant said:
 AFAIK, Innovation (FDR, etc.) still ships their products without SMP/E, and 
 their installation is (IMO) one of the best.  IIRC, Quickref is another that 
 is 
 not installed with SMP/E.

SimpList can be added to that list as well. One reason is because many 
developers want to try SimpList by installing it in their own private 
libraries, and they don't have access to SMP/E.

Dave Salt

SimpList(tm) - try it; you'll get it! 

http://www.mackinney.com/products/program-development/simplist.html  


 Date: Mon, 22 Jul 2013 15:35:49 -0500
 From: m42tom-ibmm...@yahoo.com
 Subject: Re: BLKSIZE=3120
 To: IBM-MAIN@LISTSERV.UA.EDU
 
 On Mon, 22 Jul 2013 12:16:00 -0700, Duffy Nightingale wrote:
 
 we send our product out using TSO XMIT.  Which gives rise to a 
 question.  I saw some techie state that he would not install a 
 product unless he could use SMP/E.  Is this something us developers 
 should explore or is it a big headache that is not worth it?
 
 IMO, well-implemented SMP/E packaging is preferable to non-SMP/E.
 
 However, non-SMP/E packaging is far preferable to poorly implemented 
 SMP/E packaging.  Getting it right is difficult and some vendors do a very 
 poor job of it.  IMO if a vendor doesn't do their SMP/E packaging correctly, 
 it is better that they not bother.
 
 AFAIK, Innovation (FDR, etc.) still ships their products without SMP/E, and 
 their installation is (IMO) one of the best.  IIRC, Quickref is another that 
 is 
 not installed with SMP/E.
 
 -- 
 Tom Marchant
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
  
--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


SMP/E vs. NON SMPE Installs (Was BLKSIZE=3120)

2013-07-22 Thread Lizette Koehler
Just taking this to a new thread

Personally I prefer SMP/E installs.  It provides the following

Ease of installation
Ease of verifying Maint Levels
Ease of upgrades or phase outs.

When I have NON SMP/E installs they tend to be just simple IEBCOPY from here to 
here.

Then it is up to me to ensure a way to validate what is in  production, what is 
in test, what maintenance levels are available.

There have been some NON SMP/E install products that have done a good job with 
the three points.  But I have to make sure it is documented, my team mates can 
find (or use) my documentation and that the process is bullet proof.  If it 
cannot pass the Lizette Test for bullet-proofness, then I really do not want 
the product in my shop.

At one of my previous lives, I was supporting an OEM product that was NON-SMP/E 
installed.  It was a nightmare.  They process was a bare bones TSO XMIT 
install.  But I had no way to very if I had the current version of software or 
not.  It took many iterations before I found a naming convention that would at 
least look like it could identify what version of the product I was running in 
sand box and everywhere else.

I think if you have one or two LPARs it is not so bad.  But when you are 
looking at  5 or more LPARs or more than one PLEX to maintain software on, the 
SMP/E is a big benefit.


But, if you have a solid process that covers my concerns, I may not gripe too 
much over a non-SMP/E install.

Lizette


 
-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Duffy Nightingale
Sent: Monday, July 22, 2013 1:04 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: BLKSIZE=3120

Interesting.  Thanks much!

Duffy Nightingale
Sound Software Printing, Inc.
www.soundsoftware.us
du...@soundsoftware.us
Phone: 360.385.3456
Fax: 973.201.8921
 
The information in this e-mail, and any attachment therein is confidential and 
for use by the addressee only. If you are not the intended recipient, please 
return the e-mail to the sender and delete it from your computer. Although 
Sound Software Printing, Inc. attempts to sweep e-mail and attachments for 
viruses, it does not guarantee that either are virus-free and accepts no 
liability for any damage sustained as a result of viruses.


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of John McKown
Sent: Monday, July 22, 2013 1:01 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: BLKSIZE=3120

I, personally, as a z/OS system programmer tend to like SMP/E. IBM has made 
installation simple via ShopzSeries. I put in my order. I eventually get an 
email saying it is ready. I log on to get the download information that I need 
and run a single SMP/E job which downloads and sets it up (RECEIVE), ready to 
customize and install. CA is similar, but we haven't gone to using MSM yet 
(don't know why).

But the other 2 sysprogs here tend to prefer to get XMIT type files, perhaps 
packaged in a zip file. One simply prefers XMIT format, but will work with 
the CA stuff, which is downloaded to a UNIX subdirectory when he is forced to 
(compressed PAX format). The second really despises anything other than simple 
XMIT. But, then, he really dislikes z/OS UNIX.

On Mon, Jul 22, 2013 at 2:16 PM, Duffy Nightingale
du...@soundsoftware.uswrote:

 Hello,

 I see another developer on here.  And we send our product out using 
 TSO XMIT.  Which gives rise to a question.  I saw some techie state 
 that he would not install a product unless he could use SMP/E.  Is 
 this something us developers should explore or is it a big headache that is 
 not worth it?

 Thanks,


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


Re: SR Policy

2013-07-22 Thread Lizette Koehler
I have seen this question with most vendors.

   What is the impact to your environment.  How critical is this to be fixed.

I think it helps them to triage the problem and put it in the queue where it 
will get the correct attention.

Is this a SHOP DOWN or a Minor inconvenience.


Lizette


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Paul Gilmartin
Sent: Monday, July 22, 2013 1:41 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: SR Policy

I just got a reply to an SR asking for more information about the problem, then 
adding the text:

Please also let me know what impact this issue has on your day
to day business so we can understand the situation better.
I look forward to your reply and clarification. Thanks!

Am I to infer that IBM no longer believes in repairing defects simply because 
it's the right thing to do?

This rather blurs the line between an SR and a requirement.

-- gil

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


Re: BLKSIZE=3120

2013-07-22 Thread Paul Gilmartin
On Mon, 22 Jul 2013 16:41:12 -0400, Dave Salt wrote:

SimpList can be added to that list as well. One reason is because many 
developers want to try SimpList by installing it in their own private 
libraries, and they don't have access to SMP/E.
 
Shame on IBM for transmogrifying SMP/E into a product that presents
an ineffable threat to system integrity, and for tolerating that
situation, apparently indefinitely!  Prior to that all programmers
had access to SMP/E and could install products for trial in their own
private libraries.

On Mon, 22 Jul 2013 15:35:49 -0500, Tom Marchant wrote:

IMO, well-implemented SMP/E packaging is preferable to non-SMP/E.

However, non-SMP/E packaging is far preferable to poorly implemented 
SMP/E packaging.  Getting it right is difficult and some vendors do a very 
poor job of it.  IMO if a vendor doesn't do their SMP/E packaging correctly, 
it is better that they not bother.
 
Where can I find some Rules of Thumb; an SMP/E style checker?

-- gil

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


Re: BLKSIZE=3120

2013-07-22 Thread Ed Gould

Ed:

Some time ago (before the binder IIRC) the input into the link editor  
had a max block size of 3200 (if memory serves me). I think with the  
binder the restriction has been removed.


Ed

On Jul 22, 2013, at 11:28 AM, Charles Mills wrote:

I took the giant leap several years ago and stopped using 3120 for  
TSO XMIT.
I hard-code 27920. Not as wonderful as 0, but better than 3120.  
Several

years now with no issues.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM- 
m...@listserv.ua.edu] On

Behalf Of Ed Jaffe
Sent: Monday, July 22, 2013 9:08 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: BLKSIZE=3120

A customer (mildly) complained thatsome of our product allocations  
still use

BLKSIZE=3120. I vaguely remember trying to change all of them to
BLKSIZE=0 many years ago (probably before OS/390) and running into  
some

issues with certain IBM utilities. Unfortunately, I can't remember the
specifics.

In starting to revisit this again, I noticed numerousoccurrences of  
'3120'
in IBM help and documentation. For example, the TSO/E RECEIVE  
command HELP

claims that the log data set must be BLKSIZE=3120:

TSO/E RECEIVE command HELP
LOGDATASET   You may specify an alternate data set to be
  used for the logging of the transmitted data.
  This data set will be created if it does not
  exist.  The data set should be created with
  a logical record length of 255, a record format
  of VB and a blocksize of 3120.
...

LOGDSNAMEYou may specify an alternate data set to be
  used for the logging of the transmitted data.
  This data set will be created if it does not
  exist.  The data set should be created with
  a logical record length of 255, a record format
  of VB and a blocksize of 3120.
/TSO/E RECEIVE command HELP

Is this just outdated help? Or does this restriction still exist?

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


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


Re: BLKSIZE=3120

2013-07-22 Thread Tom Marchant
On Mon, 22 Jul 2013 15:53:01 -0500, Paul Gilmartin wrote:

On Mon, 22 Jul 2013 15:35:49 -0500, Tom Marchant wrote:

IMO if a vendor doesn't do their SMP/E packaging correctly, 
it is better that they not bother.
 
Where can I find some Rules of Thumb; an SMP/E style checker?

I'm not aware of either.  There is the Packaging Rules manual, but there is 
much that 
is not covered there.  It is focused primarily on correct SYSMOD construction.  
Some 
other considerations for what I would call proper SMP/E packaging include:

o Providing useful system holds as necessary
o Using Fix Categories and SOURCEID to simplify maintenance
o Providing frequently updated downloadable Enhanced Hold data for errors
o Proper SUPs for error holds when a PTF resolves the error
o Having a data base of APARs and PTFs that customers can search
o Cross-product dependencies (IF...REQ) where applicable
o It should NEVER be recommended that a customer use BYPASS(ID) or BYPASS(REQ)
o Network delivery for products and service

The products and maintenance should be thoroughly tested.  In order for the 
testing to be 
thorough, many permutations need to be tested.  Most PTFs should be able to be 
applied, 
restored and applied again without issues.

This is not likely an exhaustive list.

-- 
Tom Marchant

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


Re: SMP/E vs. NON SMPE Installs (Was BLKSIZE=3120)

2013-07-22 Thread Ed Gould

Lizette:

Well said.
In the past 40+ years I have done all types of installs. SMPE in the  
end simplifies installation.
I have frequently rejected a product just because that it is not  
installed via SMPE.
I have seen everything from an IEBCOPY to quite complicated  
installation procedures.
Yes it can be cumbersome to install via SMPE but every sysprog that I  
have worked with (except some well lets say amateur types) have  
generally liked SMPE(for IM)

It is far easier to figure out levels of products with SMPE IMO.
I have seen OEM's supply fixes with zaps (and use IDRDATA rather than  
SMPE) and when all is said and done the level of the product was  
almost always up in the air and made problem determination less  
straight forwardas IDRdata is not in a dump.


Ed


On Jul 22, 2013, at 3:46 PM, Lizette Koehler wrote:


Just taking this to a new thread

Personally I prefer SMP/E installs.  It provides the following

Ease of installation
Ease of verifying Maint Levels
Ease of upgrades or phase outs.

When I have NON SMP/E installs they tend to be just simple IEBCOPY  
from here to here.


Then it is up to me to ensure a way to validate what is in   
production, what is in test, what maintenance levels are available.


There have been some NON SMP/E install products that have done a  
good job with the three points.  But I have to make sure it is  
documented, my team mates can find (or use) my documentation and  
that the process is bullet proof.  If it cannot pass the Lizette  
Test for bullet-proofness, then I really do not want the product in  
my shop.


At one of my previous lives, I was supporting an OEM product that  
was NON-SMP/E installed.  It was a nightmare.  They process was a  
bare bones TSO XMIT install.  But I had no way to very if I had the  
current version of software or not.  It took many iterations before  
I found a naming convention that would at least look like it could  
identify what version of the product I was running in sand box and  
everywhere else.


I think if you have one or two LPARs it is not so bad.  But when  
you are looking at  5 or more LPARs or more than one PLEX to  
maintain software on, the SMP/E is a big benefit.



But, if you have a solid process that covers my concerns, I may not  
gripe too much over a non-SMP/E install.


Lizette



-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM- 
m...@listserv.ua.edu] On Behalf Of Duffy Nightingale

Sent: Monday, July 22, 2013 1:04 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: BLKSIZE=3120

Interesting.  Thanks much!

Duffy Nightingale
Sound Software Printing, Inc.
www.soundsoftware.us
du...@soundsoftware.us
Phone: 360.385.3456
Fax: 973.201.8921

The information in this e-mail, and any attachment therein is  
confidential and for use by the addressee only. If you are not the  
intended recipient, please return the e-mail to the sender and  
delete it from your computer. Although Sound Software Printing,  
Inc. attempts to sweep e-mail and attachments for viruses, it does  
not guarantee that either are virus-free and accepts no liability  
for any damage sustained as a result of viruses.



-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM- 
m...@listserv.ua.edu] On Behalf Of John McKown

Sent: Monday, July 22, 2013 1:01 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: BLKSIZE=3120

I, personally, as a z/OS system programmer tend to like SMP/E. IBM  
has made installation simple via ShopzSeries. I put in my order. I  
eventually get an email saying it is ready. I log on to get the  
download information that I need and run a single SMP/E job which  
downloads and sets it up (RECEIVE), ready to customize and install.  
CA is similar, but we haven't gone to using MSM yet (don't know why).


But the other 2 sysprogs here tend to prefer to get XMIT type  
files, perhaps packaged in a zip file. One simply prefers XMIT  
format, but will work with the CA stuff, which is downloaded to a  
UNIX subdirectory when he is forced to (compressed PAX format). The  
second really despises anything other than simple XMIT. But,  
then, he really dislikes z/OS UNIX.


On Mon, Jul 22, 2013 at 2:16 PM, Duffy Nightingale
du...@soundsoftware.uswrote:


Hello,

I see another developer on here.  And we send our product out using
TSO XMIT.  Which gives rise to a question.  I saw some techie state
that he would not install a product unless he could use SMP/E.  Is
this something us developers should explore or is it a big  
headache that is not worth it?


Thanks,



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


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


Re: SMP/E vs. NON SMPE Installs (Was BLKSIZE=3120)

2013-07-22 Thread Jim Thomas
Folks,

Does anybody have any guidelines for making a product SMP/E installable ??. 

Yes, I've been thru the manuals but what I don't find are recommendations
and or 
'gotchas' ... 

Any advice and  or direction would be appreciated.

Kind Regards.

Jim 

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of Ed Gould
Sent: Monday, July 22, 2013 4:50 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: SMP/E vs. NON SMPE Installs (Was BLKSIZE=3120)

Lizette:

Well said.
In the past 40+ years I have done all types of installs. SMPE in the end
simplifies installation.
I have frequently rejected a product just because that it is not installed
via SMPE.
I have seen everything from an IEBCOPY to quite complicated installation
procedures.
Yes it can be cumbersome to install via SMPE but every sysprog that I have
worked with (except some well lets say amateur types) have generally liked
SMPE(for IM) It is far easier to figure out levels of products with SMPE
IMO.
I have seen OEM's supply fixes with zaps (and use IDRDATA rather than
SMPE) and when all is said and done the level of the product was almost
always up in the air and made problem determination less straight forwardas
IDRdata is not in a dump.

Ed


On Jul 22, 2013, at 3:46 PM, Lizette Koehler wrote:

 Just taking this to a new thread

 Personally I prefer SMP/E installs.  It provides the following

 Ease of installation
 Ease of verifying Maint Levels
 Ease of upgrades or phase outs.

 When I have NON SMP/E installs they tend to be just simple IEBCOPY 
 from here to here.

 Then it is up to me to ensure a way to validate what is in   
 production, what is in test, what maintenance levels are available.

 There have been some NON SMP/E install products that have done a good 
 job with the three points.  But I have to make sure it is documented, 
 my team mates can find (or use) my documentation and that the process 
 is bullet proof.  If it cannot pass the Lizette Test for 
 bullet-proofness, then I really do not want the product in my shop.

 At one of my previous lives, I was supporting an OEM product that was 
 NON-SMP/E installed.  It was a nightmare.  They process was a bare 
 bones TSO XMIT install.  But I had no way to very if I had the current 
 version of software or not.  It took many iterations before I found a 
 naming convention that would at least look like it could identify what 
 version of the product I was running in sand box and everywhere else.

 I think if you have one or two LPARs it is not so bad.  But when you 
 are looking at  5 or more LPARs or more than one PLEX to maintain 
 software on, the SMP/E is a big benefit.


 But, if you have a solid process that covers my concerns, I may not  
 gripe too much over a non-SMP/E install.

 Lizette



 -Original Message-
 From: IBM Mainframe Discussion List [mailto:IBM- 
 m...@listserv.ua.edu] On Behalf Of Duffy Nightingale
 Sent: Monday, July 22, 2013 1:04 PM
 To: IBM-MAIN@LISTSERV.UA.EDU
 Subject: Re: BLKSIZE=3120

 Interesting.  Thanks much!

 Duffy Nightingale
 Sound Software Printing, Inc.
 www.soundsoftware.us
 du...@soundsoftware.us
 Phone: 360.385.3456
 Fax: 973.201.8921

 The information in this e-mail, and any attachment therein is  
 confidential and for use by the addressee only. If you are not the  
 intended recipient, please return the e-mail to the sender and  
 delete it from your computer. Although Sound Software Printing,  
 Inc. attempts to sweep e-mail and attachments for viruses, it does  
 not guarantee that either are virus-free and accepts no liability  
 for any damage sustained as a result of viruses.


 -Original Message-
 From: IBM Mainframe Discussion List [mailto:IBM- 
 m...@listserv.ua.edu] On Behalf Of John McKown
 Sent: Monday, July 22, 2013 1:01 PM
 To: IBM-MAIN@LISTSERV.UA.EDU
 Subject: Re: BLKSIZE=3120

 I, personally, as a z/OS system programmer tend to like SMP/E. IBM  
 has made installation simple via ShopzSeries. I put in my order. I  
 eventually get an email saying it is ready. I log on to get the  
 download information that I need and run a single SMP/E job which  
 downloads and sets it up (RECEIVE), ready to customize and install.  
 CA is similar, but we haven't gone to using MSM yet (don't know why).

 But the other 2 sysprogs here tend to prefer to get XMIT type  
 files, perhaps packaged in a zip file. One simply prefers XMIT  
 format, but will work with the CA stuff, which is downloaded to a  
 UNIX subdirectory when he is forced to (compressed PAX format). The  
 second really despises anything other than simple XMIT. But,  
 then, he really dislikes z/OS UNIX.

 On Mon, Jul 22, 2013 at 2:16 PM, Duffy Nightingale
 du...@soundsoftware.uswrote:

 Hello,

 I see another developer on here.  And we send our product out using
 TSO XMIT.  Which gives rise to a question.  I saw some techie state
 that he would not install a product unless he could use SMP/E.  Is
 this something 

SMP/E conventions (was: BLKSIZE=3120)

2013-07-22 Thread Paul Gilmartin
On Mon, 22 Jul 2013 16:51:51 -0500, Tom Marchant wrote: 
Where can I find some Rules of Thumb; an SMP/E style checker?

I'm not aware of either.  There is the Packaging Rules manual, but there is 
much that 
is not covered there.  It is focused primarily on correct SYSMOD construction. 
 Some 
other considerations for what I would call proper SMP/E packaging include:

This briefly mentions tape construction, but makes no mention
of packaging for network delivery.  I submitted an RCF on this
a couple years ago, which was received favorably, but no action
is evident.  I'm awaiting the z/OS 2.1 version with bated breath.

o Providing useful system holds as necessary

We try to.  Feedback welcome.  If any customer has attempted
such feedback that hasn't reached me, try again.

o Using Fix Categories and SOURCEID to simplify maintenance

We don't.  I believe Fix Categories is new; we haven't caught up.
What's needed for SOURCEID?  Would partitioning according to
our monthly regression test cycle be of value?

o Providing frequently updated downloadable Enhanced Hold data for errors
We provide HOLDDATA; not Enhanced.  But a customer has complained
in this list that while timely it's poorly organized.  We use IBM's HOLDSYS
categories.

o Proper SUPs for error holds when a PTF resolves the error

We do.  FSVO proper.  Through 3 corporate ownerships we have
never had a problem tracking system compatible with IBM's
naming conventions, so our resolving PTFs SUP the PE SYSMOD ID,
not an incident ID.  This is legal according to SMP/E (although I
have repeatedly needed to submit RCFs whenever an SMP/E
manual inadvertently asserts otherwise.)  I don't know how this
is likely to work if a level-set PTF both SUPs a SYSMOD ID and
uses that in an RMID operand of an element.  But we've never
generated such a level-set PTF.

o Having a data base of APARs and PTFs that customers can search

Don't know.

o Cross-product dependencies (IF...REQ) where applicable

We try.

o It should NEVER be recommended that a customer use BYPASS(ID) or BYPASS(REQ)

Our policy.  Violated once by a rogue tech support person, with
disastrous results.  We have since reinforced the policy.

o Network delivery for products and service

We're a small appendage in a large corporation.  Our downloadable
service is simply SYSMODs with inline elements, zipped according to
corporate standard.  Nothing similar to ShopZ.  For similar reasons
our downloadable products are SMP/E RECEIVE FROMNETWORK
file hierarchies, all zipped.  If we tried to come closer to IBM's
conventions, I imagine a network wonk's asking, FTP!?  What do
you want to use that old thing for?

The products and maintenance should be thoroughly tested.  In order for the 
testing to be 
thorough, many permutations need to be tested.  Most PTFs should be able to be 
applied, 
restored and applied again without issues.

I believe no vendor is capable of testing, e.g., all possible combinations
of ten PTFs with no declared interactions (Cartesian product: 2**10).

For major PTFs (SPEs), RESTORE is usually tested collaterally to
iterative development.  Minor PE PTFs are likely to be tested and
go to field with no RESTORE tested.  This has not been a problem.
Except...:

We deal with an ISV cross-compiler vendor who doesn't understand
the mechanism of SMP/E RESTORE processing.  I believe we've
circumvented most of the problems they've introduced on this account.
But I need to sit down and talk with them at length about the
difficulties they're causing.

This is not likely an exhaustive list.

Any comments on post-APPLY link edit and script processing?
We don't do this; it might simplify some processing at the
cost of weaker control.

Any comments on tailoring of data set names and attributes?
The z/OS 2.1 symbol processing in SYSIN data sets will be a
godsend for this, but only after all our customers have migrated
to a z/OS level that provides such support.

-- gil

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


Re: SR Policy

2013-07-22 Thread Charles Mills
Right, severity. 

Charles
Composed on a mobile: please excuse my brevity 

Lizette Koehler stars...@mindspring.com wrote:

I have seen this question with most vendors.

   What is the impact to your environment.  How critical is this to be fixed.

I think it helps them to triage the problem and put it in the queue where it 
will get the correct attention.

Is this a SHOP DOWN or a Minor inconvenience.


Lizette


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On 
Behalf Of Paul Gilmartin
Sent: Monday, July 22, 2013 1:41 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: SR Policy

I just got a reply to an SR asking for more information about the problem, 
then adding the text:

Please also let me know what impact this issue has on your day
to day business so we can understand the situation better.
I look forward to your reply and clarification. Thanks!

Am I to infer that IBM no longer believes in repairing defects simply because 
it's the right thing to do?

This rather blurs the line between an SR and a requirement.

-- gil

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


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


Re: SR Policy

2013-07-22 Thread Paul Gilmartin
On Mon, 22 Jul 2013 13:48:33 -0700, Lizette Koehler wrote:

I have seen this question with most vendors.

   What is the impact to your environment.  How critical is this to be fixed.

I think it helps them to triage the problem and put it in the queue where it 
will get the correct attention.

Is this a SHOP DOWN or a Minor inconvenience.
 
There's a checkbox for that; I checked No and opened as SEV3.

Tunnel vision.  Imagine that Charles had reported his integer problem.
But with a circumvention available it has no longer an impact on his
day to day business.  Does that justify IBM's leaving the pitfall for
other customers to encounter, with anguish similar to Charles's?  And
for each customer, finding a circumvention becomes a one-time
experience; no impact on day to day business.  Ouch!  Or is it
IBM's responsibility to assess the potential distributed impact across
the customer base?  Defect-riddled software in the aggregate impacts
day to day business even though the blame can not be laid on any
single defect.


-Original Message-
From:  Paul Gilmartin
Sent: Monday, July 22, 2013 1:41 PM

I just got a reply to an SR asking for more information about the problem, 
then adding the text:

Please also let me know what impact this issue has on your day
to day business so we can understand the situation better.
I look forward to your reply and clarification. Thanks!

Am I to infer that IBM no longer believes in repairing defects simply because 
it's the right thing to do?

This rather blurs the line between an SR and a requirement.

-- gil

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

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


Re: BLKSIZE=3120

2013-07-22 Thread Paul Gilmartin
On Mon, 22 Jul 2013 09:08:12 -0700, Ed Jaffe wrote:

A customer (mildly) complained thatsome of our product allocations still
use BLKSIZE=3120. I vaguely remember trying to change all of them to
BLKSIZE=0 many years ago (probably before OS/390) and running into some
issues with certain IBM utilities. Unfortunately, I can't remember the
specifics.

In starting to revisit this again, I noticed numerousoccurrences of
'3120' in IBM help and documentation. For example, the TSO/E RECEIVE
command HELP claims that the log data set must be BLKSIZE=3120:
 
Is there any difference between explicitly specifying BLKSIZE=0 and
simply omitting BLKSIZE?  Except in COBOL?

A War Story:

Long prior to the advent of SDB, I had formed the habit of omitting
BLKSIZE in my Rexx EXECs.  The Rexx function library was smart:
it chose good BLKSIZEs and/or I didn't much care about fractional
deviations from absolute optimality.  And, for all I knew (and didn't
care) it adapted well to different device types.

Suddenly I started getting Sx13 in old debugged EXECs.  It seems
that Rexx had deferred BLKSIZE selection to SDB, and SDB was
doing a poorer job of selecting BLKSIZE than Rexx.  In fact, it was
(as then documented!) selecting BLKSIZE=80 for all subsystem data
sets (JES and UNIX).  RECFM=VBA,LRECL=137, BLKSIZE=80 worked
poorly.

But when I reported the problem, IBM had the fix at hand.  Worked.
But IBM warned me:

o The repair was designed for JES, and was not certain to work
  for UNIX files.  (Worked OK.)

o The repair necessarily violated the _published_ specification
  of BLKSIZE=80, and if another customer complained, it might
  be necessary to revert it.

o I was advised to stop deferring BLKSIZE and specify it explicitly
  in all my code.  Considerably ironic that a consequence of SDB
  was that I was advised not to rely on it.

(It's better now.)

Is there any hope that COBOL will come to trust SDB when
BLKSIZE is omitted, or would that necessarily entail a
standards violation?

-- gil

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


Re: BLKSIZE=3120

2013-07-22 Thread Robert A. Rosenberg

At 16:51 -0500 on 07/22/2013, Tom Marchant wrote about Re: BLKSIZE=3120:

Most PTFs should be able to be applied, restored and applied again 
without issues.


This is an issue since the design of RESTORE is broken due to its 
poor handling of SUPS/PREs If I can Apply a SYSMOD I should be able 
to restore it without needing to also restore any SYSMODs it PREs. 
IOW: If it PREs SYSMOD1 which has Elements EL1 and EL2 and contains 
only a new EL1, then a restore should be able to just select EL1 from 
SYSMOD1 and not need to also restore SYSMOD1 (along with its PREs 
which then need to be Applied again).


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


DFHSMDATASETSERIALIZATION | USERDATASETSERIALIZATION with DFHSM and z/OS 1.11

2013-07-22 Thread Gibney, Dave
   I run with USERDATASETSERIALIZATION and since I have many potentially multi 
volume PS datasets (Stripped/Extended in default dataclass), I really need to 
continue this.
   I also do EXPIREDDATASETS(SCRATCH). I also have disk datasets created with 
EXPDT=98nnn because I implemented TMM long ago. I have a process in place to 
detect and ALTER dsname NULLIFY RETENTION these and allow the MGMTCLAS (which 
is derived from EXPDT) to control expiration. 
   Recently, the applications people shifted some processing around and found 
the window to create and then DFHSM expires before I get the EXPDT reset.  This 
caused the next job to fail :( 
  With USERDATASETSERIALIZATION, the DFHSM  Integrity Age for Space Management 
is set to zero days. It appears a longer Integrity Age would delay this 
scratching of the dataset.

   I am contemplating using a PATCH to set this age to 1 or 2 and see if this 
keeps the dataset around long enough to reset. Does anyone have any experience 
or thoughts on such a DFHSM patch? 


Dave Gibney
Information Technology Services
Washington State University

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


Re: BLKSIZE=3120

2013-07-22 Thread Jim Mulder
 Long prior to the advent of SDB, I had formed the habit of omitting
 BLKSIZE in my Rexx EXECs.  The Rexx function library was smart:
 it chose good BLKSIZEs and/or I didn't much care about fractional
 deviations from absolute optimality.  And, for all I knew (and didn't
 care) it adapted well to different device types.

  If I may quibble a bit with the reference to Long prior to the advent 
of SDB:

  REXX on MVS was introduced in TSO/E Version 2.1 for MVS/XA and MVS/ESA.
I don't remember exactly when that was shipped, but I think it would have 
been in the 
1987-1988 timeframe.

  I don't remember exactly when SDB was introduced,  but I found an
APAR  OY19694  which was opened on January 5, 1989   for an SDB-related 
issue. 

Jim Mulder   z/OS System Test   IBM Corp.  Poughkeepsie,  NY

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


Re: BLKSIZE=3120

2013-07-22 Thread CM Poncelet
You can still use native SMP/E in batch to retain control of your system 
installs/maintenance: just do CBIPO instead of IBM's 'recommended' 
installs (the distribution tapes should still be in the original format).


IBM had been trying to force us to use their SMP/E 'dialogs' since the 
mid/late eighties; but we took no notice. Next IBM tried to force us to 
use SystemPak, CustomPak, You-name-it-Pak etc. (as it was called then). 
A bank asked me to install it for them in '99. So I did, I checked it - 
and it was riddled with bugs (e.g. PROCs were written in lower case, and 
why the heck did SystemPak need the master catalog password to install a 
product anyway?). I raised a PMR with IBM about that and I got the 
following answers.


- Level 1 said it was a 'wonderful product' and that all their customers 
wanted it; so I replied that it was full of errors; escalate.
- Level 2 said that IBM had found that many of its customers could not 
afford to hire sysprogs and that SystemPak allowed them to install 
products without needing ditto; I replied again that it was full of 
errors, that if IBM were so clever and their customers were so stupid 
then why was it that IBM could not find e.g. the hlq of the current 
PARMLIB instead of asking their customers to type it in a panel etc.; 
escalate.
- Level 3 said (verbatim) I never said that I agreed with it; so I 
replied Thanks, you can close the PMR.


I then told the bank that SystemPak was full of errors and suggested 
rewriting it for them - such that it would be 100% compatible with IBM's 
version (in case IBM eventually fixed it), but without the bugs and 
hassle. The bank said OK. So I wrote and installed my own version of 
SystemPak for them.


IBM then spent several weeks calling and asking me to explain how I had 
fixed their SystemPak, so they could tell their developers in Canada - 
but forgot to mention how much they would pay me for that (tut tut).


Later, at a different company in 2000, I found that IBM had still not 
fixed their SystemPak bugs. It's a pity I cannot remember the PMR number 
I raised in '99 (I left it behind, at the bank).


IBM is following Microsoft's lead, because 99% of its customers are 
computer illiterate but also have 99% of the money. So why bother with 
the 1% of us who know how to avoid wasting CPU cycles, VS and DASD space 
- but who thereby prevent IBM from selling more hardware - when there 
are 'oodles' of customers out there to whom IBM can sell 10 times more 
hardware than they actually need, and who believe that to follow IBM's 
'recommendations' is the correct and proper way to avoid making 
mistakes? (It used to be called FUD.)


I would suggest that you stick with native SMP/E if you do not want IBM 
to take it away from you ('out of support', as they say). You can create 
your own CSIs by REPRO'ing the production ones (and then preferably into 
a single VSAM KSDS as this is *not* recommended by IBM), then 
UCLIN-changing them to point at your global/DLIB/TLIB zones and their 
datasets (which you can also copy from the production ones) etc.


BTW TRSMAIN supports BLKSIZE=27648 for LRECL=1024 and IPCS supports 
BLKSIZE=24960 for LRECL=4160, and you can ZAP any LMOD's hard-coded DCB 
BLKSIZE to be whatever you want it to be - if it insists on overriding 
yours.


Cheers, Chris Poncelet

Paul Gilmartin wrote:


On Mon, 22 Jul 2013 16:41:12 -0400, Dave Salt wrote:
 


SimpList can be added to that list as well. One reason is because many 
developers want to try SimpList by installing it in their own private 
libraries, and they don't have access to SMP/E.

   


Shame on IBM for transmogrifying SMP/E into a product that presents
an ineffable threat to system integrity, and for tolerating that
situation, apparently indefinitely!  Prior to that all programmers
had access to SMP/E and could install products for trial in their own
private libraries.

On Mon, 22 Jul 2013 15:35:49 -0500, Tom Marchant wrote:
 


IMO, well-implemented SMP/E packaging is preferable to non-SMP/E.

However, non-SMP/E packaging is far preferable to poorly implemented 
SMP/E packaging.  Getting it right is difficult and some vendors do a very 
poor job of it.  IMO if a vendor doesn't do their SMP/E packaging correctly, 
it is better that they not bother.


   


Where can I find some Rules of Thumb; an SMP/E style checker?

-- gil

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


 



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


Re: BLKSIZE=3120

2013-07-22 Thread Shmuel Metz (Seymour J.)
In 025801ce86f6$64021d20$2c065760$@mindspring.com, on 07/22/2013
   at 09:13 AM, Lizette Koehler stars...@mindspring.com said:

AFAIK - OBJ Decks from compilers, TSO XMIT datasets, TRSMAIN (though
I think this is 6k) and a few others are still dependent on 3120
blksize.

My recollection is that the 3120 limit for compilers, linkage editor
and binder were lifted a long time ago.

-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 Atid/2http://patriot.net/~shmuel
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

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


Re: BLKSIZE=3120

2013-07-22 Thread Shmuel Metz (Seymour J.)
In 7455665327418361.wa.m42tomibmmainyahoo@listserv.ua.edu, on
07/22/2013
   at 04:51 PM, Tom Marchant m42tom-ibmm...@yahoo.com said:

This is not likely an exhaustive list.

o Don't use RELFILE for ++ APAR or ++ PTF

-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 Atid/2http://patriot.net/~shmuel
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

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


Re: BLKSIZE=3120

2013-07-22 Thread Shmuel Metz (Seymour J.)
In 00a401ce870f$e7dd43e0$b797cba0$@soundsoftware.us, on 07/22/2013
   at 12:16 PM, Duffy Nightingale du...@soundsoftware.us said:

I see another developer on here.  And we send our product out using
TSO XMIT.  Which gives rise to a question.  I saw some techie state
that he would not install a product unless he could use SMP/E.  Is
this something us developers should explore or is it a big headache
that is not worth it?

At some shops, being unable to install a fix for a single bug is a
major issue. The point of SMP/E is not to just use it as a packaging
tool for the entire product but also to use it as a tracking tool for
individual fixes. To keep your customers happy when they ask for SMP/E
packaging, you have to not only use it but to use it properly.

-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 Atid/2http://patriot.net/~shmuel
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

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


Re: SR Policy

2013-07-22 Thread Shmuel Metz (Seymour J.)
In 326064299181.wa.paulgboulderaim@listserv.ua.edu, on
07/22/2013
   at 03:41 PM, Paul Gilmartin paulgboul...@aim.com said:

Am I to infer that IBM no longer believes in repairing defects simply
because it's the right thing to do?

I would infer that IBM wants to know whether it warrants an immediate
fix or whether FIN is an acceptable resolution. FIN does not mean
never, and I've even opened ETR's in which I suggested that FIN was
appropriate.

-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 Atid/2http://patriot.net/~shmuel
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

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


Re: BLKSIZE=3120

2013-07-22 Thread Ed Gould

Jim,

Good memory.
My memory is a bit different (not by much though).
DFP 3.1  first offered SDB
TSOe (I think) at 2.1 ++ many PTF's for Rexx .
I recall having not to implement XA for REXX (not being fully ready  
and SWA (above) not being fully supported by vendors. In one case I  
had to change the (CA's) source code and the other had to wait for a  
ZAP from Compuware.
I was not a happy camper and was calling the vendors daily for an  
update. Put back my installation by about a month. I had egg on my  
face at work.


Ed

On Jul 22, 2013, at 9:03 PM, Jim Mulder wrote:


Long prior to the advent of SDB, I had formed the habit of omitting
BLKSIZE in my Rexx EXECs.  The Rexx function library was smart:
it chose good BLKSIZEs and/or I didn't much care about fractional
deviations from absolute optimality.  And, for all I knew (and didn't
care) it adapted well to different device types.


  If I may quibble a bit with the reference to Long prior to the  
advent

of SDB:

  REXX on MVS was introduced in TSO/E Version 2.1 for MVS/XA and  
MVS/ESA.
I don't remember exactly when that was shipped, but I think it  
would have

been in the
1987-1988 timeframe.

  I don't remember exactly when SDB was introduced,  but I found an
APAR  OY19694  which was opened on January 5, 1989   for an SDB- 
related

issue.

Jim Mulder   z/OS System Test   IBM Corp.  Poughkeepsie,  NY

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


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


Re: DCOLLECT QUESTION -RESULTS PUZZLING -

2013-07-22 Thread David Crayford

On 21/07/2013 7:15 PM, John McKown wrote:

Such as? I will grant that REXX is old. But so are PERL, awk, and many
other UNIX tools. Him, perhaps lua. But there is a port of lua to z/OS. A
person here was kind enough to send it to me.


If anybody is interested in Lua drop me a line. I've been having lots of 
fun with it and have recently been getting my feet wet with co-routines. 
Co-routines are analogous to generators
in Javascript and Python and are very powerful for implementing non 
pre-emptive, collaborative multi-threading. The idea is to turn a 
function call inside out. They really are neat for
creating very elegant patterns. I'm a big fan of unix pipes and 
co-routines can implement sources, sinks and filters in a very concise 
way. The following example is a little test driver I knocked up
to simulate processing CICS CMF records with different types of filters 
for serializing to JSON, ZLIB compression etc.


io = require(io)
zlib = require(zlib)
json = require(cjson)
socket = require(socket)

-- ZLIB compression filter
function zip(prod)
  return coroutine.create(function ()
local dstream = zlib.deflate(zlib.BEST_SPEED)
while true do
  local status, value = coroutine.resume(prod)
  if not status then break end
  coroutine.yield(dstream(value, full))
end
  end)
end

-- filter to serialize a lua table to a JSON string
function jsonify(prod)
  return coroutine.create(function ()
while true do
  local status, value = coroutine.resume(prod)
  if not status or not value then break end
  coroutine.yield(json.encode(value) .. \n)
end
  end)
end

-- filter to translate EBCDIC to ASCII
function e2a(prod)
  return coroutine.create(function ()
while true do
  local status, value = coroutine.resume(prod)
  if not status or not value then break end
  coroutine.yield(os.e2a(value))
end
  end)
end

-- file sink - defaults to QSAM but could take parameters
function file_sink(prod)
  local o, msg = io.open(SMF.OUTPUT, wb, type=record, noseek)
  if not o then
print(msg)
os.exit(8)
  end
  while true do
local status, rec = coroutine.resume(prod)
if not status or not rec then break end
print(rec)
o:write(rec)
  end
end

-- socket sink to send stuff over the wire
function socket_sink(prod)
  local host = 172.17.70.3
  local port = 6870
  local c = socket.connect(host, port)
  while true do
local status, rec = coroutine.resume(prod)
if not status or not rec then break end
c:send(rec)
  end
end

-- simulate reading an SMF file
function file_source()
  return coroutine.create(function ()
for n = 1, 1500 do
  local smfrec = {}
  smfrec.type = 110 -- CMF record
  smfrec.applid = CICSWARE
  smfrec.sysid = MVS1
  coroutine.yield(smfrec)
end
  end)
end

-- main
file_sink(zip(jsonify(file_source(
file_sink(zip(file_source()))
file_sink(jsonify(file_source()))
socket_sink(e2a(jsonify(file_source(
socket_sink(zip(e2a(jsonify(file_source()

Lua is very fast. I've profiled it extensively using IBM Application 
Performance Analyzer and the interpreter overhead is  10%. The majority 
of the time is spent in fast C library code.





Oh course, I do the same. But I do it to save on z/OS MSUs.
  On Jul 21, 2013 2:40 AM, Shane Ginnane ibm-m...@tpg.com.au wrote:


On Sat, 20 Jul 2013 22:48:00 -0700, Lizette Koehler wrote:


If you go to CBTTAPE.ORG and go for FILE206, it seems to have a REXX

parser

for DCOLLECT records

Some (not too many) years ago I lifted a cbt offering to mangle dcollect
records - needed some mods for what I wanted, but did the job admirably.
Not sure if this was it, but as always, the cbt has things you can use - or
use as templates at least.
Maybe If I was doing it today I'd flick the file to zLinux and use tools
more applicable to this century than Rexx.

Shane ...

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


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


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


Re: SMP/E vs. NON SMPE Installs (Was BLKSIZE=3120)

2013-07-22 Thread Paul Gilmartin
On Mon, 22 Jul 2013 21:25:23 -0400, Robert A. Rosenberg wrote:

This is an issue since the design of RESTORE is broken due to its
poor handling of SUPS/PREs If I can Apply a SYSMOD I should be able
to restore it without needing to also restore any SYSMODs it PREs.
IOW: If it PREs SYSMOD1 which has Elements EL1 and EL2 and contains
only a new EL1, then a restore should be able to just select EL1 from
SYSMOD1 and not need to also restore SYSMOD1 (along with its PREs
which then need to be Applied again).

Several releases ago, at OS/390 V2R5.0 SMP/E, SMP/E introduced the
Improved load module build processing, which for building _new_
load modules during _APPLY_ processing supported fetching ++MOD
elements from the GLOBAL zone.  Alas, it does not support such
selection when updating a load module as in RESTORE, nor selecting
other element types such as ++MAC from the GLOBAL zone.  It's a
pity that SMP/E did not follow through to provide such function as
you (and I) want for greater flexibility of RESTORE.  If that were done,
ACCEPT would become a needless function.

IBM has stated that the design objective of RESTORE is to reset
objects to an ACCEPTed level; as such it performs its function
admirably and needs no enhancement.  You and I feel differently
from IBM here.

The corresponding VM facilities, VMFMERGE and VMSES/E have
no requirement for a function analogous to ACCEPT.  Accordingly,
they provide the flexibility we'd like to see in SMP/E RESTORE.

-- gil

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