Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

There are 5 jobs in sync service:

  • PersonOwnerRebuildJob: Calls a stored procedure that truncates and repopulates the 'PersonOwner' table based on an ordered list of ProgrammeMembership criteria
  • PersonPlacementEmployingBodyTrustJob: Truncates and repopulates the list of connections between trainees and the employingBody trust. It writes data into the database table tcs.PersonTrust.
  • PersonPlacementTrainingBodyTrustJob: Repopulates the list of connections between trainees and the trainingBody trust. It also writes into tcs.PersonTrust, and is triggered after PersonPlacementEmployingBodyTrustJob, so the data wouldn't be truncated at first.
  • PostEmployingBodyTrustJob: Truncates and repopulates the list of connections between posts and the employingBody trust. It writes data into the database tcs.PostTrust.
  • PostTrainingBodyTrustJob: Repopulates the list of connections between posts and the trainingBody trust. It also writes into tcs.PostTrust, and is triggered after PostTrainingBodyTrustJob, so the data wouldn't be truncated at first.
  • PersonElasticSearchSyncJob: Truncates index of persons in ElasticSearch and creates a new index of persons. Then repopulates the documents of PersonViews from TCS-Service and saves these documents in ElasticSearch. 


Sequence Diagram for sync jobs:

The processing flows of PersonPlacementTrainingBodyTrustJob, PostEmployingBodyTrustJob, PostTrainingBodyTrustJob are similar to PersonPlacementEmployingBodyTrustJob, so there's no need to repeat the diagram.


Time scheduled

00:05 PersonOwnerRebuildJob

00:09 PersonPlacementEmployingBodyTrustJob

00:29 PersonPlacementTrainingBodyTrustJob

01:09 PostEmployingBodyTrustJob

01:19 PostTrainingBodyTrustJob

01:29 PersonElasticSearchSyncJob

If the container is restarted in a pre-defined time range (00:00:00+00:00 to 07:00:00+00:00) then the jobs are run sequentially.

Job Execution Order


Summary of what to run:

Failed/Out-of-date JobManaged Bean NameMethod NameThings that need to be done after this has been started
PersonOwnerRebuildJobPersonOwnerRebuildJobpersonOwnerRebuildJobnone

PersonPlacementEmployingBodyTrustJob

PersonPlacementEmployingBodyJobdoPersonPlacementEmployingBodyFullSync

Re-run PersonPlacementTrainingBodyTrustJob

  and PersonElasticSearchSyncJob

PersonPlacementTrainingBodyTrustJobPersonPlacementTrainingBodyTrustJobPersonPlacementTrainingBodyFullSyncPersonElasticSearchSyncJob (assuming only this failed)
PostEmployingBodyTrustJobPostEmployingBodyTrustJobPostEmployingBodyTrustFullSyncRe-run PostTrainingBodyTrustJob
PostTrainingBodyTrustJobPostTrainingBodyTrustJobPostTrainingBodyTrustFullSyncnone (assuming only this failed)
PersonElasticSearchSyncJobPersonElasticSearchJobpersonElasticSearchSyncnone


Run jobs out of schedule

Instructions taken from Refresh Elasticsearch cache page.

If a job needs to be run manually, e.g. after a database has been re-imported to stage:

  1. Copy the commands below into your favorite text editor.
  2. Replace the $bean_name and $job_method with the ones for the job you are re-running.
  3. ssh into either the blue or green server and paste the modified commands in a single chunk and it will go through the process of:
    1. downloading the JDK and the JMX client
    2. copy them to the container
    3. extract the compressed JDK
    4. launch the JMX client and
    5. restart the sync job.

N.B. Refer to the "Job Execution Order" above to see whether there is an appending Job which needs to be run afterward.


cd /tmp
mkdir javatools
cd javatools
wget https://heetisrequiredapps.blob.core.windows.net/javafiles/jmxterm-1.0.0-uber.jar
wget https://heetisrequiredapps.blob.core.windows.net/javafiles/jdk-8-linux-x64.tar.gz
cd ..
docker cp javatools sync_sync_1:/tmp
docker exec -it sync_sync_1 /bin/bash
cd /tmp/javatools
tar -zxvf jdk-8-linux-x64.tar.gz
rm jdk-8-linux-x64.tar.gz
./jdk1.8.0_202/bin/java -jar jmxterm-1.0.0-uber.jar
open 1
domain sync.mbean
bean sync.mbean:name=$bean_name
run $job_method
run isCurrentlyRunning
exit

When you're back at the bash-4.4# prompt you can run the following command to keep an eye on the progress of the sync.

tail /var/log/apps/sync.log -f
  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.