5 Post-Deployment Activities

5.1 Author-instance clustering for Correspondence Management

When the Correspondence Management solution is deployed, the Author instance runs on the same server as LiveCycle ES3. However, setting up the LiveCycle cluster doesn't automatically configure the Correspondence Management Author-instance cluster. You must set up this cluster manually.

Author-instance clustering has no dependency on LiveCycle clustering. The LiveCycle cluster acts as a backend system for Author instance clustering when LiveCycle is integrated with the Correspondence Management solution (see 5.3 Integrate LiveCycle with Correspondence Management Solution. The shared nothing mode of clustering is supported for Correspondence Management.
Note: See this technical article for more information about the ‘shared nothing’ mode.
Follow these steps to configure clustering for Correspondence Management:
  1. Decide which instance will be the master instance. Note the host name and port number of this instance. For example, if you are running the master instance on machine node1/port 8080, its address is node1:8080.

  2. Every instance other than the master instance is a slave instance. The CRX console for any instance is located at http://<slave-address>/crx/index.jsp.

    For example, if you are running a slave instance on machine node2:port 8080, you can log in to its CRX console at http://node2:8080/crx/index.jsp.

  3. After logging in to the console of a slave instance, click Repository Configuration.

  4. On the Repository Configuration page, in the Tools list, click Cluster.

  5. On the Cluster Configuration page, enter the Web address of the master instance in the Master URL field. Enter this information in the following format:
    http://<master-address>/crx/config/cluster.jsp
    For example, if the master and slave instances are running on node1 and node2 respectively, enter:
    http://node1:8080/crx/config/cluster.jsp
  6. Enter the CRX user name and password and then click Join. Admin access is a prerequisite for setting up a cluster.

  7. Joining the cluster may take a few minutes. Once it is confirmed that the joining request was successful, repeat the joining procedure on each of the other slave instances.
    Note: You may need to restart the slave instance to avoid stale sessions.
Important: All Author instances in the cluster should be time synchronized. You can use an NTP (Network Time Protocol) server to ensure time synchronization.
Important: If you are setting up clustering on your Correspondence Management solution, you need to ensure that there are no spaces in your CRX repository path.

5.1.1 WebSphere-specific requirements

Some additional configuration is necessary for using the Dispatcher with the WebSphere application server. The following properties need to be set to true for the Web container:
com.ibm.ws.webcontainer.extractHostHeaderPort 
trusthostheaderport
Set these properties as follows:
  1. In the LiveCycle Administration Console, click Servers > Server Types > WebSphere application servers > [server_name] > Web Container Settings > Web container.

  2. Under Additional Properties, click Custom Properties.

  3. On the Custom Properties page, click New.

  4. On the settings page, enter the name of the custom property that you want to configure in the Name field and the value that you want to set it to in the Value field.

  5. Click Apply or OK.

  6. Click Save on the console task bar to save your configuration changes.

  7. Repeat steps 1-6 for each server in the cluster.

  8. Restart the cluster.

Note: Ensure that the default_host aliases list has the same port numbers as the Web server running atop the WebSphere cluster.

5.2 Configure the Publish instance

You must run separate Author and Publish instances for Correspondence Management Solution. However, you can configure the two instances on the same or on different machines.

Note: Before configuring the Publish instance, ensure that your Author instance is configured and deployed. You can verify by successfully logging in to the solution template for Correspondence management Solution. See 4.3 Access solution template for more information.
  1. Create an appserver profile for the Publish instance on the same or on a different machine.

  2. On the Author instance, navigate to the [LiveCycle root]/configurationManager/export/ directory.

  3. Copy the adobe-livecycle-publish-[appServer].ear file and deploy it to the appserver profile created in step 1.

  4. Copy the [LiveCycle root]/configurationManager/export/crx-quickstart directory to the file server for the Publish instance.

  5. Start the Publish server with -Dcom.adobe.livecycle.crx.home=<location for crx-quickstart> parameter, where <location for crx-quickstart> is the location where you copied the crx-quickstart directory for the Publish instance.

Note: If Author and Publish instances are on the same machine, ensure that you start the Publish instance using a different port.

Now that the Publish instance is up and running, you need to configure the two instances to communicate with each other.

Important: If you are setting up clustering on your Correspondence Management solution, you need to ensure that there are no spaces in your CRX repository path.

5.2.1 Configure the Author Instance

5.2.1.1 Configure Replication Agents

On the Author instance, you need to configure replication agents for each Publish instance. These agents replicate content from the Author instances to all the Publish instances.

  1. Log in to Tools UI at http://<authorHost>:<authorPort>/lc/miscadmin

  2. Select Replication, then Agents on author in the left panel.

    On the right panel, you see various agents configured for the Author instance.

  3. On the right panel, Select New.... and click New Page.

    The Create Page dialog displays.

  4. Set the Title and Name, then select Replication Agent.

  5. Click Create to create new agent.

  6. Double-click the new agent item to open the configuration panel.

  7. Click Edit - the Agent Settings dialog displays.

    1. In the Settings tab:

      • Enter a Description.

      • Check Enabled.

      • Select Serialization Type as Default.

      • Set the Retry Delay to 60000.

      • Set the Log Level as Info.

    2. In the Transport tab:

      • Enter the required URI for the Publish instance

      • Set User and Password.

  8. Click OK to save the settings.

  9. On the agent configuration panel, click Test Connection.

    Successful connection ensures that the configuration is done correctly.

Repeat steps 1-10 on the Author instance for a creating replication agent for each Publish instance.

Note: In case, you have only one Publish instance you can use the default agent named as Publish. You need to edit it for specifying Publish URI in the Transport tab as mentioned in the step b(i). In this case, you do not need to create a replication agent.
Note: In case, you have multiple Publish instances, you need to create a replication agent for each Publish instance as mentioned in Steps 1-10. For each such replication agent, Title and Name should be significant, so the identification of the corresponding Publish instance can be simpler. Each such replication agent has a different URI in the Transport tab pointing to a particular Publish instance. If you are not using the default agent, disable it, so unnecessary replication attempt can be avoided.
Note: For Author clusters, these steps need to be performed on one Author instance (preferably a master instance).

5.2.1.2 Define Publish instance URL for ActivationManagerImpl

  1. Go to http://<authorHost>:<authorPort>/lc/system/console/configMgr.

  2. Find and click the Edit icon next to the com.adobe.livecycle.content.activate.impl.ActivationManagerImpl setting.

  3. In the ActivationManager Publish URL field, specify the URL for the corresponding Publish instance.

  4. Click Save.

5.2.1.3 Configure reverse replication queue

  1. Go to http://<authorHost>:<authorPort>/lc/etc/replication/agents.author/publish_reverse.html.

  2. Click Edit. The Agent Settings dialog opens.

  3. Click the Transport tab and specify the URL to the corresponding Publish server in the URI field.

  4. Click OK.

5.2.2 Configure the Publish Instance

5.2.2.1 Define Author instance URL

  1. Go to http://<publishHost>:<publishPort>/lc/system/console/configMgr.

  2. Find and click the Edit icon next to the com.adobe.livecycle.content.activate.impl.VersionRestoreManagerImpl setting.

  3. In the VersionRestoreManager Author URL field, specify the URL for the corresponding Author instance.

  4. Click Save.

5.3 Integrate LiveCycle with Correspondence Management Solution

Important: Perform these steps only in case of a non-turnkey deployment. Further, perform these steps on one Author instance (preferably the master instance) for Author clusters. For Publish clusters, perform these steps on all Publish instances.
  1. Go to http://[host]:[port]/lc/system/console/configMgr and log in using admin/admin as username/password.

  2. Search for and open Adobe LiveCycle Client SDK Configuration.

  3. In Server URL field, ensure that http://[host]:[port] is specified.
    Important: Ensure that the document server is listening on the specified host and port combination. The following three scenarios are possible in the case of a LiveCycle server cluster:
    • All LiveCycle server instances are running on localhost and the same port. In this case use localhost:[port].

    • All LiveCycle server instances are running on localhost but on different ports. In this case, use a load balancer host name and port combination—[loadbalancer_host]:[loadbalancer_port].

    • All LiveCycle server instances are running on a particular host name (not localhost) and different/same ports. In this case, use a load balancer host name and port—[loadbalancer_host]:[loadbalancer_port].

    If you need to use a load balancer URL to access the LiveCycle server cluster (as mentioned above), ensure that the required communication ports between Author instances and the load balancer are open.

  4. Specify LiveCycle administrator credentials in the Username as Password fields.

  5. In the Experience Server URL field, specify http://[host]:[port]/lc.
    Ensure that the Experience Server is listening on the specified host and port combination. The host/port logic discussed in the note for step 2 also applies to the Experience Server.
  6. In the System user for accessing Experience Server field, ensure that crxuserfordsc is specified.

  7. In the System user for accessing Document Server field, specify dscuserforcrx.

  8. Ensure that all the checkboxes are selected.

  9. Click Configure. When the configuration is complete, a message is displayed on the screen.

    Important: When you create the users in steps 5 and 6, you have the following choices:
    1. You can create different users for each Publish and Author instance.

      If you specify the same user on different Publish and Author instances, an error is encountered when a Publish or Author instance with overridden trust settings connects to the Experience Server.

      When you specify a user for an instance (Author or Publish), say Instance01, the trust settings is defined between Instance01 and the Experience Server. However, if you specify the same user on another instance (Author or Publish), say Instance02, the newly specified user overrides the trust settings of the user defined on Instance01. Now, an error is encountered if Instance01 connects to the Experience Server.

    2. Alternatively, you can create the same user on all Author and Publish instances. However, ensure that when you specify the user on instance, you deselect the following checkboxes:

      • Reset password for Document Server System User

      • Reset password for Experience Server System User

      This ensures that each user does not override the trust settings of user defined on other instances.

5.4 Install sample users

You can install sample users with predefined user permissions to further explore the solution template, which you can customize to build your own solution.

  1. Go to http://<authorHost>:<authorPort>/crx. The content repository console opens.

  2. Click Package Share and log in using your Adobe ID and password.

  3. Type samples-correspondencemanagement-pkg in the search field and press Return.

  4. Click Download next to the samples-correspondencemanagement-pkg-<version> package, where <version> is the latest version in the search results.

  5. Accept the license agreement and click OK when prompted to download the package.

  6. When the download is complete, click Downloaded next to the package to open Package Manager.

  7. In Package Manager, click Install next to the downloaded package.

  8. Click Install on the confirmation dialog to install the sample users.

  9. (Optional) Repeat steps 1 through 8 on the Publish instance if you require sample users on the Publish instance.

For more information about the sample users and guidelines to implement a solution using the solution template, see Correspondence Management Solution Guide.
Note: For Author clusters, these steps need to be performed on one Author instance (preferably a master instance).

5.5 Configure IPv6 implementation

Note: Perform these steps only if Correspondence Management Solution is running on a machine that uses an IPv6 address.

To map the IPv6 address to a hostname on the server and client machines:

  1. Navigate to the C:\Windows\System32\drivers\etc directory.

  2. Open the hosts file in a text editor.

  3. Add a mapping for the IPv6 address to a host name. For example:

    2001:1890:110b:712b:d1d:9c99:37ef:7281 <ipv6_hostname>
  4. Save and close the file.

Ensure that you use the mapped host name instead of the IPv6 address to access Correspondence Management Solution.

5.6 Install Japanese fonts for Adobe Reader

If your Correspondence Management assets use Japanese fonts, you must install the Japanese Language Support Package for Adobe Reader. Otherwise, your letters and forms will not render and function properly. For installing language packs, visit the downloads page for Adobe Reader.

5.7 Uninstall Correspondence Management Solution

  1. Navigate to the [LiveCycle root]\Uninstall_Correspondence Management Solution directory.

  2. Run the Uninstall Correspondence Management Solution Installation application or script, as applicable.

  3. Follow the instructions to complete the uninstallation procedure.

Note: After uninstalling Correspondence Management Solution, you can run only LiveCycle by re-running the Configuration Manager. However, in case of turnkey deployments, before running Configuration Manager, you must restore the adobe-jboss-core.ear.orig file by renaming it to adobe-jboss-core.ear.
Note: Uninstaller does not remove the content repository data. If you do not need it anymore, you can manually delete the [LiveCycle root]/configurationManager/export/crx-quickstart/ directory.

5.8 Load balancing the Author cluster/Publish farm using Dispatcher

You can load balance all incoming requests to Author/Publish instances using Dispatcher, Adobe's caching and load balancing tool for CRX. Dispatcher is delivered as a plug in that you can use with any Web server; for example, Apache, IIS, iPlanet, and so on. Refer to this technical article for more details.

The following Dispatcher-provided functionality is important from a Correspondence Management perspective:
  • Load balancing

  • Sticky sessions

  • Session management

If an Apache instance is already in use for the LiveCycle cluster, you may use the same Apache installation by running separate instances on different ports using another configuration file (httpd.conf). Both Author and Publish instances can be handled using the same Dispatcher configuration. You must set up both Author and Publish farms in this scenario.

Alternatively, you can set up separate Dispatcher instances for Author and Publish instances. To configure this scenario, make the following changes to the Dispatcher configuration file, dispatcher.any:
Client headers
Add a custom header AEP-APP-ROOT for Correspondence Management:
/clientheaders 
{ 
"referer" 
"user-agent" 
............. 
............ 
.......... 
"AEP-APP-ROOT" 
} 

Renders
Author or Publish instances in a farm are represented by renders. The load is balanced amongst these renders.
/renders 
{ 
/node01 
{ 
#hostname or IP of the render 
/hostname "node1.com" 
#Port of the render 
/port "8080" 
/timeout "0" 
} 
/node02 
{ 
#hostname or IP of the render 
/hostname "node2.com" 
#Port of the render 
/port "8080" 
/timeout "0" 
} 
}

Filters
Using filters, you can specify which requests are accepted by the Dispatcher module. All other requests are sent back to the server, where they are offered to other modules running on the Web server.
/filter 
{ 
#deny everything and allow specific entries 
/001 {/type deny /glob "*"} 
/002 {/type allow /glob "* /admin/*"} # allow servlet engine admin 
/003 {/type allow /glob "* /crx/*"} # allow content repository 
/004 {/type allow /glob "* /system/*"} # allow OSGi console 
/0023 { /type "allow" /glob "* /content*" } #  disable this rule to allow mapped content only 
}

Sticky connections
Set sticky connections on "/", because Correspondence Management solution content is placed under various directory structures leading to different paths from “/”.
 /stickyConnectionsFor "/" 

Session management
The login-token cookie is used for Correspondence Management session management. Make the following configuration in the session management section:

/header "Cookie: login-token"