This page highlights the following topics:
Before getting started with author and publish servers, you should have prior knowledge of:
This AEM Screens functionality is only available, if you have installed AEM 6.4 Screens Feature Pack 2. To get access to this Feature Pack, you must contact Adobe Support and request access. Once you have permissions you can download it from Package Share.
If you want to use more than one publish instances with dispatcher, you must update the dispatcher.any file in your dispatcher. See Enabling Sticky Sessions for more details.
To learn more about the author and publish architectural overview and how the content is authored on an AEM author instance and then forward-replicated to multiple publish instances, refer to Author and Publish Architectural Overview.
The following section explains how to setup replication agents on author and publish topology.
You can set up a simple example, where you host an author and two publish instances:
To create replication agents, you must learn how to create a standard replication agent.
There are 3 replication agents that are needed for Screens:
Follow the steps below to create a default replication agent:
Navigate to your AEM instance --> hammer icon --> Operations --> Configuration.
Select the Replication from the left navigation tree.
Select the Agents on author from the Replication folder and click New to create a new standard replication agent.
Enter the Title and Name to create the replication agent and click Create.
Right click the replication agent and click Open to edit the settings.
Click Edit to open the Agent Settings dialog box to enter the details.
User needs to check Enabled to enable replication agent. You must check this option on Default, Screens and Reverse Replication Agents.
Navigate to the Transport tab and enter the URI, User and Password.
You can also copy and rename an existing default replication agent.
Create a screens replication agent for pub1. Out-of-the-box, there is one named Screens Replication Agent that points to port 4503. This needs to be enabled.
Create a screens replication agent for pub2. Copy the Screens Replication Agent for pub1 and change the port to point to 4504 for pub2.
To learn how to configure Screens Replication Agents, see Configuring Screens Replication Agent.
Set up Apache Sling Oak-Based Discovery for all Publish instances in the topology
For each publish instance:
Navigate to https://<host>:<port>/system/console/configMgr
Select Apache Sling Oak-Based Discovery Service Configuration.
Update Topology connector URLs: add URLs of all partaking publish instances that is:
https://publish:4503/libs/sling/topology/connector
https://publish:4504/libs/sling/topology/connector
Topology connector Whitelist List: Adapt to IPs or subnets covering all publish instances. Ensure you whitelist the IP/hostname of all publish instances without the port number.
Enable Auto-Stop Local-Loops
The configuration should be identical for each publish instance and the auto-stop Local-loop prevents an infinite loop.
For any of the publish instances navigate to https://:/system/console/topology
. You should see each publish instances represented in the topology under Outgoing topology connectors.
This step allows you to create encrypted password for ActiveMQ Artemis cluster.
The cluster user and password of all publish instances in the topology needs to be identical. The password of the ActiveMQ Artemis configuration needs to be encrypted. Since each instance has its own encryption key it is necessary to use Crypto Support to create an encrypted password string. Then encrypted password will be used in the OSGi config for ActiveMQ.
On each Publish Instance:
https://<host>:<port>/system/console/crypto
).Since each publish instance by default has unique crypto keys you need to perform this step on each pub instance and save the unique key for the next configuration.
The password should start and end with curly brackets. For example:
{1ec346330f1c26b5c48255084c3b7272a5e85260322edd59119828d1fa0a610e}
On each publish instance:
Navigate to the OSGi Config manager https://<host>:<port>/system/console/configMgr
Select Apache ActiveMQ Artemis JMS Provider Configuration
Update the following:
{name: 'commands', address: 'com.adobe.cq.screens.commands', maxConsumers: 50}
Follow the steps below on each Publish instance:
Navigate to the OSGi Console -> Main > ActiveMQ Artemis https://localhost:4505/system/console/mq
.
Verify and check to view the ports of other instances under Cluster Information > Topology > nodes=2, members=2.
Send a Test Message (top of the screen under Broker Information)
Enter the following changes in fields:
Navigating to OSGi console, may take a few seconds after saving the configuration in the preceding step. You can also check the error.log for more details.
As an example, the following image displays on successful configuration of ActiveMQ Artemis Server.
If you do not see the following configuration from /system/console/mq, then navigate to /system/console/mq and click Restart to restart the broker.
Follow the steps on each Publish instance:
Once you have set up the publish topology, you need to configure the author and publish instances, to view the practical results of implementation:
Prerequisites
To get started with this example, create a new AEM Screens project followed by creating a location, display, and channel in your project. Add content to your channel and assign the channel to a display.
https://localhost:4502/content/mobileapps/cq-screens-player/firmware.html
or launch the AEM Screens app. When you open the device you will notice the device’s state as unregistered.You can open an AEM Screens player using the AEM Screens app you downloaded or using the web browser.
https://localhost:4502/screens.html/content/screens/we-retail
or select your project and navigate to Devices > Device Manager.Check your player and you will see the content that you added in your channel.
Verifying the Device
Follow the steps below to replicate the device user:
https://localhost:4502/useradmin
Do not activate author-publish-screens-service as it is a system user, used by the Author Job.
You can also activate the device from the Device Management Console. Follow the steps below:
Alternatively, once you have activated the device you also can edit or update the server URL by clicking Edit server URL from the action bar, as shown in the figure below and your changes will be propagated to the AEM Screens player.
The following points summarizes the Publishing Check list:
Screens Device User - This is stored as an AEM user and be activated from Tools > Security > Users. The user will be prefixed with “screens” with a long serialized string.
Project - The AEM Screens project.
Location - Location that device is connected to.
Channel(s) - one or more channels that are being displayed at the location
Schedule - if using a schedule ensure this is published
Location, Schedules, and Channel Folder - if the corresponding resources are inside a folder.
Follow the steps below to verify the author/publish behavior:
View the changes in your AEM Screens player.
Alternatively, you can also update/edit the server URL from the device management console using the following steps:
The Manage Publication feature allows you to deliver content updates from author to publish to device. You can publish/un-publish content for your entire AEM Screens project or only for one of your channel, location, device, application, or a schedule. To learn more about this feature, refer to On-Demand Content Update.
Follow the section below to get answers to frequently asked questions related to author/publish setup.
Solution
Set Enable Proxy/Load Balancer Connection in the Jetty configuration
to true
.
/content/dam/projects/<project>
?Solution
Give read permissions for bulk-offline-update-screens-service user and screens-devices-master group for all /content/dam
or the specific assets you want to use, if you want to be more restrictive.
Solution
Make sure you have not checked Use for reverse replication option in the agent configuration. Screens Replication Agent cannot be used as a reverse replication agent and the scope of this feature is to forward device commands from author to publish.