local_listener is set to a wrong port

The parameter local_listener of the asm instance is maintained by the clusterware and sometimes set to a wrong value. A port which is higher then the defined port of the local listener.

SYS@+ASM2> show parameter local_li
------------------------------------ ----------- ------------------------------
local_listener string (ADDRESS=(PROTOCOL=TCP)(HOST=XX.XX.XX.XX)(PORT=1526))

I faced the bug only in the following configuration:

  • cluster installed with version
  • patch level newer 160119
  • more then 2 cluster interconnects
  • FlexASM

Perhaps the requirements can be further limited, but I could not find other similarities.

The behavior is described in Doc ID 2201573.1, but the best solution, in my opinion, is not explained there.

This is not a huge problem, it could be solved with setting the local listener after each restart of an asm instance, but a manually interaction after each restart is unpleasant.

Affected is the monitoring with Enterprise Manager and each connection to the asm instance over sqlnet. I opened a service request and it was the same as several times before… my favorite answer 😉 … It’s bug! Also a patch was available, but unfortunately not on top of my installed patches (bundle patch 161018). Now the patch 25190242 is available, but they told me that I have to request a merge for every new bundle and it will replace the ocw patch, which implies that it’s no longer rolling installable. Not a acceptable solution!

Now it’s enough of the procedure, let’s come to the interesting part. One important point: It only occurs on clusters installed with 12c.
There are several point which are different between an upgraded cluster and a new installed one, i.e. the name of cluster resources for networks with VLAN-Tag (VLAN_ID vs. network number) and one other point is the numeration of the ASMNETLSNR listener ports. The ports started above 1521, exactly the port number set from the cluster.

$ srvctl config listener -l ASMNET1LSNR_ASM
Type: ASM Listener
Owner: grid
End points: TCP:1526
Listener is enabled.
Listener is individually enabled on nodes: 
Listener is individually disabled on nodes:

The solution is quite easy now, set the port for all ASMNET*LSNR to 1521 and restart the whole cluster afterwards:

$ srvctl modify listener -l ASMNET1LSNR_ASM -endpoints 1521
$ srvctl modify listener -l ASMNET2LSNR_ASM -endpoints 1521
$ srvctl modify listener -l ASMNET3LSNR_ASM -endpoints 1521
$ srvctl modify listener -l ASMNET4LSNR_ASM -endpoints 1521

After the restart:

SYS@+ASM2> show parameter local_li
------------------------------------ ----------- ------------------------------
local_listener string (ADDRESS=(PROTOCOL=TCP)(HOST=XX.XX.XX.XX)(PORT=1521))

And it looks fine 🙂


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s