If you are experiencing performance issues with LiveCycle,
consider the following:
Synchronization issues: If many threads are waiting
at the same time in the same part of the code, obtain a thread dump
when the congestion passes.
Important: Thread
dumps may disable the JVM.
Slow external resources: If many threads are waiting
for a return message from an external source, obtain a thread dump
to find threads that are waiting for sources such as databases or
LDAP servers.
Slow GC collection: If verbosegc performs
compaction frequently, reduce the amount of garbage generated by
the application by introducing object pooling or caching. If the
log shows long garbage collection cycles in verbosegc,
reduce the maximum size.
High user CPU: If your CPU is running at 75% or higher,
consider these options:
Reduce the pool size of the
web container or ORB threads.
Reduce the number of database connections on the database
server.
If you experience consistently high CPU usage, consider adding
processing resources.
If the CPU is on the database server, reduce the datasource
maximum connection setting.
High datastore repository size: Some operations in
LiveCycle can cause a substantial increase in the size of the datastore
repository. For example, in the Correspondence Management Solution,
this can occur if you run a batch process that involves publishing
a large number of assets. You can use the datastore garbage collector
to clear out any temporary data from the repository.
To run
the datastore garbage collector:
Navigate to http://<hostname>:<port>/lc/system/console/jmx
and log in with administrator credentials.
Search and click com.adobe.granite (type Repository).
Search and click runDataStoreGarbageCollection(java.lang.Boolean delete).
Set java.lang.Boolean delete to true.
Click Invoke to run the garbage collector.
Importing package with large number of assets: When
you import a package that contains a large number of assets, you
may experience the following issue:
Java Heap Space
error
To resolve this issue, you need to increase the Java
Heap space to 4GB.
Correpondence Management and CRX user interfaces become inaccessible.
It
is recommended that you perform large import processes in a batch operation.
Slow performance or transaction timeout exception while using Administration Console* New for 10*
If you are performing multiple operations on large number of
files using Administration Console, you might experience slow performance
or receive the Timeout exception.
To resolve this issue, you must increase the transaction timeout
value for your application server. To configure the transaction
timeout value, see the product documentation for your application
server.
Improving performance during asynchronous service invocationFor improving performance during asynchronous invocation
of services, set the following JVM arguments:
For JBoss, add these arguments to: (Windows) the run.bat,
or the run.conf.bat file as per your JBoss installation.
(UNIX)the run.sh, or the run.conf file as per your JBoss
installation.
See “Configuring the JVM arguments” in the Installing and Deploying LiveCycle for WebSphere guide
for information on setting JVM arguments for WebSphere.
See “Configuring the JVM arguments” in the Installing and Deploying LiveCycle for WebLogic guide
for information on setting JVM arguments for WebLogic.
Remote invocation fails with application servers on pure IPv6If your LiveCycle server is deployed in a pure IPv6 environment,
remote invocation of services on the LiveCycle server might fail.
This is an issue with Sun JDK used with the clients. To avoid this
error, use the IBM JDK with clients when LiveCycle is deployed on
application servers in a pure IPv6 environment.
Process Management performance issue on OracleProcess Management throughput for Oracle databases is sometimes
observed to deteriorate over time. The LiveCycle development team
has made some SQL*Plus scripts available to help resolve this issue.
These scripts improve performance in scenarios having a large number
of users.
You can contact Adobe Enterprise Support and ask for scripts
associated with the TechNote titled "Process Management performance
issue on Oracle" (document ID cpsid_85089).
Improving Windows Server performance with LDAPUsing connection
pooling on the search connection can decrease the number of ports
needed by as much as 50% because that connection always uses the
same credentials for a given domain, and the context and related
objects are closed explicitly.
Configure Windows Server for connection poolingStart the registry editor by
selecting Start > Run and, in the Open box,
type regedit, and then click OK.
Go to the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
In the right pane of the registry editor, look for the TcpTimedWaitDelay value name.
If the name does not appear, select Edit > New > DWORD Value to
add it.
In the name box, type TcpTimedWaitDelay.
If you do not see an insertion point and New Value # inside
the box, right-click inside the right panel, select Rename from
the menu and then, in the name box, type TcpTimedWaitDelay.
Repeat steps 4 and 5for the following value names: MaxUserPort, MaxHashTableSize,
and MaxFreeTcbs.
Double-click inside the right pane to set the TcpTimedWaitDelay value; under
Base, select Decimal and, in the Value box, type 30.
Double-click inside the right pane to set the MaxUserPort value;
under Base, select Decimal and, in the Value box,
type 65534.
Double-click inside the right pane to set the MaxHashTableSize value;
under Base, select Decimal and, in the Value box,
type 65536.
Double-click inside the right pane to set the MaxFreeTcbs value;
under Base, select Decimal and, in the Value box,
type 16000.
Important: Serious problems may occur if you modify
the registry incorrectly by using Registry Editor or by another
method. These problems may require that you reinstall your operating
system. Modify the registry at your own risk.
Scheduler service configuration for nondefault JNDI URLs(Non-clustered environments only)
To function correctly, the Scheduler service may require some
additional configuration.
JBossOn JBoss, if the JNDI URL differs from the default JNDI
URL for the application server (that is, for JBoss: jnp://localhost:1099),
this is the JNDI URL for the IDP_DS that is managed by your application
server:
org.quartz.dataSource.idp.java.naming.provider.url
Create a new file named dscscheduler.properties.
Set the values of the above properties as necessary for the
app server node, such as the following text:
org.quartz.dataSource.idp.java.naming.provider.url =
jnp://localhost:1099/
org.quartz.jobstore.isClustered = true
org.quartz.scheduler.instanceId = AUTO
Add the JVM argument -Dadobe.idp.scheduler.properties=[Path to this file]/dscscheduler.properties to
the application server startup scripts/configuration.
WebSphereOn WebSphere, if the JNDI URL differs from the default
JNDI URL for the application server (that is, for WebSphere: iiop://localhost:2809),
this is the JNDI URL for the IDP_DS that is managed by your application
server:
org.quartz.dataSource.idp.java.naming.provider.url
Create a new file called dscscheduler.properties
Set the values of the above properties as necessary for the
app server node, such as the following values:
org.quartz.dataSource.idp.java.naming.provider.url =
iop://localhost:2809/
org.quartz.jobstore.isClustered = true
org.quartz.scheduler.instanceId = AUTO
Add the JVM argument -Dadobe.idp.scheduler.properties=[Path to this file]/dscscheduler.properties to
the application server startup scripts/configuration.
WebLogicOn WebLogic, if the JNDI URL differs from the default JNDI
URL for the application server (that is, for WebLogic: t3://localhost:7001),
this is the JNDI URL for the IDP_DS that is managed by your application
server:
org.quartz.dataSource.idp.java.naming.provider.url
Create a new file named dscscheduler.properties
Set the values of the above properties as necessary for the
app server node, such as the following values:
org.quartz.dataSource.idp.java.naming.provider.url =
t3://localhost:7001/
org.quartz.jobstore.isClustered = true
org.quartz.scheduler.instanceId = AUTO
Add the JVM argument -Dadobe.idp.scheduler.properties=[Path to this file]/dscscheduler.properties to
the application server startup scripts/configuration.
FileNet API excessive logging and performance issues on WebLogicFor LiveCycle installed on a WebLogic Server, IBM® FileNet
APIs might experience performance issues owing to the excessive
logging. To improve the performance in such cases, you should change
the logging level from 'debug' to 'Fatal'.
On FileNet Content Server, navigate to the C:\Program Files\FileNet\ContentEngine\config\samples
directory.
Copy the log4j.properties.client file to the LiveCycle server
machine and rename it to log4j.properties.
Open the log4j.properties file and comment out the entries
for the appenders FileNetTraceAppender and FileNetTraceRollingAppender: #=== FileNetTraceAppender
log4j.appender.FileNetTraceAppender=org.apache.log4j.FileAppender log4j.appender.FileNetTraceAppender.File=/p8_api_trace.log # This is the layout that the TraceLoggingConfiguration framework on the server uses.
# To use this layout , jace.jar must be present in the classpath. #log4j.appender.FileNetTraceAppender.layout=com.filenet.apiimpl.util.TraceLayout # Comment out the following lines if using the FileNet TraceLayout log4j.appender.FileNetTraceAppender.layout=org.apache.log4j.PatternLayout log4j.appender.FileNetTraceAppender.layout.ConversionPattern=%d %5p [%t] - %m\r\n #=== FileNetTraceRollingAppender log4j.appender.FileNetTraceRollingAppender=org.apache.log4j.RollingFileAppender log4j.appender.FileNetTraceRollingAppender.File=/p8_api_trace.log log4j.appender.FileNetTraceRollingAppender.MaxFileSize=100MB log4j.appender.FileNetTraceRollingAppender.MaxBackupIndex=1
# This is the layout that the TraceLoggingConfiguration framework on the server uses.
# To use this layout , jace.jar must be present in the classpath.
#log4j.appender.FileNetTraceRollingAppender.layout=com.filenet.apiimpl.util.TraceLayout
# Comment out the following lines if using the FileNet TraceLayout
log4j.appender.FileNetTraceRollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileNetTraceRollingAppender.layout.ConversionPattern=%d %5p [%t] - %m\r\n
Save the log4j.properties file.
Add the path of the folder containing the log4j.properties
file to the FileNet Component ID entry present in the adobe-component-ext.properties file placed
in the LiveCycle application server. In WebLogic application server,
this file is in [WL_HOME]/user_projects/domains/<domain
name>.
For example, if log4j.properties file is stored
at location: 'C:/log4j_file/log4j.properties', then add "C:/log4j_file"
to the adobe-component-ext.properties file.
Restart the application server.
Cache item expiry warnings when many concurrent users are accessing Content Services (deprecated)Note: Adobe is migrating Adobe® LiveCycle® Content
Services ES customers to the Content Repository built on the modern,
modular CRX architecture, acquired during the Adobe acquisition
of Day Software. The Content Repository is provided with LiveCycle
Foundation and is available as of the LiveCycle ES4 release.
The following warning message may appear in the application server
logs when multiple concurrent users are accessing Content Services:
ReadWriteCach W org.hibernate.cache.ReadWriteCache handleLockExpiry An item was expired by the cache while it was locked (increase your cache timeout): org.alfresco.repo.domain.hibernate.NodeImpl.properties
To resolve this issue, set the following JVM argument in the
application server startup scripts to use the Least Recently Used
(LRU) algorithm instead of the default heuristic algorithm to refresh ehcache:
-Dnet.sf.ehcache.use.classic.lru=true
|
|
|