September 2009 Archives

Configuring LiveCycle With the Command Line Interface (CLI) of LCM

| No Comments

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

Analyzing and Reporting LiveCycle Performance Test Results Using Excel

| No Comments

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.

scatter.jpg

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.

Running LiveCycle on JBoss as a 64-bit Windows Service

| No Comments

In most Windows server environments, it is almost a necessity that JBoss be run as a Windows service that is configured to auto-start and auto-stop on Windows start and stop. Free tools have existed for 32-bit Windows/Java environments for some time but not for 64-bit environments. "JBoss Web Native Connectors" that were released by JBoss for JBoss 5.0 can now be used for JBoss 4.2 as well.

The following instructions also work for Windows Server 2008 64-bit although LiveCycle ES 8.2 is currently not supported on it.

1) Download the JBoss Web Native Connector for 64-bit Windows ("JBoss Native 2.0.6 Win64 AMD64/EMT64") from here.

2) Unzip the downloaded file. Copy all contents of the \bin folder to the \bin folder of your JBoss.

Edit service.bat

3) Make sure that the variables for Service Name (SVCNAME), Service Display (SVCDISP) and Service Description (SVCDESC) have values that reflect your JBoss environment. For example:
set SVCNAME=JBAS42SVC
set SVCDISP=JBossAS 4.2 for Adobe LiveCycle ES 8.2
set SVCDESC=JBoss Application Server Community Edition 4.2.0 GA/Platform: Windows x64

4) In the :cmdStart section, make sure that the call run.bat line is enhanced with the configuration name ("all" in this example) and bind IP address (0.0.0.0 for binding to all of the server's IP addresses) such as follows:
call run.bat -c all -b 0.0.0.0 < .r.lock >> run.log 2>&1

5) Repeat the same for the :cmdRestart section:
call run.bat -c all -b 0.0.0.0 < .r.lock >> run.log 2>&1

6) Save the file.

7) From the \bin folder of JBoss, create the Windows service using the following command:
service.bat install

If the command worked, you will get a response such as:
Service JBossAS 4.2 for Adobe LiveCycle ES 8.2 installed

8) Check the Services applet in Windows Control Panel for a new service listed as "JBossAS 4.2 for Adobe LiveCycle ES 8.2" which is the value of the SVCDISP variable in service.bat

9) Using the Services applet in Windows Control Panel, set the 'Startup type" to "Automatic".

10) In the "Recovery" tab, set First failure and Second failure recovery options such as "Restart the Service" and "Restart the Computer" respectively.

11) If needed, change the "Logon as" value from the default "Local System" account to another user or service account.

Verification

1) Start the service from the Services applet in Windows Control Panel

2) Watch (tail) the server.log to make sure that the service starts successfully.

3) Shutdown the service from the Services applet in Windows Control Panel and verify that it gets shut down successfully.

4) Make sure that a service re-start from the Services applet in Windows Control Panel also works.

Additional configuration can be performed using either the Services applet in Windows Control Panel or by using the built-in Windows Service Configuration utility (sc). From a command prompt, run the following command for additional details:
sc /help

For example, if the database service runs on the same machine instance, you can create a dependency on that service with the following command:
sc config JBAS42SVC depend= MSSQL$MYSERVER
where MSSQL$MYSERVER is the SVCNAME of the Microsoft SQL Server 2005 service running on the same server instance. Please note that there should NOT be any space before the = sign but there should be a space after the = sign. This is very important.

If successful, you will get a response such as follows:
[SC] ChangeServiceConfig SUCCESS

About this Archive

This page is an archive of entries from September 2009 listed from newest to oldest.

August 2009 is the previous archive.

October 2009 is the next archive.

Find recent content on the main index or look in the archives to find all content.