Neuron ESB User Network

The Service Bus for the Connected Business

I'm seeing some weird behavior with Neuron 3.0 that's driving me nuts. Has anyone else seen this or have any ideas on how to fix it?

Service A is a WCF Service hosted with a Windows service. It only sends messages to the bus via a client connector endpoint.

Service B, C are other WCF Services hosted with different Windows services. They only receive and reply to messages from the bus via a service connector endpoint.

Messages are routed from service A to service B or C via an On Publish process. The process contains only one step - a code block with the following code:

string url = context.Data.GetProperty("MessageHeader","To");
int indexOfLastSlash = url.LastIndexOf("/");
int indexOfSecondToLastSlash = url.LastIndexOf("/", indexOfLastSlash-1);
string target = url.Substring(indexOfSecondToLastSlash+1, indexOfLastSlash-indexOfSecondToLastSlash-1);

switch (target)
{
case "Agent":
case "Client":
context.Data.Header.Topic = "LeadManager.Client";
break;
case "Distribution":
context.Data.Header.Topic = "LeadManager.Distribution";
break;
case "Lead":
context.Data.Header.Topic = "LeadManager.Lead";
break;
}

End-to-end communication between service A and the other services works great. The issue is that the query string parameters are being "processed" somewhere in between.

EXAMPLE:

If I hit Service A with the following URL, Service B sends back a list of the parameters it received:

URL:    http://localhost:8100/ServiceA/Distribution/Action?clientId=12&programId=21&agentId=22&leadId=31

Text:   leadId# agentId# clientId#12programId=21agentId=22leadId=31 programId#

Here is what the text should look like:

Text:    leadId#31 agentId#22 clientId#12 programId#21

Basically, the '&' are being stripped from the query string as the message passes through the ESB from one service to another.

Things I've checked:

Case AA: Hitting Service B directly shows correct values

Text:    leadId#1 agentId#10 clientId#533 programId#19

Case BB: Hitting the client connector URL directly to send to Service B (skipping Service A) shows incorrect values

Text:   leadId# agentId# clientId#12programId=21agentId=22leadId=31 programId#

Case CC: Setting a breakpoint within Service A and hitting Service A shows that it is correctly mapping the query string parameters.

We migrated from Neuron 2.6 to Neuron 3.0 last week so my I'm guessing that's the culprit.

Any ideas or solutions would be greatly appreciated!

Views: 183

Reply to This

Replies to This Discussion

Stephen,

In Neuron 3.0 we have a new HTTP API that you can use to access all the query string parameters from a code step.  You can find it at context.Data.Http.  Look at the new REST samples that ship with 3.0 for examples of utilizing that API.

 

Joe

RSS

Neuron ESB Product Support Forums and Communities

Latest Activity

Anupama Nair posted a discussion

Marketo Adapter Invalid Token

Hi,We are using the Marketo adapter to push account updates to Marketo. It works well for some time then starts failing with Invalid Token unless restarted. Is there a configuration that can be done so it can auto refresh the token when required?Thanks!See More
Nov 6, 2023
Sayantini Basak posted a discussion

Maximum payload size(REST API) for requests interfacing to NeuronESB

I am new to Neuron ESB and in our current scenario,We need to process batch transactions comprising of ~1000 records and send them to Neuron ESB for further processing. I would like to understand what is the maximum size of payload that can be transferred using REST interface to Neuron ESB.See More
Jul 22, 2022
Profile IconRobert E Dunie and Sayantini Basak joined Neuron ESB User Network
Apr 28, 2022
Profile IconDayanand, Frederic C, Steffen Greve-Oksfeldt and 1 more joined Neuron ESB User Network
Mar 16, 2022
Profile IconCam Vong and Mitja Luznar joined Neuron ESB User Network
Jan 27, 2022
Profile IconWill Hitzges, Chad Parsons, michael larsen and 4 more joined Neuron ESB User Network
Jun 11, 2021
Anupama Nair posted a discussion

ODBC stored proc polling with temporary tables

We have set up an ODBC adapter to poll a stored proc.We found that if the stored proc has a temporary table defined the rows returned are always 0.Any idea why this would be and what we can do to get around it?See More
Dec 14, 2020
Prasanth Kharade is now a member of Neuron ESB User Network
Dec 30, 2019

Badge

Loading…

© 2024   Created by Neuron Admin.   Powered by

Badges  |  Report an Issue  |  Terms of Service