Chris,

Were you suggesting that I code GWSSCP=YES on the NN?  The documentation states 
that GWSSCP is forced to NO if the node is an EN.

I've been looking at the Session Management Exit and may try it out to see if 
it can translate the NETID.

Luke

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf Of 
Chris Mason
Sent: Monday, December 28, 2009 4:22 PM
To: [email protected]
Subject: Re: VTAM search/routing problem

Luke

So it seems I have forgotten how to convert a non-network qualified - to use 
the terminology of the Communications Server (CS) SNA Resource Definition 
Reference manual - LU name into a network qualified LU name. Having a 
network qualified destination LU name is the key to being able to distinguish 
one route over topology subnetwork borders over another route in the Border 
Node.

I used to teach SNI but unfortunately I didn't retain the documents of the 
presentations I used to give for SNI - except one, the Alias application.[1] 
Well, I had a look at this and I found the following in the notes to setting up 
the *real* name for a destination LU (DLU):

<quote>

A Real Name and Real Network NETID can be provided by CDRSC definition 
specified under a NETID statement if there are no name conflicts. An Alias 
Name, using a CDRSC definition not specified under a NETID statement or 
dynamic, can be assumed to be a Real Name by the GWSSCP just before 
issuing the RNAA request, again, if there are no name conflicts.

If there are name conflicts, either the ALIAS application or the Session 
Management Exit must be used.

The attempt to discover the Real Name and Real Network NETID can be made 
either at a GW or GW-Capable SSCP on the OLU side of the network boundary 
or in a GWSSCP on the adjacent side
of the network boundary.

</quote>

OLU = originating LU

Note the "can be provided by CDRSC definition specified under a NETID 
statement".

Maybe I haven't forgotten how to convert a non-network qualified LU name 
into a network qualified LU name!

And now I'm about to get adventurous! In other words this is not what I know 
but what I may be able to read between the lines in the manual.

Note the talk of GW or GW-capable SSCP. Let's have a look at the GWSSCP 
start option.

<quote>

GWSSCP start option

...

Specifies that an SSCP can be a gateway SSCP. If you code GWSSCP, the 
SSCP can still process CDRSCs defined with the NETID operand.

</quote>

Note the "process CDRSCs defined with the NETID operand". Could it be that, 
if GWSSCP is not specified as YES, VTAM refuses to pay attention to CDRSC 
definitions with a NETID specified?

Maybe you need to have "gateway" logic enabled in VTAM in order to be able 
to have the destination LU qualified by a NetId using the definition I gave 
before. Note that I'm not now quite sure about the NQNMODE operand so try 
it with and without and see if the display of the CDRSC gets network-qualified.

In order to enable "gateway" logic, you will need to specify GWSSCP=YES and 
SACONNS=YES and, maybe, specify something for HOSTSA. I don't expect 
that will do any harm to anything else.

What intrigues me about all of this is that, back in the days when I used to 
teach SNI, getting a Real NetId assigned was a "big deal". There must have 
been a way to do it and those notes in the Alias presentation just must be 
correct since this was such an important point. The "big deal" was having to 
persuade VTAM to decide what the Real NetId was so close to the network of 
the originating LU in the case where you wanted not to have to specify some 
definition to decide it - a CDRSC as I'm now pretty certain it must be/have 
been.

Now with your border node configuration, the Real NetId is also being decided -
somewhere. It might be interesting to track the destination LU in your 
business partner's network in your network, the intermediate network and the 
destination network in each of the VTAMs through which it passes in order to 
see with which NetId the LU is qualified at each stage. That would mean a 
display of that LU/CDRSC in each of the VTAMs.

It's an important point in all of this - a point to which the NQNMODE operand 
relates - that an LU has an alias identity and a real identity, this being 
something permitted within the SNA search requests. I used to know all about 
this in SNI but maybe there's an interesting story also in the APPN border 
support which somehow passed me by.

One reason it could have passed me by is that I didn't have the wit to 
experiment with destination LUs which were *not* network qualified when I 
was playing with APPN border nodes - shame on me!

But this reminds me. I'd be interested to know whether the ADJCLUST 
definition I gave before works. You could check this with an APING test since 
you can give a network-qualified destination/target name.

And you mentioned "controlling application". If it's an option you might 
initiate 
the session not from within your application but by specifying 
LOGAPPL=MYNET.MYAPPL on the CDRSC.

As I said, we're in "sandbox" mode now!

Chris Mason

[1] I handed my SNI class - two weeks with other really interesting advanced 
VTAM topics! - to some colleagues who set up a one week SNI class - and I 
expanded the two weeks class to exclusively interesting VTAM topics plus fun 
stuff such as the 3708. However, I retained the Alias presentation for my 
class because - well - it was a bit complicated for my colleagues! This 
explains why I still have the presentation material.

On Tue, 22 Dec 2009 08:45:47 -0600, Rabbe, Luke 
<[email protected]> wrote:

>Chris
>
>Thank you for the suggestions.  I was able to active the CDRSC on the EN, 
delete the CDRSC from the NN, and update the ADJCLUST table entry.  That 
all looks good and looks like it should probably work.
>
>However, when the local application attempts to establish a session with the 
remote LU it is looking for MYNET.RMTLU as opposed to RMTNET.RMTLU.  And 
since the new CDRSC was activated, that can't be resolved.
>
>Do I need to be controlling application session request or is there something 
within VTAM that I can use to control either the request or the resolution?
>
>Thank you
>Luke
>
>-----Original Message-----
>From: IBM Mainframe Discussion List [mailto:[email protected]] On 
Behalf Of Chris Mason
>Sent: Tuesday, December 22, 2009 4:37 AM
>To: [email protected]
>Subject: Re: VTAM search/routing problem
>
>Luke
>
>I've taken another look at this because it should be possible to do what you
>want by using an adjacent cluster routing list. So I did some research in order
>to refresh my memory as best I could over how it all might work - but you'll
>have to test it, of course.
>
>First let's have a CDRSC so that we know what network identifier belongs to
>the remote LU:
>
>         VBUILD TYPE=CDRSC
>         NETWORK NETID=RMTNET
>RMTLU    CDRSC 
NATIVE=NO,NQNMODE=NQNAME,REGISTER=YES,SUBAREA=NO
>
>Note that REGISTER=YES is specified in case the partner LU initiates the
>session sometimes.
>
>This should be defined in the End Node which initiates the session. After
>attempting the session initiation, you should display the LU name (as a
>CDRSC) in the Network Node (Server) to be sure it is qualified with the 
desired
>NETID.
>
>You may need to clear the CDRSC out of the Network Node by using the
>following command:
>
>VARY NET,INACT,ID=RMTLU,DELETE=YES
>
>Now let's set up the adjacent cluster routing list in the Network Node
>(Server)/Border Node so that the session setup is forbidden to go anywhere
>but where we want it to go:
>
>         VBUILD TYPE=ADJCLUST
>         NETWORK NETID=RMTNET
>RMTCP    NEXTCP
>CPNAME=RMTNET.RMTCP,BNDYN=NONE,BNORD=DEFINED,SNVC=2
>
>Note that BNORD=DEFINED is actually redundant given there is only one 
entry!
>
>The way the subnetwork visit count (SNVC) works is a bit odd. It is 
something
>like the following:
>
>1. When the request is about to cross a subnetwork border, 1 is subtracted
>from the SNVC value in the request.
>
>2. If the value is now 0, the request is not sent. Obviously if it is now more
>than 0, the request is sent.
>
>That explains why SNVC=1 limits you to your native subnetwork and SNVC=2
>allows just one subnetwork border to be crossed.
>
>-
>
>Well, I hope that's a starting point! Let us know how you get on.
>
>Chris Mason
>
>On Mon, 21 Dec 2009 09:22:38 -0600, Rabbe, Luke
><[email protected]> wrote:
>
>>I'm having a difficulty with routing particular process' VTAM traffic and I
>can't figure out how to make VTAM do what I want it to.
>>
>>My network is 1 network node and several end nodes.  The application in 
this
>process resides on an end node.  I have 2 Enterprise Extender nodes on the
>network node.  One EE node is connected to an intermediate network.  The
>other is directly connected to a business partner's network.  I used to use 
the
>intermediate network to reach the business partner's network, but now I only
>want traffic to flow through the direct route.
>>
>>I'm able to accomplish this when the EE connection to the business parter
>(EEBP) is active and session initiation is attempted.  When EEBP is active, the
>traffic flows from my end node, to my network node, through EEBP, and to 
the
>business partner's CP.  That's great.  However, if EEBP is made inactive, 
VTAM
>routes all new and existing sessions through the intermediate network.  I 
don't
>want this to happen - I don't want to use the intermediate network any 
more.
>>
>>These are my VTAM defintions that I think are relavant:
>>
>>Network node:
>>
>>Adjacent cluster table:
>> VBUILD TYPE=ADJCLUST
>> NETWORK NETID=(RMTNET)
>>RMTCP    NEXTCP CPNAME=RMTNET.RMTCP,SNVC=2
>>NNCP     NEXTCP CPNAME=MYNET.NNCP,SNVC=2
>>
>>ADJSSCP table:
>> VBUILD  TYPE=ADJSSCP
>> NETWORK NETID=RMTNET,SORDER=ADJSSCP
>>RMTCP  ADJCDRM
>>
>>
>>End node:
>>
>>VTAMOPT SORDER=APPNFRST
>>
>>ADJSSCP table:
>> VBUILD  TYPE=ADJSSCP
>> NETWORK NETID=RMTNET,SORDER=ADJSSCP
>>RMTCP    ADJCDRM
>>NNCP     ADJCDRM
>>
>>VBUILD TYPE=ADJSSCP
>> NETWORK NETID=MYNET
>>NNCP     ADJCDRM
>>ENCP1    ADJCDRM
>>ENCP2    ADJCDRM
>>ENCP3    ADJCDRM
>>         NETWORK
>>NNCP     ADJCDRM
>>ENCP1    ADJCDRM
>>ENCP2    ADJCDRM
>>ENCP3    ADJCDRM
>>
>>My CDRSCs on the EN are dynamic.  I don't think this matters because I 
tried
>this with statically defined CDRSCs and got the same result.
>>
>>I suspect a clue to the problem lies in the fact that when the application
>attempts to start a session, the remote LU is qualified with my network ID as
>opposed to the business partner's network ID (MYNET.LU1 vs. RMTNET.LU1).
>So, the EN VTAM uses the ADJSSCP table for MYNET instead of RMTNET.  In
>doing so the APPN network is searched first because of the VTAM startup
>option.  And because of that the remote CP is found whether the direct EE
>connection is active or not.  And when the direct EE connection is active,
>VTAM chooses to use it.  I don't want to change my local network ADJSSCP
>table or the SORDER default on the end node.
>>
>>I hope I've explained myself well enough.  Does anyone have any ideas on
>how to establish and maintain the route through the direct EE connection?
>>
>>Luke

----------------------------------------------------------------------
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

----------------------------------------------------------------------
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

Reply via email to