0
votes

We are planning to create cluster server for our primary server and confused how can we create dynamic document links for workflow users. following is our proposed architecture.

1 - MailServer01 2 - AppServer01 - User where email server is mentioned MailServer01 will use app server01 for apps and this server will use SMTP services of MailServer01 and for another location we are having following two servers

1 - MailServer02 2 - AppServer02 - Same as above

I have an application deployed in primary server(AppServer01) is serving for location X and replica of that application is available on AppServer02 and in use of location Y. Both server are replicating after 5 minutes interval. Now I am having 2 issues and your help is required.

1 - How can I create dynamic link for Rich / Notes Client and Web Client for xpages that person having email on MailServer01 access these links on AppServer01 and person having email on MailServer02 access these links on AppServer02 ? I don't want to hard code anything e.g. previously we were using appendDocLink and if primary is not available user were redirected to replica /cluster.

2 - If I achieve above functionality than if person is initiating workflow from AppServer02 and approval is required from the guy on AppServer01 system generate email instantly but record is updated when replication occurs. How can I make that record immediately available to person on other server. There is no time difference at both locations.

Kindly let me know if you require any further details. Thanks for your time and support.

Thanks, Qaiser

1
I can't answer this from an xpages perspective, hence a comment rather than an answer. In classic Notes & Domino web development, I was able to do something more or less along the same lines as this using a computed action hotspot that evaluated to an @URLOpen command. Logic in the formula used DbName to determine what server it was running on, which determined what server name would be used in the UrlOpen.And it used ClientType to determine whether the argument for UrlOpen was formatted as an http:// link or a notes:// link. (At signs omitted because SO only allows one per comment.)Richard Schwartz
Dear @RichardSchwartz thanks for your comments. currently we are hard coding liniks e.g. https:// or notes:// but if we are separating our servers for different location then i don't want anything hardcoded other wise user on location X will coming on location in some case which I don't want.Qaiser Abbas
The technique I described does not need any hard coding. It can read two lists from profile documents. It checks the server component of the @DbName value against the first list and selects the corresponding server name (or host name) from the second list when constructing the argument for the call to URLOpen.Richard Schwartz
Thanks for your reply, I will not be using @URLOpen because i need to create links in MIME format. I will do some R& D to create context sensitive links e.g. if target end user abbreviated name contains x location than server will be app01 in link otherwise it will be app02.Qaiser Abbas

1 Answers

0
votes

1.) If you have http(s) enabled on you mail server, I suggest that you create an "intermediary application" on the mail server itself. This application can be called with a parameter to identify the document you want to open. While calling this app you can determine the user's home server and document url and redirect the user to the document on the corresponding app server. With this approach you do not need any "hard-coded" links, you can compute the link based on the recipient's home server or using the approach Richard suggested in his comment using @UrlOpen.

2.) To ensure that documents within the app will be replicated instantly I recommend to setup both application servers as a cluster. Cluster replication will ensure that both databases are in sync on both servers in "real time" (if there is such a thing like real time...).