object ParticipantBackpressure extends ErrorCode
- Annotations
- @Explanation(explanation = """This error occurs when a participant rejects a command due to excessive load.
|Load can be caused by the following factors:
|1. when commands are submitted to the participant through its Ledger API,
|2. when the participant receives validation requests from other participants through a connected synchronizer.
|
|In order to prevent the participant of being overloaded, it will start to reject commands once a
|certain load threshold is reached. The main threshold is the number of in-flight validation requests
|that the participant is currently processing. These requests can be caused either by this participant
|or by other participants.
|
|For a submission to be counted as an in-flight validation request, the participant must first
|observe its sequencing, which means that there is a delay between the submission and the submitted
|command to be counted towards the currently in-flight validation requests. In order to avoid an
|overload situation by a sudden burst of commands, the participant will also enforce a rate limit
|before a submission is accepted for interpretation. This rate limit can be configured with a steady
|state rate and a burst factor. The burst factor is a multiplier of the steady state rate that allows
|for a certain number of commands to be submitted in a burst before the rate limit kicks in.
|
|As an example, with a rate limit of 1000 commands per second and a burst factor of 2, the rate limit
|will kick in once 2000 commands have been submitted on top of the commands allowed by the rate limit.
|
|""") @Resolution(resolution = """Verify the limits configured, the load and the command latency on the participant and adjust if necessary.
|If the participant is highly loaded, ensure that your application waits some time with the resubmission, preferably with some backoff factor.
|If possible, ask other participants to send fewer requests; the synchronizer operator can enforce this by imposing a rate limit.""")
- Alphabetic
- By Inheritance
- ParticipantBackpressure
- ErrorCode
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- final case class Rejection(reason: String)(implicit errorLogger: ErrorLoggingContext) extends DamlErrorWithDefiniteAnswer with Product with Serializable
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- val category: ErrorCategory
- Definition Classes
- ErrorCode
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- implicit val code: ErrorCode
- Definition Classes
- ErrorCode
- def codeStr(correlationId: Option[String]): String
The machine readable error code string, uniquely identifiable by the error id, error category and correlation id.
The machine readable error code string, uniquely identifiable by the error id, error category and correlation id. e.g. NOT_CONNECTED_TO_ANY_SYNCHRONIZER(2,ABC234)
- Definition Classes
- ErrorCode
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def errorConveyanceDocString: Option[String]
The error conveyance doc string provides a statement about the form this error will be returned to the user
The error conveyance doc string provides a statement about the form this error will be returned to the user
- Definition Classes
- ErrorCode
- def exposedViaApi: Boolean
True if this error may appear on the API
True if this error may appear on the API
- Attributes
- protected
- Definition Classes
- ErrorCode
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- val id: String
- Definition Classes
- ErrorCode
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def logLevel: Level
Log level of the error code
Log level of the error code
Generally, the log level is defined by the error category. In rare cases, it might be overridden by the error code.
- Definition Classes
- ParticipantBackpressure → ErrorCode
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- implicit val parent: ErrorClass
- Definition Classes
- ErrorCode
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toMsg(cause: => String, correlationId: Option[String], limit: Option[Int]): String
- returns
message including error category id, error code id, correlation id and cause
- Definition Classes
- ErrorCode
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])