[Design of the JBoss EJB Container] - Re: jndi lookup during restart
by jcreynol
>> Basically, any RMI-based transport is vulnerable to the problem of a
>> client holding onto an RMI stub that no longer matches the server.
>> Do you need to use an RMI connector?
The short answer to this is no -- in fact, in production, per the suggestions of a JBoss consultant that we'd see better performance with Socket transport, we are using Socket transport.
The reason we're investigating a switch to RMI is that the RMI transport "properly" handles aborted transactions, in that it immediately throws an exception back to the client that the transaction was rolled back. Socket Transport will not catch that the transaction is rolled back, so the client doesn't get notified -- until the thread completes... assuming it does... and even then, the client only receives a notice that the long running thread's transaction is dead so, even though we made you wait for the long running thread to complete, we're only going to give you an InvalidStateException because the wrapping transaction has timed out.
That said, Socket Transport handles a server bounce quite elegantly. :)
So long answer is that we're trying to find a transport that meets all our needs -- which are pretty simple -- notify client immediately when Transaction times out (some type of Exception is fine TransactionRolledBack or whatever) AND handle a server restart.
Any advice on what the best approach is to get one of these transports fixed to meet our needs is very much appreciated.
Thanks, much!
John
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4130463#4130463
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4130463
18 years, 1 month
[Design the new POJO MicroContainer] - Re: Wrong dependency info after module uninstall
by adrian@jboss.org
Ok, now I've seen the commit, I understand what you are talking about.
You changed the api in an incompatible way and didn't update the class hierarchy.
There is a similar issue with the demand dependency which is the original
version of depending on an abstract concept and what I copied to create
the RequirementDependencyItem..
I've added @Override to the methods to ensure they are actually overridding
things, but more importantly, I've changed the AbstractDependencyItem
to do what you should have done in the first place:
Compatible change:
| // Old method possibly overridden by subclasses
| public void unresolved()
| {
| if (resolved)
| {
| resolved = false;
| flushJBossObjectCache();
| log.trace("Forced unresolved " + this);
| }
| }
|
| // New method just calls the old method
| public boolean unresolved(Controller controller)
| {
| unresolved();
| return true;
| }
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4130371#4130371
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4130371
18 years, 1 month