This chapter of the operations guide is intended for administrators who provide support and monitor the running system.
The content in this chapter is not procedural, but is meant to provide descriptive overviews of the key system parameters.
See the Oracle Retail Price Management Installation Guide for information about requirements for the following:
RDBMS operating system
RDBMS version
Middle tier server operating system
Middle tier
Compiler
The two primary types of exceptions within the RPM system are the following:
System exceptions
For example, server connection and/or database issues are system exceptions. System exceptions can bring the system to a halt. For example, the connection to the server is lost.
Business exceptions
This exception indicates that a business rule has been violated. Most exceptions that arise in the system are business exceptions. For example, a user tries to approve a price change that causes a negative retail.
Key system configuration parameters are described in this section. Many parameters have been omitted from this section that retailers should not have to change. When retailers install RPM into an environment, they must update these values to their specific settings.
The Java Network Launching Protocol (JNLP) launch file is an XML document for Java Web Start. This file describes various locations of code and dynamically downloads updates. This file includes the web server information that is hosting port(s). This file also includes the RMI port on which the application server communicates. For example, if a retailer were to change a host name or change the port that the web server is running on, the retailer would make applicable changes to this file.
RPM application installer configures all data source settings for the RPM application. To change the data source settings for the RPM application after it has been deployed, complete the following steps:
Log into the WebLogic Server 11g Administration Console. Navigate to JDBC -> Data Sources.
The data sources listed are RPMNonXADataSource and RPMXADataSource.
Click RPMNonXADataSource.
Go to the Connection Pool tab.
Make any necessary changes to the JDBC URL and user name. Click Save.
Repeat the same steps above for RPMXADataSource.
If you are changing the schema owner, you must also make this change in the rpm.properties file in the deployment. Log in to the UNIX server and change directories to:
<ORACLE_HOME>//user_projects/domains/soa_domain/servers/rpm-server/tmp/_WL_user/<rpm_app_name>/<encrypted_folder>/conf
Modify the rpm.properties file with the new schema_owner value. This value must be in all capital letters. Save the file.
Restart the managed server instance running RPM.
There must be a rib_user.properties file located in conf/retek. This properties file is used to log on to the system at the beginning of each injector. Any data changes that happen as a result of the RIB has this user listed if users are tracked with regard to create/update/approve actions. The file is populated with the value shown below. For more information about the RIB, see Chapter 5, "RPM and the Oracle Retail Integration Bus (RIB)," and RIB documentation.
rib.user=valid user for the system
There must be a security.properties file located in conf/retek. This properties file is used to configure the embedded Oracle Retail Security Manager (RSM). See "Application Security" in Chapter 6, "Functional Design."
The file is populated with the values below.
The following properties pertain to wallet setup.
csm-wallet.path = <ORACLE_HOME>/user_projects/domains/soa_domain/retail/<application_name>/config
csm-wallet.partition = rpm13
These values are used for the configuration of the authentication process as it is run through LDAP. Once an LDAP schema is established, a retailer enters applicable LDAP properties to point to that schema.
This internal Java-specific setting should not change from its initial value.
For example:
ldap.initialcontextfactory=com.sun.jndi.ldap.LdapCtxFactory
This value represents the authentication provider's URL. In a production environment, this setting would contain the retailer's address for its directory server.
For example:
ldap.authenticationprovider.url=ldap://64.238.67.60:379/
The values in this entry must correspond to entries in the LDAP server. DN stands for distinguished name. The top level of the LDAP directory tree is the base, referred to as the "base DN." This value represents the user base DN property.
For example:
lldap.user.basedn=cn=users,dc=us,dc=oracle,dc=com
This value represents the authentication mode property. LDAP uses various ways to authenticate against a directory server, and the method of authentication can be set up. For almost all environments integrated with RSM, the value should be simple.
For example:
ldap.authenticationmode=simple
Note: This setting is currently not used by RSM. |
This value represents RSM's encryption protocol. SSL stands for secure socket layer (SSL). SSL is a protocol developed for private transmissions. SSL works by using a private key to encrypt data that's transferred over the SSL connection.
These settings provide the "behind the scenes" login information for the system to connect to the directory server. For example, when an RSM user wishes to search on the directory server for a user, the RSM system must have a user name and password to log in to the directory server to enable the search to occur. The password for the LDAP server is maintained in the wallet. RSM uses the useralias to obtain the password from the wallet. The filter property value represents the directory server-specific way of filtering user information by attribute (when the directory server is finding users and then limiting the results). Because various directory servers use different attributes to represent a user name, this value must be updated if the retailer were to change directory servers. For example:
ldldap.usersearch.user=cn=RPM.ADMIN,cn=users,dc=us,dc=oracle,dc=comldap.usersearch.useralias=RPM.ADMIN ldap.user.filter=(&(objectCategory=person)(objectClass=user) %v)
For audit logging, the audit.logger setting is used. This setting allows you to direct security audit information to a specific Log4J logger. This value must match a logger/appender in the RSM server log4j.xml file. If a match does not occur, the root logger and appender are used.
For example:
audit.logger=Security.Audit.Logger
For single sign-on, the enable.oracle.sso setting is used. The value for this setting should always be false. For example:
enable.oracle.sso=false
This setting configures RSM to point to the applicable user repository (such as a directory server or xml file) for authentication. The login modules defined in the application server can be found in rpm_jaas.config. See the Oracle Retail Price Management Installation Guide for detailed information pertaining to login module configuration. For example:
loginmodule=Oracle.LoginModule
The following example illustrates the entry in rpm_jaas.config for an authentication against an LDAP compliant directory server
Oracle.LoginModule{ com.retek.rsm.domain.security.dao.LDAPLoginModule required debug=true
The following example illustrates the entry in rpm_jaas.config for an authentication against the RSM users XML file:
Oracle.LoginModule{ com.retek.rsm.domain.security.dao.XMLLoginModule required debug=true
Note: This setting must correspond with the user DAO implementation setting in the dao_rpm.xml.If the XMLLoginModule is used, users must be added to the file, users_rsm.xml. |
The table below contains directory server-specific attributes concerning user information. Various directory servers use different attributes to represent user information. If a retailer were to change directory servers, these values must be configured to reflect the new directory server.
Element | Definition |
---|---|
ldap.firstname.attrname |
LDAP first name attribute name property |
ldap.lastname.attrname |
LDAP last name attribute name property |
ldap.username.attrname |
LDAP user name attribute name property |
To facilitate single sign on functionality, a user signature may be passed to the RSM-embedded RPM. The following steps describe how the user signature is created and could be used:
When a user first logs in to RPM secured by RSM, it sends RSM the user and password data required for authentication.
RSM calls the retailer's LDAP compliant directory service to authenticate the user name and password data. Once a user is authenticated, RSM creates an encrypted user signature, which is returned to the calling Oracle Retail application.
When the user launches RPM, for example, the user signature is passed to RPM. The RPM application accepts the user signature and calls RSM to determine whether the signature is valid. If the validation step is successful, the user accesses RPM without having to go through the RPM login screen.
RSM uses an algorithm to generate a user signature. A retailer may change this algorithm and configure this property value to reflect the different algorithm being used.
For example:
user.signature.cipher.algorithm=HmacSHA1
To generate user signatures, the algorithm needs a secret key. Oracle Retail recommends that the retailer updates this value on a regular basis. A retailer can change this secret key if a compromise in security has occurred.
For example:
user.signature.secretkey=gjgh6382nEDmxMLc3DSkhYP0ah347495
The system uses the salt value to avoid dictionary attacks. Salt adds characters to what is being created (in this case, a user signature). Because of the salt value, for example, the encrypted value might have 100 digits rather than 10 digits. Breaking the encryption thus becomes more difficult.
For example:
user.signature.salt=¥!asdfghlll©ñ¤?#¥³1966
The following details the user authentication information.
There must be a dao_rpm.xml file located in conf/retek. This configuration file is used to configure the mapping between DAO interfaces and their implementation. Generally there is no need to make changes to this file except if there is a need to configure the user repository that is used by RSM for user searches. The default value is to use an LDAP compliant directory server as the user repository. Besides LDAP, XML file based searches are also supported. To switch between LDAP and XML, comment or uncomment the "impl package" tags (shown below).
Note: This setting should correspond with the LoginModule configuration information found in the rpm_jaas.config file. |
For example:
<dao-config> <customizations> <!-- There can only be one impl per interface. Use the XMLImpl to xml file(s) as the user repository. --> <interface package="com.retek.rsm.domain.security.dao.user"> <impl package="com.retek.rsm.domain.security.dao.impl.user" prefix="" suffix="LDAPImpl"/> <!-- <impl package="com.retek.rsm.domain.security.dao.impl.user" prefix="" suffix="XMLImpl"/> --> </interface> </customizations></dao-config>
There is a users_rsm.xml file located in conf/retek. This XML configuration is used for authentication and user searching, this file is used as the repository for the users. This file must contain the user names, first names, last names of all valid users. The corresponding password for the user is sourced from the wallet file. This file is located in the conf/retek directory within the RPM ear file.
Note: If LDAP is used for authentication and user searching, this file is ignored. |
For example:
<<users> <user username="Valid.User" firstname="Valid" lastname="User" /> <user username="JoeUser" firstname="Joe" lastname="User" /></users>
RPM's service factory configuration file, services_rpm.xml, specifies the mapping between RPM's application and its application services interfaces and their associated implementations. Within this file are flavorsets, which are used to configure the ServiceFactory. RSL requires a flavorset of businesslogic, which is used to distinguish the correct implementation of business logic to use for RPM. For more information about RSL, see Chapter 5, "RPM and the Oracle Retail Service Layer (RSL)."
The following example illustrates how the businesslogic flavorset is indicated in the service factory configuration file.
retek/services_rpm.xml:<?xml version="1.0" encoding="UTF-8"?><services-config> <customizations> <interface package="com.retek.rsl.rpm"> <impl package="com.retek.rpm.app.core.service" /> </interface> </customizations></services-config>retek/service_flavors.xml:<?xml version="1.0" encoding="UTF-8"?><services-config> <flavors set="businesslogic"> <flavor name="java" locator="com.retek.platform.service.SimpleServiceLocator" suffix="Java"/> </flavors></services-config>
Logging within RPM takes place in a number of ways, as described below.
The API that RPM components work with is built using Jakarta's Commons Logging package. Commons logging provides "an ultra-thin bridge between different logging libraries," enabling the RPM application to remain reasonably "pluggable" with respect to different logger implementations. Objects in RPM that require logging functionality maintain a handle to a Log object, which adapts logging requests to the (runtime configurable) logging provider.
In RPM, Log4j is the library under commons logging.
Additional information about Jakarta Commons Logging can be found at the following websites:
http://jakarta.apache.org/commons/logging/
http://jakarta.apache.org/commons/logging/api/index.html
The logging mechanism that is used for RPM is log4j.xml, which is the same as the server's flat text log file. This logging mechanism reveals errors and other significant events that occur during the system's runtime processing. In most cases, business exceptions and system exceptions rise to the user interface. If an exception is displayed, it is logged. Log4j.xml is an open source product.
Significant application server logging occurs in RPM that should also be configured and monitored. See applicable application server documentation for more information.
Additional information about log4j can be found at the following website:
http://jakarta.apache.org/log4j/docs/index.html
log4j.xml for RPM is found in the following location:
<ORACLE_HOME>/user_projects/domains/soa_domain/servers/<rpm_server>/tmp/_WL_user/<rpm_app_name>/<encrypted_folder>/conf
The level setting established in log4j.xml instructs the system to log that level of error and errors above that level. The logging levels are the following:
Fatal
Error
Warning
Info
Debug
Note: In a production environment, the logging setting should be set to Error or Warn, so that system performance is not adversely impacted. |
The level is established in the log4j.xml file.
For example:
<!-- ======================= --> <!-- Setup the loggers --> <!-- ======================= --> <logger name="com.retek"> <level value="ERROR"/> </logger>
RPM logging output is sent to the console and written to files by the application server. In a default configuration, the output is written to a file in this format RPM.log under <ORACLE_HOME>/user_projects/domains/sso_domain/servers/RPM132_MS/logs. You can also configure to write logs to a different location and to roll them according to file size. For instructions related to this procedure, see the WebLogic Configuration and Administration Guide.
Hibernate's internal logging setting is established in log4j.xml. The commons-logging service directs output to log4j. To use log4j, the log4j.properties file must be in the classpath. An example properties file is distributed with Hibernate. The class to be logged and the logging level can be specified. For a general description of Hibernate, see Chapter 3, "Technical Architecture."
For example:
!-- ====================================================== --> <!-- Hibernate trace at this level to log SQL parameters --> <!-- ====================================================== --> <logger name="net.sf.hibernate.engine.QueryParameters"> <level value="TRACE"/> </logger>
This section describes how to establish settings for a transaction timeout. A transaction timeout is the maximum duration, in seconds, for transactions on the application server. Any transaction that is not requested to complete before this timeout is rolled back.
To set up these timeouts, please follow these steps:
Log in to the WebLogic Server 11g Administration Console.
Under Services, click JTA.
Click the Configuration tab.
Under JTA, set the Timeout Seconds (for example, 600 seconds).
RPMTaskMDB is a message driven bean used to facilitate RPM's asynchronous processing capability. Message driven beans act as listeners to specified queues for messages. As soon as a message arrives in the queue, the container triggers execution of this bean.When a background task is created by RPM, a message is published to the queue as a trigger to start processing of tasks.
RPMChunkMDB is a message driven bean used for RPM's "chunking" functionality. Chunking refers to the breaking up of large price events (such as department level promotions) into smaller subsets. When chunking is required, the system publishes a message to the RPM chunk queue. Messages received by the chunk queue are processed through RPMChunkMDB.
Multi-threading for RPMTaskMDB and RPMChunkMDB is configured by the weblogicdeployment descriptor, weblogic-ejb-jar.xml.
To configure the number of threads, complete these steps:
Update the MDB descriptor in weblogic-ejb-jar.xml to add the following
<pool> <max-beans-in-free-pool>10</max-beans-in-free-pool> </pool>
For example, for RPMTaskMDB it will be:
<message-driven-descriptor> <pool> <max-beans-in-free-pool>10</max-beans-in-free-pool> </pool> <destination-jndi-name>jms/taskQueue</destination-jndi-name> ... </message-driven-descriptor>
Note that <pool> tag should be the first tag after <message-driven-descriptor>.
RPM integrates with RMS through the RIB. However, depending on the type of data being passed, the RIB is not always required. A single system option, RPM_IND, determines first whether integration between RPM and RMS is required by the retailer and, second, whether the RIB is required for each data flow. Setting RPM_IND to Y indicates only that an interface with RPM and RMS is necessary; the system then decides whether the RIB is needed. See the Oracle Retail Merchandising System Installation Guide for additional information on setting the value of the system_options table.
Log in to the UNIX server as the user who has write access under ORACLE_HOME.
Change directories to <ORACLE_HOME>/user_projects/domains/sso_domain/config
Make a backup of oconfig.xml and edit the file. Locate the managed server running the RPM application.
Under the managed server, under <server-start>-> <arguments>, add the following value:
-Dretek.no.rib=true
For example:
<<server-start> <class-path>…</class-path> <arguments>… -Dretek.no.rib=false</arguments> </server-start>
To publish price events using the Publish/Export batches, add the following property/value to rpm.properties on the server:
delete_staged_rib_payloads=false
The following triggers need to be enabled so that data is written to the staging table for RMS-RPM integration:
RMS_TABLE_RPM_DEP_AIR (on DEPS table)
RMS_TABLE_RPM_ITL_AIUDR (on ITEM_LOC table)
They can be enabled with the following syntax:
ALTER TRIGGER [schema.]trigger ENABLE
RPM has three configuration options regarding RIB publishing:
Delete_staged_rib_payloads=true|false (default is true): configured in rpm.properties
retek.no.rib=true|false (default is false): configured via JVM system property
retek.no.rib.publish=true|false (default is false): configured via JVM system property
This is how RPM will work with each combination of these properties. (The first row is default settings):
delete_staged_rib_payloads | retek.no.rib | retek.no.rib.publish | Receive messages from RIB | Publish messages to RIB | Data remains in staging tables |
---|---|---|---|---|---|
TRUE | FALSE | FALSE | Yes | Yes | No |
TRUE | FALSE | TRUE | Yes | No | No |
TRUE | TRUE | <ANY> | Yes | No | No |
FALSE | FALSE | FALSE | Yes | Yes | Yes |
FALSE | FALSE | TRUE | Yes | No | Yes |
FALSE | TRUE | <ANY> | Yes | No | Yes |
This is how to set the options for the different results:
Publish messages to RIB: retek.no.rib=false AND retek.no.rib.publish=false
Leave data in staging tables: delete_staged_rib_payloads=false
When the RIB is used for exchanging all messages between RMS and RPM, then the following batch programs need to be turned off from the integrated batch schedule.
NewItemLocBatch
ItemLocDeleteBatch
The RPM is configured as the following:
The enabling of RIB or enabling of triggers on ITEM_LOC will only insert records into RPM_STAGE_ITEM_LOC.
NewItemLoc batch has to be run once for inserting records from RPM_STAGE_ITEM_LOC to RPM_FUTURE_RETAIL.
If RIB and triggers are both disabled, then NewItemLocbatch has to run twice for the records to be populated into RPM_FUTURE_RETAIL.
The following triggers must be enabled so that data is written to the staging table for RMS—RPM integration:
RMS_TABLE_RPM_DEP_AIR (on DEPS table)
RMS_TABLE_RPM_ITL_AIUDR (on ITEM_LOC table)
They can be enabled with the following syntax:
ALTER TRIGGER [schema.]trigger ENABLE
Set the system option, Publish messages to RIB: RPM_SYSTEM_OPTIONS.PUBLISH_PRICE_EVENTS_TO_RIB=0. Additionally, another system option, RPM_SYSTEM_OPTIONS. CC_DIRECT_PAYLOAD_POPULATION, will determine if payload data should be created as part of conflict checking or delayed. The following combinations of these two system options are allowed.
PUBLISH_PRICE_EVENTS_TO_RIB | CC_DIRECT_PAYLOAD_POPULATION |
---|---|
1 |
1 |
0 |
0 |
0 |
1 |
When RPM_SYSTEM_OPTIONS.CC_DIRECT_PAYLOAD_POPULATION = 0, all payload data will be staged. See priceEventPayloadPopulationBatch Design in Chapter 8, ”Java and RETL Batch Processes,” for details about processing from these staging tables.
Set the system option, Publish messages to RIB: RPM_SYSTEM_OPTIONS.PUBLISH_�PRICE_EVENTS_TO_RIB=1 and RPM_SYSTEM_OPTIONS. CC_DIRECT_PAYLOAD_POPULATION=1.�
To publish price events using the Publish/Export batches, add the following� property/value to rpm.properties on the server: delete_staged_rib_payloads=false�(default is true).�
If delete_staged_rib_payloads=True, the payload data is deleted after publishing to� RIB, and it will not be available for processing publish/export batches.�
The following triggers must be enabled so that data is written to the staging table for� RMS—RPM integration:�
RMS_TABLE_RPM_DEP_AIR (on DEPS table)
RMS_TABLE_RPM_ITL_AIUDR (on ITEM_LOC table)
They can be enabled with the following syntax:�
ALTER TRIGGER [schema.]trigger ENABLE
Internationalization is the process of creating software that can be translated more easily. Changes to the code are not specific to any particular market. RPM has been internationalized to support multiple languages. This section describes configuration settings and features of the software that ensure that the base application can handle multiple languages.
Translation is the process of interpreting and adapting text from one language into another. Although the code itself is not translated, components of the application that are translated include the following:
Graphical user interface (GUI)
Error messages
The following components are not translated:
Documentation (online help, release notes, installation guide, user guide, operations guide)
Batch programs and messages
Log files
Configuration tools
Reports
Demonstration data
Training materials
The user interface for RPM has been translated from U.S. English into the following languages:
Chinese (simplified)
Chinese (traditional)
Croatian
Dutch
French
German
Greek
Hungarian
Italian
Japanese
Korean
Polish
Portuguese (Brazilian)
Russian
Spanish
Swedish
Turkish
For a client machine to use the translated interface, set the operating system to the appropriate locale. Below is the procedure for setting a Microsoft Windows XP OS to a particular language. For other operating systems, consult the operating system's guide.
Note: The required language must be installed according to Microsoft instructions before setting regional and language options. |
From the Control Panel, select Regional and Language Options. The Regional and Language Options window is displayed.
Select the required language from the Standards and formats drop-down field.
Click OK.
The text in the .properties file below is translated so that the interface functions in local settings. When a country code other than the default is used, the retailer populates the _xx.properties files below, where the applicable country equals xx. Much of what is locale-specific in RPM has been pulled ou tof hte code and placed into the following files.
messages.properties and messages_xx.properties
resources.properties and resources_xx.properties
codes.properties and codes_xx.properties
worksheet_column_names.properties and worksheet_column_names_xx.properties (contains the labels from the worksheet details table columns)
Modify the following files in \rpm13.ear\lib\rpm_server_properties.jar:
\rpm-server\conf\retek\messages_rpm_xx.properties
\rpm-server\conf\retek\application_definition_rpm_messages_xx.properties
In the two files listed above, change three strings from:
departmentDescription=Department
classHierDescription=Class Hierarchy
subclassDescription=Subclass
To:
departmentDescription=Family
classHierDescription=Group
subclassDescription=SubGroup
Save the changes, process a build, and go to the RSM section of RPM to ensure the labels are properly displayed.
As shown below, the properties files can be found in rpm_client_properties.jar and rpm_server_properties.jar.
rpm_client_properties.jar
rpm13-ui/src/com/retek/rpm/gui/Resources.properties
rpm13-ui/src/com/retek/rpm/gui/worksheet/Worksheet_column_names.properties
rpm_server_properties.jar
rpm13-server/conf/retek/messages.properties
rpm13-server/conf/retek/codes.properties
rpm13-server/conf/retek/application_definition_rpm_messages.properties
RPM resides on platform code that has its own resource bundles. They are in the platform-resources.jar file.
Within the RPM application, Asian characters do not display correctly when the font setting, Verdana, is used. This condition exists for clients who use mixed language sets, where the user interface is in a European language (for example, English) and data field values are in an Asian language.
To ensure proper display of Asian characters, the font setting must be set to Dialog. The font setting is found in the Resources.properties file (for English language defaults) and in the Resources._xx.properties file (for all other European language defaults).
Adjusting the default font settings requires modification of the Resources.properties (or Resources_xx.properties) file in platform-resources.jar. The following skills and tools are necessary to complete the modification:
Thorough knowledge of the RPM application
Thorough knowledge of Java programming
Java programming toolkit
The platform-resources.jar must be updated in both of the following locations :
For Client: $ORACLE_HOME/user_projects/domains/sso_domain/servers/<managed_server>/tmp/_WL_user/<rpm_instance>/<encrypted_folder_name>/war/client/lib folder
For Server: $ORACLE_HOME/user_projects/domains/sso_domain/servers/<managed_server>/tmp/_WL_user/<rpm_instance>/<encrypted_folder_name>/lib folder
Note: To complete the steps below, you must have a Java executable in your PATH to use the jar and jarsigner commands. To confirm that it is there, enter the command, "which java," and note whether a valid Java executable file returns. |
The following are the steps required to modify the Resources.properties (or Resources_xx.properties) file in the platform-resources.jar:
Back up the original platform-resources.jar file (for example, $ cp platform-resources.jar platform-resources.jar.ORIG).
Make a temporary directory (for example, $mkdir jar_temp).
Move the original platform-resources.jar file into the temporary directory (for example, mv platform-resources.jar jar_temp/).
Using a command such as jar -xvf platform-resources.jar, extract the platform-resources.jar.
Modify the Resources.properties (or Resources_xx.properties) file as follows:
Note: When changing the font to Dialog, clients may opt to turn off bolding within the user interface. Bolded field labels can sometimes be hard to read, because the characters become crowded on the form. Unbolded characters can be easier to read. Settings for both options are provided here. |
Option 1: Change the font to Dialog, without bolding.
Modify the properties as follows:
defaultFontName=dialog defaultBoldFontName=dialog defaultBoldFontStyle=0 defaultSmallFontName=dialog defaultSmallBoldFontName=dialog defaultSmallBoldFontStyle=0 defaultLargeBoldFontName=dialog defaultLargeBoldFontStyle=0 menuAcceleratorFontName=dialog
Option 2: Change the font to Dialog, with bolding.
Modify the properties as follows:
defaultFontName=dialog defaultBoldFontName=dialog defaultBoldFontStyle=1 defaultSmallFontName=dialog defaultSmallBoldFontName=dialog defaultSmallBoldFontStyle=1 defaultLargeBoldFontName=dialog defaultLargeBoldFontStyle=1 menuAcceleratorFontName=dialog
Changing the font style from Verdana to Dialog may also require changing the font size. Update the following font size properties as needed:
defaultFontSize defaultBoldFontSize defaultSmallFontSize defaultSmallBoldFontSize defaultLargeBoldFontSize menuAcceleratorFontSize
Unsign the platform-resources.jar file by removing the following ORACLE* files from the extracted jar file:
META-INF/ORACLE_C.SF
META-INF/ORACLE_C.RSA
Using a command such as jar -xvf platform-resources.jar, jar the remaining files in the extracted file.
Place the newly modified platform-resources.jar in the location of the original jar file.
Re-sign the client jar file. For information on how to sign the platform-resources.jar, see the section, "Sign the RPM Client Configuration Jar File," in the Oracle Retail Price Management Installation Guide.
Note: All client-side jars containing Java code must be signed with the same signature. |
Restart the application server.
Because RPM is dependent upon a number of servers, and a number of Oracle Retail products are dependent on RPM, a status page helps the retailer determine quickly whether RPM and the servers upon which it depends are up and running correctly. The privileges to this page can be set in Oracle Retail Security Manager and these privileges are typically reserved for administrators.�
The status page system check will answer the following questions:�
Is the RPM/RMS_Database up and running?
Is the RPM JMS Server up and running?
Is RSM up and running?
Can the application get access to the RPM service?
Can the application log in to RPM?
Can RPM data be retrieved?
Can RMS data be retrieved?
Is the application able to publish to RIB each message type?
The status page data integrity check will check the following:�
Missing department aggregations—When departments are created in RMS, a row should be inserted into the RPM_DEPT_AGGREGATION table.�
Missing primary zone groups—Each merchandise hierarchy (department or lower) should have a row in the RPM_MERCH_RETAIL_DEF table.�
Missing item/locations —When an item is ranged to a location in RMS, a row should be inserted into the RPM_ITEM_LOC table.�
The status page application can also be used to for two specific data validity checks:�
Duplicate future retail—There should only be one row in the RPM_FUTURE_RETAIL, RPM_PROMO_ITEM_LOC_EXPL, and RPM_CUSTOMER_SEGMENT_PROMO_FR tables per item, diff_id, location, zone_node_type and action date�.�
Missing future retail timelines—Timelines should match up between the RPM_FUTURE_RETAIL, RPM_PROMO_ITEM_LOC_EXPL, and RPM_CUSTOMER_SEGMENT_PROMO_FR tables.�
The command usage is as follows. Terms in <angle brackets> are required user inputs. Terms in [brackets] are optional.
statusPageCommandLineApplication.sh <userAlias> [phase-choice] [max-rows-choice]�
statusPageCommandLineApplication.sh <userAlias> duplicate [dept=<department>[class=<class> [subclass=<subclass>]]]�
statusPageCommandLineApplication.sh <userAlias> missing [dept=<department>[class=<class> [subclass=<subclass>]]]�
�To answer the questions from above one of the following valid values for [phase-choice] should be used. Or if no option is given the Both (B) option will be used. �
S |
System check only |
D |
Data integrity check only |
B (default |
Both |
The value specified for max-rows-choice is the maximum row count for the query. By default, the query is run for the full count.�
To search for duplicate or missing data use the second or third option of the command usage. An optional Department/Class/Subclass hierarchy can be entered to narrow the search. If no hierarchy is given all data is checked.
ssage> No cause associated</message></com.retek.rpm.app.statuspage.service.RpmRibMessageStatusException>at com.retek.rpm.app.statuspage.service.StatusPageAppServiceImpl.performRibMessageCheck(StatusPageAppServiceImpl.java:71)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))at java.lang.reflect.Method.invoke(Method.java(Compiled Code))at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java(Compiled Code))at com.retek.platform.service.ServiceCommandImpl.execute(ServiceCommandImpl.java(Compiled Code))at com.retek.platform.service.impl.CommandExecutionServiceEjb.executeCommand(CommandExecutionServiceEjb.java(Compiled Code))at com.retek.platform.service.impl.EJSRemoteStatelessCommandExecutionService_76208b17.executeCommand(Unknown Source)at com.retek.platform.service.impl._EJSRemoteStatelessCommandExecutionService_76208b17_Tie.executeCommand__com_retek_platform_service_ServiceCommand(_EJSRemoteStatelessCommandExecutionService_76208b17_Tie.java(Compiled Code))at com.retek.platform.service.impl._EJSRemoteStatelessCommandExecutionService_76208b17_Tie._invoke(_EJSRemoteStatelessCommandExecutionService_76208b17_Tie.java(Compiled Code))at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java(Compiled Code))at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java(Compiled Code))at com.ibm.rmi.iiop.ORB.process(ORB.java(Compiled Code))at com.ibm.CORBA.iiop.ORB.process(ORB.java(Compiled Code))at com.ibm.rmi.iiop.Connection.doWork(Connection.java(Compiled Code))at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java(Compiled Code))at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java(Compiled Code))at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))*****************************************Starting Reportcom.retek.rpm.statuspage.RsmServerCheck Passed *****************************************Starting Reportcom.retek.rpm.statuspage.RpmLoginCheck Passed *****************************************Starting Reportcom.retek.rpm.statuspage.RpmDataAccessCheck Passed *****************************************Starting Reportcom.retek.rpm.statuspage.RpmRibMessageCheck Passed REGPRCCHG.REGPRCCHGCRE is ON ************************The above exception indicates that we have passed ********************************************************************Starting Reportcom.retek.rpm.statuspage.RpmRibMessageCheck Passed REGPRCCHG.REGPRCCHGMOD is ON ************************The above exception indicates that we have passed ********************************************************************Starting Reportcom.retek.rpm.statuspage.RpmRibMessageCheck Passed REGPRCCHG.REGPRCCHGDEL is ON ************************The above exception indicates that we have passed ********************************************************************Starting Reportcom.retek.rpm.statuspage.RpmRibMessageCheck Passed CLRPRCCHG.CLRPRCCHGCRE is ON ************************The above exception indicates that we have passed ********************************************************************Starting Reportcom.retek.rpm.statuspage.RpmRibMessageCheck Passed CLRPRCCHG.CLRPRCCHGMOD is ON ************************The above exception indicates that we have passed ********************************************************************Starting Reportcom.retek.rpm.statuspage.RpmRibMessageCheck Passed CLRPRCCHG.CLRPRCCHGDEL is ON ************************The above exception indicates that we have passed ********************************************************************Starting Reportcom.retek.rpm.statuspage.RpmRibMessageCheck Passed PRMPRCCHG. is ON ************************The above exception indicates that we have passed ********************************************************************Starting Reportcom.retek.rpm.statuspage.RpmRibMessageCheck Passed PRMPRCCHG. is ON ************************The above exception indicates that we have passed ********************************************************************Starting Reportcom.retek.rpm.statuspage.RpmRibMessageCheck Passed PRMPRCCHG. is ON ************************The above exception indicates that we have passed ********************************************************************Starting ReportRpmJmsServerCheck Passed Done.