Archive for the ‘Adobe LiveCycle’ Category

Monitor LiveCycle JVM Heap Utilization Using JConsole

أبريل 15, 2008

The 1.5 (or 5.0) versions of JDKs from Sun (HotSpot), IBM (J9) as well as BEA (JRockit) come with JConsole, a very user-friendly tool that can be used to monitor heap usage within the JVM. It can also be used to monitor a limited number of LiveCycle metrics (such as the number of invocations).

In the next release of LiveCycle (8.2.1, also known as LiveCycle ES Update 1) slated for the latter half of 2008, there will be a lot more LiveCycle JMX metrics you can track. Please see Adobe Technical Guide. Don’t be spooked by the warning you get on opening it (“the author of this document may have chosen to audit your intearactions with it”). It is Adobe LiveCycle Rights Management ES in action.

1) First, you have to re-start JBoss with remote JMX monitoring enabled.
2) Figure out a port that is not used on the server.
3) Add the following entries to JBoss’ run.bat or

rem ————————————–
rem Enable Remote JMX Monitoring
rem ————————————-

for (Linux)

# ————————————-
# Enable Remote JMX Monitoring
# ————————————

4) Run JConsole from the /bin folder of the JDK.

If you are running JConsole on the same server as JBoss, the JVM will be listed in the ‘Local’ tab of the JConsole ‘Connection’ dialog. If JBoss is running on a remote server, click on the ‘Remote’ tab, and provide the IP address and JMX port (50050 in the example above). If is set to true, you would need to provide the userID and password.

5) Click on the ‘Memory’ tab. You will see real-time charts you can display for heap memory usage, non-heap memory usage, and memory allocated to the ‘survivor’, ‘eden’, ‘old generation’ and ‘permanent generation’ memory areas. At the bottom, it will also provide you with the frequency and duration of garbage collections. To learn more about generational heap areas, please see article titled “Tuning Garbage Collection with the 5.0 Java Virtual Machine” at the Sun Developer Network.

Since IBM’s J9 JDK does not implement generational garbage collection, its JConsole display for the ‘Memory’ tab will look slightly different.

Running JConsole is not as intrusive as running full-fledged java profilers such as Quest JProbe. Keeping JConsole running during your functional and/or load testing will provide you with valuable insight on the behavior of LiveCycle.

Clicking on the ‘MBeans’ tab will let you track some LiveCycle-specific metrics. For example, expand the node on the left. Navigate to>XMLFormService->RequestCount->AdobeStat. The value of the ‘Count’ field will tell you how many times the XMLFormService has been invoked since JBoss was started.


Videos on Customizing Form Guides

أبريل 15, 2008

One of the engineers on the Form Guides team has put together a great series of videos on how to customize form guides. Gilles Maurice takes you step-by-step through the process of customizing guide wrappers, panels and components in these videos which are posted on the Adobe Developer Network. They are a great companion to the customizing form guides documentation.

The Acrobat User Community is hosting a PDF Forms contest!

أبريل 15, 2008

Forms creation, distribution and response tracking are one of the most popular uses for Acrobat (and LiveCycle Designer ES). But users need more samples of great forms and useful templates.

The purpose of the PDF forms contest is to create a public library of sample Forms and LiveCycle Designer templates that other PDF creators can use. The contest is open to qualified participants in any industry. You can even use a free 30-day trial copy of Acrobat 8 Professional to create your entries.

There are two entry categories:

Category: Fillable Forms
Show sophisticated and visually interesting fillable PDF Forms created using the forms toolbar in Acrobat 8 Professional, and may include interactive form elements, auto-formatting, calculations and Javascripting.

Category: LiveCycle Designer Templates
Develop form templates that can be used in LiveCycle Designer 8, and may include graphics, interactive form elements, library elements, auto-formatting, calculations and Javascripting. (LiveCycle Designer is included with every copy of Acrobat 8 Professional for Windows)

Notable entries will appear in the PDF Forms gallery. Entries may also qualify to win Adobe software, video cams and t-shirts.

The contest runs from Mar 10, 2008 until Apr 30, 2008.

Full details at

LiveCycle Client Libraries

أبريل 15, 2008

If you plan to build custom applications that invoke LiveCycle services via its API, you should include references to the LiveCycle client libraries in your project. Also remember to configure the project in such a way that these libraries (JAR files) will be exported and thus included in the WAR or EAR files of the application.

These client library JAR files can be found under the \LiveCycle_ES_SDK\client-libs\ folder of both your Workbench (client desktop) or server installations. For example, if you installed LiveCycle ES server to /opt/adobe/livecycle8/ on AIX, these library JARs will be available at /opt/adobe/livecycle8/LiveCycle_ES_SDK/client-libs/. All are platform-agnostic except adobe-utilities.jar which is application server-specific. The platform-independent ones can be found under the folder /common/.

These client JARs are named in such a way as to indicate their functionality. For example, to call the Forms ES API, you need to include adobe-forms-client.jar You also need other JARs in addtion to this, such as adobe-livecycle-client.jar. Since it only requires 2.9 MB for all of the JARs in the /common/ folder, you can play it safe and include ALL of them in your project to be exported.

For a simple servlet that calls renderPDFForm(), the following imports are required:

import com.adobe.livecycle.formsservice.client.FormsResult;
import com.adobe.livecycle.formsservice.client.FormsServiceClient;
import com.adobe.livecycle.formsservice.client.PDFFormRenderSpec;
import com.adobe.livecycle.formsservice.client.URLSpec;
import com.adobe.livecycle.formsservice.client.RenderAtClient;
import com.adobe.livecycle.formsservice.exception.RenderFormException;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.DSCException;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;

To understand what these import statements really accomplish, use jar, WinZip, WinRAR, or similar tool to open and extract the adobe-forms-client.jar to C:\TEMP\. Navigate to C:\TEMP\com\adobe\livecycle\formsservice\client\ and you will find the FormsResult.class file (see first import statement).

Similarly, do the same for adobe-livecycle-client.jar and you will see the Document.class file in C:\TEMP\com\adobe\idp\ (see import statement #7) and the ServiceClientFactory.class in C:\TEMP\com\adobe\idp\dsc\clientsdk\ (see import statement #9).

In fact, to determine which JAR file contains a particular class, use a grep tool such as BareGrep and let it loose on \LiveCycle_ES_SDK\client-libs\

Adobe LiveCycle Data Services ES 2.6

أبريل 14, 2008

Adobe® LiveCycle® Data Services ES is the server-based technology that streamlines the integration of rich Internet applications (RIAs) with LiveCycle Services, J2EE applications, and business logic.  This release aligns with the releases of Adobe Flex® 3 and Adobe Flex Builder™ 3. It provides new and enhanced capabilities for enterprise developers building application utilizing Flex and LiveCycle. A complete list of new features is contained in the documentation. Below are some highlights.

New and Enhanced Features

Alignment with Flex 3

LiveCycle Data Services ES 2.6 supports the releases of Flex 3 and Flex Builder 3.

Improved LiveCycle Foundation Integration Features

You can now define data management data sources with LiveCycle ES components, the mechanism you use to write new components with LiveCycle Foundation. We also support: single-signon for LiveCycle remoting applications, LiveCycle services which use the enumerated data type, and provide the ability to push changes to Flex clients in real-time from LiveCycle processes. (Requires LC ES 8.2)

Improved RTMP Performance and Scalability

Supports more concurrent users on the same server infrastructure.

Scalable HTTP Based Channel

Supports thousands of connections for each Java process. You can use our RTMP channel if you are able to make these connections from your clients directly to the LC DS process. You can use the scalable HTTP based channel infrastructure if your clients can only connect to your servers using the HTTP protocol (i.e. based on proxy servers used by your clients or firewall limitations used by your servers). Using LC DS’s flexible ChannelSet mechanism, it is easy to support a list of channels so your clients can connect using the implementation which provides the most efficient implementation.

Data Management Paging Improvements

LC DS 2.5.1 introduced a mechanism which let you page from the clients directly to the database but this mechanism was not supported with the “auto sync” feature. With this new release, that restriction has been removed. You can now do very efficient on-demand paging directly to the database while the clients are kept up to date with the latest changes. You can also now turn on paging for associations in your object model which improves the efficiency with which you can manipulate large object models.

Data Management Offline Improvements

Using the SQL database contained in Adobe’s AIR runtime, we can use the offline support introduced in LC DS 2.5.1 to persist data directly to a SQL database. With very little additional code, you can use an application written to use data management offline with complete access to any data and queries you executed online by simply specifying a cache id and either using the auto-save option or explicitly saving queries or items you want to persist offline for retrieval later.

Data Management Improved Subtype Support

Data management now supports object models where associations are added in a sub-type. Previously a single destination could manage a type hierarchy but all types had to have the same set of associations. Now you can define a destination for each class which parallels the object hierarchy using a new “extends” attribute. A subclass can add additional associations.

Data Management and Hibernate Improvements

Configuration of hibernate destinations has been made much simpler and less error prone. Support for Hibernate Annotations is also provided.

A complete list of new features is contained in the documentation. We appreciate your participation in the beta release.

Follow these steps to begin experiencing the LiveCycle Data Services ES 2.6 beta:

  1. Download the LiveCycle Data Services ES beta
  2. Read the Release Notes and follow the Installation Instructions.
  3. Read the LiveCycle ES Developer’s Guide
  4. Check out the sample applications that are included in the installation. Start with the Test Drive sample application if you want to ramp up quickly.
  5. Report bugs or feature requests in the LiveCycle Data Services ES public bug database
  6. Ask questions and share your feedback in the LiveCycle Data Services ES 2.6 forum