Adobe DevNet article by Jeff Stanier, product manager for LiveCycle Designer ES2.
For additional details on what is new in LiveCycle ES2 in general, see this. Also, the LiveCycle Developer Center has additional learning resources.
Adobe DevNet article by Jeff Stanier, product manager for LiveCycle Designer ES2.
For additional details on what is new in LiveCycle ES2 in general, see this. Also, the LiveCycle Developer Center has additional learning resources.
Since LiveCycle ES is server-side software, the J2EE appserver hosting it should ideally be configured to start automatically after a server restart. On Novell SUSE Enterprise Linux, this requires changes to the run.sh JBoss startup file to fit the requirements of SUSE's chkconfig utility.
1) Download the jboss run file (make sure it does not have any extensions such as "txt")
2) Edit it to fit your environment
3) Move it to /etc/init.d/ with 755 permissions, owned by root
4) Download the required config file (make sure it does not have any extensions such as "txt")
5) Edit it to fit your environment
6) Move it to /etc/sysconfig/ with 644 permissions, owned by root
7) login as 'root', cd to /usr/sbin and run the command:
chkconfig jboss on
Verify that appropriate Start and Stop (Kill) soft links have been created in /etc/init.d/rc3.d and /etc/init.d/rc5.d When the server is restarted, the S10jboss link to /etc/init.d/jboss will be invoked to start JBoss. When the server is shut down, the K01jboss link to /etc/init.d/jboss will be invoked. 10 makes sure that JBoss will be started last (after all other services have been started, including MySQL). 01 makes sure that JBoss will be one of the first services to be shutdown on server shutdown.
You can also manually stop JBoss as root by running the command ./jboss stop from /etc/init.d/
Creating a soft link to /etc/init.d/jboss from /usr/sbin/ will let you run this from any directory since /usr/sbin/ is usually in the PATH envitronment variable. The command is (as root):
ln -s /etc/init.d/jboss /usr/sbin
DBAs and JBoss system administrators are weary of having the password to the LiveCycle database in cleartext in the data source configuration XML file. JBoss provides instructions here on how to use it in encrypt form.
1) Encrypt database password
The following command will encrypt the password "lc_password":
java -cp C:\Programs\jboss_es2\lib\jboss-common.jar;C:\Programs\jboss_es2\lib\jboss-jmx.jar;C:\Programs\jboss_es2\server\lc_mysql\lib\jbosssx.jar;C:\Programs\jboss_es2\server\lc_mysql\lib\jboss-jca.jar org.jboss.resource.security.SecureIdentityLoginModule lc_password.
Obviously, you should replace the paths to the JAR files with yours. In the above example, the JBoss configuration is "lc_mysql"
If successful, you should get a response like as follows:
Encoded password: -2d19d44d319c1d9e008fba5553e14ea0
2) Create new Application Policy
Edit the %JBOSS_HOME%\server\lc_mysql\conf\login-config.xml file and create a new application policy that would look something like this.
3) Configure data source with the new Application Policy
Replace the following:
<user-name>lc_db_usr</user-name>
<password>password</password>
with this:
<security-domain>EncryptDBPasswordAppPolicy</security-domain>
where "EncryptDBPasswordAppPolicy" is the name of the 'application policy' you created in %JBOSS_HOME%\server\
This has been tested to work with MySQL. Your mileage with Oracle, SQL Server etc may vary.
If you have faced issues related to Assertion Expiry while performing service invocation using the client sdk then Renewing the context to handle session expiry recipe can be followed to properly handle the issue
Charles is a shareware tool that can be used to debug connectivity and other issues with LiveCycle Workspace. A Firefox plugin is also available. Evaluation version is free for 30 days.
Once installed and configured, it will give you very detailed information on the requests being sent by the browser to the LiveCycle server as well as the responses from the LiveCycle server back to the browser. It is supported on Windows, MacOS and Linux. It also has a 64-bit version.
AMF3 is supported natively, with an AMF tab that displays the contents of AMF3 messages in a readable hierarchical format.
It is essentially a Java proxy application that needs a JRE to be installed (the JAVA_HOME environment variable needs to be set).
MAX 2009 ended last week. By all accounts, LiveCycle sessions experienced a hitherto unprecedented surge in interest with many getting sold out. For those that couldn't make it to MAX 2009 due to various reasons, here are links to those LiveCycle sessions that Adobe has published. For a list of all of the MAX sessions, see the MAX Session Locator.
1) What's New in LiveCycle ES2 (Marcel Boucher, Senior Product Manager, Adobe Technical Marketing) - Duration 0:56
2) Developing for Information Assurance with LiveCycle ES2 (Jonathan Herbach, Adobe Senior Product Manager) - Duration 0:57
3) How to Architect Adobe LiveCycle ES into Your Enterprise Solutions (Danny Saikaly, Technology Practice Leader for Adobe Professional Services) - Duration 1:14
4) Understanding the Building Blocks of Adobe's Solution Accelerator Program (Ashish Agrawal, Adobe Product Manager and Girish Bedekar, Adobe Solutions Accelerator Architect) - Duration 0:51
5) Enterprise Cloud Computing with Adobe LiveCycle Developer Express (David Tompkins, Chief Architect of LiveCycle Developer Express and Sven Claar, Adobe Advanced Technology Labs) - Duration 0:43
6) Effective Form Design for Developers (Angie Okamoto of Easel Solutions) - Duration 1:02
7) WCAG2 Compliance with PDF Forms (Charlie Pike of The Paciello Group) - Duration 0:58
8) PDF Inside and Out (Leonard Rosenthal, Adobe PDF Standards Architect) - Duration 1:08
9) High-Performance Real-Time Messaging with Flex and LiveCycle Data Services (Mete Atamel, Adobe Computer Scientist) - Duration 1:01
Although LiveCycle ES is supported on a wide variety of enterprise platforms, there are combinations of J2EE appserver-DB-OS that might not be supported. For example, JBoss on AIX is not supported. WebSphere with MySQL is not supported. Sybase is not supported at all.
To ensure that you install LiveCycle on a supported platform, please consult the most appropriate "Preparing to Install" guide or use the Software Environment and Compatibility Check (SECC) form. The SECC form asks all the relevant questions when it comes to an installation of LiveCycle in a particular environment. It is recommended because you have the option to have it reviewed by Adobe.
Since LiveCycle Workspace ES is an application built with Flex, load-testing business processes (long-lived orchestrations) built with it can be a challenge if you are using versions of LoadRunner, SilkPerformer etc that do not support the AMF3 protocol.
Neotys NeoLoad supports AMF3 natively. If you have prior experience with load testing tools, you can get a load-test scenario for Workspace developed and running in about 4-6 hours using NeoLoad. Neotys provides a downloadable 30-day evaluation copy. Sample project is available (4.8 MB) lc_workspace.zip
Immediately after recording a scenario, it will ask you for the flex-messaging-data.jar file. You can obtain it from %LC_INSTALL_ROOT%\LiveCycle_ES_SDK\misc\DataServices\Server-Libraries\
Please note that the forms used in the process should be XDP, not PDF. Also, ensure that Process Management ES works in your environment. Instructions are available here.
As most experienced load-testers know, the trick to developing solid load-test scripts is knowing which parameters are dynamic and therefore have to be parsed out of server responses and re-used in subsequent requests to the server. For Workspace ES in 8.2.1 (Update1), these parameters are as follows:
JSESSIONID
The JSESSIONID (B93D4FA6F9FDA1911CD701FB5C310887) is returned by the server when you load the login page (/workspace-server/determine-locale) as this, for example:
Set-Cookie: JSESSIONID=B93D4FA6F9FDA1911CD701FB5C310887; Path=/
authData
authData (c3RAQENDIyNhdUBAMA==) is also returned by the server when you load the login page (/um/login) as this, for example:
Set-Cookie: authData=c3RAQENDIyNhdUBAMA==; Path=/
lcAuthToken
lcAuthToken (272ED3A8-D412-8068-E1F3-610FF7CFE531) is returned by the server when you login with a userID and password (/um/login) as this, for example:
Set-Cookie: lcAuthToken=272ED3A8-D412-8068-E1F3-610FF7CFE531; Path=/
oid
oid (9EF6E50E-FAE4-93A0-A70C-580518BC4AD9) is also returned by the server when you login (/workspace-server/authenticate) as this, for example:
valid=true&oid=9EF6E50E-FAE4-93A0-A70C-580518BC4AD9&userid=rwoodard&displayName=Rye+Woodard
When you submit the form, the value for AWS_ASSIGNED_ID has to be parameterized with the value of oid as follows:
<AWS_ASSIGNED_ID>${oid}</AWS_ASSIGNED_ID>
taskId
The taskId (111) is returned to you in an AMF message when you start a process by loading its init form. You cannot parse this unless your load-test tool understands AMF3. It looks like this:
<taskId tagClass="double">111.0</taskId>
When you submit the form, the value for AWS_TASKID has to be parameterized as follows:
<AWS_TASKID>${Task_ID}</AWS_TASKID>
formName
The URL for the form is also returned to you in an AMF message when you start a process by loading its init form, for example like this.
<url tagClass="String">http://localhost:8080/workspace-server/documents/3727297134487800504-9.pdf</url>
The form name (3727297134487800504-9) will change from invocation to invocation and has to be parameterized for your load-test script to work.
When you submit the form, the value for pdf href has to be parameterized as follows:
<pdf href="http://localhost:8080/workspace-server/documents/${Rendered_Form_Name}.pdf" xmlns="http://ns.adobe.com/xdp/pdf/">
LiveCycle Configuration Manager (LCM) offers a Command Line Interface (CLI) for configuring the appserver instance.
Using this CLI, you can automate the deployment of LiveCycle, including building the EAR files, configuring the appserver, deploying the EAR files to the appserver, bootstrapping the database, deploying DSCs, and validating these operations. You cannot deploy Samples using the CLI.
You need to create/edit a properties file with configuration settings that fit your environment and requirements which serves as input to the CLI commands. Please download a working (Windows) sample CLI_properties.txt.
Copy this file to the \bin folder of LCM ($LC_INSTALL_ROOT/configurationManager/bin/).
Appendix B ("Appendix - LCM Command Line Interface") of the 'Installing and Deploying LiveCycle ES" Guides provide detailed information regarding the use of the LCM CLI version.
Run the following commands (sequence matters):
1) Build the EAR files
ConfigurationManagerCLI.bat configureLiveCycle -f CLI_properties.txt
2) Configure the appserver (JDBC data source is configured manually)
ConfigurationManagerCLI.bat configureApplicationServer -f CLI_properties.txt -skip Datasource
Please note that you should manually deploy and start \configurationManager\deploy\adobe-lcm-lcvalidator.ear first. Also, make sure that all cluster members are running, otherwise this will fail
3) Deploy the EAR files to the appserver. Manual deployment is recommended although CLI can be used.
4) Re-start the appserver instance or cluster
5) Bootstrap (Initialize the database)
ConfigurationManagerCLI.bat initializeLiveCycle -f CLI_properties.txt
6) Deploy DSCs (Components)
ConfigurationManagerCLI.bat deployLiveCycleComponents -f CLI_properties.txt
Performance-testing applications built on LiveCycle ES in the TEST and STAGING environments is now routinely done by Adobe's customers. However, test results are not always reported in a consistent manner.
Most tests are usually driven by a load driver tool such as HP LoadRunner, Borland SilkPerformer, Apache JMeter or The Grinder. Of these tools, JMeter and The Grinder are free but have limited capabilities compared to their commercial peers such as simultaneously collecting server-side metrics such as CPU, disk, memory and network bandwidth utilization. These tools report elapsed time for each transaction, usually in seconds. Depending on the number of these data points in a time interval (usually an hour), you can obtain the transaction throughput and report it in terms of transactions per hour.
Importing this data into Microsoft Excel, Open Office Calc or Google Docs will let you analyze and chart the results. In the case of Microsoft Excel 2007, you will need to install the "Data Analysis Toolpack" Addin.
For more details on LiveCycle performance testing methodology, see this DevNet article.
The following are the results of a twelve-hour, 1 virtual user test conducted using the eTech LiveCycle Benchmark, a short-lived orchestration that Adobe's eTech team uses for benchmarking LiveCycle performance. Since LiveCycle is a J2EE application, tests of durations less than 2 hours are essentially invalid. Most JVMs require up to 30 minutes to achieve steady state.
1) Create a Scatter Plot and Eye-ball the Results
------------------------------------------------------------
In Excel, highlight the column containing your elapsed time numbers and choose the menu option Insert->Scatter.
The scatter plot above (click it to get a larger picture) tells me that except for some outliers (exceedingly high elapsed time) at the very beginning of the test, most of the transactions during the 12-hr test experienced elapsed times consistently between 36 and 39 seconds.
2) Generate Descriptive Statistics
-------------------------------------------
Choose the menu option Data->Data Analysis->Descriptive Statistics. The Input Range should be the column containing your elapsed time numbers. Make sure that the checkboxes for 'Summary Statistics' and 'Confidence Level for Mean' are checked.
Mean : 37.3269204
Standard Error : 0.061905612
Median : 37.041
Mode :37.152
Standard Deviation : 2.149827787
Sample Variance : 4.621759516
Kurtosis : 352.1330688
Skewness : 17.45734641
Range : 51.27
Minimum : 36.544
Maximum : 87.814
Sum : 45016.266
Count : 1206
Largest(1) : 87.814
Smallest(1) : 36.544
Confidence Level(95.0%) : 0.12145476
In the above result, the important metrics are Mean, Median, Minimum, Maximum, Count and Confidence Level (95%). It essentially tells me that if I were to repeat the same test under identical circumstances, 95 out of 100 transactions can be expected to experience an elapsed time of between (Mean - Confidence Level) and (Mean + Confidence Level) which is 37.21 seconds - 37.45 seconds.
If you are comparing the results of two or more test runs, Mean, Median and Standard Deviation are useful. If you have two test runs who have Mean Elapsed Time values which are very close to each other, the Standard Deviation (SD) can be used to make a decision. The test run with a lower SD is better. Also, tests with lower Medians are better.
3) Calculate Percentiles
------------------------------
Choose the menu option Data->Data Analysis->Rank and Percentile. The Input Range should be the column containing your elapsed time numbers.
...
59 : 44.002 : 7 : 99.50%
1000 : 42.833 : 8 : 99.40%
1001 : 42.049 : 9 : 99.30%
6 : 41.922 : 10 : 99.20%
63 : 41.433 : 11 : 99.10%
4 : 40.289 : 12 : 99.00%
58 : 39.75 : 13 : 99.00%
9 : 39.52 : 14 : 98.90%
60 : 39.18 : 15 : 98.80%
5 : 39.161 : 16 : 98.70%
...
The above result (snipped) tells me that in the test, 99% of the transactions experienced an elapsed time of 39.75 seconds or less. This is a key metric if you have to satisfy Service Level Agreements (SLAs) with the business unit that uses the application. If this number is above the SLA, you have to add additional members to the cluster or run LiveCycle on better hardware.
Recent Comments