The WebSphere server hangs while shutting down the WebSphere Cluster

When a user attempts to shut down WebSphere Cluster on which LiveCycle is deployed, the WebSphere server hangs occasionally and the following error message appears in the log:

000002f5 SystemOut     O cache has closed down , no further access allowed !,  exception caught in inserting  data in cache : CLUSTER_INVALIDATION_CACHE key: GLOBAL_PREFERENCES_UPDATE_TIMESTAMP_KEY value : null exception :com.adobe.livecycle.cache.CacheActionException: Cache container closed; normal during shutdown, error during runtime – Error on GET action for cache Replicated:CLUSTER_INVALIDATION_CACHE
 
000002f5 SystemOut     O  exception caught in inserting  data in cache : CLUSTER_INVALIDATION_CACHE key: GLOBAL_PREFERENCES_UPDATE_TIMESTAMP_KEY value : null exception :com.adobe.livecycle.cache.CacheActionException: Cache container closed; normal during shutdown, error during runtime – Error on GET action for cache Replicated:CLUSTER_INVALIDATION_CACHE

Reason

This error occurs because a child thread of the cache disconnect routine is hanging and therefore the servers do not respond to the shutdown command from the WebSphere Administration Console.


Solution

To stop the LiveCycle ES servers from the WebSphere Administration Console successfully:

  1. Log in to the WebSphere Administrative Console and, in the navigation tree, click Servers > Application servers and then, in the right pane, click the server name.
  2. Under Server Infrastructure, click Java and Process Management > Process Definition.
  3. Under Additional Properties, click Java Virtual Machine and add or configure following JVM argument:-Dadobe.cache.controlled-shutdown-disabled=true
  4. Click Apply.
  5. Click OK and then click save directly to the master configuration.
  6. Repeat steps 1-6 on each node of the cluster.
  7. Restart the cluster.

Now, the WebSphere server shuts down successfully.

Technical Writers in the Touch World

Microsoft is launching Windows 8 this fall, and touch, one of the newer ways of interacting with devices, will be a first class citizen at par with keyboard and mouse. The Apple iPad® has already made a splash and people are elated. Corporates are piloting touchscreen devices, and many IT professionals – from UI designers to CEOs, have already started carrying iPads instead of regular laptops. Where has this change left us- the technical writers? In this technologically ever-changing world of touch, how do technical writers adapt and stay relevant?

As the industry changes, so do job roles and skills. We are living in a world that is constantly evolving. Technical writers need to equip themselves for the touch world. The future of the technical writers is evolving into two categories. Writers producing documentation for enterprise products would fall into one category. The second category nests writers from the non-enterprise world.  These writers (non-enterprise) are more accustomed to the Instructional Design paradigm; for example, a writer who develops content for the touch-based apps.

The non-enterprise writers would work on a lot of short-term projects and need to learn more skills than core writing. These writers would contribute to preparing tutorials, videos, and building community for the product. One such example is Photoshop Touch. Photoshop Touch has a product tutorial that explains the step-by-step usage of the product.

PhotoShop Touch

PhotoShop Touch Tutorials

The enterprise technical writers would still be closer to the traditional technical writer paradigm, and these writers would acquire in-depth domain knowledge. These writers may become super-users of the product and can be the voice of the customers in a company. Subject matter expertise and customer-facing experience could enable enterprise writers to suggest new features for a product.

Change is here, in the form of touch apps; probably a good time to pick a tablet and ponder over the change.


 

Unknown Format Error on Submitting a PDF from the Adobe Acrobat

I am working on a project that requires submitting the content of the PDF document as a stream to a Servlet. For the most part, the project works fine – the form is posted by the Acrobat/Reader, the server receives the file, creates a local copy and processes it correctly. After the post is successfully received, the last step on the server is to send a reply to the Acrobat/Reader. On not receiving a reply, the Adobe Acrobat/Reader throws an unknown format error.

unknownerror.jpg

Reason of the problem is that the Adobe Acrobat/ Reader expect a return from the servlet and the application server was not generating a response that Acrobat/Reader understands. To remove the error message, the servlet should return a properly constructed FDF and the URL of the submit button should end with #FDF.

Note: I am using Adobe LiveCycle Designer; I believe you can use Adobe Acrobat to achieve the same result.

Here are the exact steps to remove the error:

  1. Open your XDP form in LiveCycle Designer.
  2. Select the Submit button.
  3. Either in the Design View or in the Source view, edit submit to URL to add #FDF at the end of the URL.
  4. Save the XDP.
  5. In your Java project, create a plain-text file and add the following content:
    %FDF-1.2 1 0 obj << /FDF << /Status (Your message goes here.) >> >> endobj trailer << /Root 1 0 R >> %%EOF
  1. Replace “Your message goes here.” with the text you want to display.
  2. Save the file. For this example, let us save the file as returnresponse.txt
  3. Import returnresponse.txt to your Java project.
  4. Add the following code to your servlet:
    servletresponse.setContentType("application/vnd.fdf");
    response.setHeader("returnresponse.txt", "The file has been submitted sucessfully");

    The Java code sets the MIME type of the response in the “Content-type” HTTP header to “application/vnd.fdf“.

  5. Run the program and you should not experience the error again.

Migrating LiveCycle Data to Document Services

If your earlier installation of LiveCycle and your new installation of ADEP, Document Services are not on the same computer, you might want to import Java SDK, installation files, watched folder contents, temporary directory and LiveCycle MySQL data into your new installation of ADEP, Document Services.

Execute the scripts given below to Migrate LiveCycle MySQL Data to ADEP, Document Services. Perform these steps before you run the Configuration Manager. These steps are applicable only for the Turnkey installations of LiveCycle and ADEP, Document Services.

  1. To export LiveCycle MySQL database, use the mysqldump program  located in the [LiveCycle Installation Directory]\MySQL folder. For example:
    C:\Adobe\Adobe LiveCycle ES2\mysql\bin>mysqldump -q -e --single-transaction -ppassword -u adobe -r "C:\mysqlbackup\adobe.sql" -B adobe --port=3306 --host=localhost
    Note: Before you run above command, Ensure that directory mysqlbackup is already available on the LiveCycle machine.
  2. To import the  LiveCycle MySQL database to ADEP, Document services, copy the adobe.sql created above to the ADEP, Document Services system. Then use the mysql program  located in the [ADEP, Document Services Installation Directory]\MySQL folder. For example:
    C:\Adobe\ADEP\Document Services 10.0\mysql\bin>mysql -padobe -u adobe --port=1138 -e "source C:\mysqlbackup\adobe.sql"
    Note: Before you run above command, Ensure that directory mysqlbackup is already available on the ADEP, Document Services machine.
  3.  Backup all the files and directories associated with the previous deployment of LiveCycle, including the Java SDK, installation files, watched folder contents, temporary directory, and so on. The following LiveCycle data must be included in your back up:
    • Content Storage Root directory: If you have Adobe LiveCycle Content Services (deprecated) deployed on your current system, back up the content storage root directory. This directory can reside either locally or on a shared network drive. Default location of the Content Storage Root directory is [LiveCycle Root]/lccs_data
    • GDS directory: This directory can reside either locally or on a shared network drive. Default location of the GDS directory is [JBoss root]/server/<profile_name>/svcnative/DocumentStorage.
    • Customer installed fonts: If you installed additional fonts on your LiveCycle ES Update 1 or LiveCycle ES2 environment, back them up separately.
    • LiveCycle EAR files: The EAR files are required to restore your system if you encounter upgrade issues.
    • Database: Use the database backup utility to backup your data. (For turnkey installations, follow Step 1 and 2 in this article)
    • LiveCycle fonts: Back up all Adobe font directories that are specified in Configuration Manager (in Administration Console, go to Settings > Core System > Configurations). Ensure that you back up the entire directory.
    • Watched folders: Backup the watched folders.
  4. To restore, replace the files and folders in the  [ADEP, Document Services Installation Directory]  with the files and folders from the backup created in the above step.

Who am I?

Difficult question, eh! Well, I work with Adobe Systems as a technical writer. The take care of installation documentation for ADEP and LiveCycle.

Through this blog, I plan to share my experiences, “discoveries”, and tips about Adobe products that I use extensively, both at work and at home.

Also, I tweet fairly regularly. Catch me on Twitter at twitter.com/khushwantsehgal 

I hope you have a pleasant time reading my musings. Keep visiting this blog often!

– Khushwant Singh