On digging further and googling a bit it turned out that root cause was that the client was being redirected to the server hostname instead of virtual addresses. Due to that the client had to resolve the server hostname and in some cases it could not ( e.g. no entry in their DNS & client Host file), hence the error. Here is the link where it is nicely explained Link .
Hence two thing needed to be fixed,
1) Client should have been pointed(redirected) to Virtual address and not real host names
2) Client should be able to resolve virtual address
Point 1 can be fixed by setting up LOCAL_LISTENER parameter on all RAC nodes. Here is how,
Add entry in TNSnames.ora on each node e.g. on Node 1
LISTENER_NODE1 =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =
)
set local listner for each node,
Alter system set LOCAL_LISTENER= 'LISTENER_NODE1' scope=both sid='SID1';
Repeat above steps on each node with respective host & tns name.
Point 2 can be fixed by either add DNS entry for the host names or if not possible, add entry in Client's host file e.g. on Linux add entry in /etc/hosts or on Windows add entry in windows\system32\drivers\etc\hosts.