Reading from Service Bus via Qpid JMS client fails - servicebus

I am trying to connect to Windows Service Bus from Qpid JMS client.
Authentication and handshake succeeded, but can not get anything from a topic or queue.
My code is based on tutorial provided here.
On reading attempt getting message from Service Bus:
The server was unable to process the request; please retry the
operation. If the problem persists, please contact your Service Bus
administrator and provide the tracking
id..TrackingId:583da4f8d58d4fa59dc9521c6f799cb8_GWIN-AN5B307EEHM,TimeStamp:11.7.2014.
7:44:17
My question is where can I find this tracking id on the Service Bus and get some details about it?
Has anyone had similar issue?

Issue was worked through on https://issues.apache.org/jira/browse/QPID-5889.
Junica answered his own question in the end via this comment: https://issues.apache.org/jira/browse/QPID-5889?focusedCommentId=14064891&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14064891

Related

Micro integrator - RabbitMQ workflow

I'm looking into integration of WSO2 MI and RabbitMQ, the goal is to create a system with the following steps:
1. MI receive request from a client and send the message to RabbitMQ
2. RabbitMQ put message in the queue and it's taken by the subscriber client for processing.
3. Message with response from the processing service placed into response RabbitMQ queue.
4. MI receive message from that response queue and send reply to the client.
There is following documentation in wso2 official manuals:
https://ei.docs.wso2.com/en/latest/micro-integrator/setup/brokers/configure-with-rabbitMQ/
https://ei.docs.wso2.com/en/latest/micro-integrator/use-cases/examples/jms_examples/rabbitmq-examples/
I assume that's what I need, but it's not clear how exactly these should be executed.
Let's say I've configured a connection to RabbitMQ in MI.
How exactly do I use these synapse configurations mentioned in the docs to be able to send messages to rabbit based on the client request or reply to a client based on messages from rabbit?
There are multiple patterns for synchronous/asynchronous messaging with RabbitMQ in WSO2 Enterprise Integrator. Please have a look at these examples.
Point to Point
Publisher/Subscriber
Guaranteed Delivery
Request/Response - Dual Channel
Furthermore, you can find a tutorial for the asynchronous messaging from here!

How to use NServiceBus with MSMQ

I am experimenting the new version of NServicsBus. I find following step by step sample on particular site.
https://docs.particular.net/samples/step-by-step/
Can any one tell me how to configure MSMQ for Transport. Here is my scenario.
Client create message
Client message should be stored in MSMQ
Server Application running on same machine which subscribe the message.
Server handler get message from MSMQ and process it further. i.e Store in DB or send to other web service.
Retry to process message if it does not worked first time
after 3 retries send message to error queue
How do i configure this sample to use MSMQ for my scenario.
Helpful information to include
Product name:NServiceBus.Core
Version: 6.3.4
Stacktrace:
Description:
Did you know that we have released a LearningTransport and LearningPersistence just for purposes like these? Have a look at it here.
Having said that, the transport swapping should be rather seamless so even if you have setup a small PoC using this transport/persistence, you can change it to MSMQ or other production-ready transports/persistence when you go live.
Again, as stated in the documentation page and as the name suggests, this is not for use in production.
I would recommend you walk through this.
https://docs.particular.net/tutorials/intro-to-nservicebus/
Will answer your questions, and future ones you have.

Archiving Windows Server Service Bus messages

The MSDN documentation for the BrokeredMessage.Complete method (http://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.brokeredmessage.complete.aspx) describes the method as this: "Completes the receive operation of a message and indicates that the message should be marked as processed and deleted or archived."
In my use of this method I've only seen the message deleted once it is processed. This is the one and only instance I've seen in the MSDN documentation, blogs, or anywhere else about Service Bus being capable of archiving old messages.
I could archive the message myself as part of my code that reads and processes a message and then marks it complete. But is it possible to make Windows Server Service Bus archive completed messages for me? If so, how do you turn on and configure this feature?
In case the difference matters, I am using the locally hosted Windows Server Service bus, not the Azure version.
No, Service Bus doesn't archive your messages. I'm going to follow up w/ the documentation folks on what that was supposed to express.

Unable to call one way Peoplesoft service with WCF-Adapter from BizTalk 2010

We are trying to call a one way PeopleSoft service that does not return any response from BizTalk 2010 with WCF-BasicHttp binding and one-way send port.
We are getting the following error.
System.ServiceModel.CommunicationException: The server did not provide a meaningful reply; this might be caused by a contract mismatch, a premature session shutdown or an internal server error.
I have read several articles regarding this issue. This one says due to reliable delivery feature one way messages are not supported by BizTalk
social.msdn.microsoft.com/Forums/en-US/biztalkgeneral/thread/3a55a044-0a07-416c-9931-1dd6bdeb717a
This one says I need to create WCF proxy that will call a one way web service and return an empty message to BizTalk so the messaging process doesn’t timeout waiting for an answer. (I would like to avoid this if possible)
www.pvle.be/2008/12/calling-one-way-wcf-service-with-biztalk-wcf-adapter-part-2/
At the end of this thread Rajesh says they used SOAP adapter for the same problem. (SOAP Adapter is deprecated)
http://social.msdn.microsoft.com/Forums/en/biztalkgeneral/thread/3b58e83a-3b69-40a2-941c-ff2d9a77ccc6
In another thread Rajesh says
As Steef mentioned earlier, a strict one way WCF-Send port is not supported in BizTalk. So you could try changing one-way send port to two-way send port and then you can ignore the response message in your orchestration if you dont need it
I tried changing the one-way send port to two way send port. I'm still getting the same error.
So my question is:
Is it possible to call a service that does not return any response from BizTalk 2010 without writing additional WCF proxies? If yes, can you provide a step-by-step example?
Thanks for your patience with my long post.
Alper
In this situation I believe your going to have to write a proxy for it. BizTalk is all about request / response and one-way is not really one way as people have found out. Take a look at this article here as it sheds some light on a similar topic.

Windows Azure Queues, WCF, MSMQ integration

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