[
https://jira.jboss.org/jira/browse/JBESB-2758?page=com.atlassian.jira.plu...
]
Kevin Conner commented on JBESB-2758:
-------------------------------------
There are many inconsistencies between the InVM behaviour and that of the other couriers,
especially when dealing with these temporary replies.
This specific issue was an over zealous cleanup, introduced as part of the
JBESB-2523/JBESB-2490 work, but it will impact all but the simplest of use cases.
Going through the code showed a number of areas which had similar problems, caused in some
respect by the fact that InVMCourier behaviour was different from other couriers (it was
the transport rather than one view onto it).
There were some concurrency issues, for example accessing an unsynchronized list from
outside of a sychronization/lock, transactional issues, reinserting the wrong message,
deployment issues, forcing a single EPR for a service, the 'special' cleanup
triggering this issue and other areas.
The code now has a separate 'transport' for those endpoints registered as part of
the service initialisation and for the temporary endpoints created to handle responses.
The couriers now behave in the same manner as the other couriers, no special handling is
required, and should now support the same use cases as the others.
These changes were committed in revision 28794.
InVM ReplyTo cleanup code invalid in ServiceInvoker
---------------------------------------------------
Key: JBESB-2758
URL:
https://jira.jboss.org/jira/browse/JBESB-2758
Project: JBoss ESB
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Transports
Affects Versions: 4.4 CP3
Reporter: Martin Vecera
Assignee: Kevin Conner
Fix For: 4.4 CP3
Attachments: invm_route.tar.bz2
I have two services in a single ESB archive. Both have set invmScope="GLOBAL",
the first service is accessible via EBWS and routes the message to the second service. The
client awaits a response, which should be sent by the second service to a thread that
executes EBWS servlet. Instead of this and exception is thrown.
2009-07-22 08:30:43,550 ERROR
[org.jboss.soa.esb.listeners.message.ActionProcessingPipeline] Failed to send reply to
address InVMEpr [ PortReference < <wsa:Address invm://thread-910-3/
>, <wsa:ReferenceProperties jbossesb:passByValue : false/> > ] for message
header: [ To: InVMEpr [ PortReference < <wsa:Address invm://thread-910-3/>,
<wsa:ReferenceProperties jbossesb
:passByValue : false/> > ] From: InVMEpr [ PortReference < <wsa:Address
invm://526f757465725465737424242424242424242424242445425753526f757465/false?false#10000/>,
<wsa:ReferencePropert
ies jbossesb:passByValue : false/>, <wsa:ReferenceProperties jbossesb:type :
urn:jboss/esb/epr/type/invm/> > ] RelatesTo: b013fa7a-18ac-40ef-bac5-7ad3ef2c6c5b ]
org.jboss.soa.esb.couriers.CourierException: No deliverAsync courier
at
org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.deliver(TwoWayCourierImpl.java:170)
at
org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.messageTo(ActionProcessingPipeline.java:835)
at
org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.replyTo(ActionProcessingPipeline.java:757)
at
org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:687)
at
org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:574)
at
org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:408)
at
org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:540)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
When an JMS queue is configured in the first service, everything works like a charm.
--
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