Multiple WfServers Marketing servers for Hybrid Model

manovinayaka757

02-03-2018

Hi All,

Environment:

Adobe Campaign V6.1

Hybrid Model (On-premise marketing wfservers, Adobe Frontal and mid sourcing servers)

We would like to setup Adobe Campaign V6.1 for high availability.

Our requirement suits the moderate size deployment. In the hardware sizing guide it is mentioned that 2 wfservers should be setup.

If we setup two wfservers, will there not be a clash between the two servers ? As both servers will collect tracking logs from the mid sourcing servers and will try to update the same database.

Please share your knowledge on this.

Adobe Campaign Hardware Sizing Guide

Scenario 1: Moderate-Size Deployment

Screen Shot 2018-03-03 at 2.11.30 PM.png

https://helpx.adobe.com/content/dam/help/en/campaign/kb/hardware-sizing-guide/_jcr_content/main-pars...

Accepted Solutions (1)

Accepted Solutions (1)

Amit_Kumar

MVP

09-03-2018

Hi Mano,

Host 1: Application server (nlserver web)

This process exposes the full range of Adobe Campaign functionality via Web Services APIs (SOAP - HTTP + XML). Furthermore, it can dynamically generate the Web pages used for HTML-based access (reports, Web forms, etc). To achieve this, this process includes an Apache Tomcat JSP server. This is the process to which the console connects.

Host 2 and host 3 : Workflow engine (nlserver wfserver)

It executes the workflow processes defined in the application.

It also handles periodically executed technical workflows, including:

Tracking: Recovering and consolidating tracking logs. It enables you retrieve the logs from the redirection server and create the aggregate indicators used by the reporting module.

Cleanup: Database cleaning. Used to purge old records and avoid the database growing exponentially.

Billing: Automatic sending of an activity report for the platform (database size, number of marketing actions, etc.).

Is there some special configuration required to set this up. In other words is there a cluster configuration (binding) required for setting this system.

Yes, you need some additional configurations.

You can configure several workflow servers (wfserver) and distribute them on two or more machines. If you choose this type of architecture, configure the connection mode of the load balancers according to the Adobe Campaign access.

For access from the web, select the load balancer mode to limit connection times.

If accessing via the Adobe Campaign console, choose hash or sticky ip mode. This lets you maintain the connection between the rich client and the server and prevent a user session from being interrupted during an import or export operation, for example.

You can choose to force the execution of a workflow or a workflow activity on a particular machine. To do this, you must define one or more affinities for the concerned workflow or activity.

  1. Create the affinities of the workflow or activity by entering them in the Affinity field.You can freely choose the affinity names. Nevertheless, make sure you do not use spaces or punctuation marks. If you use different servers, specify different names.s_ncs_install_server_wf_affinity01.png s_ncs_install_server_wf_affinity02.png
  2. The drop-down list contains formerly used affinities. It is completed over time with the different entered values.
  3. Open the nl6/conf/config-<instance>.xml file.
  4. Modify the line which matches the wfserver module as follows:<wfserver autoStart="true" affinity="XXX,YYY"/>

Regards,

Amit

Answers (9)

Answers (9)

Amit_Kumar

MVP

05-03-2018

Hi,

No, it will not be a clash, in fact, it will be an efficient architecture.

Allow me to explain, how this works:

architecture.png

When an operator performs an action on a workflow (start, stop, pause, etc.) like tracking workflow, the action is not executed straightaway by the 'nlserver' module(Adobe Campaign server), but instead placed in a queue in order to be processed by the workflow module.

  • The 'Workflow Instance Runner' (runwf) process executes all the tasks of a given workflow instance. When there are no tasks to be executed, for the time being, it becomes 'passive', that is to say, it saves its status in the database, then stops.
  • The 'Workflow Server' (wfserver) module monitors current workflow instances. When there is a task to perform, this module creates a process to activate (or reactivate) the corresponding instance.

This is very similar to the thread model in Java.

Regards,

Amit

Amit_Kumar

MVP

19-03-2018

Hi Mano,

This is not available as standard documentation, you can raise a request with your account manager, they will be able to help you get the correct documentation.

Meanwhile, download this pdf and maybe this will help you understand things?

https://docs.campaign.adobe.com/doc/AC/en/PDF/installation-v7-en.pdf

Regards,

Amit

shasha01

19-03-2018

Hi Amit,

I need to know what all changes needed in serverConf.xml to setup multiple wfservers running individually on separate machines.

Also when I am setting <wfserver affinities="abcd" > in serverConf.xml  and setting that same affinity in the workflow in the same instance ,then that workflow did not run.

The documentation is missing a crucial part . Could you please let me know how to accomplish this.

Thanks,

Shasha

Amit_Kumar

MVP

12-03-2018

Hi Mano,

One last question.

From your explanation, I understand that we can force the execution of a workflow or activity on a particular machine, but is this mandatory. No, it's optional, it was for your reference.

Can the same workflow/activity be executed on the two hosts (host 1 and host 2), will there be problems if done this way? If yes, then can the two hosts be set up as two standalone servers?

No, not at the same time but one time this activity can be assigned to one but for next execution for the second machine based on the load/queue size.

it works more like a load balancer, all instance share a queue and they pick next task once they have availability.

regards,

Amit

manovinayaka757

12-03-2018

Hi Amit,

Thanks a lot !

Is there any documentation that I can refer in order to setup this clustered environment. Please refer me to documentation link, that I can refer to.

Thank you once again, the knowledge that you shared is priceless to me.

Regards,

Mano

manovinayaka757

11-03-2018

Hi Amit,

Thank you very much for the detailed explanation.

One last question.

From your explanation, I understand that we can force the execution of a workflow or activity on a particular machine, but is this mandatory.

Can the same workflow/activity be executed on the two hosts (host 1 and host 2), will there be problems if done this way ? If yes, then can the two hosts be setup as two standalone servers ?

Regards,

Mano

manovinayaka757

08-03-2018

Hi Amit,

Thank you very much for sharing your knowledge.

In the system comprising the three hosts (as shown in your explanation), may I know what would go into host 1 (the modules ex.  wfserver etc).

What is the difference between host 1, host 2 and host 3.

Is there some special configuration required to set this up. In other words is there a cluster configuration (binding) required for setting this system.

From my understanding of normal tomcat based applications, there needs to be some clustering configuration required to be setup, so that each of the hosts are aware of each others existence and work together as one system.

Again thanks a lot for your time, really appreciate your response.

Regards,

Mano