Archive for November, 2011

LiveCycle ES2: repeated messages from org.hibernate.util.NamingHelper in WebSphere log

Issue

If you are working with LiveCycle ES2 on WebSphere, you may notice the following informational message repeating every few milliseconds in the WebSphere SystemOut.log:

00000051 NamingHelper  I org.hibernate.util.NamingHelper getInitialContext JNDI InitialContext properties:{}

This message will repeat so often that it will fill up the log file which makes it very hard to find actual error or warning messages.

Reason

This message is benign and can be ignored.

Solution

To prevent this message filling up your log file you can disable it in the WebSphere console:

  1. In the WebSphere navigation tree, click Servers > Server Types > Websphere application servers.
  2. Click an application server listed in the right pane.
  3. Click Troubleshooting > Change Log Level Details.
  4. Click Runtime tab.
  5. Under General Properties, enable Save runtime changes to configuration as well.
  6. In the Components list, navigate to the org.hibernate.* package. Click the package and select and click Message and Trace Levels. Select warning from the popped up list.
  7. Click Apply

reference: (182822947/2995147)

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 0.0/10 (0 votes cast)

LiveCycle ES2: Relative images are missing after conversion to a flat PDF

Issue

If you are using the generatePDFOutput operation of the Output service to process a dynamic PDF document (i.e. to flatten it), you may notice that images referenced by relative paths are missing from the resulting flat PDF file.

This problem will be accompanied by exceptions in the server log similar to the following:

DataManager   E com.adobe.service.DataManagerImpl createFileDataBufferFromUrl TRAS0014I:
The following exception was logged javax.ejb.EJBException: An unexpected exception occured:
ALC-REP-018-000: Resource [/orange_haus.jpg] does not exist or you do not have sufficient rights to access it.
    at com.adobe.repository.bindings.url.provider.RepositoryUrlDataProviderBean.getInputStream(RepositoryUrlDataProviderBean.java:249)
    at com.adobe.url.EJSLocalStatelessRepositoryUrlDataProvider_d16709f6.getInputStream(Unknown Source)
    at com.adobe.url.Util.openUrlStream(Util.java:105)
    at com.adobe.service.DataManagerImpl.createFileDataBufferFromUrl(DataManagerImpl.java:211)
    at com.adobe.service.DataManagerPOATie.createFileDataBufferFromUrl(DataManagerPOATie.java:54)
    at com.adobe.service.DataManagerPOA._invoke(DataManagerPOA.java:91)
...
Caused by: com.adobe.idp.dsc.DSCRuntimeException:
ALC-REP-018-000: Resource [/orange_haus.jpg] does not exist or you do not have sufficient rights to access it.
    at com.adobe.repository.commands.RepositoryUrlDataProviderCommand.execute(RepositoryUrlDataProviderCommand.java:178)
    at com.adobe.repository.commands.CommandProcessor.execute(CommandProcessor.java:135)
    at com.adobe.repository.bindings.dsc.RepositoryProviderServiceImpl.repositoryUrlDataProvider(RepositoryProviderServiceImpl.java:674)
    ... 15 more
...
XMLFormServic W com.adobe.service.ProcessResource$ManagerImpl log ALC-XTG-029-698: [495864]
    InvalidSourceException Exception on URL: repository:///orange_haus.jpg Exception: javax.ejb.EJBException: An unexpected exception occured:
    ALC-REP-018-000: Resource [/orange_haus.jpg] does not exist or you do not have sufficient rights to access it.
XMLFormServic W com.adobe.service.ProcessResource$ManagerImpl log ALC-XTG-016-649: [495864]
    Error attempting to read from file
XMLFormServic W com.adobe.service.ProcessResource$ManagerImpl log ALC-XTG-029-461: [495864]
    XFAImageService: Image cannot be resolved for node: StaticImage1.

Reason

You may have rendered the PDF initially using the images referenced by relative paths (i.e. they were available at these relative locations on the server at render-time).  This image content is then stored in the PDF file for the initial page views.  Static PDF files do not re-render and therefore the image content already stored in the PDF remains valid, so the images are always displayed.  Dynamic PDF files can re-render later (where the relative paths to the images may no longer be valid), in which case Acrobat/LiveCycle will attempt to resolve the relative paths to the images again.

Acrobat can display the images without any problems, even if you force Acrobat to re-render the PDF document (by merging again with data).  Acrobat recognizes that the image is referenced by relative path, discovers it cannot resolve the path anymore, and therefore picks up the image content which is stored in the PDF already.

LiveCycle however does not handle this correctly.  This is a bug in the Output service for PDF  files with a target version > 8.0.  If the target version is < 8.0 then the images are retained.

Solution

This issue will be fixed in the next LiveCycle ES2 service pack (if there is one) and future versions (e.g. ES3).  There is a patch available for LiveCycle ES2 SP2 9.0.0.2 (XMF-2.204, FRM-2.202, OPT-2.201), so contact your LC support representative should you require this patch.

The solution exposes a new option “Use Following Resources from PDF” in the generatePDFOutput advanced settings.  If you set this option to “IMAGES”, it will include the image content from the PDF, rather than attempting to resolve the relative path.

reference: (182742389/2996897)

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 10.0/10 (1 vote cast)

Acrobat/Reader: Z@xxx.tmp files left behind in Temp folder after printing

Issue

If you are printing files with Adobe Reader/Acrobat you may notice that some tmp files are created in your Windows Temp folder:

C:\Documents and Settings\<user>\Local Settings\Temp

with file names similar to:

Z@R3A.tmp

Z@R3C.tmp

Z@R3E.tmp

Z@R38.tmp

Z@R3B.tmp

Only some of these tmp files get cleaned up after the print job has completed and you close Adobe Reader/Acrobat.  The remaining files are locked and cannot be deleted.  This can cause problems particularly in Terminal Server or Citrix environments where the user’s profile should be cleaned up when they logoff, but such locked tmp files prevent the successful cleanup.  This problem with remaining locked files only seems to occur on Windows XP, NT and 2003 Server.

Reason

These tmp files are actually the true type fonts that are used by the Windows print spooler when printing a PDF.  The font files get created using the Windows call CreateScalableFontResource.  This Windows API call locks the files and thus when Acrobat calls DeleteFile on these files, sometimes an ACCESS_DENIED error is returned and they cannot be deleted.

The issue is the OS keeps a lock on these files which gets released on system restart, or when the user logs off and back on (this is the case with XP/NT/2003Server).  These files can be deleted when the system restarts, Acrobat/Reader is launched again and then closed which will issue the request to Windows to delete the files again.  Sometimes the lock on these files is released by the OS after some time has elapsed.

We have been unable to identify the root cause of this issue in Windows and why it keeps a lock on these files, despite very intensive testing and debugging.  The problem is not isolated to any specific issue in Adobe software.

We provide the following workarounds to avoid this issue.

Workaround1

In a Terminal Server or Citrix environment it is not possible to restart the machine, as there may be other users logged on.  Therefore you may use one of the following workaround files.

There are 2 methods used in Acrobat/Reader to create these temp files for the fonts.  In the first acroct.ini file we disable one of these methods, and this has brought positive results in most cases.  In the second acroct.ini file we disable both methods, so that no temp files for the fonts are generated anymore, and therefore cannot be locked.

1. close Adobe Reader/Acrobat

2. extract the first acroct.ini, or second acroct.ini file to C:\Windows

On Terminal Server this should then install the .ini file in each user profile under C:\Documents and Settings\<user>\Windows.

Please note that using these .ini files will reduce the quality of the printed output, as the printed fonts can no longer render exactly as shown on screen.  Therefore it is more desirable to use the first acroct.ini (diables only one method) if it solves the issue, rather than the second acroct.ini (disables both methods).  You should verify the printed output using these files and decide which one works best for you.

Workaround2

Following our testing we have discovered that the issue does not occur in Windows 7, or Windows 2008 Server.

It seems that the updated versions of Windows provide a solution to this issue.  We would therefore recommend updating your OS if possible.

reference: (182680504/2989318)

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 6.4/10 (56 votes cast)

LiveCycle ES2: Unexpected exception. Failed to create directory: \\<cluster>\GDS

Issue

If you have configured the WebSphere node agents to start as Windows services instead of using the batch files in your cluster you may experience the following behaviour:

  • in AdminUI > Services > Applications and Services > Application Management, you may receive an ALC-DSC-033-000 error
  • in AdminUI > Services > Applications and Services > Service Management, you will see many services marked Inactive, and you cannot stop/start them

You will also notice the following errors in the SystemOut.log on the individual cluster nodes when starting the servers:

E com.adobe.idp.dsc.registry.service.impl.ServiceStoreImpl createServiceConfigurationFromBOI
    COULD NOT PROCESS SERVICE: Process Management (system)/Queue Sharing VERSION: 1.0 MARKING AS INACTIVE
E com.adobe.idp.dsc.registry.service.impl.ServiceStoreImpl createServiceConfigurationFromBOI TRAS0014I:
    The following exception was logged java.lang.ClassNotFoundException: server.startup : 1Class name
    com.adobe.idp.workflow.dsc.descriptor.WorkflowDSCDescriptor from package com.adobe.idp.workflow.dsc.descriptor not found.
....
W com.adobe.idp.dsc.registry.service.impl.ServiceRegistryImpl getHeadActiveConfiguration
    Head active ServiceConfiguration for service: Process Management (system)/Queue Sharing version: 1.0 is not active as expected.
    The service was probably Marked INACTIVE due to an error loading the service.  Please look at the logs to see if this service was Marked INACTIVE.
...

The SystemOut.log will also contain the following error:

E com.adobe.idp.DocumentFileBackend getTimeSkewDelta DOCS001: Unexpected exception. Failed to create directory: \\es2cluster\GDS.
E com.adobe.idp.Document passivate DOCS001: Unexpected exception. While re-passivating a document for inline data resizing..
E com.adobe.idp.Document passivate TRAS0014I: The following exception was logged com.adobe.idp.DocumentError:
Failed to create directory: \\es2cluster\GDS
    at com.adobe.idp.DocumentFileBackend.getTimeSkewDelta(DocumentFileBackend.java:113)
    at com.adobe.idp.DocumentFileBackend.<init>(DocumentFileBackend.java:86)
    at com.adobe.idp.Document.getGlobalBackend(Document.java:3153)
    at com.adobe.idp.Document.writeToGlobalBackend(Document.java:2977)
    at com.adobe.idp.Document.doInputStream(Document.java:1698)
    at com.adobe.idp.Document.passivateInitData(Document.java:1457)
    at com.adobe.idp.Document.passivate(Document.java:1235)
    at com.adobe.idp.Document.passivateGlobally(Document.java:1205)
    at com.adobe.idp.dsc.management.impl.ArchiveStoreImpl.createNewArchive(ArchiveStoreImpl.java:636)
    at com.adobe.idp.dsc.management.impl.ArchiveStoreImpl._getArchive(ArchiveStoreImpl.java:438)

Reason

The Windows services that you have created do not have the correct privileges for accessing the LiveCycle GDS directory which is required for the proper operation of the LiveCycle server.

Solution

Open the Services view from the Control Panel in Windows.
Select the WAS NodeAgent service and goto properties > LogOn > Log on as > This account.
Browse for an Administrator account with sufficient privileges to access the GDS share.
Restart the NodeAgent.
Then restart the cluster from the WAS ND admin console.

Additional Information

To create the nodeagent as a Windows service instead of using the batch files:

1. Change to the \bin directory where WebSphere is installed, for example:

C:\Program Files\IBM\WebSphere\AppServer\bin

2. Run the following command:

wasservice -add ctgNode01_nodeagent
          -servername nodeagent
          -profilePath “C:\Program Files\IBM\WebSphere\AppServer\profiles\ctgAppSrv01″
          -wasHome “C:\Program Files\IBM\WebSphere\AppServer”
          -logFile “C:\Program Files\IBM\WebSphere\AppServer\profiles\ctgAppSrv01\logs\nodeagent\startNode.log”
          -logRoot “C:\Program Files\IBM\WebSphere\AppServer\ctgAppSrv01\logs\nodeagent”
          -restart true
          -startType automatic

You can do this for each cluster node.  Now when you restart Windows, the nodeagent on each cluster node will start automatically.

reference: (1911394)

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 9.0/10 (1 vote cast)