Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn More

View all

Sign in to view all badges

How to define upload directory for ACC enterprise deployment?

Avatar

Avatar
Level 1
alanl62013822
Level 1

Likes

0 likes

Total Posts

11 posts

Correct Reply

0 solutions
View profile

Avatar
Level 1
alanl62013822
Level 1

Likes

0 likes

Total Posts

11 posts

Correct Reply

0 solutions
View profile
alanl62013822
Level 1

09-07-2020

Hi,

 

We built the Adobe campaign classic on our local server and selected the enterprise deployment, so we have 2 web servers and 2 app servers. Now, we want to upload files to AC server then call these files in workflow. But the workflow always shows that the file cannot be found. In my research, the files were uploaded to one of web servers randomly instead of the app server. So workflow cannot found files in app server. I don't know how to define the upload directory, the default setting is

uploadDirectory="$(XTK_INSTALL_DIR)/var/$(INSTANCE_NAME)/upload/".

Can someone give me some advice, please?

Thank you in advance.

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar
Contributor
MVP
Milan_Vucetic
MVP

Likes

166 likes

Total Posts

383 posts

Correct Reply

135 solutions
Top badges earned
Contributor
Springboard
Shape 1
Validate 25
Validate 10
View profile

Avatar
Contributor
MVP
Milan_Vucetic
MVP

Likes

166 likes

Total Posts

383 posts

Correct Reply

135 solutions
Top badges earned
Contributor
Springboard
Shape 1
Validate 25
Validate 10
View profile
Milan_Vucetic
MVP

10-07-2020

Hi @alanl62013822, default location is /usr/local/neolane/nl6/var/res. You can

mount a shared partition to both app servers and set this path like: uploadDirectory="/your_mounted_shared_partition/instance_name/res/" and set this path to this variable as well extraSandboxedDirectories. There is automated process for copying files between app and web servers.

Regards, MIlan

alanl62013822

Hi Milan,

 

Thanks for your response.

As you mentioned, default location is /usr/local/neolane/nl6/var/res. But when I upload file to AC, the file will be stored in /usr/local/neolane/nl6/var/dev/upload, dev” is my instance name.

On the other hand, “mount a shared partition to both app servers”, do you mean I need to mount a SMB folder to both app server and mount as /usr/local/neolane/nl6/var/?

I also find the default value of extraSandboxedDirectories  is "/home/customers/,/sftp/", so I should change this value to "/usr/local/neolane/nl6/var/", right?

Here's the default settings in serverConf.xml, can you teach me how to change it?  Realy appreciated.

<dataStore exportDirectory="$(XTK_INSTALL_DIR)/var/$(INSTANCE_NAME)/export/"
extraSandboxedDirectories="/home/customers/,/sftp/" formCacheTimeToLive="600"
hosts="*" interactionCacheTimeToLive="300" lang="" uploadDirectory="$(XTK_INSTALL_DIR)/var/$(INSTANCE_NAME)/upload/"
uploadWhitelist=".+" useVault="false" vaultSecretPath="/v1/secret/campaign/"
vaultTokenPath="$(HOME)/.vaulttoken" vaultUrl="" viewCacheTimeToLive="600"
workingDirectory="$(XTK_INSTALL_DIR)/var/$(INSTANCE_NAME)/workspace/">

 

Milan_Vucetic

Hi @alanl62013822, assume that you have a load balancer in front of app servers. My suggestion is to have one common shared folder or partition which is always accessible by both app server no matter where load balancer switching you. Therefore, mount that folder and put real location path of that folder to upload variable instead of /usr/local/neolane/nl6/var/dev/upload. Regarding extraSandboxedDirectories do not delete anything, just add a comma (",") and add folder path at the end. You may use this folder for app servers to write logs in one file instead of (asuming) separate logs per server now (for example now you have web.log on both app server instead of one web.log in shared folder written by both app servers). Regards, Milan

alanl62013822

Hi Milan,

 

yes, I have a load balancer in front of the two Web servers. Here is our infrastructure. If users upload files and images through AC client, these files will be stored in Frontal Server 1 or Frontal Server 2.

Regarding your suggestions, should I create a NFS share folder with '/usr/local/neolane/nl6/var/dev/' on APP server 01 then mount this NFS folder to all frontal servers and app servers?

infra.png

Milan_Vucetic
Hi @alanl62013822, When you do AC console login you should be connected to one of two app servers not web servers. Any upload will be stored to app server (there is an internal process of copying resources from app servers to web servers so you mean that you do upload directly to web servers) so please check where files are stored in app servers. Once again, if you going with this approach, please forget this path: '/usr/local/neolane/nl6/var/dev/'. Mount a new NFS share which will have own (new) path like /mounted_nfs_folder. When you do that and mount folder to both app servers only then change existing path in serverConf.xml and change upload path to /mounted_nfs_folder. In case does not work for you, just return old path in serverConf.xml as was before. Regards,Milan

Answers (1)

Answers (1)

Avatar

Avatar
Establish
MVP
wodnicki
MVP

Likes

960 likes

Total Posts

1,090 posts

Correct Reply

508 solutions
Top badges earned
Establish
Affirm 500
Contributor
Shape 1
Give Back 100
View profile

Avatar
Establish
MVP
wodnicki
MVP

Likes

960 likes

Total Posts

1,090 posts

Correct Reply

508 solutions
Top badges earned
Establish
Affirm 500
Contributor
Shape 1
Give Back 100
View profile
wodnicki
MVP

15-07-2020

Hi,

 

Users should be accessing app servers using an active/passive load balancer, or just connect directly to the primary.

In active/active, users won't be able to reliably unconditionally stop workflows.

You should still mount the app servers to a common share for failover.

 

Thanks,

-Jon