[
https://jira.jboss.org/jira/browse/JBESB-2768?page=com.atlassian.jira.plu...
]
David van Balen commented on JBESB-2768:
----------------------------------------
This is a problem I've run into since I started working with the ESB in janurary. The
scenario I was trying to implement was StaticRouter to multiple services->fetch data
from multiple locations->StaticRouter to aggregation service, all using InVM and in a
single "service."
Based on my experience, the case with this bug is more along the lines of "will cause
issues," since the MessageMulticaster simply places all the aggregatorTags on the
same message instance. All the messages invariably ended up in the DLQ, and I ended up
rolling my own splitting/tagging solution to get around the problem. I'm also not sure
that using pass-by-value would fix the problem, since it doesn't look like the message
would be copied until after it's tagged (the StaticWiretap, which the StaticRouter
extends, uses the MessageMulticaster directly, and I don't see any place where it
implements pass-by-value before the tagging occurs). Seems like there would still be a
potential race condition.
Since all the services seemed to be getting a reference to the same object in memory, I
was also running into problems with concurrent access to the body of the message.
At the very least, it would be nice if there were much better documentation around the
aggregator so that developers are aware of these issues during the design process.
Aggregator meta data in properties
----------------------------------
Key: JBESB-2768
URL:
https://jira.jboss.org/jira/browse/JBESB-2768
Project: JBoss ESB
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Content Based Routing
Affects Versions: 4.4 CP3
Reporter: Kevin Conner
Fix For: 4.4 CP5
The MessageMulticaster creates an aggregation id and stores this value in message
properties. Normally this does not prove to be an issue but when using invm transport it
may cause issues.
When the message is sent to multiple services, using pass by reference semantics, then
all services will see the *same* properties and may, depending on timing, see the same
aggregation id.
The aggregation value should really be in the message context as this section is always
duplicated when creating a reference, never shared. The problem we face is that users may
already be referencing the property, especially if they are creating a fresh response
message, so we need to think about handling this.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira