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
<[email protected]> 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:[email protected]] On Behalf Of jagadishan perumal
>> Sent: Wednesday, April 06, 2011 2:14 AM
>> To: [email protected]
>> 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 [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html