Oracle® Application Server Release Notes
10g (9.0.4) for Solaris Operating System (SPARC) Part No. B10629-15 |
|
![]() Previous |
![]() Next |
This chapter describes issues with Oracle Application Server Personalization (OracleAS Personalization). It includes the following topics:
This section describes general issues for OracleAS Personalization and their workarounds. It includes the following topics:
Section 19.1.2, "Advanced Button Brings Up "404 File Not Found" Message"
Section 19.1.3, "Sorting by ID and Sorting by Type Do Not Work"
Section 19.1.6, "RE Package Deployment Causes Failure if Different MTR Referenced"
Section 19.1.7, "RE Package Deployment Causes Failure if RE Sessions Are Active"
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.
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:
Dataset: An identifier for the dataset.
# of Cust: The number of registered customers, which is the number of records in the MTR_CUSTOMER table.
# of Items: The number of items, which is the number of records in the MTR_ITEM table
Avg. Profile Size: The number of items in each customer's profile; this is the sum of average rating profile, average purchasing profile, and average navigation profile.
Avg. Rating Profile: The average number of rating items in each customer's profile. Can be computed by dividing the number of records in MTR_RATING_DETAIL by the number of distinct CUSTOMER_IDs in MTR_RATING_DETAIL.
Avg. Purch. Profile: The average number of purchasing items in each customer's profile. Can be computed by dividing the number of records in MTR_PURCHASING_DETAIL by the number of distinct CUSTOMER_ID's in MTR_PURCHASING_DETAIL.
Avg. Nav. Profile: The average number of navigation items in each customer's profile. Can be computed by dividing the number of records in MTR_NAVIGATION_DETAIL by the number of distinct CUSTOMER_IDs in MTR_NAVIGATION_DETAIL.
Build Time: The total time taken to build the aggregated model and the cross-sell model.
# of Rules Agg. Model: The number of rules in the aggregated model.
# of Rules Cross- Sell Model: The number of rules in the cross-sell model.
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 19.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:
Section 19.2.1, "Configuration of SSL for OracleAS Personalization"
Section 19.2.3, "Deselected Personalization Missing from Configure Component Option"
Section 19.2.4, "Need to Use SERVICE_NAME Instead of SID to Work in the RAC"
Section 19.2.5, "Configuration Script Cannot Be Invoked in Non-English Locales"
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:
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"/>
Reload OPMN using the following command:
opmnctl reload
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
.
With a browser login to the Web Cache Administrative User Interface at http://<host>:4000/webcacheadmin/
.
Add Listen Ports
IP: ANY Port 4443 Protocol: HTTPS Wallet : $OH/webcache/wallets/default/
Do not check Require Client-Side Certificate.
Add Origin Server
Hostname: <host> Port: 4444 Routing: ENABLE Capacity: 100 Failover Threshold: 5 Ping URL: / Ping Interval (seconds): 10 Protocol: https
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
Add Site-to-Server Mapping (Insert before last record)
Select the SSL that you just configured from Site Definitions in the combo box.
Check the SSL Web Server you configured.
Exclude Unrestricted
.
Click Apply Changes at the very top right hand part of the screen.
Click Restart button under Cache Operations.
Log in to Enterprise Manager for your OracleAS Business Intelligence instance.
Select OC4J_BI_Forms and click Restart.
Select HTTP Server and click Stop.
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
.
Follow these steps to configure the OracleAS Personalization administrative servlet if the servlet was unchecked during the initial Oracle Application Server Business Intelligence installation:
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.
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.
Click the Applications link on the OC4J: OC4J_BI_Forms page.
Click the "Deploy Ear file" button on the OC4J:OC4J_BI_Forms:Applications page.
Click the "Browse" button for the J2EE Application fill-in field and navigate to the op.ear
file referenced in Step 1. Then
Type OP in the Application Name field.
Select default for the Parent Application.
Click the Continue button.
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.)
Configure the Customer Database schemas using the Personalization Schema Creation Wizard (opconfig
).
Restart the OC4J_BI_Forms J2EE container using Enterprise Manager before logging into the OracleAS Personalization Administrative UI.
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:
Section 19.3.4, "Mixed Database and Browser Languages Not Supported"
Section 19.3.7, "High Availability for OracleAS Personalization"
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:
OracleAS Personalization users must not enter passwords with trailing blanks.
User passwords are limited to 30 or fewer characters, the standard Oracle limit.
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:
MTR_TAXONOMY
MTR_CATEGORY
MTR_HOTPICK_GROUP
MTR_ITEM
In addition, NLS_LENGTH_SEMANTICS was set to CHAR for all of these tables.
This section describes known errors in OracleAS Personalization documentation. It includes the following topics:
Section 19.4.1, "Errors in Oracle Application Server Personalization User's Guide"
Section 19.4.2, "Errors in Oracle Application Server Personalization Programmer's Guide"
Section 19.4.3, "Missing Code Sample in the Programmer's Guide, Sections 9.1.1 and 9.1.2"
Section 19.4.4, "Missing Code Sample in Programmer's Guide, Section B.3.2"
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 19.1.5.)
Note the following errors and their corrections:
Page 2-1, line 9:
http://hostname>/OP/Admin/
should be
http://<hostname>:<port>/OP/Admin
Page 3-5, line 6:
Recommend Top Items page
should be
Recommend TopN Items page
Page 3-5, line 7:
Number of recommendations to display: 10
should be
Number of recommended items: 10
Page 3-6, 11th line from bottom:
# of Recommended Items: 10
should be
Number of Recommended Items: 10
Page 3-8, line 5:
Items
should be
Item Entry
Page 3-9, line 3:
Number of recommendations to display: 10
should be
Number of recommended items: 10
Note the following errors and their corrections:
Page 2-5, line 14:
http://server/redemo/
should be
http://<hostname>:<port>/redemo
Page 7-10, line 9:
get Database URL()
should be
getDatabaseURL()
Page 10-9:
getDatabaseAlias()
should be
getDBAlias()
Page 8-2, lines 10 and 11:
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/
.