class DbActiveContractStore extends ActiveContractStore with DbStore with DbPrunableByTimeDomain[AcsError]

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DbActiveContractStore
  2. DbPrunableByTimeDomain
  3. DbPrunableByTime
  4. DbStore
  5. HasCloseContext
  6. NamedLogging
  7. FlagCloseable
  8. AutoCloseable
  9. ActiveContractStore
  10. ConflictDetectionStore
  11. PrunableByTime
  12. ActiveContractSnapshot
  13. AnyRef
  14. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new DbActiveContractStore(storage: DbStorage, domainId: IndexedDomain, enableAdditionalConsistencyChecks: Boolean, maxContractIdSqlInListSize: PositiveNumeric[Int], indexedStringStore: IndexedStringStore, timeouts: ProcessingTimeout, loggerFactory: NamedLoggerFactory)(implicit ec: ExecutionContext)

Type Members

  1. case class ReaderState(count: Int, readers: MultiSet[String]) extends Product with Serializable
    Definition Classes
    FlagCloseable
  2. case class DbAcsError(reason: String) extends AcsError with Product with Serializable

Value Members

  1. object ReaderState extends Serializable
    Definition Classes
    FlagCloseable
  2. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  3. final def ##: Int
    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  5. def advancePruningTimestamp(phase: PruningPhase, timestamp: CantonTimestamp)(implicit traceContext: TraceContext): EitherT[Future, AcsError, Unit]
    Attributes
    protected[canton]
    Definition Classes
    DbPrunableByTimePrunableByTime
  6. def archiveContract(contractId: LfContractId, toc: TimeOfChange)(implicit traceContext: TraceContext): CheckedT[Future, AcsError, AcsWarning, Unit]

    Shorthand for archiveContracts(Seq(contractId), toc)

    Shorthand for archiveContracts(Seq(contractId), toc)

    Definition Classes
    ActiveContractStore
  7. def archiveContracts(contractIds: Seq[LfContractId], toc: TimeOfChange)(implicit traceContext: TraceContext): CheckedT[Future, AcsError, AcsWarning, Unit]

    Marks the given contracts as archived from toc's timestamp (inclusive) onwards.

    Marks the given contracts as archived from toc's timestamp (inclusive) onwards.

    contractIds

    The contract IDs of the contracts to be archived

    toc

    The time of change consisting of

    • The request counter of the confirmation request that archives the contracts.
    • The timestamp on the confirmation request that archives the contracts.
    returns

    The future completes when all contract states have been updated. The following irregularities are reported for each contract:

    Definition Classes
    DbActiveContractStoreActiveContractStore
  8. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  9. def changesBetween(fromExclusive: TimeOfChange, toInclusive: TimeOfChange)(implicit traceContext: TraceContext): Future[LazyList[(TimeOfChange, ActiveContractIdsChange)]]

    Returns all changes to the active contract set between the two timestamps (both inclusive) in the order of their changes.

    Returns all changes to the active contract set between the two timestamps (both inclusive) in the order of their changes. The provided lower bound must not be larger than the upper bound.

    fromExclusive

    The lower bound for the changes. Must not be larger than the upper bound.

    toInclusive

    The upper bound for the changes. Must not be smaller than the lower bound.

    Definition Classes
    DbActiveContractStoreActiveContractSnapshot
    Exceptions thrown

    java.lang.IllegalArgumentException If the intervals are in the wrong order.

  10. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  11. final def close(): Unit

    Blocks until all earlier tasks have completed and then prevents further tasks from being run.

    Blocks until all earlier tasks have completed and then prevents further tasks from being run.

    Definition Classes
    FlagCloseable → AutoCloseable
    Annotations
    @SuppressWarnings()
  12. implicit val closeContext: CloseContext
    Definition Classes
    HasCloseContext
  13. def closingTimeout: FiniteDuration
    Attributes
    protected
    Definition Classes
    FlagCloseable
  14. def contractSnapshot(contractIds: Set[LfContractId], timestamp: CantonTimestamp)(implicit traceContext: TraceContext): EitherT[Future, AcsError, Map[LfContractId, CantonTimestamp]]

    Returns a map to the timestamp when the contract became active for the last time before or at the given timestamp.

    Returns a map to the timestamp when the contract became active for the last time before or at the given timestamp. Omits contracts that not active right after the given timestamp.

    timestamp

    The timestamp at which the activeness of the contracts shall be determined. Must be before the timestamp that corresponds to the head cursor in the com.digitalasset.canton.participant.protocol.RequestJournal for the state com.digitalasset.canton.participant.protocol.RequestJournal.RequestState.Clean. If this precondition is violated, the returned snapshot may be inconsistent, i.e., it may omit some contracts that were ActiveContractStore.Active at the given time and it may include contracts that were actually ActiveContractStore.Archived or ActiveContractStore.TransferredAway.

    Definition Classes
    DbActiveContractStoreActiveContractSnapshot
  15. def createContract(contractId: LfContractId, toc: TimeOfChange)(implicit traceContext: TraceContext): CheckedT[Future, AcsError, AcsWarning, Unit]

    Shorthand for createContracts(Seq(contractId), toc)

    Shorthand for createContracts(Seq(contractId), toc)

    Definition Classes
    ActiveContractStore
  16. def createContracts(contractIds: Seq[LfContractId], toc: TimeOfChange)(implicit traceContext: TraceContext): CheckedT[Future, AcsError, AcsWarning, Unit]

    Marks the given contracts as active from timestamp (inclusive) onwards.

    Marks the given contracts as active from timestamp (inclusive) onwards.

    contractIds

    The contract IDs of the created contracts

    toc

    The time of change consisting of

    • The request counter of the confirmation request that created the contracts
    • The timestamp of the confirmation request that created the contracts.
    returns

    The future completes when all contract states have been updated. The following irregularities are reported for each contract:

    Definition Classes
    DbActiveContractStoreActiveContractStore
  17. def deleteSince(criterion: RequestCounter)(implicit traceContext: TraceContext): Future[Unit]

    Deletes all activeness changes from requests whose request counter is at least the given one.

    Deletes all activeness changes from requests whose request counter is at least the given one. This method must not be called concurrently with creating, archiving, or transferring contracts.

    Therefore, this method need not be linearizable w.r.t. creating, archiving, or transferring contracts. For example, if a request rc1 creates a contract c and another request rc2 archives it while deleteSince is running for some rc <= rc1, rc2, then there are no guarantees which of the effects of rc1 and rc2 remain. For example, c could end up being inexistent, active, or archived but never created, even if the writes for rc1 and rc2 are successful.

    Definition Classes
    DbActiveContractStoreActiveContractStore
  18. def doPrune(beforeAndIncluding: CantonTimestamp)(implicit traceContext: TraceContext): EitherT[Future, AcsError, Unit]

    Deletes all entries about archived contracts whose status hasn't changed after the timestamp.

    Deletes all entries about archived contracts whose status hasn't changed after the timestamp.

    The caller must ensure that the given timestamp is at most the one of the clean cursor in the com.digitalasset.canton.participant.protocol.RequestJournal

    Definition Classes
    DbActiveContractStoreActiveContractStorePrunableByTime
  19. val domainId: IndexedDomain
    Attributes
    protected[this]
    Definition Classes
    DbActiveContractStoreDbPrunableByTimeDomain
  20. implicit val ec: ExecutionContext
  21. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  22. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  23. def fetchState(id: LfContractId)(implicit traceContext: TraceContext): Future[Option[StateChange[Status]]]

    Short-hand for fetchStates for a single identifier

    Short-hand for fetchStates for a single identifier

    Definition Classes
    ConflictDetectionStore
  24. def fetchStates(contractIds: Iterable[LfContractId])(implicit traceContext: TraceContext): Future[Map[LfContractId, ContractState]]

    Returns the latest com.digitalasset.canton.participant.store.ActiveContractStore.Status for the given contract IDs along with its com.digitalasset.canton.participant.util.TimeOfChange.

    Returns the latest com.digitalasset.canton.participant.store.ActiveContractStore.Status for the given contract IDs along with its com.digitalasset.canton.participant.util.TimeOfChange.

    This method is used by the protocol processors for conflict detection. In-flight transactions may have changesets not yet written to the ACS datastore. Since only the com.digitalasset.canton.participant.protocol.conflictdetection.ConflictDetector tracks in-flight changesets, this method cannot be used as a source of valid data to other components.

    If a contract is created or transferred-in and archived or transferred-out at the same com.digitalasset.canton.participant.util.TimeOfChange, the contract is ActiveContractStore.Archived or ActiveContractStore.TransferredAway. A contract cannot be archived and transferred out at the same timestamp.

    returns

    The map from contracts in contractIds in the store to their latest state. Nonexistent contracts are excluded from the map.

    Definition Classes
    DbActiveContractStoreActiveContractStoreConflictDetectionStore
    See also

    ActiveContractSnapshot!.snapshot

  25. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  26. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  27. def internalPerformUnlessClosingF[A](name: String)(f: => Future[A])(implicit ec: ExecutionContext, traceContext: TraceContext): UnlessShutdown[Future[A]]
    Attributes
    protected
    Definition Classes
    FlagCloseable
  28. def isClosing: Boolean

    Check whether we're closing.

    Check whether we're closing. Susceptible to race conditions; unless you're using using this as a flag to the retry lib or you really know what you're doing, prefer performUnlessClosing and friends.

    Definition Classes
    FlagCloseable
  29. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  30. def keepTrackOfOpenFutures: Boolean

    track running futures on shutdown

    track running futures on shutdown

    set to true to get detailed information about all futures that did not complete during shutdown. if set to false, we don't do anything.

    Attributes
    protected
    Definition Classes
    FlagCloseable
  31. def logger: TracedLogger
    Attributes
    protected
    Definition Classes
    NamedLogging
  32. val loggerFactory: NamedLoggerFactory
    Attributes
    protected
    Definition Classes
    DbActiveContractStoreNamedLogging
  33. implicit def loggingContext(implicit traceContext: TraceContext): ErrorLoggingContext
    Attributes
    protected
    Definition Classes
    NamedLogging
  34. def maxSleepMillis: Long
    Attributes
    protected
    Definition Classes
    FlagCloseable
  35. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  36. def noTracingLogger: Logger
    Attributes
    protected
    Definition Classes
    NamedLogging
  37. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  38. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  39. def onClosed(): Unit
    Attributes
    protected
    Definition Classes
    FlagCloseable
  40. def packageUsage(pkg: PackageId, contractStore: ContractStore)(implicit traceContext: TraceContext): Future[Option[LfContractId]]

    Returns Some(contractId) if an active contract belonging to package pkg exists, otherwise returns None.

    Returns Some(contractId) if an active contract belonging to package pkg exists, otherwise returns None. The returned contractId may be any active contract from package pkg. The most recent contract state is used.

    Definition Classes
    DbActiveContractStoreActiveContractSnapshot
  41. val partitionColumn: String
    Attributes
    protected[this]
    Definition Classes
    DbPrunableByTimeDomainDbPrunableByTime
  42. def partitionKey: IndexedDomain
    Attributes
    protected[this]
    Definition Classes
    DbPrunableByTimeDomainDbPrunableByTime
  43. def performUnlessClosing[A](name: String)(f: => A)(implicit traceContext: TraceContext): UnlessShutdown[A]

    Performs the task given by f unless a shutdown has been initiated.

    Performs the task given by f unless a shutdown has been initiated. The shutdown will only begin after f completes, but other tasks may execute concurrently with f, if started using this function, or one of the other variants (performUnlessClosingF and performUnlessClosingEitherT). The tasks are assumed to take less than closingTimeout to complete.

    DO NOT CALL this.close as part of f, because it will result in a deadlock.

    f

    The task to perform

    returns

    scala.None$ if a shutdown has been initiated. Otherwise the result of the task.

    Definition Classes
    FlagCloseable
  44. def performUnlessClosingEitherT[E, R](name: String, onClosing: => E)(etf: => EitherT[Future, E, R])(implicit ec: ExecutionContext, traceContext: TraceContext): EitherT[Future, E, R]

    Performs the EitherT[Future] given by etf unless a shutdown has been initiated, in which case the provided error is returned instead.

    Performs the EitherT[Future] given by etf unless a shutdown has been initiated, in which case the provided error is returned instead. Both etf and the error are lazy; etf is only evaluated if there is no shutdown, the error only if we're shutting down. The shutdown will only begin after etf completes, but other tasks may execute concurrently with etf, if started using this function, or one of the other variants (performUnlessClosing and performUnlessClosingF). The tasks are assumed to take less than closingTimeout to complete.

    DO NOT CALL this.close as part of etf, because it will result in a deadlock.

    etf

    The task to perform

    Definition Classes
    FlagCloseable
  45. def performUnlessClosingEitherTF[E, R](name: String, onClosing: => E)(etf: => EitherT[Future, E, Future[R]])(implicit ec: ExecutionContext, traceContext: TraceContext): EitherT[Future, E, Future[R]]
    Definition Classes
    FlagCloseable
  46. def performUnlessClosingEitherU[E, R](name: String)(etf: => EitherT[Future, E, R])(implicit ec: ExecutionContext, traceContext: TraceContext): EitherT[FutureUnlessShutdown, E, R]
    Definition Classes
    FlagCloseable
  47. def performUnlessClosingF[A](name: String)(f: => Future[A])(implicit ec: ExecutionContext, traceContext: TraceContext): FutureUnlessShutdown[A]

    Performs the Future given by f unless a shutdown has been initiated.

    Performs the Future given by f unless a shutdown has been initiated. The future is lazy and not evaluated during shutdown. The shutdown will only begin after f completes, but other tasks may execute concurrently with f, if started using this function, or one of the other variants (performUnlessClosing and performUnlessClosingEitherT). The tasks are assumed to take less than closingTimeout to complete.

    DO NOT CALL this.close as part of f, because it will result in a deadlock.

    f

    The task to perform

    returns

    The future completes with com.digitalasset.canton.lifecycle.UnlessShutdown.AbortedDueToShutdown if a shutdown has been initiated. Otherwise the result of the task wrapped in com.digitalasset.canton.lifecycle.UnlessShutdown.Outcome.

    Definition Classes
    FlagCloseable
  48. val processingTime: GaugeM[TimedLoadGauge, Double]
    Attributes
    protected
    Definition Classes
    DbActiveContractStoreDbPrunableByTime
  49. final def prune(limit: CantonTimestamp)(implicit traceContext: TraceContext): EitherT[Future, AcsError, Unit]

    Prune all unnecessary data relating to events before the given timestamp.

    Prune all unnecessary data relating to events before the given timestamp.

    The meaning of "unnecessary", and whether the limit is inclusive or exclusive both depend on the particular store. The store must implement the actual pruning logic in the doPrune method.

    Definition Classes
    PrunableByTime
  50. def pruningStatus(implicit traceContext: TraceContext): EitherT[Future, AcsError, Option[PruningStatus]]

    Returns the latest timestamp at which pruning was started or completed.

    Returns the latest timestamp at which pruning was started or completed. For com.digitalasset.canton.pruning.PruningPhase.Started, it is guaranteed that no pruning has been run on the store after the returned timestamp. For com.digitalasset.canton.pruning.PruningPhase.Completed, it is guaranteed that the store is pruned at least up to the returned timestamp (inclusive). That is, another pruning with the returned timestamp (or earlier) has no effect on the store. Returns scala.None$ if no pruning has ever been started on the store.

    Definition Classes
    DbPrunableByTimePrunableByTime
  51. val pruning_status_table: String

    The table name to store the pruning timestamp in.

    The table name to store the pruning timestamp in. The table must define the following fields:

    Attributes
    protected[this]
    Definition Classes
    DbActiveContractStoreDbPrunableByTime
  52. def runOnShutdown[T](task: RunOnShutdown)(implicit traceContext: TraceContext): Unit

    Register a task that will run onClose after all "performUnlessShutdown" tasks have finished

    Register a task that will run onClose after all "performUnlessShutdown" tasks have finished

    Definition Classes
    FlagCloseable
  53. def runStateChanged(waitingState: Boolean = false): Unit
    Attributes
    protected
    Definition Classes
    FlagCloseable
    Annotations
    @VisibleForTesting()
  54. implicit val setParameterDiscriminator: SetParameter[IndexedDomain]
    Attributes
    protected[this]
    Definition Classes
    DbPrunableByTimeDomainDbPrunableByTime
  55. def snapshot(timestamp: CantonTimestamp)(implicit traceContext: TraceContext): Future[Either[AcsError, SortedMap[LfContractId, CantonTimestamp]]]

    Returns all contracts that were active right after the given timestamp, and when the contract became active for the last time before or at the given timestamp.

    Returns all contracts that were active right after the given timestamp, and when the contract became active for the last time before or at the given timestamp.

    timestamp

    The timestamp at which the snapshot shall be taken. Must be before the timestamp that corresponds to the head cursor in the com.digitalasset.canton.participant.protocol.RequestJournal for the state com.digitalasset.canton.participant.protocol.RequestJournal.RequestState.Clean. If this precondition is violated, the returned snapshot may be inconsistent, i.e., it may omit some contracts that were ActiveContractStore.Active at the given time and it may include contracts that were actually ActiveContractStore.Archived or ActiveContractStore.TransferredAway.

    returns

    A map from contracts to the latest timestamp (no later than the given timestamp) when they became active again. It contains exactly those contracts that were active right after the given timestamp. If a contract is created or transferred-in and archived or transferred-out at the same timestamp, it does not show up in any snapshot. The map is sorted by cats.kernel.Order[com.digitalasset.canton.protocol.LfContractId].

    Definition Classes
    DbActiveContractStoreActiveContractSnapshot
  56. val storage: DbStorage
    Attributes
    protected
    Definition Classes
    DbActiveContractStoreDbStore
  57. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  58. val timeouts: ProcessingTimeout
    Attributes
    protected
    Definition Classes
    DbActiveContractStoreFlagCloseable
  59. def toString(): String
    Definition Classes
    AnyRef → Any
  60. def transferInContract(contractId: LfContractId, toc: TimeOfChange, originDomain: DomainId)(implicit traceContext: TraceContext): CheckedT[Future, AcsError, AcsWarning, Unit]
    Definition Classes
    ActiveContractStore
  61. def transferInContracts(transferIns: Seq[(LfContractId, DomainId)], toc: TimeOfChange)(implicit traceContext: TraceContext): CheckedT[Future, AcsError, AcsWarning, Unit]

    Marks the given contracts as transferred in from toc's timestamp (inclusive) onwards.

    Marks the given contracts as transferred in from toc's timestamp (inclusive) onwards.

    transferIns

    The contract IDs to transfer in and their origin domains.

    toc

    The time of change consisting of

    • The request counter of the transfer-in request.
    • The timestamp on the transfer-in request.
    returns

    The future completes when the contract states have been updated. The following irregularities are reported:

    Definition Classes
    DbActiveContractStoreActiveContractStore
  62. def transferOutContract(contractId: LfContractId, toc: TimeOfChange, targetDomain: DomainId)(implicit traceContext: TraceContext): CheckedT[Future, AcsError, AcsWarning, Unit]
    Definition Classes
    ActiveContractStore
  63. def transferOutContracts(transferOuts: Seq[(LfContractId, DomainId)], toc: TimeOfChange)(implicit traceContext: TraceContext): CheckedT[Future, AcsError, AcsWarning, Unit]

    Marks the given contracts as ActiveContractStore.TransferredAway from toc's timestamp (inclusive) onwards.

    Marks the given contracts as ActiveContractStore.TransferredAway from toc's timestamp (inclusive) onwards.

    transferOuts

    The contract IDs to transfer out and their target domains.

    toc

    The time of change consisting of

    • The request counter of the transfer-out request.
    • The timestamp on the transfer-out request.
    returns

    The future completes when the contract state has been updated. The following irregularities are reported:

    Definition Classes
    DbActiveContractStoreActiveContractStore
  64. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  65. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  66. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from DbStore

Inherited from HasCloseContext

Inherited from NamedLogging

Inherited from FlagCloseable

Inherited from AutoCloseable

Inherited from ActiveContractStore

Inherited from PrunableByTime[AcsError]

Inherited from ActiveContractSnapshot

Inherited from AnyRef

Inherited from Any

Ungrouped