Operating System - OpenVMS
1832647 Members
2986 Online
110043 Solutions
New Discussion

TPC IP cluster alias address

 
SOLVED
Go to solution

TPC IP cluster alias address

Hello everybody,

I have a VMS cluster with 2 DS25 and a QUORUM disk.
Only one machine is active and in the active one a TCP server application is running (only in the active machine).
The client application, developped in Visual Basic, doesnt know in wich machine the Server is running.
It is possible to address the server by the client application using the cluster alias IP address? So the cluster should solve the problem to undersatnd where the TCP server application is running.

Thanks in advance.

maurizio carnesecchi
25 REPLIES 25
Bojan Nemec
Honored Contributor

Re: TPC IP cluster alias address

Maurizio,

The better way is to have a homegene cluster, where the application runs on both nodes.

By experience I know that the first booted machine gets all the cluster address services.
So you need to syncronize the boot sequence.

Bojan

Re: TPC IP cluster alias address

Hi Bojan,

i'm agree with you, but, the problem is that we cannot have two homogeneous systems.

The TCP server application need to be mapped in global sections only installed in the active machine.

This global sections are also mapped by many others applications in order to have a sort of online database installed in the memory.


maurizio
Bojan Nemec
Honored Contributor

Re: TPC IP cluster alias address

Maurizio,

Then you must synchronize the boot sequence. (I am not shure but this was a side efect in a homogene cluster, so you must try it).

You can synchronize the boot with cluster wide logical names (replace primary with your node name):

Before starting TCPIP:

$ if f$trnlnm("SYS$NODE").eqs."primary"
$ then
$ define/cluster primary_up true
$ goto secondary_ok
$ endif
$secondary_loop:
$ if f$trnlnm("primary_up").eqs."TRUE"
$ then
$ goto secondary_ok
$ else
$ wait 00:10
$ goto secondary_loop
$ endif
$secondary_ok:

If you have two startup_vms.com you can split commands so that you have on the primary node:
$ define/cluster primary_up true

and on the secondary:
$secondary_loop:
$ if f$trnlnm("primary_up").eqs."TRUE"
$ then
$ goto secondary_ok
$ else
$ wait 00:10
$ goto secondary_loop
$ endif
$secondary_ok:

Maybe will be good to implement some timeout, so the secondary will not wait for infinite, if the primary machine is broken. After timeout you can setup the secondary machin to work as the primary.

Bojan
Volker Halle
Honored Contributor

Re: TPC IP cluster alias address

Maurizio,

you might want to associate the TCPIP cluster alias address with your TCP server application, i.e. during the startup or shutdown of your application enable or disable a TCPIP cluster alias dynamically.

Prior to V5.4, use the SET INT/CLUSTER and SET INT/NOCLUSTER commands, with V5.4 or higher use ifconfig xxx -alias name and ifconfig xxx -alias name delete

(need to invoke @SYS$MANAGER:TCPIP$DEFINE_COMMANDS to define symbols for the UNIX style commands).

Volker.
Jan van den Ende
Honored Contributor

Re: TPC IP cluster alias address

Maurizio,

We have a manifold of your situation.

- 4-node cluster
- ca 20 different applics, _MOST_ clusterwide, but several are (regrettably, but those are like yours) single-node.

And then, at times we want to do maintenance/upgrades to an applic, during which we will NOT want users in that applic on that node.

To enable this, we use DNS.

DNS has a CNAME for the cluster, that goes round-robin along the nodes (which also allows us to take one node out for maintenance!)
Clusterwide applics have CNAMES (just the applic name) to the cluster CNAME
Single-node applics have CNAMES to the currently-active node.

And, we have a menu-procedure to quickly change any of those CNAMES if needed.

HTH,

Cheers.

Have one on me.

Jan
Don't rust yours pelled jacker to fine doll missed aches.

Re: TPC IP cluster alias address

First thanks to everybody.

But i have soemthing not clear.

I would like manage this situation as the cluster manages the telnet services.
If i try to telenet the cluster alias address, the cluster connect one of the 2 server. If the telent service is disable in one machine i think the cluster will connect always the machine where the telnet service is running.

I dont know if it is possible to do the same with my TCP server application.

Volker Halle
Honored Contributor

Re: TPC IP cluster alias address

Maurizio,

Ask the Wizard #51 talks about UCX cluster alias:

http://h71000.www7.hp.com/wizard/wiz_0051.html

If you check with UCX SHOW INT/CLUSTER on both nodes of your cluster, you'll see that only one of the nodes shows up as impersonator, e.g.

UCX> sho int/clus
Packets
Interface IP_Addr Network mask Receive Send MTU

SE0 10.20.30.204 255.255.255.0 166452 4882 1500
Cluster 10.20.30.205 255.255.255.0 Impersonator

LO0 127.0.0.1 255.0.0.0 21 41 65535

This is not service-specific, so if you disable the TELNET service on the 'cluster impersonator' node, the TELNET client will still try to access that host. You can fail over the cluster address with UCX SET INT/NOCLUSTER SE0 - but this will disconnect all IP sessions established using the cluster alias.

If you include the UCX SET INT/CLUSTER=... xxx commands in your TCP server startup and shutdown (UCX SET INT/NOCLUSTER ...)procedures, you could easily switch the cluster alias together with the application.

Volker.

Re: TPC IP cluster alias address

Valker,

you mean that i should set some command on the TCP startup procedure in order to syncronize the cluster alias with the address where my application is running?

Sorry if i maybe i missunderstood but it is not so clear to me.

Volker Halle
Honored Contributor

Re: TPC IP cluster alias address

Maurizio,

yes. Depending on your version of TCPIP, just use the appropriate commands to activate the cluster alias during your TCP server application startup and disable the alias in your TCP server application shutdown procedure.

Which version of TCPIP are you running ($ TCPIP SHOW VERS) ?

Volker.

Re: TPC IP cluster alias address

Volker,

I dont know my TCP version, and i can check it only tomorrow morning when i will be in the office. Now i m at home.

Anyway the operating system is an OpenVMS 7.3 and TCP should be last available with that OS.
Jan van den Ende
Honored Contributor

Re: TPC IP cluster alias address

Maurizio,

do your applications connect to an IP address or to "a" name, (the cluster alias)?

If you use names (and I think you REALLY should!!), then WHERE do you define your names? In every local .HOST , or in a DNS server?


Cheers.

Have one on me.

Jan
Don't rust yours pelled jacker to fine doll missed aches.
Willem Grooters
Honored Contributor

Re: TPC IP cluster alias address

You'll need to use the DNS "solution" - this has been discussed in this forum: http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=385987
It is on load balancing but your problem is likewise: ANY node in your cluster would be able to serve your VB application. But which one....
The cluster will be addressed when using the cluster IP address, and one machine - normally the one with most free resources - will react - sending it's IP address, bnot the cluster's one. This differs from the sending address, so the requestor - your application - should have to deal with that.
It won't, I'm afraid.
The IP definitions - developed in a Unix environment long time ago - don't take clustering into account. Therefore you need some concept like "impersonator" - OUTSIDE the cluster software. (For what I know (I have no experience in that area) DECNet handles the same concept internally - and transparantly)

Willem
Willem Grooters
OpenVMS Developer & System Manager
Volker Halle
Honored Contributor

Re: TPC IP cluster alias address

Maurizio,

as you're not using TCPIP V5.4, you can use the TCPIP SET INT/CLUSTER commands to dynamically set up the cluster alias on the node, where your TCP server app is running:

Assuming you have an IP interface called WE0
n.n.n.n is your cluster IP adress

$ TCPIP SET INT/CLUSTER=n.n.n.n WE0

start your TCP server app
have the clients connect to n.n.n.n
(test it with TELNET n.n.n.n first)

shutdown your TCP server app
$ TCPIP SET INT/NOCLUSTER=n.n.n.n WE0

Then issue the same commands on the other node in the cluster, if you want to run your TCP app over there. As your application can only run on ONE node in the cluster at a time, this setup should satisfy your needs.

Volker.
Kris Clippeleyr
Honored Contributor

Re: TPC IP cluster alias address

Maurizio,

Here we have a somewhat similar situation.
What we do is:
- assign each application an IP address and name that are defined in our DNS
- before an application is started on one of our cluster nodes, we "map" the application's IP address on the main interface:
ifconfig WE0 alias /
- then we start the application
- after the application is halted, we remove the IP address from the main interface:
ifconfig WE0 -alias

So clients always connect to the application name and thus to the correct node.

Greetz,

Kris
I'm gonna hit the highway like a battering ram on a silver-black phantom bike...

Re: TPC IP cluster alias address

Volker,

I tryed to use the command u suggest to me but i got this error:

-TCPIP-I-NOMORE, parameter or qualifier NOCLUSTER no longer supported; see the documentation for valid options and re-enter command


my TCPIP version is the following one:
HP TCP/IP Services for OpenVMS Alpha Version V5.4 - ECO 1
on a AlphaServer DS25 running OpenVMS V7.3-2
Volker Halle
Honored Contributor

Re: TPC IP cluster alias address

Maurizio,

with TCPIP V5.4 and the failSAFE IP functionality, the TCPIP SET INT/CLUSTER commands are no longer supported and may even cause to destroy the active IP interface config, if executed in the running system.

For V5.4, use these commands (assuming WE0 is your IP interface):

$ @SYS$MANAGER:TCPIP$DEFINE_COMMANDS

$ ifconfig we0 alias n.n.n.n/nn

start your server

To fail over to the other node:

stop your server

$ ifconfig we0 -alias n.n.n.n delete

Help is available with $ TCPIP HELP IFCONFIG

Volker.
Ian Miller.
Honored Contributor

Re: TPC IP cluster alias address

as Volker said for V5.4 use ifconfig -alias
____________________
Purely Personal Opinion

Re: TPC IP cluster alias address

Volker ,

I tryed your command:


> @SYS$MANAGER:TCPIP$DEFINE_COMMANDS
> ifconfig IE1 -alias 10.2.199.5 delete


But when i do that i lost the connection to the machine.
The address 10.2.199.5 was the address defined during TCPIP$CONFIG
C_Addr:

Ian Miller.
Honored Contributor

Re: TPC IP cluster alias address

to which address had you connected when you did the alias delete ?

Did anyone else lose the connection?
____________________
Purely Personal Opinion

Re: TPC IP cluster alias address

Yes everybody lost connection .... :)

It was the same interface where i was connected ...... i know was as stupid action ... but the address was the address definied for the cluster alias.


But now i finally understood how to do:
@SYS$MANAGER:TCPIP$DEFINE_COMMANDS
ifconfig IE1 alias 10.2.199.11
..and start my server application ...
.....
...when i close the application
ifconfig IE1 -alias 10.2.199.11


the same action must

Re: TPC IP cluster alias address

Yes everybody lost connection .... :)

It was the same interface where i was connected ...... i know was as stupid action ... but the address was the address definied for the cluster alias.


But now i finally understood how to do:
@SYS$MANAGER:TCPIP$DEFINE_COMMANDS
ifconfig IE1 alias 10.2.199.11
..and start my server application ...
.....
...when i close the application
ifconfig IE1 -alias 10.2.199.11


the same action must be done in both the servers.

I think in this way the client application always see 10.2.199.11 as address for the TCP server.


I think this was what Volker suggest to me

maurizio
Ian Miller.
Honored Contributor

Re: TPC IP cluster alias address

Looking at earlier posts should
$ Ifconfig IE1 -alias 10.2.199.11
be
$ Ifconfig IE1 -alias 10.2.199.11 delete

?
____________________
Purely Personal Opinion
Volker Halle
Honored Contributor
Solution

Re: TPC IP cluster alias address

Maurizio,

glad this worked the way you need it to.

$ ifconfig we0 -alias 10.2.199.11 is sufficient to remove the alias.

You can also use

$ ifconfig we0 -alias 10.2.199.11 abort

to cleanly abort all TCP connections using this alias.

Specifying ... DELETE will also do other things. Read the TCPIP HELP IFCONFIG PARAM

Note that you'll get an OPCOM message when adding (%TCPIP-I-FSIPADDRUP) or deleting (%TCPIP-I-FSIPADDRDEL) an alias - a nice feature by the way !

Volker.
Ian Miller.
Honored Contributor

Re: TPC IP cluster alias address

actually looking at the manual (tuning appendix A)it appears that
both
$ Ifconfig IE1 -alias 10.2.199.11
and
$ Ifconfig IE1 delete 10.2.199.11

do the same thing. It also says active communication using that address will be aborted. It does not state what affect if any on users of other addresses.
____________________
Purely Personal Opinion