Hi Everyone,
I have just started working with SQL service broker. I was wondering if we can link two service broker queues to same service such that when a message is sent using that service, it will be delivered to both queues i.e both the queues will contain same copy of a message. Is there any way like this or there is some other way to do this?
Thanks in advance
Pankaj
No, in SQL 2008, service broker only supports DIALOG conversations, not MONOLOG, meaning there can be only one endpoint.
Related
I have an application in weblogic clustered environment. There are 2 servers in this cluster. I want to use durable subscription so for each server I needed to give different clientId. ClientIds should be unique for server. But when I receive message It doubles this way. I want to make group of these clients and use as queue. This way if one of the server get the message then the other will not get any message. How can I achieve this? Using queue is forbidden. I need to use topic.
Edit: I use Weblogic as application server. My application is basic Spring JMS listener.
We are working towards an architecture like one below but we will have micro services on cloud and some on premises which will talk to each other using queue(s) and bus(es),
Now I am confused with where we should host MassTransit and RabbitMq, also should it be a ASP.NET Core project on its own ? if yes what I will be doing in it ? starting a bus ? creating queues ? I am not able to move forward with this
The simple MassTransit examples are just that, the absolute simplest examples of interacting with queues.
RabbitMQ is your message broker. It is hosted separately.
MassTransit is a development framework that makes it much easier to interact with RabbitMQ (or Azure Service Bus) by abstracting away the implementation-specific "plumbing."
You write any number of .NET services that either publish messages to a queue, or subscribe to queues.
We recently worked on something similar, the way we did it is:
RabbitMQ was hosted separately, and buses/queues creation and management were done from the services that use messaging.
For each service that receives messages you use Maastransit to create a queue because service will be receiving messages using this queue.
You will be using publish/subscribe way of messaging so as mentioned above, inside each service, create a queue with logical name and connect to RabbitMQ server address.
Services that represent senders will publish messages of a custom type you create, and services that represent receivers will subscribe to this type of messages by having a consumer for this type registered inside the bus created.
Hope it helps.
The idea is:
I have N WCF services which connected and subscribed to the same Redis message channel. These services use this channel to exchange messages to sync some caches and other data.
How each service can ignore its own messages? I.e. how to publish to all but me?
It looks like Redis PUB/SUB doesn't support such filtration. So, the solution is to use set of individual channels for every publisher and common channel for subscription synchronization between them. Here is an golang example of no-echo chat application.
I'm new to WSO2 so please be forgiving.
My problem is how to connect two separates WSO2 ESB to transport messages between them (a particularly invoke web services seamlessly).
I know it is a very general question and the exact answer may be not possible, but I would like to know in which direction to go. Is it good idea to use JMS transport and e.g ActiveMQ as message broker? And how to test if that connection works?
Thanks in advance!
There is a lot of solutions, but I think you're right when you speak abour JMS and ActiveMQ. It's very simple to use, just "send" a message to a jms queue with an address endpoint and consume messages from that queue with a JMS proxy.
See https://docs.wso2.com/display/ESB481/Java+Message+Service+%28JMS%29+Support
I have a scenario where I need a desktop console app to communicate with a Windows Azure Queue... the most important thing is that the message is received by the server eventually. Also, the desktop app may be disconnected from the Internet sometimes. In the traditional WCF+MSMQ approach you'd be able to send a message which would be cached in MSMQ until MSMQ could reach the Server's MSMQ and send the message. What's the equivalent when Windows Azure is the server-side?
Is it possible for the same approach to be used, where MSMQ just communicates with a Windows Azure Queue rather than an MSMQ on a Windows Server?
Maybe Windows Azure Queue is the wrong approach? I have heard about something called message buffer, but don't know what this is (yet!).
thanks for your help
Kris
You could write an MSMQ listener service that finishes moving the message to the Azure queue when the connection to the internet has been reestablished. I don't think this would be too difficult.
Update
Perhaps my answer wasnt clear. Based on the question the client is occasionally connected to the internet so you need a way to park the message until the intertubes get untangled. Using Windows the easiest way to do this is to put the message in an MSMQ local queue. YOu then have a service monitoring that queue. If there is a message and it can get to the service hosted in the cloud it sends the message. Once the message has been sent it can be deleted from the queue.
In order to queue a message to Azure Queue Storage you have to be connected to the Internet. If you want to handle disconnected scenarios, that is totally up to you. I would keep the solution very simple and use a local storage such as SQL Server Compact and then send the messages as soon as there's connectivity, maybe with the aid of a Windows Service (so that you don't need to run the desktop app).
You can do this with the Azure AppFabric Service Bus Message Buffers - there is no need to use a Queue. Check out the related sample downloads on the following site: http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=11 - they should answer your questions much better than I can.
Regards