Skip Headers

Oracle® Application Server 10g Release Notes
10g (9.0.4) for Linux x86

Part Number B12261-03
Go To Documentation Library
Home
Go To Table Of Contents
Contents

Go to previous page Go to next page

17
OracleAS Personalization

This chapter describes issues and workarounds with OracleAS Personalization. It includes the following topics:

17.1 General Issues and Workarounds

This section describes general issues for OracleAS Personalization and their workarounds. It includes the following topics:

17.1.1 Correct Name of Product

The correct name of the product is "Oracle Application Server Personalization." The product was formerly known as "Oracle9i Personalization" and in some instances may be referred to as "Oracle9i Personalization" or "Oracle Personalization" or "OP". The correct abbreviation is "OracleAS Personalization", not "OP".

17.1.2 Advanced Button Brings Up "404 File Not Found" Message

This can happen with some versions of some browsers if a user clicks the Advanced button (at the bottom of the Log page) to bring up Message Viewer window when that window is still open from an earlier clicking on Advanced button.

17.1.3 Sorting by ID and Sorting by Type Do Not Work

For both sessionful and sessionless REAPI calls, for recommendation content, sorting by ID and sorting by Type do not work, whether "Ascend" or "Descend" is selected. No workaround.

17.1.4 Performance and Data Sizing

The table below shows the performance results on three data sets. The build time is linear in the number of customers and quadratic in the average profile size. We obtained the results shown here on a Sun Enterprise 450 (4 x UltraSPARC-II 400MHz) with 4096 megabytes of memory. Based on these numbers, it is possible to estimate the build time for any arbitrary data set.

Dataset # of Cust # of Items Avg. Profile Size Avg. Rating Profile Avg. Purch. Profile Avg. Nav. Profile Build Time # of Rules Agg. Model # of Rules Cross- Sell Model

1

1000

50K

  50

  8

17

25

1 min

    9152

  155

2

5000

50K

  71

  8

27

36

3 min

166588

    37

3

1000

50K

100

16

34

50

5 min

313154

2997

The column headings have the following meanings:

MOR Temp Space

Use the following formula to calculate a rough estimate for the number of bytes of MOR temp space required:

(54 * P2 * C) /2

where P is the average profile size and C is the number of customers. Each item pair generated during a build takes 54 bytes, which is the space needed to store a record with two item columns and a count column. For the model build to run, the available temp space should be more than the estimated temp space requirement for the P and C values of the dataset.

17.1.5 SSL Mode

As of OracleAS Personalization release 10g (9.0.4), SSL mode is not required by the OracleAS Personalization Administrative UI, but we recommend that users log in to the OracleAS Personalization Administrative UI using SSL mode. If you log in to the Administrative UI not using SSL, you will get a warning message. (The message is displayed in English only.)(See also Section 17.4.1.)

17.1.6 RE Package Deployment Causes Failure if Different MTR Referenced

When a new model package is deployed to a recommendation engine that references an MTR other than the one that was in the RE, all the current user sessions are terminated, and their session data is sync'd to the old MTR. This means that all current sessions are invalidated.

17.1.7 RE Package Deployment Causes Failure if RE Sessions Are Active

A REAPI call may fail right after a new package is deployed onto an RE when there are active RE sessions. The workaround is to retry the call.

Java code that accomplishes this is provided below. (The code catches the exception after the try block that includes a REAPI call and checks to determine whether one of three specified errors is found; if one of the three is found, it reinvokes the REAPI method.)

filename: RetryTest.java

// Copyright (c) 2003 Oracle Corp
/*
 * This code snippet demonstrates a work-around
 * to overcome ORA-04068 error in calling REAPI
 * right after a new package is deployed
 */

import oracle.dmt.op.re.reapi.rt;
import java.lang.Long;
import java.sql.*;
import java.io.IOException;

/*
 * Class RetryTest
 * <P>
 */
public class RetryTest
{
  /*
   * main
   * @param args
   */
  public static void main(String[] args) throws ClassNotFoundException
  {
    REProxy proxy = REProxy.getProxy();
    String custID = "945";              // arbitrary, for demo only
    String sessionID = "101";           // arbitrary, for demo only
    TuningSettings tunings;
    FilteringSettings filters;
    IdentificationData idData;
    String[] m_catList = new String[1];
    RecommendationContent recContent;
    RecommendationList rec;

    try {
      proxy.createCustomerSession(custID, sessionID);

      // create settings data
      idData = IdentificationData.createSessionful(sessionID,
                                                   Enum.User.CUSTOMER);
      idData.userID = "user1";          // arbitrary, for demo only
      tunings = new TuningSettings(Enum.DataSource.NAVIGATION,
                                   Enum.InterestDimension.INTEREST,
                                   Enum.PersonalizationIndex.HIGH,
                                   Enum.ProfileDataBalance.BALANCED,
                                   Enum.ProfileUsage.EXCLUDE);
      m_catList[0] = "socks";           // arbitrary, for demo only
      filters = new FilteringSettings();
      filters.categoryList = m_catList;
      filters.categoryMembership = Enum.CategoryMembership.EXCLUDE_LEAVES;
      filters.categoryFiltering  = Enum.Filtering.ON;
      recContent = new RecommendationContent(Enum.Sorting.ASCENDING);

      rec = proxy.recommendTopItems(idData,
                                    10,
                                    tunings,
                                    filters,
                                    recContent);
      System.out.println("Done!");      // arbitrary, for demo only
      proxy.releaseProxy();
    } catch(BadDBConnectionException bdbe) {
        bdbe.printStackTrace();
    } catch (SQLException se) {
      if (isNewDeploy(se))
        return (recommendTopItems(idData, 10, tunings, filters, recContent));
      else
        System.err.println(se);
    } catch (IOException ioe) {
      System.err.println(ioe);
    } catch(BadDBConnectionException bdbe) {
        bdbe.printStackTrace();
    }
  }

  /*
   * isNewDeploy - find out if a brand new package is deployed
   */
  private boolean isNewDeploy(SQLException e) {
    String st = e.getMessage();
    String functionName = "isNewDeploy";
    try {
      if (debugAll() || debugApi())
        m_log.logT(functionName + " SQLException catched: " + e.getMessage());
      if (st.indexOf("ORA-04068") >= 0)
        return true;
      else
        return false;
    } catch (NullPointerException npe) {
      return false;
    }
  }
}

17.2 Configuration Issues and Workarounds

This section describes configuration issues for OracleAS Personalization and their workarounds. It includes the following topics:

17.2.1 Configuration of SSL for OracleAS Personalization

This section describes the steps required to configure https so that you can access the OracleAS Personalization Administrative User Interface in SSL mode.

When you install Oracle Application Server Business Intelligence, check the option box to configure Oracle Personalization.

Use the OracleAS Personalization Schema Creation Wizard to configure OracleAS Personalization schemas in the customer database. Follow these steps:

  1. Edit $ORACLE_HOME/opmn/conf/opmn.xml and search for ssl-disabled in the <ias-component id=HTTP_Server> element. Change the start mode from ssl-disabled to ssl-enabled. After you make the change, the entry should be as follows:

    <data id="start-mode" value="ssl-enabled"/> 
    
    
  2. Reload OPMN using the following command:

    opmnctl reload
    
    
  3. Note the two following port numbers from those listed in the file $ORACLE_HOME/install/portlist.ini:

    Oracle HTTP Server Listen (SSL) port = 4444 
    Web Cache HTTP Listen (SSL) port = 4443 
    
    

    The following example uses port 4444 for Apache in SSL mode and port 4443 for Web Cache in SSL mode. Adjust your setting to the port values set in portlist.ini.

  4. With a browser login to the Web Cache Administrative User Interface at http://<host>:4000/webcacheadmin/.

  5. Add Listen Ports

    IP: ANY 
    Port 4443 
    Protocol: HTTPS
    Wallet : $OH/webcache/wallets/default/
    
    

    Do not check Require Client-Side Certificate.

  6. Add Origin Server

    Hostname: <host> 
    Port: 4444 
    Routing: ENABLE 
    Capacity: 100 
    Failover Threshold: 5 
    Ping URL: / 
    Ping Interval (seconds): 10 
    Protocol: https 
    
    
  7. Add Site Definitions

    Host Name: <host> 
    Port Number: 4443 
    HTTPS Only Prefix: 
    Client-Side Certificate: Not Required 
    Default Site: No 
    Create Alias from Site Name with/without www: No 
    
    
  8. Add Site-to-Server Mapping (Insert before last record)

    1. Select the SSL that you just configured from Site Definitions in the combo box.

    2. Check the SSL Web Server you configured.

    3. Exclude Unrestricted.

  9. Click Apply Changes at the very top right hand part of the screen.

  10. Click Restart button under Cache Operations.

  11. Log in to Enterprise Manager for your OracleAS Business Intelligence instance.

  12. Select OC4J_BI_Forms and click Restart.

  13. Select HTTP Server and click Stop.

  14. Select HTTP Server again and click Start. (You must Stop and Start the server; Restart will not pick up all the changes.)

SSL should now work. Try connecting to https://<host>:4443/OP/Admin.

17.2.2 Native Character Sets Limitation

OracleAS Personalization is certified against UTF8 only.

17.2.3 Deselected Personalization Missing from Configure Component Option

Follow these steps to configure the OracleAS Personalization administrative servlet if the servlet was unchecked during the initial Oracle Application Server Business Intelligence installation:

  1. Locate the .ear file that contains the OracleAS Personalization Administrative User Interface servlet. It is found in ORACLE_HOME for the Oracle Application Server Business Intelligence Installation and is named

    $ORACLE_HOME/mp/web-app/op.ear.
    
    

    Be sure that you can reference the .ear file from where you start your web browser.

  2. From the Enterprise Manager screen that manages the Oracle Application Server Business Intelligence instance where you wish to configure the OracleAS Personalization Administrative UI, click the OC4J_BI_Forms component link.

  3. Click the Applications link on the OC4J: OC4J_BI_Forms page.

  4. Click the "Deploy Ear file" button on the OC4J:OC4J_BI_Forms:Applications page.

  5. Click the "Browse" button for the J2EE Application fill-in field and navigate to the op.ear file referenced in Step 1. Then

    1. Type OP in the Application Name field.

    2. Select default for the Parent Application.

    3. Click the Continue button.

  6. The default URL mappings of /OP and /redemo are correct, so click the Finish button. (The OracleAS Personalization Administrative UI does not use Single Sign On; therefore, you do not need to configure JAZN on the next page. Click Finish now.)

  7. Configure the Customer Database schemas using the Personalization Schema Creation Wizard (opconfig).

  8. Restart the OC4J_BI_Forms J2EE container using Enterprise Manager before logging into the OracleAS Personalization Administrative UI.

17.2.4 Need to Use SERVICE_NAME Instead of SID to Work in the RAC

The OPCONFIG wizard could not create schemas in the RAC test system because it connects to Oracle using the SID in the CONNECT_DATA record in the tnsnames.ora file. For RAC, SID must be changed to SERVICE_NAME.

17.2.5 Configuration Script Cannot Be Invoked in Non-English Locales

The script opconfig.sh can't be invoked in a non-English environment when the input method is on. This is caused by JDK 1.4.1 issues.

You can work around this problem by installing JDK 1.4.2 and setting JAVA_HOME to the JDK 1.4.2 install directory before you start the configuration wizard. Another workaround is to turn off the input method before you start the configuration wizard.

17.3 Administrative Issues and Workarounds

This section describes administrative issues for OracleAS Personalization and their workarounds. It includes the following topics:

17.3.1 JDBC Drivers

The OracleAS Personalization documentation omits mention of what kind of JDBC drivers customers can use. You can use the JDBC drivers that go with the database where the OracleAS Personalization Recommendation Engine is runs.

17.3.2 Customer Database

OracleAS Personalization requires a customer database in addition to the database included with Oracle Application Server. The customer database must be Oracle9i release 1.

17.3.3 Restrictions on Passwords

Because of password encryption and decryption, there are two restrictions on passwords for OracleAS Personalization users:

17.3.4 Mixed Database and Browser Languages Not Supported

NLS_LANGUAGE determines the language for OracleAS Personalization messages. OracleAS Personalization does not translate messages to a language specific to a browser session. This is by design: the OracleAS Personalization Administrative UI is an administrative type of UI, and its user is assumed to be able to read the language specified by database NLS_LANGUAGE.

17.3.5 OracleAS Personalization Home Directory

As of release 9.0.4, the directory in whichOracleAS Personalization lives has changed from $ORACLE_HOME/dmt to $ORACLE_HOME/mp.

17.3.6 Changed OP MTR Columns

Several tables in the OP MTR had columns of type VARCHAR2 (4000) changed to type VARCHAR2(1000 CHAR). This change was made to the DESCRIPTION column in the following tables:

In addition, NLS_LENGTH_SEMANTICS was set to CHAR for all of these tables.

17.3.7 High Availability for OracleAS Personalization

The OracleAS Personalization Recommendation Engine Application Programming Interface (REAPI) can be embedded in a highly available web application such as OracleAS Portal.

17.4 Documentation Errata

This section describes known errors in OracleAS Personalization documentation. It includes the following topics:

17.4.1 Errors in Oracle Application Server Personalization User's Guide

Wherever the documentation says to log in by entering "http", it is recommended that you enter "https" instead. This is not a requirement, but it is a recommendation. When you log in by entering "http", you receive a warning that your session will not be secure. (See also Section 17.1.5.)

Note the following errors and their corrections:

17.4.2 Errors in Oracle Application Server Personalization Programmer's Guide

Note the following errors and their corrections:

17.4.3 Missing Code Sample in the Programmer's Guide, Sections 9.1.1 and 9.1.2

The code samples in sections 9.1.1 and 9.1.2 of the Oracle Application Server Personalization Programmer's Guide are missing. What is provided there is a list of the major steps required to perform the functions. The file REBatchTest.java contains sample code that shows how to invoke recommendTopItems and crossSellForItem.

The file REBatchTest.java is available on any system where OracleAS Personalization is installed, in the directory ORACLE_HOME/mp/reapi/batch/.

17.4.4 Missing Code Sample in Programmer's Guide, Section B.3.2

The sample program in Section B.3.2 of the Oracle Application Server Personalization Programmer's Guideis not a sample program; instead, it is a repetition of the properties file batchtest.txt (Section B.3.1.)

The sample program that should be in Section B.3.2. is the file REBatchTest.java, available on any system where OracleAS Personalization is installed, in the directory ORACLE_HOME/mp/reapi/batch/.


Go to previous page Go to next page
Oracle
Copyright © 2003 Oracle.

All Rights Reserved.
Go To Documentation Library
Home
Go To Table Of Contents
Contents