" /> LiveCycle Product Blog: March 2008 Archives

« February 2008 | Main | April 2008 »

March 28, 2008

The Acrobat User Community is hosting a PDF Forms contest!

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 http://www.acrobatusers.com/contests/forms/

March 24, 2008

LiveCycle Client Libraries

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\

March 20, 2008

Please Sign Here in Workspace

If you would like to enable Digital Signatures on a PDF that is going to be passed to different users through a LiveCycle ES Process, here are a few short guidelines for you.

On the form itself:

  • The form must be a PDF

  • Keep in mind that the DigSigs are applied to the PDF so the hidden submit field on your PDF form must submit a PDF and not an XDP or you will just be submitting the data of the PDF
  • In the process design:

  • The required input field to the process must be of type Document Form

  • Change the render service to the sample render service (and the associated variables should be corrected)

  • In the advanced setting be sure that the “call the render service only once” is checked – if not, the form will be refreshed and signatures removed each time the form is displayed in Workspace
  • If you would like a sample of a PDF Form and a Process including a Digital Signature, feel free to download this LCA (LiveCycle Archive for Adobe LiveCycle ES) https://share.adobe.com/adc/document.do?docid=b71a87c5-f6a8-11dc-8d05-e593509263b8

    ALC-BCF-002-004: PDFException. Caused by: com.adobe.internal.pdftoolkit.core.exceptions.PDFException:

    The Adobe LiveCycle Barcoded Forms ES Barcode Decoding Service can be provided with both PDF and TIFF files as input but is expecting a scanned image and not a dynamicPDF.

    If you try to fill in a dynamic PDF form, save it, and then place this file into the Watched Folder (for example) of the decode service you will receive the following error:

    ALC-BCF-002-004: PDFException. Caused by: com.adobe.internal.pdftoolkit.core.exceptions.PDFException: Processing of barcode images in dynamic PDF form not supported: No 'page content' found

    To avoid this issue, go through the full fill, print, and scan cycle and then place the results of the scanned image into the decoder's Watched Folder directory.

    March 18, 2008

    New Technical Guides Available on Devnet

    We have just published a six new technical guides which provide best practices and recommendations on a variety of LiveCycle topics. The guides cover topics such as collaborative development, digital signatures, monitoring LiveCycle deployments and connecting to enterprise content management systems. Additional topics will be covered in the near future. You can find the technical guides on the Adobe Developer Network. We hope you find these documents useful. If you have comments, feedback or suggestions on these documents please email us at LCES-Feedback@adobe.com.

    LiveCycle - Sample JBoss run.bat Settings

    If you are running LiveCycle ES on non-turnkey (manually configured) JBoss, the following settings might help you. Quite obviously, you have to change them to fit your environment.

    The settings are appropriate for a dual-core two-CPU server (4 cores) running Windows Server 2003 with a 32-bit Sun HotSpot JDK. The -XX:+UseLargePages setting will not work unless the user whose credentials JBoss is using to run has the 'Lock Pages in Memory' privilege. You can add this using Windows Group Policy Editor (gpedit.msc).

    If you do not plan to use BAM, do not deploy CAS_Adobe.ear If you do need to use it, deploy it to another JBoss instance, independent of the LiveCycle JBoss instance.

    Do not apply this to your PRODUCTION servers unless you have run your entire test suite against these settings under load. You can use JConsole for monitoring the JVM.

    The entries for adobe-pof.properties and adobe.idp.scheduler.properties are only required for clusters.

    Ensure that the bind.address is set to one of your server's IP addresses.

    rem ----------------------------------------------------------------
    rem Configuration Changes for Adobe LiveCycle ES 8.0.1
    rem ----------------------------------------------------------------

    set JAVA_OPTS=%JAVA_OPTS% -server
    set JAVA_OPTS=%JAVA_OPTS% -XX:+UseParallelGC -XX:ParallelGCThreads=4
    set JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx1024m
    set JAVA_OPTS=%JAVA_OPTS% -XX:PermSize=256m -XX:MaxPermSize=256m
    set JAVA_OPTS=%JAVA_OPTS% -XX:+UseLargePages
    set JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true
    set JAVA_OPTS=%JAVA_OPTS% -Dadobeidp.serverName=lc_server1
    set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=utf8
    set JAVA_OPTS=%JAVA_OPTS% -Djava.io.tmpdir=D:\Adobe\LiveCycle8\lc_java_io_tmpdir
    set JAVA_OPTS=%JAVA_OPTS% -Dadobe-pof.properties=C:\jboss-4.0.3-SP1\server\all\conf\adobe-pof.properties
    set JAVA_OPTS=%JAVA_OPTS% -Dadobe.idp.scheduler.properties=C:\jboss-4.0.3-SP1\server\all\conf\idp_scheduler_quartz.properties
    set JAVA_OPTS=%JAVA_OPTS% -Djboss.partition.name=partitionLIVECYCLE
    set JAVA_OPTS=%JAVA_OPTS% -Dbind.address=10.10.50.20

    rem ---------------------------------------------------------------------------------------------------
    rem Configuration Changes for Adobe LiveCycle PDF Generator's ConvertPDF Service
    rem ---------------------------------------------------------------------------------------------------

    set JAVA_OPTS=%JAVA_OPTS% -Dcom.adobe.convertpdf.bmc.POOL_MAX=4
    set JAVA_OPTS=%JAVA_OPTS% -Dcom.adobe.convertpdf.bmc.MAXIMUM_REUSE_COUNT=500
    set JAVA_OPTS=%JAVA_OPTS% -Dcom.adobe.convertpdf.bmc.REPORT_TIMING_INFORMATION=false
    set JAVA_OPTS=%JAVA_OPTS% -Dcom.adobe.convertpdf.bmc.CT_ALLOW_SYSTEM_FONTS=true

    rem ----------------------------------------------------------
    rem Configuration Changes for XMLForm (Forms ES)
    rem ---------------------------------------------------------

    set JAVA_OPTS=%JAVA_OPTS% -Dcom.adobe.xmlform.bmc.POOL_MAX=4
    set JAVA_OPTS=%JAVA_OPTS% -Dcom.adobe.xmlform.bmc.MAXIMUM_REUSE_COUNT=10000
    set JAVA_OPTS=%JAVA_OPTS% -Dcom.adobe.xmlform.bmc.REPORT_TIMING_INFORMATION=false
    set JAVA_OPTS=%JAVA_OPTS% -Dcom.adobe.xmlform.bmc.CT_ALLOW_SYSTEM_FONTS=true

    For UNIX operating systems (Red Hat Enterprise Linux and SuSE Enterprise Linux, also Solaris in LiveCycle 8.2.1), the entries have to be changed slightly. For example:

    # ----------------------------------------------------------------
    # Configuration Changes for Adobe LiveCycle ES 8.0.1
    # ----------------------------------------------------------------

    JAVA_OPTS="$JAVA_OPTS -server"
    JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelGC -XX:ParallelGCThreads=4"

    March 13, 2008

    LiveCycle for the Oracle DBA

    LiveCycle ES (8.0.1 and 8.2.1) is supported on Oracle 9i and 10g, but not on 11g.

    The only thing that needs to be installed on the appserver instance that hosts LiveCycle is the Type 4 JDBC driver which is a single file (ojdbc14.jar) that needs to be copied. Oracle can be on any port (does not have to be the default port of 1521). There is no need to install any additional, specialized Oracle components.

    Oracle RAC (Real Application Cluster) will work for LiveCycle. However, the appserver system administrator is responsible for coming up with the correct connection string with help from the Oracle RAC DBA. Here's a sample (make changes to fit your environment):

    jdbc:oracle:thin:@(DESCRIPTION= (ENABLE=broken) (ADDRESS_LIST= (ADDRESS= (PROTOCOL=TCP) (HOST=yourhost1) (PORT=1521) ) (ADDRESS= (PROTOCOL=TCP) (HOST=yourhost2) (PORT=1521) ) (LOAD_BALANCE=on) (FAILOVER=on) ) (CONNECT_DATA= (SERVER=dedicated) (SERVICE_NAME=service.yourcompany.com) (FAILOVER_MODE= (TYPE=session) (METHOD=basic) (RETRIES=10) (DELAY=3) ) ))


    Minimum required storage is about 350 MB, 500 MB is better. Depending on your use case, this requirement could go higher.

    Sample scripts to create a tablespace and a login could look like this, assuming that a temporary tablespace called "LC_TEMP" has already been created:

    Create Tablespace
    ----------------------
    Two data files with 500 MB each, set to grow unlimited in 10 MB increments. Make changes as appropriate.

    CREATE SMALLFILE TABLESPACE "BLADERUNNER" DATAFILE 'D:\ORACLE_DATA\bladeruuner1.dat' SIZE 500M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED , 'D:\ORACLE_DATA\bladerunner2.dat' SIZE 500M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO

    Create User
    --------------
    Assign the roles 'CONNECT' and 'RESOURCE' plus the system privilege 'CREATE VIEW'.

    CREATE USER "BLADERUNNER" PROFILE "DEFAULT" IDENTIFIED BY "*******" DEFAULT TABLESPACE "BLADERUNNER" TEMPORARY TABLESPACE "LC_TEMP" ACCOUNT UNLOCK
    GRANT CREATE VIEW TO "BLADERUNNER"
    GRANT "CONNECT" TO "BLADERUNNER"
    GRANT "RESOURCE" TO "BLADERUNNER"

    Supported character sets are AL32UTF8 or AL16UTF16. Other character sets are currently not supported.

    Oracle whitepaper on Unicode support.

    Bootstrapping (initializing the LiveCycle database) will fail with an UnknownLocalException if the Oracle instance parameter NLS_LENGTH_SEMANTICS is not configured as ‘BYTE’. Please Adobe Technote here.

    In many non-English locales, this might be configured as 'CHAR'. If possible, re-set this to BYTE and restart Oracle. You can also set it as part of the connection pool properties. For example, the following line in the -ds.xml file in JBoss (Oracle) does the job:
    <new-connection-sql>ALTER SESSION set NLS_LENGTH_SEMANTICS = 'BYTE'</new-connection-sql>

    If this is not possible, LiveCycle might require its own dedicated Oracle instance.

    You may also get other exceptions such as these:
    [com.adobe.idp.storeprovider.jdbc.DBStoreFactory] UserM:DB_SCHEMA_INCONSISTENT: Class com.adobe.idp.um.entity.PrincipalDomainEntity inconsistent with database table
    [com.adobe.idp.storeprovider.jdbc.DBStoreFactory] errorCode:12290 errorCodeHEX:0x3002 message:getProvider failure: factory not initialized

    March 12, 2008

    Provisioning a LiveCycle VM for VMware ESX Server 3.5

    If you are considering deploying LiveCycle ES on VMWare ESX Server, your VMware Infrastructure people would want to know the basic provisioning details such as memory, storage and the number of CPUs. Based on testing we did with ESX Server 3.5 on an HP Proliant DL385 G2, here are the basic configuration details for a Windows guest OS VM with LiveCycle ES 8.0.1 SP2 on JBoss 4.0.3 SP1 and MySQL 5.0:

    - two vCPUs with about 3.00 GHz clock speed
    - 3 GB of RAM
    - 15 GB of storage

    Once built, this VM can be easily cloned. Given the fact that LiveCycle installs can be quite challenging, this clonability is very attractive.

    However, IBM WebSphere does not handle cloning well. Oracle 10g requires that the Net Configuration Assistant be re-run. When cloning a VM, the clone will have to have its machine name and IP address change. BEA WebLogic, JBoss and MySQL seem to handle cloning well.

    Also, the vNIC would have to be uninstalled and re-installed so that it will have a different object GUID from its clone peers. This is very important if you plan to deploy several of these LiveCycle VM clones in a Windows NLB load-balanced server farm that is not clustered. This particular topology is very useful for LiveCycle PDF Generator while using its ConvertToPDF function. This function is single-threaded when converting Microsoft Office native documents to PDF. So a farm of non-clustered VMs is much more appropriate.

    March 10, 2008

    Simplifying the Turn-key Workspace URL

    Providing a URL with paths, pages, and port numbers to an end user can sometimes be a challenge especially over the phone. Here's how to make your JBoss turn-key demo install a little easier to access.

    * First and foremost, make sure you create backup copies of the files you are about to modify.
    * Make sure you have no other HTTP servers running on port 80 (Start, Run, "cmd /k netstat" to see which ports are currently in use)
    * Replace any occurrences of 8080 with 80 in the following files (assuming you installed in the default location)
    ** server.xml in C:\Adobe\LiveCycle8\jboss\server\default\deploy\jbossweb-tomcat55.sar
    ** jboss-service.xml in C:\Adobe\LiveCycle8\jboss\server\default\deploy\http-invoker.sar\META-INF

    When your server is started, it will now start on the standard port 80 where it can be addressed using simply the URL of the machine hosting the service (http://yourserver/).

    To make the home page route users from the default JBoss page over to workspace, change your index.html under C:\Adobe\LiveCycle8\jboss\server\all\deploy\jbossweb-tomcat55.sar\ROOT.war to the following:

    <HTML>
    <HEAD>
    <TITLE>Redirecting to Adobe LiveCycle Workspace</TITLE>
    <META HTTP-EQUIV="Refresh" CONTENT="0;URL=/workspace">
    </HEAD>
    <BODY>
    </BODY>
    </HTML>

    March 7, 2008

    LiveCycle ES 8.0.1 Service Pack 2 Now Available

    Service Pack 2 for LiveCycle ES 8.0.1 is now available here. This is cumulative so includes SP1b. Adobe recommends that LiveCycle customers apply this service pack, run their full test suite and then deploy to production.

    Once applied, the patch level will be 8.0.1.2