APAR status
Closed as program error.
Error description
A potential performance problem exists in this scenario: A large amount of data in a Service Data Objects (SDO) uses the following Property type for the configAttribute element: <xsd:complexType name="Property"> <xsd:sequence> <xsd:element name="name" type="xsd:string" /> <xsd:element name="value" type="xsd:string" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="someConfig"> <xsd:sequence> <xsd:element name="configAttribute" type="tns:Property" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> The sdo.xml would look like this: <someConfig> <configAttribute> <name>some_type</name> <value> </value> </configAttribute> <configAttribute> <name>some_type_2</name> <value>no</value> </configAttribute> <configAttribute> <name>something_enabled</name> <value>yes</value> </configAttribute> <configAttribute> <name>some_name</name> <value>a_value</value> </configAttribute> </someConfig> The SDO contains over 500 of these configAttribute elements. At runtime, it could take about 3-5 ms to get values using an XPath expression: sdo.getString("someConfig/configAttribute[name='some_name ']/value") In order to take advantage of the fix in this APAR, it will be necessary to change the type of the 'name' element in the complexType to be xsd:ID instead of xsd:string: <xsd:complexType name="Property"> <xsd:sequence> <xsd:element name="name" type="xsd:ID" /> <xsd:element name="value" type="xsd:string" /> </xsd:sequence> </xsd:complexType>
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: Users of IBM WebSphere Application Server * * v7 Feature Pack for Service Component * * Architecture (SCA) Refresh Pack v1.0.1 and * * WebSphere Process Server v7.0 * **************************************************************** * PROBLEM DESCRIPTION: Performance issue when using SDOPath * * expressions with predicates * **************************************************************** * RECOMMENDATION: * **************************************************************** An SDOPath with a predicate such as "a/b[c='value']" iterates through all "b" properties looking for a "c" property with the value "value". This can be slow if there are many "b" properties and the desired one appears near the end.
Problem conclusion
An optimization that takes advantage of xs:ID processing is now in place. In the above example, if the "c" property is of type xs:ID, the "b" property may be quickly located if the tree of DataObjects has already been fully created. APAR PM12501 is currently targeted for inclusion in Service Level (Fix Pack) 1.0.1.7 of WebSphere Application Server v7 Feature Pack for Service Component Architecture (SCA) Refresh Pack. Please refer to the Recommended Updates page for delivery information: http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
Temporary fix
Comments
APAR Information
APAR number
PM12501
Reported component name
WAS SCA FEATURE
Reported component ID
5724J0854
Reported release
700
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2010-04-16
Closed date
2010-04-30
Last modified date
2010-04-30
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
WAS SCA FEATURE
Fixed component ID
5724J0854
Applicable component levels
R700 PSY
UP
[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SUPPORT","label":"IBM Worldwide Support"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"1.0.1","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
09 February 2022