Oracle® Application Server 10g Release Notes 10g (9.0.4) for Linux x86 Part Number B12261-03 |
|
This chapter describes issues and workarounds with OracleAS Personalization. It includes the following topics:
This section describes general issues for OracleAS Personalization and their workarounds. It includes the following topics:
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".
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.
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.
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.
The column headings have the following meanings:
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.
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.)
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.
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; } } }
This section describes configuration issues for OracleAS Personalization and their workarounds. It includes the following topics:
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:
$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"/>
opmnctl reload
$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
.
http://<host>:4000/webcacheadmin/
.
IP: ANY Port 4443 Protocol: HTTPS Wallet : $OH/webcache/wallets/default/
Do not check Require Client-Side Certificate.
Hostname: <host> Port: 4444 Routing: ENABLE Capacity: 100 Failover Threshold: 5 Ping URL: / Ping Interval (seconds): 10 Protocol: https
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
SSL should now work. Try connecting to https://<host>:4443/OP/Admin
.
OracleAS Personalization is certified against UTF8 only.
Follow these steps to configure the OracleAS Personalization administrative servlet if the servlet was unchecked during the initial Oracle Application Server Business Intelligence installation:
.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.
op.ear
file referenced in Step 1. Then
/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.)
opconfig
).
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
.
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.
This section describes administrative issues for OracleAS Personalization and their workarounds. It includes the following topics:
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.
OracleAS Personalization requires a customer database in addition to the database included with Oracle Application Server. The customer database must be Oracle9i release 1.
Because of password encryption and decryption, there are two restrictions on passwords for OracleAS Personalization users:
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
.
As of release 9.0.4, the directory in whichOracleAS Personalization lives has changed from $ORACLE_HOME/dmt
to $ORACLE_HOME/mp
.
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.
The OracleAS Personalization Recommendation Engine Application Programming Interface (REAPI) can be embedded in a highly available web application such as OracleAS Portal.
This section describes known errors in OracleAS Personalization documentation. It includes the following topics:
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:
http://hostname>/OP/Admin/
should be
http://<hostname>:<port>/OP/Admin
should be
Recommend TopN Items page
should be
Number of recommended items: 10
should be
Number of Recommended Items: 10
should be
Item Entry
should be
Number of recommended items: 10
Note the following errors and their corrections:
http://server/redemo/
should be
http://<hostname>:<port>/redemo
get Database URL()
should be
getDatabaseURL()
getDatabaseAlias()
should be
getDBAlias()
LoadCustomerProfiles()
PurgeCustomerProfiles();
should be
LoadCustomerProfiles()
PurgeCustomerProfiles()
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/
.
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/
.
|
![]() Copyright © 2003 Oracle. All Rights Reserved. |
|