Jags

I see for the second time in a few days, I will have to advise you to get in 
close touch with the folk responsible for your z/OS Communications Server 
(CS) environment, again, as with Enterprise Extender, both the IP and SNA 
(VTAM) side.

Thanks to John McKown, we have some definitions presented which I can use 
further to explain what is happening so you can pass the information on to the 
folk I just mentioned. It would appear that Ted McNeil has also made the very 
reasonable judgement given the evidence that you are *not* one of those 
folk, this being a very basic matter relating to access to TSO based on the 
TN3270 server TN3270E program.

> You probably have more people coming in via TN3270 than it has available 
3270 virtual terminals defined.

Don't go looking for "3270 virtual terminals", this is a way of expressing the 
definition requirements in terms of the RFC - or if it isn't, it could be! What 
is 
actually required is two sets of real definitions which are present in what 
John 
has posted, which provide names for resources used as the "3270 virtual 
terminals", namely,

- the DEFAULTLUS/ENDDEFAULTLUS statement block within the 
BEGINVTAM/ENDVTAM statement block in the TN3270E PROFILE data set

- the APPL statements following a VBUILD TYPE=APPL statement in a 
VTAMLST member - also known as a "major node"

These statements cause the allocation of control blocks within, respectively, 
the TN3270E program and VTAM in order to allow the TN3270E program to 
accept a TN3270 TCP connection from a TN3270 client and concatenate the 
associated 3270 data stream exchange with an SNA session using the VTAM 
API. In terms of the SNA protocol, these are logical unit (LU) names.

In the case of the DEFAULTLUS/ENDDEFAULTLUS statement block, this is only 
one way of providing the SNA LU names of the "3270 virtual terminals" but is 
the most likely for relatively simple sets of definitions. I guess we can make 
the judgement that you have the most simple configuration since you would 
otherwise need to understand the configuration rather better and you 
wouldn't be posting your query.

It is also an option which is normally used, in order to reduce the tedium of 
keying each and every LU name within the DEFAULTLUS/ENDDEFAULTLUS 
statement block, that the names are expressed as a range and a template - 
what John calls "generically" - as in John's example.

This reduced form of definition can also be matched in the VTAM APPL 
statements by being able to use, in its simplest form, a single "model" APPL 
statement, again as in John's example.

As John indicated, these definitions imply an absolute limit to the number of 
TN3270 TCP connections which can be supported at any one time since each 
of them needs to be assigned to, in effect, a pair of definitions, one as 
defined in the TN3270E program PROFILE data set and one as defined in a 
VTAM member of VTAMLST. Once all of these are used up in operation, no 
further TN3270 connections can be established. Once one of the connections -
 and the associated SNA session (an important qualification) - is 
disconnected, another connection and associated session can be established. 
Makes complete sense, doesn't it?

-

Perhaps John's example needs a little more focus on the important parameters 
and an explanation on how they work, particularly as there are some 
peculiarities!

The DEFAULTLUS/ENDDEFAULTLUS block is the following:

> DEFAULTLUS
>   DCCVDTAA..DCCVDTAZ..FFFFFFAA
> ENDDEFAULTLUS

The range specified is DCCVDTAA to DCCVDTAZ so that the names are 
DCCVDTA as a prefix with the 26 letters of the Latin alphabet as used in the 
English language and by EBCDIC codes. The template, FFFFFFAA, is not really 
all that relevant in this case since there are no choices and in fact, the 
template used could just as easily - the "peculiarity" - have been FFFFFFFA 
since the 7th character of the name doesn't change. Thus the change of "A" 
to "F". The final "A" merely says that the increment within the range must be 
an alphabetic character, but between "A" and "Z" there are no options to be 
otherwise!

The relevant section discussing this whole topic is "Rules for LU name 
specification" in Chapter 16, "TN3270E Telnet server", in the z/OS CS 
Configuration Reference manual.

When a TN3270 TCP connection is made and the nature of the definitions 
determine that the TN3270E program must find an LU name in the 
DEFAULTLUS/ENDDEFAULTLUS block, a name not currently in use is chosen. 
This becomes the name which the TN3270E program will use in the VTAM API 
calls used to establish an SNA session as a secondary LU - pretending to be 
what is/has been traditionally a "device-type" LU associated with a 3270 
display device connected through, say, a 3174 control unit.

That LU name can either be the name of an LU statement - in which case 
there would be 26 of them, just as tedious to key up as individual names 
within the DEFAULTLUS/ENDDEFAULTLUS block - or it can be matched by a 
model APPL statement. The former case is obvious. In the latter case, VTAM 
will accept the call over the API as long as it can be aligned with a model 
APPL statement.

The key part of John's model APPL statement is as follows:
 
> D08VDTA? APPL  ACBNAME=DCCVDTA?,  TCP/IP VIRTUAL TERMINAL 
DEFINITION   +
               ...

This is not completely straightforward but illustrates a further possibility. 
For 
the sake of simplicity and to explain it, I am proposing the following simpler 
version for now:

DCCVDTA? APPL  ...

You will note that the first 7 characters are the same as used for the LU 
names in the DEFAULTLUS/ENDDEFAULTLUS block. When VTAM is presented 
with say, DCCVDTAJ, over the API when the TN3270E program makes the call 
to initiate a session, VTAM will be happy that the first 7 characters are the 
same and will then note that, because of the "?" character, any character can 
be present as the 8th character. Thus there is a match and VTAM will define a 
control block representing an LU, a secondary LU in fact, where the LU name, 
effectively the name of the APPL statement, is DCCVDTAJ. The remaining 
operands of the, in effect internally generated, APPL statement are those 
specified on the model APPL statement - rather obviously!

The ACBNAME operand is an equally obvious exception once it is appreciated 
what it is doing. The name of the ACBNAME operand is the name which is used 
over the VTAM API by, in this case, the TN3270E program. It is a name which 
can be used only within that VTAM, in SNA terms the domain of the SSCP, in 
order to identify that APPL LU. The name of the APPL statement is another 
name which can be used to identify that APPL LU but it can be used 
throughout the SNA network or set of SNI or APPN interconnected networks, 
network being defined by the "network identifier", NetId, prefix of the fully-
qualified SNA name.

When the ACBNAME operand is not specified, the name of the APPL statement 
is assumed also to provide the value of the ACBNAME operand.

What happens in the case of a model APPL statement is that the "fixed" part 
of the name can be different - in John's case, the "network-wide" name "fixed" 
part is D08VDTA while the "domain-wide" name "fixed" part is DCCVDTA, in 
other words, "08" replaces "CC".

Note that there are two characters which can be used to cause matching. 
One is a "?" which allows for just one character as a substitute while the 
other 
is an "*" which allows for one or more characters as a substitute. Clearly, in 
John's case, either could have been used - and if you understand why you will 
have been following what I have been saying!

-

I'll have a look over John's TN3270E PROFILE statements in detail and report 
back if I see anything justifying a comment - no breaths to be held!

However, I do see some infelicities in the model APPL statement which do 
rather need comment.

> D08ACCES VBUILD TYPE=APPL         APPLICATION MAJOR NODE
> *
> D08VDTA? APPL  ACBNAME=DCCVDTA?,  TCP/IP VIRTUAL TERMINAL 
DEFINITION   +
>                MODETAB=MODETABP,                                       +
>                VPACING=1,AUTH=(VPACE),EAS=10
 
The MODETAB is probably unnecessary. The named default and specified mode 
table entries are all contained in the supplied mode table ISTINCLM which is 
always available - even when the MODETAB operand specifies the name of 
a "private" mode table. Note that I was obliged to add "probably" because an 
installation can decide to override the supplied mode table entries with 
identically named "private" mode table entries - a strongly discouraged 
practice!

Since I was obliged to check the TELNETDEVICE statements when making the 
previous comment, I can see, having checked them, that they are rather 
peculiar - but are very likely not used. If the entries that would be used in 
the 
installation, I would support specifying them - although not necessarily always 
forcing 24x80 presentation space dimensions. Unfortunately, it is unlikely that 
these entries will be used. The specified defaults are for "prior-to-TN3270E" 
use and I expect that all TN3270 clients in use now will respond positively to 
the TN3270 server suggesting the TN3270E is used.

AUTH=(VPACE) is, I regret, a nonsense perpetrated and propagated by the 
z/OS CS IP folk who appear to be in ignorance of the fact that the (N)VPACE 
suboperand of the AUTH operand can apply only to an APPL statement 
implementing *primary* LU protocols. But then, regarding CS as a body, 
whoever said that the left hand need have the first clue what the right hand 
was doing!

Another peculiarity in these definitions is EAS=10. This is actually a useful 
operand to specify even with this peculiar value since it will prevent - not a 
lot - of storage from being wasted. To be clear and not to confuse system 
programmers in the future, EAS=1 would be rather more acceptable, there 
being - prior to an enhancement in z/OS V1R12 which may be found useful - 
no possibility there will ever be more than one session with this APPL LU.

Note that both EAS=10 and EAS=1 achieve the same objective in limiting 
storage associated with the control block created from the definition of an 
APPL statement, real or dynamic, since both are less than 30. The default, 
EAS=509 - itself a most peculiar number!, would waste 4K of storage for each 
APPL statement.

All that said, another operand SESSLIM should be specified as SESSLIM=YES 
from the default SESSLIM=NO. Very oddly - if a redbook I found describing the 
enhancement is to be believed and they said they actually used the function - 
this specification is ignored for the V1R12 SHAREACB enhancement.

Thus, assuming it has been established that VPACING=1 serves a role in an 
era where pacing between applications is adaptive - an architectural addition 
designed to avoid having to pay too much attention to or apply performance-
defeating restrictions on SNA pacing, John's model APPL statement could be 
simplified to the following:

D08VDTA? APPL  ACBNAME=DCCVDTA?,EAS=1,SESSLIM=YES,VPACING=1

Chris Mason

On Wed, 6 Apr 2011 07:50:45 -0500, McKown, John 
<john.mck...@healthmarkets.com> wrote:

>You probably have more people coming in via TN3270 than it has available 
3270 virtual terminals defined. The parameters in the TN3270 server list, 
perhaps generically, VTAM LUs that it can use for TN3270 emulation. Once all 
of them are in use, no more TN3270 connections can be made until someone 
else disconnects from the TN3270 server and so frees up an LU. The TN3270 
server has parameters. Examples from my z/OS 1.10 system:
>
>TELNETPARMS
>    PORT 3023  ;
>    CODEPAGE  ISO8859-1  IBM-1047
>    FULLDATATRACE
>    INACTIVE 28800
>    PRTINACTIVE 600
>    TIMEMARK 600
>    SCANINTERVAL 120
>    SMFINIT TYPE119
>    SMFTERM TYPE119
>    LUSESSIONPEND
>    ; Define logon mode tables to be the defaults shipped with the
>    ; latest level of VTAM
>  TELNETDEVICE 3278-2-E NSX32702
>  TELNETDEVICE 3279-2-E NSX32702
>  TELNETDEVICE 3278-3-E NSX32703
>  TELNETDEVICE 3279-3-E NSX32703
>  TELNETDEVICE 3278-4-E NSX32704
>  TELNETDEVICE 3279-4-E NSX32704
>  TELNETDEVICE 3278-5-E NSX32705
>  TELNETDEVICE 3279-5-E NSX32705
>;   WLMCLUSTERNAME TN3270E ENDWLMCLUSTERNAME
>ENDTELNETPARMS
>BEGINVTAM PORT 3023
>    ; Define the LUs to be used for general users.
>  DEFAULTLUS
>    DCCVDTAA..DCCVDTAZ..FFFFFFAA
>  ENDDEFAULTLUS
>  LINEMODEAPPL TSO ; Send all line-mode terminals directly to TSO.
>  ALLOWAPPL TSO* DISCONNECTABLE ; Allow all users access to TSO
>              ; applications.
>              ; TSO is multiple applications all beginning with TSO,
>              ; so use the * to get them all.  If a session is closed,
>              ; disconnect the user rather than log off the user.
>  ALLOWAPPL *      ; Allow all applications that have not been
>                   ; previously specified to be accessed.
>
>;   Map Telnet sessions from this node to display USSTXBSC screen.
>    USSTCP USSTXBSC
>;
>ENDVTAM
>
>The above requires a VTAM defination for LUs DCCVDTAA..DCCVDTAZ - 26 
LUs. We do this with a major VTAM node similar to:
>
>D08ACCES VBUILD TYPE=APPL         APPLICATION MAJOR NODE
>*
>D08VDTA? APPL  ACBNAME=DCCVDTA?,  TCP/IP VIRTUAL TERMINAL 
DEFINITION   +
>               MODETAB=MODETABP,                                       +
>               VPACING=1,AUTH=(VPACE),EAS=10
>
>This is a very stripped down example. But the 27th attempted concurrent 
connections would get your message because all the 3270 LUs are in use.
>
>--
>John McKown
>
>> -----Original Message-----
>> From: IBM Mainframe Discussion List
>> [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of jagadishan perumal
>> Sent: Wednesday, April 06, 2011 2:14 AM
>> To: IBM-MAIN@bama.ua.edu
>> Subject: No LUs available
>>
>> Hi,
>>
>> In our shop many users are not able to connect the Mainframe.
>> While doing
>> telnet they get an error saying " NO LUs available please try
>> again later".
>> we have checked the TSO region and it is very well running.
>>
>> Any idea to resolve.
>>
>> Regards,
>> Jags

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to