<PackageReference Include="Relativity.Server.Agent.SDK" Version="5000.0.2" />

ServiceBusEnabledAgentBase<T, Q>

public abstract class ServiceBusEnabledAgentBase<T, Q> : AgentBase
protected string StatusMessage

protected virtual bool CompleteMessageEvenIfErrorIsThrownDuringHandling { get; }

If not overridden, agent-like behavior is seen, where a failed message is not reprocessed. If set to false, messages which have an error when handled will be retried according to the bus's redelivery logic.

protected int CurrentCallCount { get; protected set; }

public string ErrorFullText { get; }

public virtual string ErrorMessage { get; }

public virtual string ErrorSource { get; }

public bool IsResourcePoolAware { get; }

public abstract int MaxConcurrentCalls { get; }

public virtual TimeSpan MessageHandlerTimeout { get; }

public virtual int NumberOfPriorities { get; }

Defines how many priorities should be used for this agent. For each priority, a seperate subscription is created on the request topic. The default value is 3.

public virtual int[] Priorities { get; }

Defines what priorities there are. If no priorities are present, return New Integer() {} , and use topics. If priorities are present, use Queues (But for now, we have topics).

public abstract string RequestTopicRoute { get; }

public virtual string ResponseTopicRoute { get; }

public bool ShouldDoIdleThreadChecking { get; }

Determines whether the PriorityQueue should spin up a thread to do the following work: If the PriorityQueue Thinks work is in progress, but it has been this long since any jobs have been completed, the PriorityQueue may conclude it needs to release slots and allow new threads to begin

public virtual bool ShowStandardAgentMessages { get; }

public abstract string SubscriptionName { get; }

public double ThresholdToBeginCheckingForIdleState { get; }

Percent in the form of a number between 0 and 1, e.g. .5

If ShouldDoIdleThreadChecking is true, and the PriorityQueue Thinks work is in progress, but it has been this long since any jobs have been completed, the PriorityQueue may conclude it needs to release slots and allow new threads to begin.

public virtual int TimeGivenToRenewLockInSeconds { get; }

protected abstract void CreateError(Exception ex)

protected abstract void CreateError(string fullError, string message, int caseArtifactId, string source)

public abstract void HandleMessage(T message, IDictionary<string, object> messageProperties, IDictionary<string, object> additionalProperties = null)

public virtual void HandleMessages(List<ServiceBusEnabledAgentBaseMessage<T>> messages)

protected virtual ISubscriptionDetails ModifySubscriptionDetails(ISubscriptionDetails details)

Allows the consuming class to set properties on the SubscriptionDetails object. If not overridden, defaults will be used.

protected virtual ITopicDetails ModifyTopicDetails(ITopicDetails details)

Allows the consuming class to set properties on the TopicDetails object. If not overridden, defaults will be used.

protected virtual void ProcessDeadLetteredMessage(string msg)

protected void SendResponse(Q response, IDictionary<string, object> messageProperties = null, IDictionary<string, object> additionalProperties = null, int retries = 0)

public virtual void SetStatusMessage()

public virtual void SubClassAgentDelete()

public virtual void SubClassInit()