[Design of JBoss ESB] - Re: Failover MessageRedelivery
by kurt.stam@jboss.com
Hi Daniel,
anonymous wrote :
| Now, if the validation fails (step 1) we can set the FaultTo to let the calling system know somethings wrong.
| If the posting to the WebService fails for some reason (step 2) it make sense to try to redeliver at a later time.
|
So far so good :)
anonymous wrote :
| We would like to be able to have different scheduling intervals for different action pipelines and thought that step 2's exception handler would add the message to the MessageStore with a classification specific to that action pipeline.
|
The redeliverService is configured in the jbossesb.esb, and there is only one. It looks for msgs in the RDLVR classification, and tries to redeliver them on it's configured schedule. So all services share the same redeliverService. I never thought you'd like to make the redeliver schedule different for different services.
That said, like you said, we can define other redeliverDeliver services, and make the classification configurable. Then we could set that classification in the message and the ServiceInvoker could look to see if that property is set and if so use it.
Can you explain a little more why you would need different redeliver schedules?
--Kurt
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4074400#4074400
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4074400
18 years, 7 months
[Design of JBoss ESB] - Re: Failover MessageRedelivery
by beve
Hi Kurt,
thx for the quick response!
This is how we would like to use this (if it's possible).
We have an action pipeline that has 3 actions:
1. Validate xml
2. Post to WebService
3. Update database
Now, if the validation fails (step 1) we can set the FaultTo to let the calling system know somethings wrong.
If the posting to the WebService fails for some reason (step 2) it make sense to try to redeliver at a later time.
We would like to be able to have different scheduling intervals for different action pipelines and thought that step 2's exception handler would add the message to the MessageStore with a classification specific to that action pipeline. Then we would specify the redelivery service in the same jboss-esb.xml and use the classification property to specify which messages this redelivery service should care about.
Is this a valid way to use the redelivery service?
Thanks,
Daniel
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4074331#4074331
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4074331
18 years, 7 months
[Design of the JBoss EJB Container] - Re: jndi lookup during restart
by bstansberry@jboss.com
Checked in the unit test I discussed on http://www.jboss.com/index.html?module=bb&op=viewtopic&t=114200 . It's org.jboss.test.naming.test.NamingRestartUnitTestCase.
(I was able to track down the thing I was concerned about with deploying a 2nd NamingService and made sure the test didn't cause a problem.)
The problem with HA-JNDI is as you described, Ben -- when HA-JNDI is stopped, the server-side Remote is unexported. The client side NamingContext has a cached refer to the stub to that Remote; invoking on that fails.
I was able to determine why the test doesn't fail with regular JNDI:
1) For regular JNDI, the server-side Remote object is an instance of NamingServer. That instance is cached in a static field NamingContext.localServer. Thus the server-side object actually survives a restart of the NamingService.
2) NamingService doesn't actually unexport that NamingServer as part of it's stop() processing. From org.jnp.server.Main.stop():
| if( isStubExported == true )
| UnicastRemoteObject.unexportObject(theServer.getNamingInstance(), false);
|
Field "isStubExported" is never set to "true", so the unexportObject call never happens.
Effect is a remote NamingContext still has a valid stub after a restart of the NamingService. If the test actually restarted the server rather than just bouncing a NamingService, it wouldn't work. This is what happens with Ben's manual test above. When I modified the test NamingService so it no longer used the static NamingServer in 1) above, the test fails.
Bottom line with all this is we understand the failure mode.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4074194#4074194
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4074194
18 years, 7 months