26.08.2019

Msmq End Of Lifre

-->

APPLIES TO: SQL Server Azure SQL Database (Managed Instance only) Azure SQL Data Warehouse Parallel Data Warehouse

  • Hi all, I have noticed this in binding on IIS on web interface server net.tcp & net.pipe & net.msmq & msmq.formatname. We are use SSL that is port 443 but there are bindings available for other ports and our security team ask us to remove the bindings which are not used.
  • After you install the DLP Discover server, you cannot run scans and the MSMQ service is not started Technical Articles ID: KB87274 Last Modified: 6/15/2016 Environment.

SQL Server Service Broker provide native support for messaging and queuing in the SQL Server Database Engine and Azure SQL Database Managed Instance. Developers can easily create sophisticated applications that use the Database Engine components to communicate between disparate databases, and build distributed and reliable applications.

GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software. To create a JD Edwards EnterpriseOne Adapter for MSMQ queues. Life Cycle Tools Report Management Batch Versions.

When to use Service Broker

Use Service Broker components to implement native in-database asynchronous message processing functionalities. Application developers who use Service Broker can distribute data workloads across several databases without programming complex communication and messaging internals. Service Broker reduces development and test work because Service Broker handles the communication paths in the context of a conversation. It also improves performance. For example, front-end databases supporting Web sites can record information and send process intensive tasks to queue in back-end databases. Service Broker ensures that all tasks are managed in the context of transactions to assure reliability and technical consistency.

Overview

Service Broker is a message delivery framework that enables you to create native in-database service-oriented applications. Unlike classic query processing functionalities that constantly read data from the tables and process them during the query lifecycle, in service-oriented application you have database services that are exchanging the messages. Every service has a queue where the messages are placed until they are processed.

The messages in the queues can be fetched using the Transact-SQL RECEIVE command or by the activation procedure that will be called whenever the message arrives in the queue.

Creating services

End Of Life Planning

Database services are created by using the CREATE SERVICE Transact SQL statement. Service can be associated with the message queue create by using the CREATE QUEUE statement:

Sending messages

Messages are sent on the conversation between the services using the SEND Transact-SQL statement. A conversation is a communication channel that is established between the services using the BEGIN DIALOG Transact-SQL statement.

The message will be sent to the ExpenssesService and placed in dbo.ExpenseQueue. Because there is no activation procedure associated to this queue, the message will remain in the queue until someone reads it.

Processing messages

The messages that are placed in the queue can be selected by using a standard SELECT query. The SELECT statement will not modify the queue and remove the messages. To read and pull the messages from the queue, you can use the RECEIVE Transact-SQL statement.

Once you process all messages from the queue, you should close the conversation using the END CONVERSATION Transact-SQL statement.

Where is the documentation for Service Broker?

Msmq End Of Lifre

The reference documentation for Service Broker is included in the SQL Server 2017 documentation. This reference documentation includes the following sections:

  • Data Definition Language (DDL) Statements (Transact-SQL) for CREATE, ALTER, and DROP statements

See the previously published documentation for Service Broker concepts and for development and management tasks. This documentation is not reproduced in the SQL Server 2017 documentation due to the small number of changes in Service Broker in SQL Server 2017.

What's new in Service Broker

No significant changes are introduced in SQL Server 2017. The following changes were introduced in SQL Server 2012 (11.x).

Service broker and Azure SQL Database Managed Instance

  • Cross-instance service broker is not supported
  • sys.routes - Prerequisite: select address from sys.routes. Address must be LOCAL on every route. See sys.routes.
  • CREATE ROUTE - you cannot use CREATE ROUTE with ADDRESS other than LOCAL. See CREATE ROUTE.
  • ALTER ROUTE cannot use ALTER ROUTE with ADDRESS other than LOCAL. See ALTER ROUTE.

Messages can be sent to multiple target services (multicast)

Msmq End Of Life

The syntax of the SEND (Transact-SQL) statement has been extended to enable multicast by supporting multiple conversation handles.

Queues expose the message enqueued time

Queues have a new column, message_enqueue_time, that shows how long a message has been in the queue.

Poison message handling can be disabled

The CREATE QUEUE (Transact-SQL) and ALTER QUEUE (Transact-SQL) statements now have the ability to enable or disable poison message handling by adding the clause, POISON_MESSAGE_HANDLING (STATUS = ON OFF). The catalog view sys.service_queues now has the column is_poison_message_handling_enabled to indicate whether poison message is enabled or disabled.

Always On support in Service Broker

For more information, see Service Broker with Always On Availability Groups (SQL Server).

I am really starting with Message Queue and I am looking for very basic information, how to's and so on.

But I have a strange sensation with what I am finding. It seems 'Message Queue Server' is not the 'standard' way of do in Visual Studio 2010, Windows 7, or the very last products from Microsoft, because all information I am finding is related to old microsoft products. Or that is my first impression.

In fact: http://www.microsoft.com/msmq/ doesn't run. It is empty ?

In summary: I don't know why.. but I think Message Queue from Microsoft is not a 'cutting edge' product to put my efforts on and perhaps there is another substitution product. Is it true or I am mistaken ?

What new product offers the same functionality nowadays ?

Thanks.

ferpegaferpega
1,5323 gold badges31 silver badges59 bronze badges

5 Answers

It is used in old products, but I've never had any reason to think it as deprecated.

One example of where the message queue is supported is WCF.

There isn't any other way to send one-way messages to a WCF server which you know will arrive even if the server is down at sending time.

Andrew ShepherdAndrew Shepherd
32.5k23 gold badges119 silver badges177 bronze badges

MSMQ is alive and well. We use it in production when we need reliable delivery but NOT interactive/realtime responses. Its also integrated with WCF.

Master of orion online. Jul 4, 2018 - Buy the Revenge of the Antarans DLC for $5 while it is still on sale? The DLC factions are the Terrans, Elerians, Gnolam, and Trilarian. Aug 27, 2016 - I'm not interested in MOO 1,2,3 as I already own them and really like playing as the Miltant Terran Race. Is there anyway it can be offered. Available only in collector's edition.

Richard SchneiderRichard Schneider
30.2k8 gold badges46 silver badges61 bronze badges

MSMQ isn't deprecated. As others have noted it offers abilities (reliable one way messaging with unreliable connections between unreliable end points) that other categories of communications forms do not (but MSMQ does overlap with other messaging middleware including things like IBM's WebSphere*MQ).

I'm not sure where you got that link from, but microsoft.com has lots of information inline:

  • Developer: http://msdn.microsoft.com/en-us/library/ms711472%28VS.85%29.aspx
  • .NET Developer: http://msdn.microsoft.com/en-us/library/8fawe8b3.aspx
  • Administrator/deployment: http://technet.microsoft.com/en-us/library/cc732184.aspx
RichardRichard
91.7k18 gold badges167 silver badges224 bronze badges

Message queuing is a core Windows technology. It has been around for a very long time, it was feature complete at the Windows 2000 release. There is no substitute in Windows, nothing comes close to its capabilities, other than message queuing solutions by other vendors.

That makes it a critical component but unsexy. About as exciting as the NTFS file system. You rarely program MSMQ directly these days, another reason you don't see much about it. The recommended approach is WCF, available since .NET 3.0

Hans PassantHans Passant
806k112 gold badges1369 silver badges2153 bronze badges

I can't say that MSMQ is deprecated, but I can share my experience with MS premier support regarding MSMQ & WCF. We have a non-HTTP activated WCF queue which happens to be activated via MSMQ using .NET 3.5. For high availability, we have clustered that MSMQ.

We have found that when the cluster fails over (gracefully, such as for scheduled maintenance), the WCF service gets into a state where the only way to recover from it is to recycle the app pool. We opened up a ticket with MS premier support, who stated that it was a defect in how WCF dealt with MSMQ, and that they wouldn't fix it in 3.5 SP1 or 4.0, but would consider fixing it in 4.5.

Planning

Msmq End Of Life Quotes

We haven't checked to see if they have gone back and fixed in 4.5, but that experience did leave an impression on me as to where MS was choosing to invest their resources.

JohnWJohnW
2,5041 gold badge21 silver badges27 bronze badges

Not the answer you're looking for? Browse other questions tagged visual-studio-2010windows-7msmq or ask your own question.