-----Ursprüngliche Nachricht----- >Von: David Jencks [mailto:[EMAIL PROTECTED]] >Gesendet: Donnerstag, 18. Oktober 2001 17:36 >An: [EMAIL PROTECTED] >Betreff: Re: [JBoss-dev] JMX detaching of invokers (RH/3.0)
>There is always a balance to be struck between on the one hand greater >generality and flexibility with less compile-time type checking and less >speed, and on the other hand a more specific solution that can be checked >more by the compiler and includes scenario-specific optimizations. We have >some hard decisions about where we want to end up on this continuum. That is right. Especially when it comes to such a critical part as the invocation engine. >You are suggesting a map for invocation-specific properties of the method >invocation (MI). Yes, but if I think a while longer, we could do it like class MethodInvocation { String methodName; String[] argumentClassNames; byte[][] serializedArguments; Object[] arguments; byte[] serializedReturnValue; Object returnValue; Transaction tx; ... Map additionalProperties; } where the most critical and core contexts are (de-)serialized with the MethodInvocation in one shot and are accessible in a type-safe manner and where, e.g., args and returnValue have two representations that are treated by a DeserializationInterceptor. All other goodie-interceptors that you add may add additional context in either serialized or deserialized form (entered as objects, vs. entered as byte[], btw. how do you wrap byte[] best?) to the additionalProperties map. >We could do something similar with the >interceptor-instance-specific state. A few days ago I discussed with Scott >how to deal with interceptor-chain-instance specific interceptor state, >such as the processed security proxy. He suggested keeping essentially the >current system of individual interceptor instances for each chain, each >with their chain specific state. I have started implementing the chain >configuration based on this model. An alternate approach is to keep the >interceptor state in a map attached to the chain head, and sent down the >chain in the MI. Each interceptor can retrieve its state, if any, from the >map in the MI. I find this model somewhat attractive, but would like some >more opinions: right now I am following Scott's suggestion not to implement >it. I´m undecided whether the BIG flexibility of purely JMX-based invocation routing would be a performance-killer, or not. Having the MI itself being the center of a strategy or command pattern would be a very interesting idea, though. >If we pursue this model, with one interceptor of each type globally, shared >by all chains, the question arises whether the "next" calls should be >direct or through the mbean server via mbeanserver.invoke(...). On my >machine, using jmxri, 100,000 direct calls take from 0 to 96 ms, whereas >through the mbean server they take 10 sec. I'd like other opinions on >whether this overhead is significant enough to dictate implementation, or >whether an improved mbeanserver will make this negligible. I simply don´t know. Especially since I did not have yet a look into SUN´s JMXRI implementation. CGJ _______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development