cancel
Showing results for 
Search instead for 
Did you mean: 

Oracle RAC hanging effect

Former Member
0 Kudos

Hi Experts,

We have just setup an Oracle 10g RAC and is simulating a server outage by shutting down one of the RAC node. Whenever a node goes down, the SAP GUI will hang for about 5 mins before continuing. I assume the hanging time is due to the RAC failover in process. But our users will not tolerate this 5 mins delay. How can I reduce this 'hanging' time?

Thanks,

Tzyy Ming

Accepted Solutions (1)

Accepted Solutions (1)

stefan_koehler
Active Contributor
0 Kudos

Hello Tzyy,

how does your Oracle*Net configuration look like?

Sapntote #562403 describes the different mechanisms for that (point 21).

Regards

Stefan

Answers (6)

Answers (6)

Former Member
0 Kudos

Hi Michael and all gurus,

I have modified my tnsnames.ora file according to yours, i.e. have the load balancing off and the failover mode set to basic. And the parameters rsdb/reco_sleep_time + rsdb/reco_trials have been set to 1. But the delay does not go away.

I could not find anything useful in SM21. The dialog work process traces stopped and repeats the following lines during the failover:

M pop timestack[0] = STAT_READDIR

M push timestack[0] = STAT_READDIR

Appreciate any kind assistant to guide me on how I can debug this problem.

Million Thanks,

Tzyy Ming

Former Member
0 Kudos

Hi all,

The VIP fails over in about 10 seconds. (ie ping lost for 10 secs and crs_stat -t shows failover after 10 sec)

After the vip failover, the system have to wait for about 5 mins for the SAP GUI to work again.

Is there a log or anything that keeps track of what the system is doing during this 5 mins? I badly needs to reduce this timing.

Thanks all for your gd advice.

Former Member
0 Kudos

Hi experts,

I have changed my TNSNAMES.ORA to the following, but the failover time has not been reduced:

TST.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(LOAD_BALANCE=ON)

(FAILOVER=ON)

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode2-vip)(PORT = 1527))

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1527))

)

(CONNECT_DATA =

(SERVICE_NAME = TST)

(GLOBAL_NAME = TST.WORLD)

(FAILOVER_MODE =(TYPE = SELECT)(METHOD = PRECONNECT)(RETRIES=2)(DELAY=10))

)

)

I read in the subparameters section:

"Note:

If a callback function is registered, then RETRIES and DELAY subparameters are ignored."

How can I find out if a callback function is registered in my system?

Thanks again.

Former Member
0 Kudos

How long does it take until the vip fails over? How long is the downtime, if you ping the vip address?

Regards Michael

Former Member
0 Kudos

Here is an extract of my tnsnames.ora i used in the past. In difference to yours, i did not use loadbalancing and preconnect in the failover mode.


SID = 
 (DESCRIPTION =
   (LOAD_BALANCE=OFF)
   (FAILOVER = ON) 
   (ADDRESS_LIST =  
     (ADDRESS=(PROTOCOL=TCP)(HOST=host1vip)(PORT=1527))
     (ADDRESS=(PROTOCOL=TCP)(HOST=host2vip)(PORT=1527))
     (ADDRESS=(PROTOCOL=TCP)(HOST=host3vip)(PORT=1527))
    ) 
    (CONNECT_DATA = 
       (SERVICE_NAME = SID) 
       (FAILOVER_MODE = 
            (TYPE = SELECT) 
            (METHOD = BASIC) 
       ) 
    ) 
  ) 

You should also check what happens in the SAP system, look at SM21 and check the work process traces (dev_wX). The reconnect of the work processes can be influenced with these parameters:

rsdb/reco_sleep_time + rsdb/reco_trials

But I had not modified them in my system.

Best regards, Michael

Former Member
0 Kudos

LISTENER.ORA

-


LISTENER_TST_RACNODE2 =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode2-vip)(PORT = 1527)(IP = FIRST))

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.11.0.126)(PORT = 1527)(IP = FIRST))

)

)

LISTENER_TST_RACNODE1 =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1527)(IP = FIRST))

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.11.0.125)(PORT = 1527)(IP = FIRST))

)

)

#DIRECT_HANDOFF_TTC_LISTENER=OFF

################

  1. Filename......: listener.ora

  2. Created.......: created by SAP AG, R/3 Rel. >= 6.10

  3. Name..........:

  4. Date..........:

  5. @(#) $Id: //bc/640-2/src/ins/SAPINST/impl/tpls/ora/ind/LISTENER.ORA#4 $

################

CONNECT_TIMEOUT_LISTENER = 10

SID_LIST_LISTENER_TST_RACNODE2 =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = F:\oracle\TST\102)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = TST2)

(ORACLE_HOME = F:\oracle\TST\102)

)

)

SID_LIST_LISTENER_TST_RACNODE1 =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = F:\oracle\TST\102)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = TST1)

(ORACLE_HOME = F:\oracle\TST\102)

)

)

STARTUP_WAIT_TIME_LISTENER = 0

ADMIN_RESTRICTIONS_LISTENER = on

TRACE_LEVEL_LISTENER = OFF

SQLNET.ORA

-


AUTOMATIC_IPC = ON

TRACE_LEVEL_CLIENT = OFF

NAMES.DEFAULT_DOMAIN = WORLD

NAME.DEFAULT_ZONE = WORLD

SQLNET.EXPIRE_TIME = 1

SQLNET.AUTHENTICATION_SERVICES = (NTS)

TCP.NODELAY=YES

SQLNET.INBOUND_CONNECT_TIMEOUT=120

-


Hope this is more readable.

stefan_koehler
Active Contributor
0 Kudos

Hello,

> Hope this is more readable.

Yes it is )

Please check the documentation (Part FAILOVER_MODE -> Subparameters) :

http://download.oracle.com/docs/cd/B19306_01/network.102/b14213/tnsnames.htm#i466691

Regards

Stefan

Former Member
0 Kudos

TNSNAMES.ORA

-


##############################

      1. LOCAL LISTENER ENTRIES ###

##############################

      1. only a single address is allowed here

LISTENER_TST_RACNODE1.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1527))

)

)

      1. only a single address is allowed here

LISTENER_TST_RACNODE2.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode2-vip)(PORT = 1527))

)

)

###############################

      1. REMOTE LISTENER ENTRIES ###

###############################

      1. add more address entries for remote listeners if necessary

REMOTE_LISTENER_TST_RACNODE1.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode2-vip)(PORT = 1527))

)

)

REMOTE_LISTENER_TST_RACNODE2.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1527))

)

)

########################################

      1. SERVICE ENTRY FOR GENERAL SAP CI ###

########################################

TST.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(LOAD_BALANCE=ON)

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1527))

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode2-vip)(PORT = 1527))

)

(CONNECT_DATA =

(SERVICE_NAME = TST.WORLD)

(GLOBAL_NAME = TST.WORLD)

(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC))

)

)

      1. SERVICE ENTRY FOR CONNECT TO INSTANCE TST1 ###

TST1.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1527))

)

(CONNECT_DATA =

(SID = TST1)(GLOBAL_NAME = TST.WORLD)

)

)

      1. SERVICE ENTRY FOR CONNECT TO INSTANCE TST2 ###

TST2.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode2-vip)(PORT = 1527))

)

(CONNECT_DATA =

(SID = TST2)(GLOBAL_NAME = TST.WORLD)

)

)

      1. DEFAULT SERVICE ENTRY FOR CONNECT TO ANY INSTANCE ###

TST_D00.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(LOAD_BALANCE=ON)

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1527))

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode2-vip)(PORT = 1527))

)

(CONNECT_DATA =

(SERVICE_NAME = TST_D00.WORLD)

(GLOBAL_NAME = TST.WORLD)

(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC))

)

)

EXTPROC_CONNECTION_DATA =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)))(CONNECT_DATA =(SID = PLSExtProc)(PRESENTATION = RO)))

Former Member
0 Kudos

Hi, my *.ora files are as follows:

tnsnames.ora

===========

##############################

      1. LOCAL LISTENER ENTRIES ###

##############################

      1. only a single address is allowed here

LISTENER_TST_RACNODE1.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1527))

)

)

      1. only a single address is allowed here

LISTENER_TST_RACNODE2.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode2-vip)(PORT = 1527))

)

)

###############################

      1. REMOTE LISTENER ENTRIES ###

###############################

      1. add more address entries for remote listeners if necessary

REMOTE_LISTENER_TST_RACNODE1.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode2-vip)(PORT = 1527))

)

# (CONNECT_DATA =(SERVICE_NAME = REMOTE_LISTENER_TST_RACNODE1.WORLD))

)

REMOTE_LISTENER_TST_RACNODE2.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1527))

)

# (CONNECT_DATA =(SERVICE_NAME = REMOTE_LISTENER_TST_RACNODE2.WORLD))

)

########################################

      1. SERVICE ENTRY FOR GENERAL SAP CI ###

########################################

TST.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(LOAD_BALANCE=ON)

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1527))

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode2-vip)(PORT = 1527))

)

(CONNECT_DATA =

(SERVICE_NAME = TST.WORLD)

(GLOBAL_NAME = TST.WORLD)

(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC))

)

)

      1. SERVICE ENTRY FOR CONNECT TO INSTANCE TST1 ###

TST1.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1527))

)

(CONNECT_DATA =

(SID = TST1)(GLOBAL_NAME = TST.WORLD)

)

)

      1. SERVICE ENTRY FOR CONNECT TO INSTANCE TST2 ###

TST2.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode2-vip)(PORT = 1527))

)

(CONNECT_DATA =

(SID = TST2)(GLOBAL_NAME = TST.WORLD)

)

)

      1. DEFAULT SERVICE ENTRY FOR CONNECT TO ANY INSTANCE ###

TST_D00.WORLD =

(DESCRIPTION =

(ADDRESS_LIST =

(LOAD_BALANCE=ON)

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1527))

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode2-vip)(PORT = 1527))

)

(CONNECT_DATA =

(SERVICE_NAME = TST_D00.WORLD)

(GLOBAL_NAME = TST.WORLD)

(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC))

)

)

EXTPROC_CONNECTION_DATA =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)))(CONNECT_DATA =(SID = PLSExtProc)(PRESENTATION = RO)))

listener.ora

=========

  1. listener.ora Network Configuration File: F:\oracle\TST\102\network\admin\listener.ora

  2. Generated by Oracle configuration tools.

LISTENER_TST_RACNODE2 =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode2-vip)(PORT = 1527)(IP = FIRST))

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.11.0.126)(PORT = 1527)(IP = FIRST))

)

)

LISTENER_TST_RACNODE1 =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1527)(IP = FIRST))

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.11.0.125)(PORT = 1527)(IP = FIRST))

)

)

################

  1. Filename......: listener.ora

  2. Created.......: created by SAP AG, R/3 Rel. >= 6.10

  3. Name..........:

  4. Date..........:

  5. @(#) $Id: //bc/640-2/src/ins/SAPINST/impl/tpls/ora/ind/LISTENER.ORA#4 $

################

CONNECT_TIMEOUT_LISTENER = 10

SID_LIST_LISTENER_TST_RACNODE2 =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = F:\oracle\TST\102)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = TST2)

(ORACLE_HOME = F:\oracle\TST\102)

)

)

SID_LIST_LISTENER_TST_RACNODE1 =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = F:\oracle\TST\102)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = TST1)

(ORACLE_HOME = F:\oracle\TST\102)

)

)

STARTUP_WAIT_TIME_LISTENER = 0

ADMIN_RESTRICTIONS_LISTENER = on

TRACE_LEVEL_LISTENER = OFF

sqlnet.ora

========

AUTOMATIC_IPC = ON

TRACE_LEVEL_CLIENT = OFF

NAMES.DEFAULT_DOMAIN = WORLD

NAME.DEFAULT_ZONE = WORLD

SQLNET.EXPIRE_TIME = 1

SQLNET.AUTHENTICATION_SERVICES = (NTS)

TCP.NODELAY=YES

SQLNET.INBOUND_CONNECT_TIMEOUT=120

stefan_koehler
Active Contributor
0 Kudos

Hello,

sorry but nobody is able to read this ... format it with the code tag

Regards

Stefan