ORA-12528: TNS:listener: all appropriate instances are blocking new connection

I  got this error when I was configuring 11g Dataguard using active dataguard.
 On my standby machine, I had configured listener on port 1521 in grid home and had registered the service for standby database (dg02) with this listener statically. In my primary tnsnames.ora , I had made an entry for dg02 on standby machine on port 1521.
While creating standby database,duplicate database command was being issued from database home on primary and it expected listener to be running in database home on standby machine and hence giving above error.
I created another listener on port 1522 in database home on standby machine and registered the service for standby database (dg02) with this listener statically. In my primary tnsnames.ora ,  I modified the entry for dg02 on standby machine on port 1522.
This resolved my problem.Hence, it can be concluded   that if we have two machines say node1 and node2.
On node1, I have a database db1  which I want to access from node2.
I have a listener on port 1521 in grid home.On node2 I create an entry in tnsnames.ora for db1 available on node1  on port 1521.Now If I try to connect to db1 from node2, I will get above error. Since tnsnames.ora entry is created in
database home,  while connecting to node1, it is expected that listener is also available in database home
on node1.Hence, if I move the listener on node1  from grid home  to database home, the problem will be resolved
or I can
–  create another listener on node1 in database home on port 1522(say) ,
– Make service for db1 available at port 1522
– Register this service statically with listener on port 1522
– create an entry in tnsnames.ora on node2 for db1 available on node1 at port 1522

References:
————————————————————————————————-

11g Dataguard Index

Your comments and suggestions are welcome!