摘要:
Techniques are provided for scheduled and non-scheduled delivery of messages. A message directed to at least one consumer is received at a message entity. The message is determined to include a scheduled delivery time. The received message is stored in a scheduled sub-queue of the message entity. Activation metadata is retrieved and stored for any messages stored in the scheduled sub-queue that include a scheduled delivery time within a predetermined upcoming time period. If when the message is received, the scheduled delivery time of the message is within a current activation window, the activation metadata for the message may be extracted and stored immediately. The stored activation metadata is analyzed to determine a batch of messages in the scheduled sub-queue ready for delivery. The determined batch of messages is stored in an active sub-queue of the message entity, to be ready for delivery at the request of a consumer.
摘要:
Network and storage calls are reduced by batching messages. Messages are collected from a client and sent to the gateway or backend application in one round trip. Alternatively, the messages are collected for different entities, and the batched messages are durably stored. Related messages, which may have the same sessionID, are grouped into a logical unit or session. This session may be locked to a single message consumer. A session may be associated with an application processing state as an atomic unit of work while other operations are performed on the messages in the session. Acknowledgements are accumulated by a broker on a message server, but the messages are not immediately deleted. Instead, multiple messages in a selected range are periodically truncated from a message store in a single operation. Expired messages for active sessions are proactive cleaned up to prevent sessions from reaching a quota or limit.
摘要:
A distributed messaging system includes a gateway having an interface to receive client messages and having access to a gateway database and to a messaging host that supports multiple partitions that are executed on processors of a cluster of processors. Each of the partitions supports execution of at least one message broker. The gateway database includes a mapping between each of the message brokers and one of the multiple partitions. An admin agent may periodically scan the gateway database to check if the message brokers reach a capacity threshold. The admin agent may create new message brokers and add the new message brokers to a pool of message brokers to allow new queues to be associated with the new message brokers.
摘要:
A messaging entity configured in a memory of first node of a plurality communicatively coupled nodes is disclosed. The nodes are included in a distributed computing system. The messaging entity is configured to operate as a secondary messaging entity in a messaging server for the plurality communicatively coupled nodes. The messaging entity is communicatively couple to a primary messaging entity configured in a memory of a second node of the plurality of nodes. The primary messaging entity is configured to store a message; store a copy of the message. Also, the messaging entity is configured to be promoted to a new primary messaging entity in the event of failure of the primary messaging entity.
摘要:
The present invention extends to methods, systems, and computer program products for redirecting client messages between hosts within a messaging infrastructure. When a host receives a client message, it can refer to lock information in a shared database to determine if it is the correct host to receive the client message. The lock information includes a redirect endpoint. The redirect endpoint identifies an endpoint where client messages can be sent for delivery to the appropriate workflow instance. The redirect endpoint can be included in a redirect fault message, that is returned to a host when a host attempts to process a client message that is already locked to another workflow instance. Using the redirect endpoint, a host receiving a redirect fault message can use the redirect endpoint to send a client message to the correct host.
摘要:
The present invention extends to methods, systems, and computer program products for automatically re-starting services. Embodiments of the invention can be used to re-start a service when it is determined that the service stopped during the processing pending work. A container manager durably tracks a service's status (busy/idle and alive/dead) and tracks transitions between statuses. Accordingly, when a busy service is deemed dead (due to any event), the container manager can automatically re-start the service. Upon re-start the service can check for pending work and start executing its pending work.
摘要:
An instance persistence command for an update to a state of an instance of an application can be issued. In response to the persistence command, a transaction with an instance store can be initiated. As part of the transaction, a first representation of the update can be stored in the instance store and a second representation of the update can be stored in a queue. The transaction can be committed after storing the first and second representations. After the transaction is committed, the second representation can be processed to store a third representation of the update in a query store. Application instance state information in the query store can be updated and queried without locking the instance store so that such operations in the query store can be performed asynchronously with operations in the instance store.
摘要:
Message intermediation for multiple service instances, while allowing the service instance to control whether messages are processed under a transaction. The message intermediator chooses to dispatch messages among different backend service instances based on any routing rules. The message intermediator performs a peek-lock of message from a forward-end queue, and assigns the message to a service instance. The message is provided into a backward-end queue specific to the assigned service instance. The service instance may then process the message, perhaps under a transaction created at the service instance. Upon completion of processing, the message is deleted in the back-end queue, which causes the forward-end queue to delete the message under the same transaction created by the service instance. Whether or not this deletion at the forward-end is committed or rolled back depends on whether the transaction created at the service instance is committed or rolled back.
摘要:
The present invention extends to methods, systems, and computer program products for redirecting client messages between hosts within a messaging infrastructure. When a host receives a client message, it can refer to lock information in a shared database to determine if it is the correct host to receive the client message. The lock information includes a redirect endpoint. The redirect endpoint identifies an endpoint where client messages can be sent for delivery to the appropriate workflow instance. The redirect endpoint can be included in a redirect fault message, that is returned to a host when a host attempts to process a client message that is already locked to another workflow instance. Using the redirect endpoint, a host receiving a redirect fault message can use the redirect endpoint to send a client message to the correct host.
摘要:
A system for efficiently distributing messages to a server farm uses a hashing function and a map-based function, or combinations thereof, to distribute messages associated with a processing request. In one implementation, for example, the hashing function has inputs of an identifier for each message in a processing request, and a list of available servers. Upon identifying that any of the servers is unavailable, or will soon be unavailable, the load balancing server uses an alternate map-based assignment function for new requests, and inputs each assignment into a server map. The load balancing server can then use the map or the hashing function, as appropriate, to direct messages to an operating server. Upon receiving an updated list of available servers, the load balancing server can switch back to the hashing function after the map is depleted, and use the updated server list as an argument.