June 19, 2009

LiveCycle Data Services (LCDS) 3 Public Beta

We launched LiveCycle Data Services (LCDS) 3 public beta yesterday on http://labs.adobe.com/technologies/livecycle_dataservices3/.  

The tooling has been enhanced and flex application development has been simplified. You can now develop new fully functional flex applications with no server code in just minutes.  

There are a few videos to help people get started http://labs.adobe.com/technologies/livecycle_dataservices3/videos/.

June 16, 2009

Creating a Dedicated Profile for LiveCycle in WebSphere ND

The 64-bit version of WebSphere Application Server 6.1 ND does not come with a "Profile Management Tool" (PMT). IBM expects people to use the manageprofiles (.bat or .sh) script in the /bin folder of the WebSphere installation (C:\WebSphere\AppServer\bin\ for example). It is a good idea to create a dedicated WebSphere profile for LiveCycle instead of default ones named AppSrv01, AppSrv02 etc.

Here is a sample command (SUSE Linux Enterprise Server 10 example) to create a WebSphere profile called "LiveCycle":
./manageprofiles.sh -create -profileName LiveCycle -profilePath /opt/WebSphere/AppServer/profiles/LiveCycle -templatePath /opt/WebSphere/AppServer/profileTemplates/managed

If the command succeeds, the response would be something like this:
INSTCONFSUCCESS: Success: Profile LiveCycle now exists. Please consult /opt/WebSphere/AppServer/profiles/LiveCycle/logs/AboutThisProfile.txt for more information about this profile.

If you navigate to /opt/WebSphere/AppServer/profiles/, you will see that there now is a folder called LiveCycle there containing the new profile.

Change folder to the /bin folder of the new LiveCycle profile and federate the node to your cell. Make sure that the Deployment Manager process that manages the WebSphere cell is running. Run a command that looks like this (SUSE Linux Enterprise Server 10 example):
./addNode.sh DMgr.company.com DMgr_SOAP_ADDRESS
where DMgr.company.com is the DNS name of the server running the Deployment Manager process that manages the WebSphere cell.

If successful, you will get a response such as this:
Node ServerDNSNameNode01 has been successfully federated.
Here ServerDNSName is the DNS name of the node you just federated without its DNS suffix. This will also start the Node Agent for the node.

This new node (ServerDNSNameNode01 ) will now be visible in the WebSphere Admin Console. You are now ready to create the server and/or clusters to deploy LiveCycle. Please note that the LiveCycle Configuration Manager (LCM) only configures servers and/or clusters. It does not create them for you.

June 4, 2009

Avoiding OutOfMemoryExceptions in LiveCycle Workbench

Workbench ES is LiveCycle ES' development IDE. It is Eclipse-based and hence is a desktop Java application. Java applications cannot utilize of all of the memory (RAM) available on the desktop unless they are explicitly allowed. This is specified by means of two JVM init arguments, namely -Xms (minimum memory to grab from Windows on startup) and -Xmx (maximum memory to grab if required, and never more).

-Xms and -Xmx can be configured in the workbench.ini file located in %WORKBENCH_INSTALL_ROOT%/Workbench/. If you are a frequent user of the 'Record and Playback' feature in Workbench, and if you use process variables in your orchestrations that can potentially hold large documents, the default JVM memory settings will cause OutOfMemoryExceptions. To avoid these, set -Xms and -Xmx to 256 MB and 1024 MB respectively, assuming that your desktop has enough RAM to spare.

1) Stop Workbench
2) Edit workbench.ini and save the changes
3) Start Workbench

Afterwards, the workbench.ini should look something like as follows (only the initial part shown):

#Product Runtime Configuration File
-vmargs
-Xms256M
-Xmx1024M
...
...

June 1, 2009

Adobe Flash Platform: New Beta Releases Available

Now available on Adobe Labs are the public beta releases of Adobe Flash Builder 4 (formerly Flex Builder), Adobe Flash Catalyst and the Flex 4 Framework. Flash Builder 4 is the next evolution of Flex Builder, and includes a long list of feature improvements, new data-centric development features, and a new design-develop workflow with Flash Catalyst. Flash Catalyst, also now available in public beta, is a new interaction design tool for rapidly building application user interfaces without coding. Both Flash Builder and Flash Catalyst are based on the updated Flex 4 framework, also available for beta download.

Visit Adobe Labs to find out more and to download the installers.

May 29, 2009

Introducing Adobe® LiveCycle® Café – Stay in touch with the LiveCycle community

LiveCycle Café is a web-connected desktop application made to help you stay in touch with the LiveCycle community, receive news, find information, and aggregate content related to Adobe LiveCycle ES in a timely and customized fashion. Created with Adobe AIR, LiveCycle Café is the one tool you need to search across the entire community knowledge base and stay in touch with the Adobe LiveCycle teams.

LiveCycle Café provides the following capabilities:
• Timely News - Highlights important news and alerts about LiveCycle and other enterprise relevant Adobe software
• Targeted Search - A dedicated tool searching across multiple targeted sites focusing on LiveCycle related content.
• RSS Reader - A feature-rich content aggregator that lets you share stories via AIM, Twitter, FaceBook, MySpace, email and more without copying and pasting, or dragging and dropping.
• Persistent Notes - Saves search results and other text snippets for viewing later, whether you are online or offline.
• LC Events - Allows you to quickly locate upcoming LiveCycle events in your area or online.
• LC Forums - A direct view into the latest information found in the LiveCycle section of Adobe Forums.

For more information and to download LiveCycle Café, visit http://www.adobe.com/go/cafe

May 27, 2009

Tour de LiveCycle launches

Based on the success of Tour de Flex, the platform evangelism team decided to offer a similar tool exploring the features of LiveCycle ES. They combined forces with Avoka Technologies’ LiveCycle gurus and created a vast collection of content including samples, videos, whitepapers and more.

If you are curious about LiveCycle ES, this is a great first step. If you are an existing LiveCycle ES customer, you will find Tour de LiveCycle a valuable reference tool.

More information on Tour de LiveCycle is available here.

May 26, 2009

Ask the Experts - Thursday, May 28, 2009

Starting Thursday, May 28, 2009 at 9:00 a.m. Pacific / 12:00 p.m. Eastern we are starting a monthly series of eSeminars called "Ask the Experts".  Each month we will feature a new guest speaker with a new topic of interest for LiveCycle developers and architects. This month's featured speaker: Scott MacDonald on The Adobe LiveCycle SDK and Quick Starts.

For details on the events and to add them to your calendar, please go to http://asktheexperts.host.adobe.com/.


May 25, 2009

Applying LiveCycle Service Packs

Adobe releases service packs for LiveCycle ES roughly once a quarter. There are separate service packs for LiveCycle Designer, Workbench as well as the Server. The Server service packs are usually about 1 GB in size. Since the older service packs are backed up, your server's disk space requirements will keep going up as you apply more service packs.

At a high level, the following are the steps you need to perform to update your LiveCycle installation with a new service pack:

1) Apply the service pack to your existing LiveCycle installation
2) Using LCM, re-build the EAR files
3) Undeploy the existing EAR files from the appserver(s)
4) Deploy the newly-built EAR files
5) Re-start the appserver instances
6) Using LCM, re-deploy the DSCs. Those DSCs that haven't changed will be left alone while others would be updated.
7) Perform basic validation tests

There is NO NEED to re-bootstrap the database.

If a DSC was changed, the lcm.0.log file at $LIVECYCLE_INSTALL_ROOT/configurationManager/log/ will have entries such as this:
com.adobe.livecycle.lcm.feature.deployment.DeployDSCs, DSC already installed but at a different version. DSC will now be updated with: com.adobe.livecycle.Assembler:8.2.3026.1.197218.8

Otherwise, the entries would look something like this:
com.adobe.livecycle.lcm.feature.deployment.DeployDSCs, DSC already installed. Skipping update for: com.adobe.repository.bindings.dsc.RepositoryService:8.2.2176.1.183920.1

May 21, 2009

LiveCycle - Additional Configuration for a Stable WebSphere JDBC Connection Pool

For a long-running, stable configuration of the WebSphere JDBC Connection Pool for a database (DB2, Oracle, SQL Server 2005), there are additional configuration steps that can be performed.

1) Enable pre-testing of pooled connections
2) Enable pre-testing of existing pooled connections

In the WebSphere Admin Console, navigate to JDBC providers->[Your_JDBC_Provider_Name]->Data sources->[Your_JDBC_Data_Source_Name]->WebSphere Application Server data source properties.

Check the checkbox for "Pretest existing pooled connections"
Check the checkbox for Pretest new connections.

In the "Pretest SQL string" field, enter:
SELECT COUNT(*) FROM LCDB2.EDCVERSIONENTITY.
Replace "LCDB2" with the actual name of your schema.

Apply and save the changes.

Repeat this for all of LiveCycle's data sources (IDP_DS, EDC_DS, JMS_DS).

Re-start the WebSphere appserver instances that host LiveCycle.

April 7, 2009

LiveCycle PDF Generator Best Practices

Because of the unique way LiveCycle PDF Generator ES invokes native applications to do what it does (convert native documents to PDF), there are a number of configuration steps that need to be strictly followed as a matter of best practice.

WINDOWS
-------------
1) Determine the userID whose identity the J2EE appserver will "run as"
2) Login as that user and perform all installs (MS Office, Acrobat, LiveCycle). If Office has already been installed by your IT department as the 'Local Administrator' user, and if you do not have Local Administrator privileges, make sure that the user that the J2EE appserver will "run as" is a member of the local group 'Administrators'.
3) Make sure the Print Spooler service is turned on and set to run automatically. The Acrobat install will not be complete otherwise.
4) Make sure that multiple versions of Acrobat are not installed on the same machine. If there are, uninstall all of them and re-start the server.
5) Ensure that the server disks are performant (at least 7,200 RPM, with at least 8 MB cache) because there is lots of file I/O involved
6) Set the 'TEMP' and 'TMP' user environment variables to a dedicated folder such as C:\USER_TEMP (PDFG uses this) so that you control where file I/O occurs. This also helps with maintenance (cleanup of orphaned files)
6) Set the 'TEMP' and 'TMP' system environment variables to a dedicated folder such as D:\SYSTEM_TEMP (Acrobat conversions use this folder) for the same reason as the previous step.
7) Write a batch script to cleanup those folders on server re-start

MICROSOFT OFFICE
------------------------
1) Install Microsoft Office, OpenOffice and other native applications before you install either Acrobat or LiveCycle.
2) Activate each application. Please note that in Office 2007, Word , Excel and PowerPoint can be activated together but Visio needs to be activated separately.
3) Start each Office application manually and address all dialogs (registration, user experience improvement etc).
4) Open Word. Disable "Auto Recovery".
5) Set "Default file location" to a folder you can monitor and periodically cleanup such as D:\OFFICE_TEMP
6) Do the same for Microsoft PowerPoint and Excel
7) Perform some Advanced customization. Microsoft Word offers a LARGE number of customizations which might help you get the best output.

ACROBAT
------------
1) Install Acrobat before you install LiveCycle.
2) Start Acrobat. Check for updates and apply them.
3) Use it to convert a few documents (Word, Excel etc). Dismiss all dialogs that come up (registration, user experience improvement etc). This is absolutely CRITICAL. This is a major cause of problems. The user experience improvement dialog is especially insidious because it comes up only after a certain number of invocations. If you have a PDFG environment where things stop working after 2-5 invocations, chances are that this is the cause.
4) Perform a conversion manually using Word, Excel etc.

LIVECYCLE
--------------
1) Install, configure and deploy LiveCycle
2) Verify that Acrobat_PATH is set.
3) If it applies to your scenario, ensure the following environment variables are also set - Notepad_PATH, Photoshop_PATH, WordPerfect_PATH, PageMaker_PATH, FrameMaker_PATH, OpenOffice_PATH
4) If you are running a full 64-bit environment, make sure that you also install a 32-bit JDK. Also ensure that the environment variable JAVA_HOME_32 is set to this JDK. Details here.
5) Perform a conversion using the LiveCycle Admin Console (navigate to Services->LiveCycle PDF Generator ES->Create PDF).

If the conversion fails, check the J2EE appserver's log for details - JBoss (server.log), WebLogic (managed server log), WebSphere (SystemOut.log). In the case of WebSphere, the FFDC (First Fault Data Capture) logs might also provide detailed information. If these do not contain any useful information, check the Windows Event Log (Application).

To perform some investigations yourself, see here to get an idea of all of the file I/O that happens during a PDFG operation.


Continue reading "LiveCycle PDF Generator Best Practices" »

April 4, 2009

Configuring Apache Web Server as Edge Cache for LiveCycle Performance

Even though Tomcat (the servlet and JSP container for JBoss) is a very capable HTTP server, fronting LiveCycle's JBoss instance with the Apache Web Server provides additional benefits. One of these is the performance boost provided by the caching of HTML pages, images, Javascript files, Flash SWF files etc. on the Apache Web Server so that the JBoss server does not have to waste its CPU cycles serving up these.

If you don't have the Apache Web Server installed yet, you can download it from here. These instructions assume that you are using version 2.2

First, Apache Web Server has to be configured to front JBoss. Instructions here.

Enabling caching is fairly straightforward. You don't need to do anything on the Tomcat/JBoss end. Edit the Apache Web Server's configuration file (httpd.conf) using a text editor.

1) Enable mod_mem_cache by removing the comment against the following entry:
LoadModule mem_cache_module modules/mod_mem_cache.so

2) Configure the cache by adding the following to the end of the httpd.conf file:
# http://httpd.apache.org/docs/2.2/en/mod/mod_mem_cache.html
<IfModule mod_mem_cache.so>
  CacheEnable mem /
  MCacheSize 40096
  MCacheMaxObjectCount 1000
  MCacheMinObjectSize 1
  MCacheMaxObjectSize 20048
</IfModule>

3) Save the file.

4) Re-start Apache Web Server

5) Access LiveCycle URLs such as /adminui multiple times.

5) Verify by checking the Apache Web Server access log. Instead of HTTP status codes such as 200, there should be more 304 codes logged. See here for more on HTTP Status Codes.

Continue reading "Configuring Apache Web Server as Edge Cache for LiveCycle Performance" »

April 2, 2009

Fronting LiveCycle/JBoss With Apache Web Server

There are use cases where LiveCycle administrators want to expose only a subset of its functionality to users and programs outside of the machine LiveCycle is hosted on. Firewalls can be used to block certain ports. Apache Web Server can be used as a reverse proxy so that only certain URLs are "visible" to external callers.

1) Download and install Apache Web Server 2.2 from here.

JBOSS CONFIGURATION
------------------------------

2) Assuming that the DNS name of the machine hosting the Apache Web Server is apache.company.com, edit the Tomcat configuration file ($JBOSS_HOME/jboss-4.2.0_mssql2005/server/all/deploy/jboss-web.deployer/server.xml) of the JBoss instance hosting LiveCycle so that the HTTP Connector configuration looks similar to this:
<Connector port="8080" address="${jboss.bind.address}"
proxyName="apache.company.com" proxyPort="80"
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />

APACHE WEB SERVER CONFIGURATION
-------------------------------------------------

3) Edit the configuration file of Apache Web Server (httpd.conf) and enable proxying by uncommenting the following lines:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

4) Also add the folowing lines for additional configuration
# Prevent Apache from acting like a forward proxy
ProxyRequests Off

# Control Client Access
<Proxy http://jboss.company.com:8080/>
  Order Deny,Allow
  Allow from all
</Proxy>

# Set TCP/IP network buffer size for better throughput (bytes)
ProxyReceiveBufferSize 4096

5) Assuming that the DNS name of the machine hosting the JBoss AS is jboss.company.com, add Reverse Proxy configuration
The following is a simplistic configuration where every request (/) is allowed:
ProxyPass / http://jboss.company.com:8080/
ProxyPassReverse / http://jboss.company.com:8080/

Here's a more restrictive configuration, allowing access only to the web UI of Rights Management and nothing else:
ProxyPass /edc http://jboss.company.com:8080/edc
ProxyPassReverse /edc http://jboss.company.com:8080/edc
ProxyPass /um http://jboss.company.com:8080/um
ProxyPassReverse /um http://jboss.company.com:8080/um
ProxyPass /rightsmgmt_help_en http://jboss.company.com:8080/rightsmgmt_help_en
ProxyPassReverse /rightsmgmt_help_en http://jboss.company.com:8080/rightsmgmt_help_en

More details are available here.

6) Re-start the Apache Web Server.

7) Re-start the JBoss instance that hosts LiveCycle ES

8) Verify by pointing your browser at the Apache machine:
http://apache.company.com/edc/Main.do

March 28, 2009

Reducing Latent CPU Utilization by LiveCycle JBoss Turnkey

While running the LiveCycle ES JBoss Turnkey (Windows), you will notice that even when you are not doing anything with LiveCycle, the CPU utilization is still about 5-10% If you use Microsoft's Process Monitor and watch the JBossService.exe (or java.exe, for non-turnkey JBoss) process that hosts the JBoss instance, you will notice several operations that cause this. Here are some things you can do to manage this.

Disable the Watch Folder of the Digital Signatures Sample Orchestration
------------------------------------------------------------------------------------------
The watch folder is called ..\LCWatchFolder\Signatures\. In the LiveCycle AdminUI, navigate to Services->Applications and Services->Service Management. Filter on the category 'Samples - DigitalSignatures'. Click on 'VerifyDigitalSignatures: 1.0'. Click on the EndPoints tab. Check the checkbox against the 'WatchedFolder' provider and disable it.

The watch folder functionality of LiveCycle essentially works by frequently polling the input folder for any input documents. Login to the LiveCycle Admin UI and disable the watch folder, assuming you are not using it!

Watch folders are expensive but convenient. If you have too many watch folders configured, you run the risk of them overwhelming your CPUs even when there's no work for them!

Configure LiveCycle Document Sweeps to Happen Less Often
----------------------------------------------------------------------------
In DEV environments, in the LiveCycle AdminUI, navigate to Settings->Core System Settings->Configurations and set 'Document sweep interval' to 600 (10 minutes) from the default 30 seconds.

Disable JBossAS Application Auto-deploy Feature
------------------------------------------------------------
This feature also works by a polling mechanism. It is less expensive on the CPU front. This feature lets you just drag and drop a new application (WAR or EAR) into the \deploy folder of JBossAS and have it deployed and started automatically. This is a great feature in a development environment but should be turned off in production and test environments.

In %JBOSS_HOME%\server\all\conf\jboss-service.xml, set the attribute 'ScanEnabled' of the mbean 'org.jboss.deployment.scanner.URLDeploymentScanner' to false.

Increase the JBossAS Log4J ConfigurationURL RefreshPeriod
---------------------------------------------------------------------------
In %JBOSS_HOME%\server\all\conf\jboss-service.xml, set the attribute 'RefreshPeriod' of the mbean 'org.jboss.logging.Log4jService' to 600 (10 minutes) from the default 60 seconds.

March 25, 2009

LiveCycle Global Document Storage FAQ

Can you tell us where in the configuration the location of the GDS is identified?
Login to the LiveCycle Admin Console (http://server:port/adminui) navigate to Settings->Core System Settings->Configurations. Look under “Global document storage root directory”.

Was a location defined at install time, or will this exist at some default location?
Yes, it was probably defined at install time. There is a default, which varies with the OS. It is a bad idea to leave it blank (default).

Is the GDS a file (or files) in the file system?
Yes, always. It can be a local filesystem but has to be an NFS/CIFS mount for a cluster. There can only be one of these, even if the cluster has 20 members.

If so, can this file(s) be copied (cp) or zipped?
Yes. But please make sure that the appserver instance hosting LiveCycle is stopped.

Does the GDS need to be in any particular state in order to copy it?
The ideal state is where the appserver instance(s) hosting LiveCycle is stopped. In 24x7 environments, put LiveCycle into “backup mode”.

The doc implies that the GDS will store long-term. If so, would tape backup make the most sense?
Not necessarily. The “long-term” implication probably comes from our use of the term “long-lived” which only means orchestrations (workflows) involving human actors. So if you have business processes that last months, that’s how long-term things need to be.

Can LiveCycle be changed to “backup mode” via a batch command script? If so, do you have an example you can share?
Those sample scripts are available at .../adobe/livecycle8.2/LiveCycle_ES_SDK/misc/Foundation/BackupRestoreCommandline/

The most fundamental thing to remember is that the backup of the database has to be time-synchronized with the backup of the GDS. More here.

March 23, 2009

LiveCycle - Installing Sun's 64-bit HotSpot JDK on Solaris

The installation of the 64-bit version of Sun's HotSpot JDK on Solaris on SPARC is different from the installs of the other versions. To get a 64-bit JDK up and running, you have to download and untar the 32-bit version first. Then, download and untar the 64-bit supplement which will add some additional libraries to the previous 32-bit installation to give the complete 64-bit environment.

- Go here
- Choose "JDK 5.0 Update nn" where "nn" is the latest patch level
- Choose "Solaris SPARC"
- Download and run jdk-1_5_0_17-solaris-sparc.sh
- Download and run jdk-1_5_0_17-solaris-sparcv9.sh

Ensure that in the server startup scripts, the JVM arguments include -d64 to start the 64-bit JVM. Also, in the case of WebLogic, the following line would be necessary in the setDomainEnv.sh script:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$WL_HOME/server/native/solaris/sparc64
Otherwise, you will get the following warning:
Unable to load performance pack. Using Java I/O instead. Please ensure that a native performance library is in...

Powered by
Movable Type 3.38