BPF Performance Tuning Guide
BPF Performance Tuning Guide
BPF Performance Tuning Guide
FileNet Corporation
3565 Harbor Boulevard
Costa Mesa, California 92626
1.800.FILENET (345.3638)
Outside the US, call:
1.714.327.3400
www.filenet.com
Contents
Introduction ................................................................................................................................................... 5
Objective.................................................................................................................................................... 5
BPF configuration tuning............................................................................................................................... 6
Enabling open Case event ........................................................................................................................ 6
Disabling attachment properties update.................................................................................................... 6
Disabling attachment list............................................................................................................................ 6
Disabling Inbasket case count................................................................................................................... 6
Filtering out locked workobjects ................................................................................................................ 6
Role management configuration ............................................................................................................... 7
Application settings Metadata cache...................................................................................................... 7
Application settings Enable profiling....................................................................................................... 7
Application settings - XMLHTTP logging................................................................................................... 7
Application settings - Case ID Manager reservation size.......................................................................... 8
Application settings Folder to file case objects ...................................................................................... 8
Application settings Inbasket browse list page size ............................................................................... 8
Application Settings Case attachments list Adhoc search definition................................................... 8
Case fields Lookup fields ..................................................................................................................... 11
Web Application logging .......................................................................................................................... 11
Avoid large dynamic pick lists ................................................................................................................. 12
Avoid large numbers of Read From Workflow fields ............................................................................... 13
Annotation viewing .................................................................................................................................. 13
Bulk Processing....................................................................................................................................... 13
Disable Inbasket(s) List on Search.......................................................................................................... 13
Content Engine tuning................................................................................................................................. 14
Query Options ......................................................................................................................................... 14
Disable trace logging ............................................................................................................................... 14
Index Content Engine Objects................................................................................................................. 14
Process Engine tuning ................................................................................................................................ 16
Purge workflow event log ........................................................................................................................ 16
Disable unnecessary events ................................................................................................................... 16
Create indices.......................................................................................................................................... 16
Turn off VWRouter logging ...................................................................................................................... 16
Monitor number of server processes....................................................................................................... 16
Web Application container tuning ............................................................................................................... 17
Internet Explorer settings......................................................................................................................... 17
Cache settings ..................................................................................................................................... 17
BEA WebLogic ........................................................................................................................................ 17
Web container thread pool settings ..................................................................................................... 17
Connection pool size............................................................................................................................ 18
Heap Size ............................................................................................................................................ 18
JIT compiler settings ............................................................................................................................ 19
HTTP connection timeout .................................................................................................................... 20
IBM WebSphere ...................................................................................................................................... 21
Servlet caching .................................................................................................................................... 21
Web container thread pool settings ..................................................................................................... 21
Connection Pool size ........................................................................................................................... 22
Heap size ............................................................................................................................................. 22
JIT compiler settings ............................................................................................................................ 23
Notices and License Agreements ............................................................................................................... 24
Notices..................................................................................................................................................... 24
License Agreements................................................................................................................................ 25
Apache License Agreement, Version 1.1 ............................................................................................ 25
Apache License Agreement, Version 2.0 ............................................................................................ 25
FileNet Corporation
Introduction
BPF is a Case Management framework application. In contrast to BPM, which typically operates with only
a single workflow object, or ECM, which operates with a single document or piece of content when
manipulated through Workplace, BPF operates with complex business objects. A BPF business object
(referred to as a Case) is a collection of custom objects in a CE repository, which include the Case object,
attachment objects (documents, folders, or custom objects), audit trail event objects, etc. A BPF Case
may or may not be related to one or more workflow objects in the PE as well. BPF always operates Case
in terms of BPF Cases, although it could be configured to mimic BPM step processor behavior. BPF
presents its business objects (Cases) in a consistent and very intuitive manner, hiding the complexity of
the different components stored and managed in different repositories, allowing for synchronization of the
individual Case, its attachments (both documents and custom objects) and workflow. BPF transactions
are significantly more complex than the typical BPM or ECM transactions, as one BPF transaction
initiates multiple object transactions in multiple products and repositories.
The key components of BPF are its configurable user interface (the BPF Web Application) and a
framework for background step processing.
The BPF Web Application is built around the AJAX (Asynchronous JavaScript and XML) development
model and makes extensive use of the FileNet P8 Platform Web Application Toolkit (WAT) as well. The
BPF Web Application exposes Case Management services via an action dispatcher servlet. The Web
client uses XMLHTTP (AJAX) for communication with the action dispatcher. The design of the BPF Web
Application minimizes the client-server traffic by updating the browser only with the data that has
changed. The BPF Web Application also contains a set of client-side JavaScript functions that employ
data validation techniques, minimizing unnecessary round trips to the web server.
The BPF Web Application user interface layout is metadata driven and is built dynamically upon user
request. The metadata describing the user interface layout is stored in the BPF Metastore database and
is configured via the BPF Explorer administrative tool. When the user makes a request to retrieve
business objects, the business object presentation manifest and any associated business rules are
retrieved from the BPF Metastore, packaged as XML, and then sent to the browser, where the proper
HTML is rendered via client-side XSL transformation. The BPF Metastore Cache Manager virtually
eliminates the database traffic by caching all frequently used presentation manifest information.
The BPF background step processor framework is implemented as a FileNet P8 Platform Component
Integrator Java adaptor. This allows BPF operations to be placed as steps on the process map. Each
operation is configurable and allows the workflow designer to implement both simple and relatively
complex background processes with no developer assistance required. The key operations available in
BPF include: Create Case, Attach Document, Update Case, and Log Event. Note that Create Case and
Attach Document both support the attachment of custom objects as well as documents.
Objective
This section explains some of the key performance-related aspects of BPF. It includes a high-level
description of the BPF architecture so as to provide a better understanding of the performance and
scalability related aspects of BPF as well as of the tuning parameters that can impact its performance.
NOTE It is recommended that system administrators implementing BPF first review and implement
recommendations published in the FileNet P8 Platform 4.0 Performance Tuning Guide to tune the
baseline FileNet P8 Platform environment before tuning BPF.
FileNet Corporation
FileNet Corporation
It is much less expensive to handle this kind of filtering at the SQL level than at the ResultSet level, after
the fact.
Manual Role membership is assigned and managed via BPF Explorer only.
LDAP group integration Role membership is managed via LDAP security group membership.
BPF roles are linked to LDAP groups.
Workplace access roles Role membership is managed via LDAP security group membership.
BPF roles are linked to Workplace access roles, which are linked to LDAP groups.
For reasons of performance enhancement, it is strongly recommend that you use Workplace access roles
instead of direct LDAP integration, especially in cases where the LDAP directory is large or complex
(containing many levels of nested groups/folders).
FileNet Corporation
BPF Development and Support will not support any such customizations beyond providing
examples, such as the following one, of how this might be done in principle.
Other, similar, queries for the Attachment tab and Viewer Documents List can also be found in
BPF Explorer under Applications Settings > Web Application as well, and could potentially be
customized in similar ways.
FileNet Corporation
In the case of an actual BPF Case with Bp8CaseID 66746 and two attachments (one a Document and
one another Case object), the ^1 and ^2 are being replaced to produce the following actual CE query:
select a.Bp8ObjectID as Id, a.Bp8ObjectType as ObjectType, a.Id as AttachID, d.DocumentTitle,
d.VersionSeries, d.VersionStatus, d.MajorVersionNumber, d.MinorVersionNumber, d.MimeType,
d.isReserved, d.IsVersioningEnabled, f.FolderName, c.Bp8CaseID from ((Bp8Attachment a left
join Document d ON d.VersionSeries = a.Bp8VersionSeries) left join Folder f ON f.Id =
a.Bp8ObjectGUID) left join CustomObject c ON c.Id = a.Bp8ObjectGUID where a.Bp8CaseID = 66746
and (((VersionStatus = 1 OR VersionStatus is null) AND d.isCurrentVersion = True) OR
a.Bp8ObjectType = 15) order by a.Bp8ObjectType desc, f.FolderName asc, d.DocumentTitle asc
In the CE Catalog trace log, this CE SQL query is being converted to actual Microsoft T-SQL as follows
by CE itself before being executed against the object store database:
Generic T1
ORDER BY
T1.u42_bp8objecttype DESC,
T3.name ,
T2.u2e_documenttitle >
The following is a example of a customized version of this query, which assumes that the customer in
question is using CustomObjects as attachments:
select a.Bp8ObjectID as Id, a.Bp8ObjectType as ObjectType, a.Id as AttachID, d.DocumentTitle,
d.VersionSeries, d.VersionStatus, d.MajorVersionNumber, d.MinorVersionNumber, d.MimeType,
d.isReserved, d.IsVersioningEnabled, f.FolderName from (Bp8Attachment a left join Document d
ON d.VersionSeries = a.Bp8VersionSeries) left join Folder f ON f.Id = a.Bp8ObjectGUID where
a.Bp8CaseID = ^1 and ^2 order by a.Bp8ObjectType desc, f.FolderName asc, d.DocumentTitle asc
In the case of an actual BPF Case with Bp8CaseID 66746 and two attachments (one a Document and
one another Case object), the ^1 and ^2 are being replaced to produce the following actual CE query:
select a.Bp8ObjectID as Id, a.Bp8ObjectType as ObjectType, a.Id as AttachID, d.DocumentTitle,
d.VersionSeries, d.VersionStatus, d.MajorVersionNumber, d.MinorVersionNumber, d.MimeType,
FileNet Corporation
This query still returns any custom objects that might be attached to Case 66746, but without the extra
join to the CustomObject virtual table (and thus without the additional information such as c.Bp8CaseID
returned by the default query). As long as custom objects are not being used as attachments, this should
be no problem, and the resulting query should be faster because it avoids the extra join.
In the CE Catalog trace log, this CE SQL query is being converted to actual Microsoft T-SQL as follows
by CE itself before being executed against the object store database:
2006/02/25 01:04:00.250 0984 0230 Text0<SELECT T1.u41_bp8objectid, T1.u42_bp8objecttype,
T1.object_id, T2.u2e_documenttitle, T2.version_series_id, T2.version_status,
T2.major_version_number, T2.minor_version_number, T2.mime_type, T2.is_reserved,
T2.versioning_enabled, T3.name, T1.object_class_id, T1.security_id, T2.object_class_id,
T2.security_id, T3.object_class_id, T3.security_id
FROM
Generic T1
ORDER BY
T1.u42_bp8objecttype DESC,
T3.name ,
T2.u2e_documenttitle >
Assumes that the customer in question is not storing their attached documents in CE folders
This avoids the extra joins to both Folder and CustomObject, and returns only Documents.
select a.Bp8ObjectID as Id, a.Bp8ObjectType as ObjectType, a.Id as AttachID, d.DocumentTitle,
d.VersionSeries, d.VersionStatus, d.MajorVersionNumber, d.MinorVersionNumber, d.MimeType,
d.isReserved, d.IsVersioningEnabled from Bp8Attachment a left join Document d ON
d.VersionSeries = a.Bp8VersionSeries where (IsClass(d, CaseManagementDocuments) or IsClass(d,
Email)) and a.Bp8CaseID = ^1 and ^2 order by a.Bp8ObjectType desc, d.DocumentTitle asc
In the case of an actual BPF Case with Bp8CaseID 66746 and two attachments (one a Document and
one another Case object), the ^1 and ^2 are being replaced to produce the following actual CE query:
select a.Bp8ObjectID as Id, a.Bp8ObjectType as ObjectType, a.Id as AttachID, d.DocumentTitle,
d.VersionSeries, d.VersionStatus, d.MajorVersionNumber, d.MinorVersionNumber, d.MimeType,
d.isReserved, d.IsVersioningEnabled from Bp8Attachment a left join Document d ON d.VersionSeries
= a.Bp8VersionSeries where (IsClass(d, CaseManagementDocuments) or IsClass(d, Email)) and
a.Bp8CaseID = 66746 and (((VersionStatus = 1 OR VersionStatus is null) AND d.isCurrentVersion =
True) OR a.Bp8ObjectType = 15) order by a.Bp8ObjectType desc, d.DocumentTitle asc
According to the CE Catalog trace log, this CE SQL query is being converted to actual Microsoft T-SQL
as follows by CE itself before being executed against the object store database:
FileNet Corporation
10
Generic T1
ORDER BY
T1.u42_bp8objecttype DESC,
T2.u2e_documenttitle >
NOTE Customers and project teams are responsible for developing and testing their own customized
versions of this and the other CE queries configured for the Attachment tab and Viewer Documents List
that can also be found in BPF Explorer under Applications Settings > Web Application as well, and could
potentially be customized in similar ways. Nor can BPF Development or Support guarantee any specific
performance gains for any such customizations.
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
FileNet Corporation
11
</layout>
</appender>
</layout>
</appender>
<root>
<level value="error"/>
<appender-ref ref="external"/>
</root>
</log4j:configuration>
12
Annotation viewing
Currently there is a known significant performance issue in the FileNet Java Viewer when it checks for
annotations. Until a patch is available, it is suggested that annotation checking (and display) be turned off,
if possible. To implement this, the Java Viewer JSP file needs to be modified directly to disable
annotations: Workplace\UI-INF\jsp\ui\WcmJavaViewer.jsp. Contact CSS to request assistance in
modifying this file.
Bulk Processing
The bulk processing function in BPF was designed to process only a small number of Cases at a time
and there is a practical and physical limit as to how many objects can be processed at once. The
recommendation is therefore to keep the number of items below 50 at a time and definitely no more than
100 at a time. In addition to performance considerations within BPF, there are CE limitations (length of
the SQL query) that would not allow processing more than approximately 150 at a time.
FileNet Corporation
13
Add the lines as indicated in red above, close any IE browser sessions currently pointing to BPF, clear
the browser cache on each client machine, and then retry. The expected result is that you should not see
any message indicating the Inbasket(s) list and that your cases will open from the Search Results much
more quickly.
Enumeration Batch Size - The Enumeration Batch Size parameter refers to how may
enumerated items the CE will fetch in one request. By default, the Enterprise
Manager shows this value as zero. The actual batch size value used by the CE in this
situation is 20. Tests performed in the FileNet test lab showed improved performance
by increasing the parameters value to 50.
Default Query Batch Size - The Default Query Batch Size parameter refers to how
many items the CE will fetch per roundtrip to the server. By default, the Enterprise
Manager shows this value as zero. The actual batch size value used by the CE in this
situation is 20. Tests performed in the FileNet test lab showed improved performance
by increasing the parameters value to 50.
14
Object
Bp8Attachment
Bp8Attachment
Bp8Attachment_Bp8Case
Bp8AuditLogItem
Bp8AuditLogItem_Bp8Case
Bp8Case
Bp8CaseID
To accomplish this, do the following for each of the items previously listed using FileNet Enterprise
Manager:
1. Navigate to Enterprise Manager > {os display name} > Other Classes > Custom Object > Bp8Object.
2. Right click on the appropriate object.
3. Select Properties.
4. Select Property Definitions tab.
5. Check the Inherited Properties check box.
6. Select the appropriate field name.
7. Click Edit.
8. Verify that the Indexed text box has value of single indexed. If not:
a. Click Set/Remove button.
b. Click Set radio button
c.
d. Click OK.
9. Click OK to close properties page.
In addition, it has been found that putting database indexes on the object_class_id column of both the
Generic and DocVersion tables in the CE object store (directly through the RDBMS) can provide a
significant performance boost for BPF, even though object_class_id is not a BPF-specific property.
FileNet Corporation
15
Create indices
Make sure to create indices on the queue fields defined as sortable columns in BPF Inbaskets.
FileNet Corporation
16
BEA WebLogic
Web container thread pool settings
The thread count value should be set to a value greater than or equal to maximum user load your
application can have at a time. For example, if an application can have as many as 100 users connected
and working at a time, then the minimum recommended value for max connections would be 100.
weblogic.admin.RMI Both administration servers and managed servers have this queue; it is
reserved for administrative traffic; you cannot reconfigure it.
Unless you configure additional execute queues, and assign applications to them, Web Applications and
RMI objects use weblogic.kernel.default.
17
Initial capacity
The Initial Capacity setting specifies the minimum number of physical connections to maintain. Until this
number is reached, the pool maintenance thread does not discard physical connections. This value
should be set to a reasonable number depending upon customer's requirement.
Heap Size
Initial and maximum heap size
The preceding changes are made through the administration console and saved in BEA's config.xml file.
By contrast, you need to make this change and the following changes by altering the actual script that is
used to start up the BEA WebLogic server instance. Specifically, the -Xmx and
-Xms flags passed to the java.exe need to be (re)configured.
FileNet Corporation
18
topten.html#1120355
Initial heap size specifies the initial heap size available to the JVM code, in megabytes. Increasing the
minimum heap size can improve startup. In general, increasing the size of the Java heap improves
throughput until the heap no longer resides in physical memory. After the heap begins swapping to disk,
Java performance suffers drastically.
The physical memory usage must be shared between the JVM and the other applications, such as, the
database. For assurance, use a smaller heap, for example 64MB, on machines with less memory.
Try a maximum heap of 256MB on a smaller machine, that is, less than 1GB of physical memory, 512MB
for systems with 2GB memory, and 1024MB for larger systems. The minimum heap size depends on the
application. Setting the minimum heap size equal to the maximum avoids the onset of garbage collection
activity. Subsequent garbage collection cycles are fewer, but have a longer duration that can affect
performance.
As per the FileNet P8 Platform 4.0 Performance Tuning Guide, it is recommended that you adhere to the
following BEA recommendations:
For clients running WLS 7.x, BEA recommends that 80 - 85% of the machines physical memory is
allocated to the heap, as long as that value does not exceed 1 GB. Clients running WLS 8.x should
follow the same rule, however they should not exceed a heap of 2 GB in size. In addition, BEA
suggests that the minimum and maximum values for the heap be equal. For both versions of WLS,
the suggestion above assumes that users are running a single instance of WLS.
The arguments listed below would be added to your startup script if you were to allocate a minimum and
maximum size of 1 GB to your heap:
-Xms1024m -Xmx1024m
FileNet Corporation
-Djava.compiler=NONE
19
ConnectionIOTimeout Specifies the maximum number of seconds to wait when trying to read
or process data during a request.
The default value is five seconds. This value determines how long the application server waits
while receiving two subsequent data packets for the same HTTP request. For example, with the
default ConnectionIOTimeout setting of five seconds, if an HTTP client sends two data packets
spaced six seconds apart, the process times out, and the server throws a
java.io.InterruptedIOException error. The server terminates the HTTP request, and the HTTP
client must resubmit the request.
ConnectionKeepAliveTimeout Specifies the maximum number of seconds to wait for the next
request on a keep-alive connection.
FileNet Corporation
20
IBM WebSphere
Servlet caching
Configuring servlet caching
Enable servlet caching to save the output of servlets in memory using the dynamic cache service.
Enabling the dynamic cache service improves application performance by caching the output of servlets,
Web services, and WebSphere commands into memory
FileNet Corporation
21
Heap size
Initial heap size specifies the initial heap size available to the JVM code, in megabytes. Increasing the
minimum heap size can improve startup. For the WebSphere application server, the number of garbage
collection occurrences is reduced and a 10% gain in performance is realized.
In general, increasing the size of the Java heap improves throughput until the heap no longer resides in
physical memory. After the heap begins swapping to disk, Java performance suffers drastically.
The physical memory usage must be shared between the JVM and the other applications, such as, the
database. For assurance, use a smaller heap, for example 64MB, on machines with less memory.
Try a maximum heap of 256MB on a smaller machine, that is, less than 1GB of physical memory, 512MB
for systems with 2GB memory, and 1024MB for larger systems. The minimum heap size depends on the
application. Setting the minimum heap size equal to the maximum avoids the onset of garbage collection
activity. Subsequent garbage collection cycles are fewer, but have a longer duration that can affect
performance.
As per the FileNet P8 Platform 4.0 Performance Tuning Guide, it is recommended that you adhere to the
following IBM recommendations:
For Solaris customers running WS 5.0.x, it is recommended that 80 - 85% of the machines physical
memory is allocated to the heap, as long as that value does not exceed 1 GB. Clients running WAS
5.1.x on Solaris should follow the same rule, however should not exceed a heap of 2 GB in size.
For Windows customers running WebSphere, it is suggested that 80 - 85% of the machines physical
memory be allocated to the heap regardless of the version of WS being used.
NOTE Both suggestions made above assume only a single instance of WS in running on the system.
The arguments listed below would be added to your startup script if you were to allocate a minimum and
maximum size of 1 GB to your heap:
-Xms1024m -Xmx1024m
FileNet Corporation
22
FileNet Corporation
23
FileNet Corporation
24
Used with the Apache Lucene search engine is PDFBox, a Java PDF Library.
2001 Liquent, Inc. All rights reserved. This software is provided under a license agreement with
Liquent. Use of this software and all related documentation is subject to and limited by the terms
and conditions stated in such software license agreement.
See the Centera License Agreement in the following section for copyright information pertaining
to EMC Centera.
See the Jaxen License Agreement in the following section for copyright information pertaining to
Jaxen.
CONTAINS IBM(R) 32-bit Runtime Environment for AIX(TM), Java(TM) 2 Technology Edition,
Version 1.4 Modules. Copyright IBM Corporation 1999, 2002 All Rights Reserved.
License Agreements
Apache License Agreement, Version 1.1
Redistribution and use in source and binary forms, with or without modification, are permitted provided
that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
the following disclaimer in the documentation and/or other materials provided with the distribution.
3. The end-user documentation included with the redistribution, if any, must include the following
acknowledgment:
4. "This product includes software developed by the Apache Software Foundation
(http://www.apache.org/)."
5. Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party
acknowledgments normally appear.
6. The names "Apache" and "Apache Software Foundation" must not be used to endorse or promote
products derived from this software without prior written permission. For written permission, please
contact [email protected].
7. Products derived from this software may not be called "Apache", nor may "Apache" appear in their
name, without prior written permission of the Apache Software Foundation.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE
SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
25
FileNet Corporation
26
You must retain, in the Source form of any Derivative Works that You distribute, all copyright,
patent, trademark, and attribution notices from the Source form of the Work, excluding those
notices that do not pertain to any part of the Derivative Works; and
d. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that
You distribute must include a readable copy of the attribution notices contained within such
NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at
least one of the following places: within a NOTICE text file distributed as part of the Derivative
Works; within the Source form or documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and wherever such third-party notices
normally appear. The contents of the NOTICE file are for informational purposes only and do not
modify the License. You may add Your own attribution notices within Derivative Works that You
distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such
additional attribution notices cannot be construed as modifying the License. You may add Your
own copyright statement to Your modifications and may provide additional or different license
terms and conditions for use, reproduction, or distribution of Your modifications, or for any such
Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work
otherwise complies with the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally
submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions. Notwithstanding the above, nothing herein
shall supersede or modify the terms of any separate license agreement you may have executed with
Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service
marks, or product names of the Licensor, except as required for reasonable and customary use in
describing the origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides
the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without
limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or
FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any risks associated with Your
exercise of permissions under this License.
FileNet Corporation
27
FileNet Corporation
28
FileNet Corporation
29
FileNet Corporation
30