How to setup Default pool for Model Routing

(Doc ID 1328891.1)

Last updated on JULY 14, 2016

Applies to:

Oracle Configurator - Version 12.1.2 to 12.1.2 [Release 12.1]
Information in this document applies to any platform.
***Checked for relevance on 17-Jan-2013***

Symptoms

On : 12.1.2 version, Installation 

ACTUAL BEHAVIOR

Implementing Model Routing Functionality and currently the only models that launch are those that have an entry in CZ_MODEL_MAPPINGS table.  For the models that do not have an entry in this table, the model never launches.  There are no error message, but the Configurator page never comes up.

With current functionality, you need to define the affinity in cz_model_pool_mappings, if you wish to launch the model from a calling application.  Defining pool mapping for all models can be burdensom since there can be a lot of models.

 

EXPECTED BEHAVIOR

To be able to use Model routing for selective models

STEPS

To implement model routing, the following steps were taken:

  1. Instance set up 
    The example instance has 4 web-tier servers with 2 OACORE JVMs each. For this setup, 3 web-tier servers will be used to route Configurator Models with high memory usage and 1 web-tier server will be used for all the other models.
  2. Create 4 Pools for the instance, viz., INT-PoolA, INT-PoolB, INT-PoolC and INT-PoolD in the Load Balancer that corresponds to / has nodes defined as xx1234, xx1235, xx1236 and xx1237 respectively.
  3. Set the Profile Option CZ: Add Model Routing Cookie to TRUE
  4. Map the Configurator Models to the JVMs - Model to Pool mapping. The pool names are to be defined as CZPOOLA, CZPOOLB, CZPOOLC and CZPOOLD. You can use the concurrent process, Register CZ Model to Server Pool, to do this.
  5. Add iRules to the LBR that would look for a http_cookie "czPoolToken" and redirect the request to corresponding Pool / Server and hence to one of the OACORE JVMs on that server
    when HTTP_REQUEST {
    # Try to select a pool based on the http cookie containing pool information
    if { [HTTP::cookie exists "czPoolToken"] and [HTTP::cookie value
    "czPoolToken"] contains "CZPOOLB"} {
    use pool INT-PoolB
    log INT-PoolB
    }
    elseif { [HTTP::cookie exists "czPoolToken"] and [HTTP::cookie value
    "czPoolToken"] contains "CZPOOLC"} {
    use pool INT-PoolC
    log INT-PoolC
    }
    elseif { [HTTP::cookie exists "czPoolToken"] and [HTTP::cookie value
    "czPoolToken"] contains "CZPOOLD"} {
    use pool INT-PoolD
    log INT-PoolD
    }
    else {
    use pool INT-PoolA
    log INT-PoolA
    }
    }

 

Cause

Sign In with your My Oracle Support account

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

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms