Senior Content and Community Lead for Adobe LiveCycle Enterprise Suite
Posts by Vishal Gupta
Read the complete post here.
- Ankush Kumar, Lead Software Engineer @ Adobe
Many a times, we have the requirement to deploy single or group of system or custom DSCs. System DSCs are deployed by LiveCycle Configuration Manager. However, in the case of custom DSCs, we need to manually deploy the component through LiveCycle Workbench. Sometimes, launching Workbench for solely deploying component seems like too much effort. Moreover, it’s not very easy to automate.
You can use the attached sample tool to deploy a DSC using command-line.
- Download and extract the tool archive on your machine. It contains a folder libs, a runme.bat file, and an ImportDSC.jar file.
- Place <LiveCycle Installation Dir>\sdk\client-libs\thirdparty\*.jar files in libs folder.
- Place adobe-usermanager-client.jar and adobe-livecycle-client.jar files in libs folder.
- Modify runme.bat accordingly.
The ImportDSC.jar is used in the following way in the runme.bat file (provided classpath is set):
java com.adobe.livecycle.sample.ImportDSC appserver=<websphere|weblogic|jboss> serverhost=<name of machine> port=<port of LC> username=<user to install DSC> password=<password of mentioned user> dscpath=<absolute path till DSC> force=<true|false>
The source code is also included in the archive. Please review it in case of any doubt and modify as per your requirements.
DISCLAIMER: This sample code is not officially delivered or supported as part of Adobe LiveCycle product. One should verify this on a testing environment before employing in production environment.
- Siddharth Jain, Quality Manager @ Adobe
On WebSphere, errors are encountered on attempting to interact with a service managed by the Livecycle DSC container. The service is unexpectedly shown as inactive in the Livecycle administration console. Examination of the server logs (SystemOut.log) shows that the service failed to start due to class-loading issues (ClassNotFoundException errors).
The issue occurs as a result of a file-lock which prevents the DSC container from properly extracting the class files required by the DSC class-loader to a temporary directory on the local file-system. To confirm that this is the case, note the time-stamp of the ClassNotFoundException error thrown during service startup in the WAS SystemOut.log and then check that the WAS SystemErr.log contains warning messages of the form ‘The process cannot access this file because it is being used by another process’ around the same time.
To remove the lock, shut down the server and periodically try to manually delete the file for which the file-lock warning is appearing in SystemErr.log (the log file should contain the complete path of the file) . If the deletion succeeds within a reasonable amount of time, start the server and check that things are fine. If the file continues to stay locked for a long period of time, try restarting the machine.
- Ankush Kumar, Lead Software Engineer @ Adobe
In Debugging LiveCycle – Working with logs (part 1), we covered how to handle logs at application server level. In this blog, we will cover a few areas where we can fine tune the logging in applications itself.
As you might have noticed LCM logs are found at <LiveCycle Installation Location>/configurationManager/log. Default logging level of this is INFO. This is governed by properties file kept inside adobe-lcm.jar: \com\adobe\livecycle\lcm\logging\log.properties.
Using this property file, you can:
- Change Logging Level
- Define file location and file name.
- Define rotation policy
If you want to overwrite the default location of this file to a more convenient location, you can do so by modifying <LiveCycle Installation Location>/configurationManager/bin/ConfigurationManager.bat and specifying following system property:
-Djava.util.logging.config.file=<path to file>
Generating ORB Trace
While working with natives like XMLForms, you can sometimes run into issues where an application abnormally terminates. Following parameters help in generating extra trace information for debugging such issues.
These are required to be placed as argument to the native application:
-ORBtraceLevel 25 -ORBtraceThreadId 1 -ORBtraceInvocations 1 -ORBtraceInvocationReturns 1 -ORBtraceTime 1 –ORBtraceFile <Path to log file>
Also, when we are debugging an issue related to native applications, in System Out logs we can find system natives being invoked and a large IOR is passed to them as input. This IOR can be analyzed by many easily available IOR parsers. (Just Google for them). This can be first step towards debugging natives related problem.
In order to better understand and debug an orchestration, LiveCycle offers excellent process debug feature. Using workbench, one can easily trace every step of a process and find what exact values any variable hold. For more information, one can refer this blog.
But sometimes this gets difficult due to environment constraints and performance overheads. One may want to introduce a step which will log current state of all variables in either System Out log or the log of your choice.
This can be accomplished using Variable Logger service. One can introduce this while designing the orchestration. Now each time the orchestration runs, the values of variables will be logged as the step is executed.
Other Application Logging Locations
Content Services and CMSA Logs
Content Services and CMSA logs are created in working directory of the application server.
LiveCycle Installer Logs
Installer logs can be found in following two locations
- <LiveCycle Installation Home>
- <LiveCycle Installation Home>/logs
Service Pack Logs
Service pack logs can be found at <LiveCycle Installation Home>/patch/<Patch Name>/log
CRX and Correspondence Management Logs
From ES3 onwards, you will find CRX and CM logs at <CRX Repository Directory>/logs. (More on this will be covered in next part of blogs)
PDFG Configuration Logs
- PDFG System Readiness Testing Logs: <LiveCycle Installation Home>/pdfg_srt/reports
- PDFG Config Logs: <LiveCycle Installation Home>/logs
Adobe LiveCycle forum is a platform where LiveCycle community meets, learns, and discusses experiences about using LiveCycle. We are committed to provide the best user experience to the community when they are on the forum, and we have taken a step in that direction.
The LiveCycle forum, until sometime ago, comprised of 70 forums and sub-forums. We monitored the forums and found that the unnecessary bulk is making it difficult for the community to manage discussions and participate on the forum. As a result, most of the are inactive as it was unintuitive to drill-down to the correct forum for discussions.
As we understand the importance of a close-knit community, we have optimized the forum structure, so that it is easier for the community to search, post, and participate on the forum. The new forum structure is thin, focused, searchable, and easy to manage.
In its new look, the LiveCycle forum has relatively flat hierarchy, but with a logical grouping of discussions. The streamlined new structure includes seven top-level forums, including one forum with 14 sub-forums. The flat hierarchy relies on the tags for filtering discussions related to a specific area of LiveCycle.
Read the complete post at Adobe LiveCycle Help blog.
- Mayank Gupta, Computer Scientist at Adobe
Adobe LiveCycle Correspondence Management Solution provides some sample collateral and creates some sample users so that developers can start using the application and make use of these samples to know about and learn the product capabilities. It is highly recommended to remove these sample assets and sample users when the solution is deployed on to a production server.
Steps to remove sample assets and sample users:
1. Removing sample assets by uninstalling them from package manager:
- Go to http://[hostname:port]/lc/crx (on author instance)
- Login as admin
- Click Package Manager
- Click on Package with name “cm-sampleassets.zip”
- Click More dropdown in action bar (This action bar has other actions like Edit Build etc.,. , More option is in the right most area of this bar)
- Click Uninstall
- Click Uninstall again on confirmation dialog
- Wait for sometime till you see a message like “Package uninstalled in <some>ms” in the Activity Log
- Now if you log on to CM Manage Assets UI , you will not see any sample assets. If you are still seeing them then restart the server.
2. Removing sample users from CRX user administration:
- Go to http://[hostname:port]/lc/crx (on author instance)
- Login as admin
- Click User Administration.
- Note: Correspondence Management creates Todd Goldman (tgoldman), Caleb Lopez (clopez), Gloria Rios (grios), Frank Kricfalusi (fkricfalusi), Jocelyn Robinson (jrobinson), and Heather Douglas (hdouglas) as the sample users.
- In the user administration dialog , Navigate to each of these users and click Remove user. Now you cannot log in to the Manage Assets UI with any of the above usernames.
Follow the steps mentioned above in 2 and remove sample users from publish instance as well. There is no need to uninstall sample assets from publish instance as they are installed on author instance only.
- Mayank Gupta, Computer Scientist @ Adobe
Steps to add a custom service in Correspondence Management solution are as follows:
- The implementation for this user story involves code changes and rebuilt. So, one is required to setup the development environment via steps mentioned @ Setting up development environment.
- Add your sample custom service interface and implementation class in the CorrespondenceManagementSolutionTemplate/Services project for example @ com.adobe.icc package in the source code. See the sample @ http://blogs.adobe.com/LiveCycleHelp/files/2012/06/SampleCustomService1.zip.
- Now define your service as a spring bean. For this, add the following entry in your CorrespondenceManagementSolutionTemplate\Services\resources\META-INF\spring\cm\adobe-cm-spring-config.xml file: <bean id=”sampleCustomService” class=”com.adobe.icc.SampleCustomServiceImpl” />
- Now expose your spring bean as a osgi-service. For this, add the following entry in your CorrespondenceManagementSolutionTemplate\Services\resources\META-INF\spring\osgi-context.xml file: <bp:service interface=”com.adobe.icc.SampleCustomService” ref=”sampleCustomService” > <bp:service-properties><entry key=”connectors.httpinvoker” value=”true” /> <entry key=”connectors.httpinvoker.alias” value=”/sampleCustomService” /> <entry key=”connectors.remoting” value=”true” /> <entry key=”connectors.remoting.id” value=”sampleCustomService” /> </bp:service-properties> </bp:service>
- Rebuild and redeploy the Solution template to view the changes. For information on rebuilding and redeploying, see Building and deploying the Solution Template.
- Saurabh Kumar Singh, Computer Scientist @ Adobe
Following are a few tips and workarounds for LiveCycle PDFG. Please note that the workaround marked as unsupported are not officially supported by Adobe.
- [Unsupported] On UNIX servers customers can use 64-bit OpenOffice to do OpenOffice based conversions. The obvious benefit from this is the performance improvement we get. To achieve this just point JAVA_HOME_32 to 64 bit version of Java. Same can achieved on widows too but you may observe immediate conversion failures for other native file formats.
- [Unsupported] Any file which can be opened by Acrobat (like a text file) can be converted to PDF using LiveCycle PDF Generator. You just need to add the comma separated file extension (for example txt for text files) in XPS to PDF file-type setting.
- A user/administrator can directly jump to PDF Generator UI by hitting http(s)://<server-name>:<port>/pdfgui. This way a user can skip couple of clicks on UI to land on PDF Generator user interface.
- Shishir Pandey, Software Engineer @ Adobe
The following lists the common configuration errors, why they occur, and steps to troubleshoot them.
- Error: Component: com.adobe.xxx version: 10.0.3.20120511.1.316647 introduced a new service, it should not be patched
Reason: This issue generally occurs when order of operation in Configuration Manager is incorrect after applying a patch. That is, the deployment of the component is performed before configuring and deploying of the EAR files. It usually occurs in command line execution because each step is run separately in this mode.
Workaround: Re-run the Configuration Manager and ensure that configuration and deployment of ear is done before deploying components.
- Error: In case of Weblogic, a “null” folder gets created after deploying EARs.
Workaround: Stop the managed-server first, followed by the node manager, and finally stop the admin-server. Restart them in reverse order. You will see a folder Adobe gets created in the Weblogic domain.
- Error: The following error occurred while executing this line: java.lang.OutOfMemoryError: Java heap space
Reason: This issue generally occurs if the XMX setting is missing from the server configuration.
Workaround: Increase the XMX value for the server or restart the server, and re-run Configuration Manager.
- Error: weblogic.management.NoAccessRuntimeException: Access not allowed for subject: principals=, on Resource AdobeService Operation: set , Target: EnableSSL at com.adobe.livecycle.bootstrap.bootstrappers.CoreBootstrapper.bootstrap(CoreBootstrapper.java:60)
Reason: This error generally occurs due to missing JMX policies in case of Weblogic during the Initialize LiveCycle step of the Configuration Manager.
Workaround: Configure JMX as described in Creating JMX policies for database initialization. Restart the server and re-run the Initialize LiveCycle step.
- Siddharth Jain, Quality Engineering Manager @ Adobe
Adobe LiveCycle deployment involves many third-party software like Application Servers, Databases and Operating Systems. LiveCycle team certifies certain platform combinations for each release of LiveCycle. For example, the supported platform combinations for our latest LiveCycle ES3 SP1 offering can be looked at http://help.adobe.com/en_US/livecycle/10.0/supported_platforms.html. It provides details of third-party software along with the version details on which LiveCycle is certified and supported. Given that these third party software keep coming up with their latest offerings too, LiveCycle has a third party software patch support statement available at http://helpx.adobe.com/livecycle/kb/livecycle-third-party-software-patch.html.
Together, these two documents should help you figure out whether platform of your choice is supported by LiveCycle or not. In case, you need any clarification, contact Adobe Enterprise Support for guidance.
If you find that platform of your choice is not supported by LiveCycle, for example, you wish support for version X of a database vendor due to your project considerations while LiveCycle supports version Y, you should contact Adobe Enterprise Support who can guide you on next steps.
In addition, Adobe LiveCycle team has a process known as Customer Commit Request in which such a request can be routed to engineering for evaluation if the customer has committed to using LiveCycle by means of purchase or M&S. If engineering finds that there is feasibility to support such a platform for your identified use, it carries out testing on that platform for your use case on LiveCycle version you intend to use. If all goes well, LiveCycle team reverts back in positive and provides support to you for your specific requirement on your desired platform for that LiveCycle release.