diff --git a/doc/sphinx-guides/source/admin/harvestclients.rst b/doc/sphinx-guides/source/admin/harvestclients.rst index cd841aeba85..8d4eec50ad6 100644 --- a/doc/sphinx-guides/source/admin/harvestclients.rst +++ b/doc/sphinx-guides/source/admin/harvestclients.rst @@ -22,6 +22,13 @@ Clients are managed on the "Harvesting Clients" page accessible via the :doc:`da The process of creating a new, or editing an existing client, is largely self-explanatory. It is split into logical steps, in a way that allows the user to go back and correct the entries made earlier. The process is interactive and guidance text is provided. For example, the user is required to enter the URL of the remote OAI server. When they click *Next*, the application will try to establish a connection to the server in order to verify that it is working, and to obtain the information about the sets of metadata records and the metadata formats it supports. The choices offered to the user on the next page will be based on this extra information. If the application fails to establish a connection to the remote archive at the address specified, or if an invalid response is received, the user is given an opportunity to check and correct the URL they entered. +Known issues +~~~~~~~~~~~~ +When running harvest clients, you should validate from the logs if all of your harvesters complete their job. +"Trouble" and incomplete harvests might await you, when your harvests take longer than one hour or stack up when grouped +at start times lying just an hour or two away from each other. If you suffer from this, please open an issue referencing +the :doc:`../developers/timers` part of the docs. + New in Dataverse 4, vs. DVN 3 ----------------------------- diff --git a/doc/sphinx-guides/source/admin/timers.rst b/doc/sphinx-guides/source/admin/timers.rst index b4031078fce..26a612e8f1c 100644 --- a/doc/sphinx-guides/source/admin/timers.rst +++ b/doc/sphinx-guides/source/admin/timers.rst @@ -58,6 +58,11 @@ recommendation or not. In new installations, this will not be necessary. Known Issues ------------ -Former to Dataverse 4.10, we've received several reports of an intermittent issue where the application fails to deploy +Prior to Dataverse 4.10, we've received several reports of an intermittent issue where the application fails to deploy with the error message "EJB Timer Service is not available." Please see the :doc:`/admin/troubleshooting` section of this guide for a workaround. + +When running harvest clients, you should validate from the logs if all of your harvesters complete their job. "Trouble" +and incomplete harvests might await you, when your harvests take longer than one hour or stack up when grouped at start +times lying just an hour or two away from each other. If you suffer from this, please open an issue referencing the +:doc:`../developers/timers` part of the docs. \ No newline at end of file diff --git a/doc/sphinx-guides/source/developers/timers.rst b/doc/sphinx-guides/source/developers/timers.rst index b057a10496e..3620909bc3f 100644 --- a/doc/sphinx-guides/source/developers/timers.rst +++ b/doc/sphinx-guides/source/developers/timers.rst @@ -8,8 +8,13 @@ techniques used for scheduling. * :doc:`../admin/metadataexport` is done via ``@Schedule`` annotation on ``OAISetServiceBean.exportAllSets()`` and ``DatasetServiceBean.exportAll()``. Fixed to 2AM local time every day, non persistent. * Harvesting is a bit more complicated. The timer is attached to ``HarvesterServiceBean.harvestEnabled()`` via - ``@Schedule`` annotation every hour at minute 50, non-persistent. - That method collects all enabled ``HarvestingClient`` and runs them. + ``@Schedule`` annotation every hour, non-persistent. + That method collects all enabled ``HarvestingClient`` and runs them if time from client config matches. + +**NOTE:** the timers for Harvesting might cause trouble, when harvesting takes longer than one hour or multiple +harvests configured for the same starting hour stack up. There is a lock in place to prevent "bad things", but that +might result in lost harvest. If this really causes trouble in the future, the code should be refactored to use either +a proper task scheduler, JBatch API or asynchronous execution. A *TODO* message has been left in the code. .. contents:: |toctitle| :local: