Open topic with navigation

TIBCO Rendezvous® 8.7.0

# CMQueueTransport

Class

## Superclasses

    System.Object
      Transport
        CMTransport
          CMQueueTransport

## Visual Basic

    Public Class CMQueueTransport
      Inherits CMTransport

## C#

    public class CMQueueTransport : CMTransport

## Purpose

Coordinate a distributed queue for one-of-n delivery.

## Remarks

Each CMQueueTransport object employs a NetTransport for network communications. The CMQueueTransport adds the accounting and coordination mechanisms needed for one-of-n delivery.

Several CMQueueTransport objects can employ one NetTransport, which also remains available for its own ordinary listeners and for sending ordinary messages.

Programs must explicitly destroy each CMQueueTransport object. Destroying a CMQueueTransport invalidates any certified listeners using that transport (while preserving their certified delivery agreements).

Whether explicitly or implicitly, programs must destroy instances of this class. Rendezvous software keeps internal references to these objects, so the garbage collector does not delete them automatically.

All members of a distributed queue must listen to exactly the same set of subjects. See Enforcing Identical Subscriptions in TIBCO Rendezvous Concepts.

Scheduler recovery and task rescheduling are available only when the task message is a certified message (that is, a certified delivery agreement is in effect between the task sender and the distributed queue transport scheduler).

## Disabled Methods

Although CMQueueTransport is a subclass of CMTransport, all methods related to sending messages are disabled in CMQueueTransport. These disabled methods throw an `NotSupportedException`; for a list, see Disabled Methods. See also Certified Delivery Behavior in Queue Members in TIBCO Rendezvous Concepts.

Member | Type & Value
## Public Static Fields
`DefaultWorkerWeight` | `uint 1`
`DefaultWorkerTasks` | `uint 1`
`DefaultSchedulerWeight` | `ushort 1`
`DefaultSchedulerHeartbeat` | `double 1.0`
`DefaultSchedulerActivation` | `double 3.5`

Member | Description |
## Public Instance Properties
`BaseTransport` | NetTransport The transport employed by the certified delivery transport; see CMTransport. (Inherited from CMTransport.) | Get
`CompleteTime` | double The worker complete time limit (in seconds) of a distributed queue member. For details, see Complete Time. | Get Set
`DefaultTimeLimit` | `double` The default message time limit (in whole seconds) for all outbound certified messages from the transport. (Inherited from CMTransport.) For details, see DefaultTimeLimit. | Get Set
`Description` | `string` The description identifies programs and their transports to Rendezvous components. Browser administration interfaces display the description string. (Inherited from Transport.) As a debugging aid, we recommend setting a unique description string for each transport. Use a string that distinguishes both the application and the role of the transport within it. | Get Set
`LedgerName` | `string` The name of the ledger file; see CMTransport. When getting this property, an exception with the error code ArgumentsConflict can indicate that the transport does not have a ledger file. | Get
`Name` | `string` The correspondent name; see CMTransport. (Inherited from CMTransport.) | Get
`RequestOld` | `bool` The request old messages flag of the certified delivery transport; see CMTransport. (Inherited from CMTransport.) | Get
`SynchronizeLedger` | `bool` The sync ledger flag of a certified delivery transport; see CMTransport. (Inherited from CMTransport.) When getting this property, an exception with the error code ArgumentsConflict can indicate that the transport does not have a ledger file. | Get
`TaskBacklogLimitInBytes` | `uint` The maximum size (in bytes) of the scheduler task queue. For background information, see Scheduler Task Backlog Limits. | Set
`TaskBacklogLimitInMessages` | `uint` The maximum size (in messages) of the scheduler task queue. For background information, see Scheduler Task Backlog Limits. | Set
`UnassignedMessageCount` | `uint` The number of unassigned task messages. An unassigned task message is a message received by the scheduler, but not yet assigned to any worker in the distributed queue. This property is a valid count only within a scheduler process. Within a worker process, this value is always zero. | Get
`WorkerTasks` | `uint` The worker task capacity of the distributed queue member. For details, see Worker Tasks. | Get Set
`WorkerWeight` | `uint` The worker task capacity of the distributed queue member. For details, see Worker Weight. | Get Set

Method | Description | Page
CMQueueTransport | Create a transport as a distributed queue member. | CMQueueTransport

Inherited Methods
Legal Methods | CMTransport.Destroy `System.Object.Equals` `System.Object.GetType` `System.Object.GetHashCode` `System.Object.ToString`
Disabled Methods | CMTransport.AddListener CMTransport.AllowListener CMTransport.DisallowListener CMTransport.RemoveListener CMTransport.RemoveSendState CMTransport.ReviewLedger CMTransport.Send CMTransport.SendReply CMTransport.SendRequest CMTransport.SynchronizeLedgerNow Transport.CreateInbox Transport.Send Transport.SendReply Transport.SendRequest

## Complete Time

The complete time property influences scheduler behavior.

If the complete time is non-zero, the scheduler waits for a worker member to complete an assigned task. If the complete time elapses before the scheduler receives completion from the worker member, the scheduler reassigns the task to another worker member.

Zero is a special value, which specifies no limit on the completion time—that is, the scheduler does not set a timer, and does not reassign tasks when task completion is lacking. All members implicitly begin with a default complete time value of zero.

The complete time must be non-negative.

## Scheduler Task Backlog Limits

The scheduler stores tasks in a queue. Two properties limit the maximum size of that queue—by number of bytes or number of messages (or both). When no value is set for these properties, the default is no limit.

When the task messages in the queue exceed either of these limits, Rendezvous software deletes new inbound task messages.

Programs may set each of these methods at most once. Those calls must occur before the transport assumes the scheduler role; after a transport acts as a scheduler, these values are fixed, and subsequent attempts to change them throw exceptions with status code NotPermitted.

## Worker Tasks

Task capacity is the maximum number of tasks that a worker can accept. When the number of accepted tasks reaches this maximum, the worker cannot accept additional tasks until it completes one or more of them.

When the scheduler receives a task, it assigns the task to the worker with the greatest worker weight—unless the pending tasks assigned to that worker exceed its task capacity. When the preferred worker has too many tasks, the scheduler assigns the new inbound task to the worker with the next greatest worker weight.

The default worker task capacity is 1.

Zero is a special value, indicating that this distributed queue member is a dedicated scheduler (that is, it never accepts tasks).

Warning | Tuning task capacity to compensate for communication time lag is more complicated than it might seem. Before setting this value to anything other than 1, see Task Capacity in TIBCO Rendezvous Concepts.

## Worker Weight

Relative worker weights assist the scheduler in assigning tasks. When the scheduler receives a task, it assigns the task to the available worker with the greatest worker weight.

The default worker weight is 1; programs can set this parameter at creation using CMQueueTransport, or change it dynamically.

## Related Classes

Transport

NetTransport

CMTransport

Subtopics

Did you find this helpful?

Yes No
Great!
Thanks for taking the time to give us some feedback.
Sorry about that

Why wasn't this helpful? (check all that apply)

Could not find what I was looking for
Instructions confusing or unclear
Instructions did not work

Want to tell us more?

Please select at least one option or provide details about the issue!!

Error occurred while submitting feedback.

Error2 occurred while submitting feedback.

TIBCO Rendezvous®

Copyright © 1997-2023. Cloud Software Group, Inc. All Rights Reserved.