My Oracle Support Banner

Bad Performance In a Web Cache Cluster When The Network Interface Cards Of One Of The Members Is Marked Down (Doc ID 1931261.1)

Last updated on SEPTEMBER 26, 2018

Applies to:

Portal - Version 11.1.1.1.0 and later
Web Cache - Version 11.1.1.0.0 and later
Information in this document applies to any platform.

Symptoms

In a high availability setup with multiple Portal midtiers, an performance for invalidation requests degrades when the the network interface card (NIC) of one of the web cache cluster members is not reachable anymore on the network. Upon making the NIC available again on the network, performance is restored immediately. Typical scenarios which can lead to the performance degradation are :

The performance degradation can be demonstrated with the Web Cache Invalidation API. When all cluster members are up and running, invalidation requests through the API take no more than miliseconds. Performance of the invalidation requests drops to the second range when the NIC is not avaialble anymore.

Test results :

Invalidation performance when the NIC is up

<?xml version="1.0"?>
<!DOCTYPE INVALIDATIONRESULT SYSTEM "http://www.oracle.com/webcache/90400/WCSinvalidation.dtd">
<INVALIDATIONRESULT VERSION="WCS-1.1">
<SYSTEM>
<SYSTEMINFO NAME="WCS_CACHE_NAME" VALUE="mt1.acme.org-webcache1"/>
<SYSTEMINFO NAME="WCS_NUM_OBJECT" VALUE="1"/>
</SYSTEM>
<OBJECTRESULT>
<BASICSELECTOR URI="http://servername:80/portal/page/portal/Design_Time_PG/Welcome" />
<RESULT ID="1" STATUS="SUCCESS" NUMINV="1"/>
</OBJECTRESULT>
</INVALIDATIONRESULT>

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.01

Invalidation performance when the NIC is down

<?xml version="1.0"?>
<!DOCTYPE INVALIDATIONRESULT SYSTEM "http://www.oracle.com/webcache/90400/WCSinvalidation.dtd">
<INVALIDATIONRESULT VERSION="WCS-1.1">
<SYSTEM>
<SYSTEMINFO NAME="WCS_CACHE_NAME" VALUE="servername-webcache1"/>
</SYSTEM>
<OBJECTRESULT>
<BASICSELECTOR URI=""/>
<RESULT ID="1" STATUS="Cannot connect to WebCache invalidation port"
NUMINV="0"/>
</OBJECTRESULT>
</INVALIDATIONRESULT>
</INVALIDATIONRESULTDETAIL>

PL/SQL procedure successfully completed.

Elapsed: 00:00:05.69

Symptoms

Environment :

The issue was tested in a six node Portal high availability cluster with Fusion Middlware 11g R1 (11.1.1.7)

Test suite setup

  1. On the Portal midtier server, change directory to $ORACLE_HOME/webcache/toolkit. This directory contains the code for the Web Cache Invalidation API (wxvutil.sql)
  2. From this directory, start SQL*PLUS and connect to the database, preferably with a dummy user such as SCOTT or any other account for testing purposes
  3. Connect as database administrator and grant privileges to the test user to use the network layer from within the database :

    DECLARE
    BEGIN
     -- Only uncomment the following line if ACL "network_services.xml" has already been created
     --DBMS_NETWORK_ACL_ADMIN.DROP_ACL('network_services.xml');
     DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(
       acl => 'network_services.xml',
       description => 'NETWORK ACL',
       principal => 'SCOTT',
       is_grant => true,
       privilege => 'connect');
     DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
       acl => 'network_services.xml',
       principal => 'SCOTT',
       is_grant => true,
       privilege => 'resolve');
     DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(
       acl => 'network_services.xml',
       host => '*');
     COMMIT;
    END;
     
    (Replace the user SCOTT with the schema for testing in the above code)

  4. Connect as the test user and run the wxvutil.sql to create the INVALIDATION API

    You are now setup to use the INVALIDATION API. Next step is to test the invalidation

  5. Create a script file to invalidate the Portal Design Time page :

    set serveroutput on

    set timing on

    exec wxvutil.invalidate_reset;
    exec wxvutil.invalidate_uri('http://<servername>:<entry port>/portal/page/portal/Design_Time_PG/Welcome',0,null);
    exec wxvutil.invalidate_exec('<servername>',<invalidation_port>,'<invalidation_password>');
     
    (Change the strings between <> with the values for your environment)

    Note : Use the  instructions in section A2 from Note 1075472.1 - "XML Parsing Error: Syntax Error, Line Number 1, Column 1" and "Oracle-Auth-Token Does Not Match Error" When Accessing Portal 11g" should the invalidation password be unknown
     
  6. Run the script file from the test account when all nodes are available. The output should be similar to this :

    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.01
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.00
    <?xml version="1.0"?>
    <!DOCTYPE INVALIDATIONRESULT SYSTEM
    "http://www.oracle.com/webcache/90400/WCSinvalidation.dtd">
    <INVALIDATIONRESULT VERSION="WCS-1.1">
    <SYSTEM>
    <SYSTEMINFO NAME="WCS_CACHE_NAME" VALUE="servername-webcache1"/>
    <SYSTEMINFO NAME="WCS_NUM_OBJECT" VALUE="1"/>
    </SYSTEM>
    <OBJECTRESULT>
    <BASICSELECTOR URI="http://servername:80/portal/page/portal/Design_Time_PG/Welcome" />
    <RESULT ID="1" STATUS="SUCCESS" NUMINV="1"/>
    </OBJECTRESULT>
    </INVALIDATIONRESULT>
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.01
    ======
     
  7. Repeat the same test with the NIC of one of the cluster members down. The reported elapsed time for the invalidation request will be higher.

 

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.