June 13, 2017

ODA X6 - netca cannot add listener - displaying 'Use another port number' messages

Tried to create e new listener to run on a non-default portnumber on an ODA X6. Each time when adding a new port number (doesn't matter which number) an error screen pops up, stating that I shall choose another port number:




I checked more than once and using different tools - there is no port like this used. Finally I checked the logfile - to be found here: 
<GRID_HOME>/cfgtoollogs/netca/trace_OraGrid<something>.log 
it shows error messages like these:

[AWT-EventQueue-0] [ 2017-06-13 13:54:55.424 CEST ] [ConfigureListenerOPS.buildAddressString:787]  Building Address for TCP:
        (ADDRESS=(PROTOCOL=TCP)(HOST=<hostname>.<domain>)(PORT=1533)(IP=FIRST))
oracle.net.ca.IllegalEndpointException: The information provided for this listener is currently in use by another listener on this computer.

followed by

[AWT-EventQueue-0] [ 2017-06-13 13:55:00.325 CEST ] [ConfigureListener.validateEndPoint:1059]  Validating end-point: TCP:1534
[AWT-EventQueue-0] [ 2017-06-13 13:55:00.326 CEST ] [ConfigureListenerOPS.buildTCPAddress:807]  Building TCP Address with HOST <hostname>.<domain>
[AWT-EventQueue-0] [ 2017-06-13 13:55:00.327 CEST ] [ConfigureListenerOPS.buildAddressString:787]  Building Address for TCP:
        (ADDRESS=(PROTOCOL=TCP)(HOST=<hostname>.<domain>)(PORT=1534)(IP=FIRST))
oracle.ops.mgmt.cluster.ClusterException: PRKC-1099 : The host names or IP addresses passed as an argument are null.

and finally

[AWT-EventQueue-0] [ 2017-06-13 13:55:00.331 CEST ] [ConfigureListenerOPS.isPortFree:1152]  PRKC-1099 : The host names or IP addresses passed as an argument are null.
[AWT-EventQueue-0] [ 2017-06-13 13:55:00.331 CEST ] [ConfigureListenerOPS.isPortFree:1153]  Failed to check if port 1534 is available on cluster nodes. !
[AWT-EventQueue-0] [ 2017-06-13 13:55:00.332 CEST ] [ConfigureListenerOPS.isPortFree:1161]  Is Port 1534 free on cluster nodes: false
oracle.net.ca.IllegalEndpointException: Port 1534 provided for this listener is already in use on node(s) of Oracle Clusterware.

RUBBISH!! The real reason is mentioned earlier in the logfile:
[Thread-8] [ 2017-06-13 13:54:38.899 CEST ] [StreamReader.run:65]  ERROR>No RSA host key is known for <hostname> and you have requested strict checking.
[Thread-8] [ 2017-06-13 13:54:38.899 CEST ] [StreamReader.run:65]  ERROR>Host key verification failed.
...
[main] [ 2017-06-13 13:54:38.901 CEST ] [UnixSystem.checkRemoteExecutionSetup:2417]  checkRemoteExecutionSetup:: Error checking user equivalence using Secured Shell '/usr/bin/ssh'
[main] [ 2017-06-13 13:54:38.908 CEST ] [HAUtils.getAccessibleNodes:3135]  <hostname> is not reachable PRKC-1044 : Failed to check remote command execution setup for node <hostname> using shells /usr/bin/ssh and /usr/bin/rsh
File "/usr/bin/rsh" does not exist on node "<hostname>"
No RSA host key is known for <hostname> and you have requested strict checking.Host key verification failed.

Solution

Long story told short: simply configure user equivalence:

# change to HOME directory:
cd

# create a directory called .ssh (if not existing)
mkdir .ssh

# change mod to 700
chmod 700 .ssh

# change directory to .ssh
cd .ssh

# create the RSA key file
ssh-keygen -t rsa

(accept the default location for the key file and confirm the passphrase (usually press enter twice to leave the passphrase empty))

# create the DSA keyfile
ssh-keygen -t dsa

(accept the default location for the key file and confirm the passphrase (usually press enter twice to leave the passphrase empty))

# create the authorized keys files (one with the hostname for better visibility what node information is in - in case You want to copy that file to other hosts)
cat *.pub >> authorized_keys.<hostname>
cp authorized_keys.<hostname> authorized_keys

# now, add the host to the list of the known_hosts (I used this command - other commands are available as well):
/usr/bin/ssh -o FallBackToRsh=no  -o PasswordAuthentication=no  -o StrictHostKeyChecking=no  -o NumberOfPasswordPrompts=0 <hostname> /bin/true

# Result of the last command
Warning: Permanently added '<hostname>,<host's IP>' (RSA) to the list of known hosts.

You should now have the following files in Your .ssh directory
authorized_keys
authorized_keys.<hostname>
id_dsa
id_dsa.pub
id_rsa
id_rsa.pub
known_hosts

When You now try to create a new listener, everything works fine :-)

It could be that easy! ;-)






Share:

0 comments:

Post a Comment

Copyright © Robert Crames' Oracle Database and Middleware Blog | Powered by Blogger
Design by SimpleWpThemes | Blogger Theme by NewBloggerThemes.com