Package org.camunda.bpm.engine.impl
Class BootstrapEngineCommand
java.lang.Object
org.camunda.bpm.engine.impl.BootstrapEngineCommand
- All Implemented Interfaces:
Command<Void>
,ProcessEngineBootstrapCommand
- Author:
- Nikola Koevski
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
acquireExclusiveInstallationIdLock
(CommandContext commandContext) protected void
acquireExclusiveTelemetryLock
(CommandContext commandContext) void
checkDeploymentLockExists
(CommandContext commandContext) void
checkHistoryCleanupLockExists
(CommandContext commandContext) protected void
checkInstallationIdLockExists
(CommandContext commandContext) protected void
checkTelemetryLockExists
(CommandContext commandContext) protected void
createHistoryCleanupJob
(CommandContext commandContext) protected void
createInstallationProperty
(CommandContext commandContext) protected void
createTelemetryProperty
(CommandContext commandContext) protected String
databaseInstallationId
(CommandContext commandContext) protected PropertyEntity
databaseTelemetryConfiguration
(CommandContext commandContext) execute
(CommandContext commandContext) void
initializeInstallationId
(CommandContext commandContext) void
initializeTelemetryProperty
(CommandContext commandContext) protected boolean
isHistoryCleanupEnabled
(CommandContext commandContext) boolean
When CockroachDB is used, this command may be retried multiple times until it is successful, or the retries are exhausted.protected void
startTelemetryReporter
(CommandContext commandContext) protected void
updateTelemetryData
(CommandContext commandContext)
-
Field Details
-
TELEMETRY_PROPERTY_NAME
- See Also:
-
INSTALLATION_PROPERTY_NAME
- See Also:
-
-
Constructor Details
-
BootstrapEngineCommand
public BootstrapEngineCommand()
-
-
Method Details
-
execute
-
createHistoryCleanupJob
-
checkDeploymentLockExists
-
checkHistoryCleanupLockExists
-
isHistoryCleanupEnabled
-
initializeTelemetryProperty
-
checkTelemetryLockExists
-
databaseTelemetryConfiguration
-
createTelemetryProperty
-
initializeInstallationId
-
createInstallationProperty
-
databaseInstallationId
-
checkInstallationIdLockExists
-
updateTelemetryData
-
startTelemetryReporter
-
acquireExclusiveTelemetryLock
-
acquireExclusiveInstallationIdLock
-
isRetryable
public boolean isRetryable()When CockroachDB is used, this command may be retried multiple times until it is successful, or the retries are exhausted. CockroachDB uses a stricter, SERIALIZABLE transaction isolation which ensures a serialized manner of transaction execution. A concurrent transaction that attempts to modify the same data as another transaction is required to abort, rollback and retry. This also makes our use-case of pessimistic locks redundant since we only use them as synchronization barriers, and not to lock actual data which would protect it from concurrent modifications. The BootstrapEngine command only executes internal code, so we are certain that a retry of a failed engine bootstrap will not impact user data, and may be performed multiple times.- Specified by:
isRetryable
in interfaceCommand<Void>
- Returns:
- true if the
CrdbTransactionRetryInterceptor
can make a transparent retry of this command upon failure with aCrdbTransactionRetryException
(only used when running on CockroachDB).
-