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

SOLVED

Email attachment via load balancer

Milan_Vucetic
Community Advisor
Community Advisor

Hi everyone,

 

I am playing with email attachments from local computer and it works fine when it is used on test environment as there exist only one app server.

When it is used on production environment where exist two app servers and load balancer in front of them, attachment is uploaded only on one server (which is current in the moment of the upload) and some temporary error is thrown:

Unable to finalize storage of resource as the file has not been uploaded...

 

So, until we start delivery execution load balancer can switch user to another server where file does not exist and brake it.

Is there a "easy & nice" way to overcome this without uploading files with workflows, etc... ?

 

Regards,

Milan

 

 

1 Accepted Solution
wodnicki
Correct answer by
Community Advisor
Community Advisor

Hi,

 

Easy answer is to just mount resource dirs from a network share, which you should be doing anyway for workflow file uploads etc.

Another option is to list both app servers as mta child's in their instance confs, which logically should cause the first to publish attachments to the second and vice-versa.

Finally, your load balancer should be in active/passive mode, with all traffic going to the primary until it dies. There are other issues with active/active, e.g. preventing users from reliably using unconditional halt on workflows.

 

Thanks,

-Jon

View solution in original post

4 Replies
Manoj_Kumar_
Community Advisor
Community Advisor

Hello Milan,

 

You can use Amazon S3 integration in this case and upload your static content there.

 

Thanks,

Manoj

Milan_Vucetic
Community Advisor
Community Advisor

Hi Manoj,


this is helpful. I am trying to find and easy way (change form/js code) in order to solve it.

As we have a mounted partition to both server (for sharing logs and partition is visible by both servers) it is feasible to change upload path to there but I cannot find where this is defined.

By default attach is uploaded to the /usr/local/neolane/nl6/var/InstanceName/upload

 

Regards,

Milan

wodnicki
Correct answer by
Community Advisor
Community Advisor

Hi,

 

Easy answer is to just mount resource dirs from a network share, which you should be doing anyway for workflow file uploads etc.

Another option is to list both app servers as mta child's in their instance confs, which logically should cause the first to publish attachments to the second and vice-versa.

Finally, your load balancer should be in active/passive mode, with all traffic going to the primary until it dies. There are other issues with active/active, e.g. preventing users from reliably using unconditional halt on workflows.

 

Thanks,

-Jon

View solution in original post

Milan_Vucetic
Community Advisor
Community Advisor

Hi wodnicki,

I can change upload path on app servers and that will solve my problem:

 

from uploadDirectory="$(XTK_INSTALL_DIR)/var/$(INSTANCE_NAME)/upload/"  to uploadDirectory="mounted_partition/upload/"

The question is, can this change impact any other regular process on AC?

 

Thanks in advance.

Milan