Wednesday, February 11, 2015

EBS 11i - Oracle RAC 11gR2 -- Using Scan Listeners with EBS 11i

Using scan Listeners in EBS 11i is not supported. We have done a lot of implementations and always have kept that in mind..


In EBS 11i Exadata implementation,  we were usualy doing a Load Balanced and Fail over capable configuration based Vips.

Even today, when I m writing this blog post; I saw that using scan listener in EBS 11i is still not certified by Oracle.
On the other hand; using scan listeners in EBS 11i..It is possible by making a custom configuration which will be supported by Oracle ACS or Oracle Consulting.

I m happy to announce this in my blog.. Actually, I m sharing an information which is present in Oracle Support.. Exactly in Appendix D of the Document: Using Oracle 11g Release 2 Real Application Clusters with Oracle E-Business Suite Release 11i (Doc ID 823586.1)


This is pleasing as we dont have to say the words; "EBS 11i does not support Scan listener" anymore :)

Okay.. Before starting ; lets remember what the scan listener concept is ;

Scan listeners are the first point of contact in a 11gR2 RAC environment. Clients are connect to the scan listeners in the first place. There are multiple scan listeners listening multiple scan ip address in the cluster. All the database services are registered with the Scan listeners.
Client send its connection request to a scan listener.
Note that: Client only knows the scan name. DNS redirects the connection request to one of the scan listeners in the cluster. Once the scan listener takes the client's connection request, it sends back one of the local listener's (least crowded node) address to the client.. The local listener information belongs to the local listener which services for the service name that the client requested.. Then the client and local listener communicate between eachother and the connection becomes established.

For the deails, please read following blogpost of mine,
http://ermanarslan.blogspot.com.tr/2014/02/rac-listener-configuration-in-oracle.html

To understand better, you can take a look to my previous post regarding to the scan listeners http://ermanarslan.blogspot.com.tr/2013/05/database-about-scan-11gr2.html

Using Scan listener in EBS 11i is supported by Oracle ACS and Oracle Consulting; this is only the certified combinations are supported by Oracle under the terms of the Support License. This is considered to be a customized configuration which could be supported by ACS or Oracle Consulting.
A customized configuration which also is not supported by Autoconfig..

The action plan for using Scan Listeners in EBS 11i is as follows;

In Database Tier;

1) set local listener parameter(alter system set local_listener=<sid>_LOCAL scope=both sid='<Instance>')
2) set remote listener parameter (alter system set remote_listener='<SCAN NAME>:<port>' scope=both sid='<Instance>';)
3) Run autoconfig on db nodes
4) Create and ifile in TNS_ADMIN  , for example : <sid>_<node>_ifile.ora .. 
5) cd $TNS_ADMIN
cp tnsnames.ora <sid>_<node>_ifile.ora
open newly created <sid>_<node>_ifile.ora file and remove all  <SID>_LOCAL references .
Also, replace the VIP related Tns entries with the SCAN entries in the ifile..
For ex: 

<sid>=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=<VIP Host>.<DOMAIN>)(PORT=1531))
(CONNECT_DATA=
(SERVICE_NAME=<service name>)
(INSTANCE_NAME=<sid>)
)
)

---> Change it to
SCAN Descriptor
<sid>=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=<SCAN Host>.<DOMAIN>)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=<service name>)
(INSTANCE_NAME=<sid>)
)

)

Note that : All the tns entries excep the local ones should have Scan-host configuration after this action.

In Application Tier;

Supposing your system has been configured properly ( I mean tnsnames.ora and listener.ora files located in $ORACLE_HOME/network/admin and $IAS_ORACLE_HOME/network/admin Also TNS aliases have been generated for load balancing and failover and that all the aliases are defined using the virtual hostname)

Perform these actions in all application tier nodes;

1) Edit context file and change s_dbport and s_dbhost to Scan port and Scan Host
2) Edit context file and change s_jdbc_connect_descriptor_generation value to FALSE
3) Create and ifile in TNS_ADMIN  , for example : <sid>_<node>_ifile.ora .. 
cp tnsnames.ora <sid>_<node>_ifile.ora
4)cd $TNS_ADMIN
open  newly created <sid>_<node>_ifile.ora file and remove all  FNDFS references .
Also, replace the VIP related Tns entries with the SCAN entries in the ifile..
5)Run autoconfig. Check DBC and tns aliases .. Ensure that DBC and Tns entries are defined using Scan host and port.

Again, I think that Oracle has the reasons  to not to support this configuration.. An incapability in the client side network code.. That is ; client side network code does not use round robin for resolving multiple Ip address. In other words, even if you may have round robin in DBS, the EBS 11i client side code can not handle this.
The only workaround seems to be creating custom TNS aliases with multiple SCAN IP addresses , as documented in 823586.1.
Such as:

<alias>=
(DESCRIPTION=
(ADDRESS_LIST= (LOAD_BALANCE=on)(FAILOVER=ON)
(ADDRESS=(PROTOCOL=tcp)(HOST=<IP1> )(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=<IP2> )(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=<IP3> )(PORT=1521))
(CONNECT_DATA= (SERVICE_NAME=<Service_Name> ) )

No comments :

Post a Comment

If you will ask a question, please don't comment here..

For your questions, please create an issue into my forum.

Forum Link: http://ermanarslan.blogspot.com.tr/p/forum.html

Register and create an issue in the related category.
I will support you from there.