[Design of EJB 3.0] - WARN logs in InterceptorRegistry
by jaikiran
In the current version of EJB3 on JBoss-5.0GA, a bean method invocation always generates a lot of these WARN messages:
WARN [InterceptorRegistry] applicable interceptors is non-existent for .....
Looking at the InterceptorRegistry, i do see a TODO with some explanation:
| public List<Class<?>> getApplicableInterceptorClasses(Method method)
| {
| List<Class<?>> methodApplicableInterceptorClasses = applicableInterceptorClasses.get(method);
| //TODO
| //FIXME: This assertion is valid, but EJB3 Core needs to declare virtual methods without interceptors
| // such that they make the Map of MethodHashes, and these then get improperly placed in the
| // Joinpoint Map, which ends up here...
| //assert methodApplicableInterceptorClasses != null : "applicable interceptors is non-existent for " + method;
| log.warn("applicable interceptors is non-existent for " + method);
| ...
| }
1) Could we reduce the logging level to maybe DEBUG, since this message is not really for the end-user.
2) Is that logging message missing a if block? The earlier assert statement (which now is commented out) was checking whether the methodApplicableInterceptorClasses is null. The log message does not do this. Or is it that the methodApplicableInterceptorClasses is always null?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4199701#4199701
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4199701
15 years, 3 months
[Design of JBoss ESB] - Re: StartProcessInstanceCommand: Return token id/process ins
by Kevin.Conner@jboss.com
"apestel" wrote : When the process finishes (signal returns after couple seconds), the web app extracts the loan result from the finished jBPM process and displays it in a web page to the user.
As I said previously, return from signal guarantees nothing as far as process completion is concerned (even without ESB in the mix).
Your example above is very likely to include a remote invocation to a system run by Equifax (or one of the other agencies) and this is likely to be done over an asynchronous messaging transport if they want it to scale. (yes, I have worked for Equifax and an online bank and have written both sides of this). This may take an indeterminate time and the jBPM processing is likely to include timeout behaviour or even human interaction depending on the circumstances.
"apestel" wrote : Would we say that is improper use of jBPM and the web app should instead signal the jBPM process in a separate thread, block the web app thread, implement the jBPM process with some sort of callback at process completion, and wait for the jBPM process to call back to the web application when it has completed so that the web application can get the jBPM process variable with the loan result and render that in the page returned to the user?
I would definitely say that taking the simple approach will not be guaranteed to work in all circumstances and that I hope they can handle this ;)
Kev
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4199692#4199692
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4199692
15 years, 3 months
[Design of JBoss ESB] - Re: StartProcessInstanceCommand: Return token id/process ins
by apestel
"Kevin.Conner(a)jboss.com" wrote : There are other reasons why a process instance is not guaranteed to work in a synchronous manner on the calling thread, such as timers, human intervention, ESB invocations and possibly others. In general this is not something that the invoker of the process instance can control.
For clarity to make sure I understand, let's say that we remove ESB from the picture and we have a customer just using jBPM. They create a web application that accepts a bunch of form data for a loan application and on submission, the web app creates a jBPM process instance with the form data and signals it which does credit check, loan rate calculation, maybe other steps, and then finishes by producing a loan result in a jBPM process variable. When the process finishes (signal returns after couple seconds), the web app extracts the loan result from the finished jBPM process and displays it in a web page to the user.
Would we say that is improper use of jBPM and the web app should instead signal the jBPM process in a separate thread, block the web app thread, implement the jBPM process with some sort of callback at process completion, and wait for the jBPM process to call back to the web application when it has completed so that the web application can get the jBPM process variable with the loan result and render that in the page returned to the user?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4199639#4199639
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4199639
15 years, 3 months