Skip to main content

Integrating Elvis 5 in Enterprise Server 9

Comment

Do you have corrections or additional information about this article? Leave a comment!
Do you have a question about what is described in this article? Please contact Support.


2 comments

  • Siebrand Mazeland

    On Script setup (sync.php): In a scenario with multiple WoodWing application servers, should this script run on each application server, some applications servers, or absolutely only a single application server? Currently the documentation doesn't mention configuration for scaled up scenarios.

    From class ElvisSync, I think the answer is "You can run it on as many application servers as you like, because the job uses a semaphore, and only one can be active at any time", but it would be good to get a clear and documented answer on that.

    Additionally, while you're at it -- I didn't bother to check where these are documented -- it would be really nice if you could answer the same question for jobs "jobindex.php?createrecurringjob=AutoPurgeTrashCan", "jobindex.php?createrecurringjob=AutoCleanServerJobs", "jobindex.php?createrecurringjob=TransferServerCleanUp", and "idsjobindex.php".

     

     

    0
  • MengLu Au Yong

    Hi Siebrand,

    First of all, apology for the very late reply.

    Please see below for the answers:

    From Elvis point of view:

    From Elvis point of view this should not give any issues.

    The retrieveAssetUpdates the sync job calls from Enterprise is compatible with multiple enterprise system ids.

    From Enterprise point of view:

    1. sync.php in Elvis-content source plugin.

      On Script setup (sync.php): In a scenario with multiple WoodWing application servers, should this script run on each application server, some applications servers, or absolutely only a single application server?

      1. sync.php
        As you have found it out yourself, that this script can be run on multiple Application Servers simultaneously. This is due to that the script is semaphore protected ( the same for the idsjobindex.php which is explained below ).
        So at any one time, only one sync.php will be really executing and doing the sync ( even though many are installed and called ).
    2. Server jobs and InDesign Server jobs.

      Additionally, while you're at it – I didn't bother to check where these are documented – it would be really nice if you could answer the same question for jobs "jobindex.php?createrecurringjob=AutoPurgeTrashCan", "jobindex.php?createrecurringjob=AutoCleanServerJobs", "jobindex.php?createrecurringjob=TransferServerCleanUp", and "idsjobindex.php".

      1. jobindex.php ( Server Jobs )

        "jobindex.php?createrecurringjob=AutoPurgeTrashCan", "jobindex.php?createrecurringjob=AutoCleanServerJobs", "jobindex.php?createrecurringjob=TransferServerCleanUp"

        Calling jobindex.php to create recurring jobs from multiple Application Servers (AS) (each having an exact copy of the crontab) is NOT wanted. They are not designed to run in parallel and you do not want to have 5 same cleanup jobs in the queue because you have installed 5 AS machines. so these kind of jobs have to be created from one AS instance only.

      2. idsjobindex.php (InDesign Server Jobs)

        and "idsjobindex.php".

        This one is periodically run by crontabs in "dispatcher" mode. It has a semaphore protection for that, so there will be only one dispatching for e.g. 1 minute, then dies off and the crontab creates another instance and so on.
        So even when there are many dispatcher processes created (one per AS), only one will become the real dispatcher due to the semaphore. When it finds a match between an IDS instance and a job, it calls itself async via cURL but now with a parameter that tells himself to run in processing mode, which is seen as another process that is separated from the dispatcher. This process ( the one running in the processing mode) can run in parallel with any other processes because they all get one IDS instance and one job to work with which will never be conflicting. In other words, idsjobindex.php is designed for a multi-AS setup

     

    And indeed, we don't have this documented elsewhere so far. We will improve on this and add in the above information too. Thanks for bringing this up.

    0

Please sign in to leave a comment.