> Hi All,
> I am trying to do test for provisioning of multiple tables(actually
> two tables) on an external database.
> For the test, I created connectors, resourses and pull tasks for each
> tables, and executed two tasks at the almost same time.
> I expected the tasks were going to be executed concurrently, but it
> did not.
> And then I explored provisioning source codes and a found
> DisallowConcurrentExecution quartz annotation on
> AbstractInterruptableJob class on which TaskJob class extended.
> Is it right concept for tasks to be executed not concurrently? Or I
> missed something important?
Quartz's @DisallowConcurrentExecution  ensures that there are no
multiple instances of the same Job class executed concurrently (where
instance is based-upon a JobDetail definition - or in other words based
upon a JobKey).
In other words, it is not the fact that you are concurrently executing
two instances of the TaskJob  class that matters, but rather the
associated JobKey, which is in this case built by  and depends on the
effective key, e.g. the UUID generated for the task.
As a result, there is nothing blocking two distinct PullTask instances
to run concurrently.
There are, however, specific conditions to met, in order to effectively
run propagation tasks concurrently; you can read more about this aspect