##################################################################
Copyright (C) 2007 IBM
Corp. - All Rights Reserved.
IBM makes no representations
or warranties about the suitability of
this program, either
express or implied, including but not limited to
the implied warranties of
merchantability, fitness for a particular
purpose or
non-infringement.
##################################################################
WebSphere Product Center Version 5.3.2 Test Fix
(TF004)
2.1 Prerequisite Installations
2.2 Database schema modifications
3.1.1 Stopping
the WPC application on the local server
3.1.2 Backing
up you system before applying the test fix
3.2.2 Run Web
Sphere Application Server script
3.2.3 Verify
and update the configuration files
3.3 Database Schema Modification
3.4.1 Starting
WebSphere Product Center
4 List of fixes and enhancements
4.2 Fixes from prior WPC 5.3.2 maintenance deliveries
Table 4‑1: Fixes delivered in WPC Version
5.3.2-TF004
Table 5‑1: Known issues and limitations in
5.3.2-TF004
This document provides details
on WebSphere Product Center Test fix-TF004 on the following platform(s):
·
WebSphere6
(DB2)
·
WebSphere6
(Oracle)
·
WebLogic8
(Oracle)
This section includes
several requirements that you must have before you apply WPC test fix TF004.
WebSphere Product Center Version 5.3.2 must
be installed prior to the application of Test fix-TF004.
Note: It is strongly recommended to apply the test fix
only to a test system. Test fixes do not undergo
official IBM testing.
If you have already applied 5.3.2-FP001, no
additional schema modifications are needed.
However, if applying from a version of WPC prior to version 5.3.2-FP001,
please apply the following schema changes:
There is one column added to PPI, PSI, PSD and PPR Table
upgrade the schema run the SQL commands present in following SQL file. There is
one column added to the PPI, PST, PSD, and PDR table. To upgrade the schema,
run the following SQL commands:
For Oracle:
ftp://ftp.software.ibm.com/software/websphere/wpc/fixpacks/5.3.2-FP001/add_date_column-oracle.sql
For DB2:
ftp://ftp.software.ibm.com/software/websphere/wpc/fixpacks/5.3.2-FP001/add_date_column-db2.sql
For Oracle database, occurrence_id columns in the ITA
(tctg_ita_item_attributes) and CAB (tctg_cab_category_attributes) tables should
cater for 10 decimal digits.
To upgrade the schema run the SQL commands (only applicable
for Oracle database):
Note: Make sure to create a
backup of your database before running the SQL update in order to have a
version of the database to revert to in case of any problems.
Additionally, for customers migrating from earlier versions
of WPC Version 5.3 (for example, 5.3 and 5.3.1), who were able to migrate
without exporting and importing data, the Index Regeneration Capability utility
needs to be run to facilitate the correct operation of an additional rich
search option.
The Index Regeneration Capability is provided by a shell
script named indexRegenerator.sh located in the $TOP/bin directory. The shell script has the following usage:
For catalogs in a company:
--catalog=<<catalog
name>> --company=<<company
name>>
For hierarchies in a company:
--hierarchy=<<hierarchy
name>> --company=<<company
name>>
For items in a company:
--items=<<full
path of the CSV file>> --company=<<company
name>> [--encoding=<<encoding>>]
$TOP/bin/indexRegenerator.sh
Usage:
--catalog=<<catalog name>>
--company=<<company name>>
--hierarchy=<<hierarchy name>>
--company=<<company name>>
--items=<<full path of the CSV file>>
--company=<<company name>> [--encoding=<<encoding>>]
Parameters containing spaces and special characters must be
enclosed in escaped quotes (\").Also special characters should be escaped
by back slash (\).
Both the Index Regeneration Capability and the Rich Search
for Co-Occurrence of Multi-Occurrence Value facilities are described in the
If you have already applied WPC
5.3.2-FP001, than no additional changes are required. However, if upgrading from a version of WPC
prior to 5.3.2-FP001, the following changes are needed in common.properties:
Remove one property
from common.properties file: max_number_items_for_realtime_search=1000
Modify one property
in common.properties file:
change max_scripts_cache_timeout=60 to max_script_cache_timeout_in_seconds=60
Add (cut and paste)
the following properties and their values at the end of the WPC common.properties
file:
# This
property decides whether the Web Services would be session enabled or not. A
true
# value will
enable sessions for webservices. A Web Service needs to be saved after changing
# the value
of this property.
enable_webservice_session=true
# This
property decides the session timeout period for the Web Services session. The
value is in seconds.
webservice_session_timeout=300
# The
following are needed for MQ version 6.
They can be overridden by specifying a username and password when calling
the jmsGetQueueConnection script operation
mq_username=
mq_password=
# Key
combination to trigger shortcuts. If
more than one is set to true, then all set to true will be
# needed to
trigger the shortcut. Default is CTRL-ALT,
but if languages that use ALT GR for some characters,
# such as
Polish, are in use then we advise that this should be changed, e.g. to
CTRL-SHIFT or ALT-SHIFT,
# since in
Microsoft Windows, CTRL-ALT and ALT GR always have the same functionality (except
when used with
# We strongly
advise against setting all of CTRL, ALT and SHIFT to false, since this would
cause shortcuts
# to be
triggered by normal typing! It is
recommended that at least two of these be set to true.
use_ctrl_in_shortcuts=true
use_alt_in_shortcuts=true
use_shift_in_shortcuts=false
# The width
of the popup window for Lookup table entry input widget. This will be set to
# default
value which is 800 pixels if the width is either too high (greater than 1680)
# or too low
(less than 800). The allowed value can be any integer between 800 and 1680.
lookup_table_entry_input_popup_width=900
# The height
of the popup window for Lookup table entry input widget. The allowed value
# can be any
integer between 400 to 1050. This will be set to default value which is 400
# pixels if
the height is either too high ( greater than 1050) or too low (less than 400).
lookup_table_entry_input_popup_height=500
# Can
multiple ctg files (for image/binary attributes) exist with the same name?
# If false,
will store files in ctg_files within the supplier base
# If true,
will store files in subdirectories within ctg_files with timestamps for names
allow_multiple_files_with_same_name=false
This section provides
general guidelines to apply a patch to
Before attempting to apply
the latest patch to
Complete the following steps to stop the
a) Check the scheduler to make sure there are no
critical jobs that need to be completed. If the queue is clear, stop the
scheduler
Manually by running the following
script:
$TOP/bin/go/stop/stop_scheduler.sh
b) Check the workflow engine to make sure there are no
critical workflow events in process that need to be completed by
running the following script:
$TOP/bin/go/workflow_status.sh
If the queue is clear, shutdown the
workflow engine manually by running the following script:
$TOP/bin/go/stop/stop_workflowengine.sh
c) Abort the entire application by running
the following script:
$TOP/bin/go/abort_local.sh
All remaining WPC services running on the
local work station will abort, including the RMI registry.
Note: Check to make sure all processes have stopped using
the 'ps' command.
Stop off any rogue "java" or
"rmiregistry" processes that remain after shutting down the instance.
Occasionally, it may take several attempts
to stop off all java processes. Continue stopping all java processes until they
are all dead.
Perform the following backup steps before
applying the WPC test fix:
a) Create a full backup of the current
The patch will overwrite files that have
changed. If any issues occur, the backup will allow a rollback to a previous
version.
b) Perform a full backup of the database.
Note: Apply the patch to a test system to identify any issues before
applying the patch to a production system.
Do not delete the previous version of
To apply the patch to
Purpose: To extract and update any new
installation files into the current working directory
Note:
GNU tar is needed to untar the
1. Copy the
For example: {HOME_OF_WPC}/tarballs
2. CD to $TOP, the current working
directory, and unpack the tar file:
For example, using GNU tar, the
following command extracts and unzips the tar file using an absolute path:
tar zxvf
/home/WPC/tarballs/5.3.2-WS-WPC-WS5_ORA- IF001.tgz
After unpacking the tar file in the
previous section, ensure that the default server (server1) is running and run
the following
WebSphere Application script:
$TOP/bin/websphere/install_war.sh
Note: Ensure that
the default server (server1) is running, as it is required for the Web Sphere
Application Server script to work.
If needed,
start the WAS default server by issuing the following command as root:
${WAS_HOME}/bin/startServer.sh
server1
Verify all configuration files required
by the new installation and make any updates as needed (refer to section 2.3 for details).
Refer to the backup copy of the
configuration files for the previous installation if needed.
A description of the configuration files
and its location is as follows:
File location: $TOP/etc/default
File location: $TOP/setup.
To apply the database schema modifications
as outlined in section 2.2, run
any included SQL instructions for your database.
Make sure to create a backup of your
database before running the SQL update in order to have a version of the
database to
revert back to in case of any problems.
To start the
$TOP/bin/go/start_local.sh
The script starts all the services needed
to run
Note:
This process should take approximately 30-40 seconds, depending on the speed of
the processor.
Run the $TOP/bin/go/rmi_status.sh script
which is provided by
services are started correctly:
This
section includes the list of fixes for WebSphere Product Center Version
5.3.2-TF004, WebSphere Product Center Version 5.3.2-IF001,
and
enhancements included in WebSphere Product Center Version 5.3.2-TF004.
Table 4‑1: Fixes delivered in WPC Version 5.3.2-TF004
PMR |
APAR |
Id |
Synopsis |
89430 and 88973 |
JR27175 |
WPC00032092 |
Abstract Poor performance due to large selections. Cause The application is largely unusable because of an inefficient algorithm
that caused severe performance degradation with large static selections. Solution A code fix has been made to correct the problem. Impact This code fix does not require any implementation
change in a customer environment. |
Test
Fix 5.3.2-TF004 is inclusive of WPC 5.3.2-FP001. Because the number of fixes included in 5.3.2-FP001
is large, the list of fixes will not be included in this document. Please see the Release Notes for WPC
5.3.2-FP001 for a full list and details on each fix included in maintenance on
the 5.3.2 version of WPC up-to-and-including 5.3.2-FP001.
Table 5‑1: Known issues and limitations in 5.3.2-TF004
ID |
SYNOPSIS |
WPC00032058 |
The reported problem is that if you move
to the final page of a multi-edit after making unsaved modifications and
click OK in the dialog, then it will lose your window size, and only display
the number of items on the final page. For example, if there are 29 items,
with a window size of 20, and you make unsaved modifications on page 1, then
navigate to page 2 and click OK, then it will show items 21-29 but will now
work with a window size of 9. That is, if you go back to the first page it
will show items 1-9, while if you use the Previous Page button it will show
12-20. A workaround is to either manually
enter the item range or start a new multi-edit session. |
WPC00031988 |
If a Report Input spec
has a grouping node which is defined as multi-occurrence, only a single occurrence
will be added. This occurrence can be
populated in the usual way, however, if the user attempts to return to this
screen to update the values, this will cause a server error and the user will
be logged out of WPC. This is a
permanent limitation. The suggested
workaround is to define the group itself as single-occurrence, but the nodes
within the group as multi-occurrence. |
WPC00031996 |
Due to a
current design limitation, the Rich Search result set executes a full search
twice, causing a potential performance issue. |
WPC00031850 WPC00031844 |
The reported problem is that if set
empty to required global or location attributes in automated step, the entry
could be moved to next step, no
validation will be handled in automated step; Solution or Recommendation: Workflow designers must ensure that any step following an
automated step must have any required attributes on the "required
attributes to validate" collection for that step. If an entry automatically moves out of a step, this is an
exception to the "Entries cannot leave a step unless valid per that
step" rule. As such, validation should not be done in Automated steps Note that automated steps include the Initial step. |
WPC00031854 |
The reported problem is about a
checked out item in portal integration, when item is checked out to
collaboration area portlet, all attributes shouldn't be editable in item
portlet again, but current behavior on 532FP001 is: attributes with empty
values could be editable, while
attributes with non-empty values couldn't be editable; No workaround, it will be fixed in
532FP2 |
WPC00031862 |
Due to a limitation in an underlying
3rd Party library, errors occur during export of items which include a date
type attribute for KST Time Zone. |
WPC00031976 |
The reported problem is that java
script error will be thrown when doing Cancel action to leave the page with
unsaved item or category, and it only happens when choosing top menus except Home
– Exit. This is a WebFx bug, this code is licensed to IBM under the Apache
license, and the license terms do not allow IBM developers to modify it. If WebFX themselves were to fix it to
correctly recognize a false return code from the WPC code, then this may
break the menus for their other customers. This means that this defect cannot
be fixed. |
WPC00032063 |
The reported problem is when
adding/modifying a category, the Script op
EntryChangedData.getModifiedAttributePathsNewEntry() can not retrieve any
values in hierarchy post-save script; it's permanent limitation in current architecture that
the changed entry nodes cannot be accessed by a post-save script for a
hierarchy. A workaround would be to
use a post-processing script instead. |
WPC00032089 |
The secondary spec information is not
available to the portal integration code when an item is viewed after a
search. The reason for this problem is that during a search, the items
retrieved do not have the category information in the search results page.
Hence the search portlet cannot display the secondary spec associated with
that category and item. Therefore, the secondary spec details
will not be available to the customer when they view an item retrieved from
search results. |
WPC00032110 |
This problem occurs when a script
tries to create new item by using "new CtgItem()" API with an
existing Primary Key. For example: 1. Choose Any Item and run the
following script to confirm item has no problem with WPC Query. var queryString = "select item
from catalog('Item Catalog') where item.pk = '11'"; var searchQuery = new
SearchQuery(queryString); var resultSet = searchQuery.execute();
resultSet.next(); item = resultSet.getItem(1); out.writeln(item); . 2. Try to create new Item with same
Primary key - var item = new CtgItem("Item
Catalog"); item.setCtgItemPrimaryKey("11");
item.saveCtgItem(); . 3. Try to Run WPC Query Again with
same script in as step 1. Then you can see the following Error Exception:Script execution failed (com.ibm.ccd.common.error.AustinException)
Exception:Too many values returned by
GenCtgItdItemDetail.getByIdVersion(...). Too many values returned by
GenCtgItdItemDetail.getByIdVersion(...) Workaround: In scripting, before calling the new
CtgItem() API and setting a primary key value for the new Item being created,
perform a check to determine if the particular item_id is already being used
as a primary key for another Item. |
WPC00031891 |
In compiled mode, the following array declaration
will not work: var array = [][]; Instead use the multidimensional
arrays defined for scripts running in compiled mode. These must be written as
follows: var array=[];
array[0] = []; array[1] = []; Note that var array = [][]; will work
in NON-Compiled mode. |
WPC00030692 |
The Edit Screens page in the WPC GUI
is no longer supported. You can get to the Edit Screens page by going to,
Data Model Manager-> Security -> Role console and clicking the Edit
Screens button. The information on this screen is not guaranteed to be
accurate, and is not intended for customer usage. |
WPC00031420 |
Due to architectural limitations, users
cannot get the Context Locations from selection results created by a WPC Rich
Search with location attributes. |
WPC00032000 |
You receive different
results, when you run a WQL query with a different syntax, but
the same semantic. When you run: -
(A and (B or C)): Customer receives the wrong
result -
((B or C) and A): Customer receives the
correct results Customers need to
create and use the following workaround (see example below). Use the supported
top-level syntactic structures for WQL queries that involve an 'OR' or an
'AND' operator: a)
<AF1> AND <AF2> AND ... AND
<AFn>, n>= 1, where each AFi
is an atomic formula; or b)
<AF1> OR <AF2> ; or c)
<AF1> OR <AF2> OR <AF3>. First, it is evident that
both the proposed WQL queries "(A and (B or C))" and "((B or C) and A)" violate
the syntax rules listed in 1.
Therefore neither is supported.
The desired result set can be achieved, however, in several steps. First a legal WQL
query can be used to obtain an intermediate result set. Then, using WPC script ops, one can iterate
over this result set and further filter the items as desired. Let us now consider a concrete
example. Suppose the desired (but
unsupported) WQL query was: "select item from catalog ('MK_Ctg') where
item['MK_Ctg_Spec/stock'] like '13%' and (item ['MK_Ctg_Spec/code'] = '18' or
item['MK_Ctg_Spec/code1'] ='18')"; As can be seen, this
query has the form "(A and (B or C))". Here is a WPC script that first uses a
legal WQL query and then goes on to filter its result set to the desired set
of items. // BEGIN SAMPLE SCRIPT var queryStr = "select item from catalog ('MK_Ctg') where
item ['MK_Ctg_Spec/code'] = '18' or item['MK_Ctg_Spec/code1']
='18'";
var query= new SearchQuery(queryStr); var rs = query.execute();
var keepItems = []; var i=0; while(rs.next()){ var tmpItem =
rs.getItem(1); var stock =
tmpItem.getCtgItemAttrib("MK_Ctg_Spec/stock"); if
(stock.startsWith("13")) { keepItems[i++] =
tmpItem; } } // END OF SAMPLE SCRIPT |
YOU HAVE SUCCESSFULLY APPLIED THE