[Design of JBossCache] - JBCACHE-1025: JBossCache mbean registration fails on WebSphe
by JerryGauth
Here's more information on this issue -
At least two JBossCache customers have reported that JBC fails when the cache is started on WebSphere 6.1 due to an exception indicating that an attempt has been made to register an already registered mbean. This occurs on initial startup so it's not necessary to stop and restart the cache to trigger the problem.
I've googled and found that similar WebSphere mbean registration problems have also been reported in forums for Spring and ActiveMQ. According to the ActiveMQ posting, the problem occurs because WebSphere modifies the registration name during the registration process (i.e., it appends some WebSphere goo). So code that only proceeds if an object isn't registered may fail since the registration is under a different name. Deregistration might also be affected but I'm not sure yet.
I haven't confirmed the reported cause yet but I'm going to debug this issue on a WebSphere environment this afternoon. Assuming it's as reported, the most logical fix would be to retrieve the actual registration name during the registration process and then use this subsequently. This would require adding an instance variable to TreeCache to store the name as well as a getter/setter so that MBeanConfigurator can access the information. Alternative options would include modifying the registration method signature to pass the name or perhaps caching the information in MBeanConfigurator (ugh).
The ActiveMQ posting suggests another alternative would be to use queryNames() instead of isRegistered() to determine whether an object is registered.
I suppose the best alternative would be for WebSphere to modify their behavior. :)
I'm planning to fix this initially for my employer as we're going to ship JBC 1.4.1 SPx with our next release for use on WebSphere. I can then apply whatever fix is appropriate to the JBC 1.4 code base. I know that the 2.0 code base is different so I'm not sure what would be appropriate there right now.
I'll advise if my debugging turns up anything different but this is my current understanding of the problem and potential solutions.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4038059#4038059
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4038059
18 years, 11 months
[Design of JBoss ESB] - Re: JCA's relation to ESB
by weston.price@jboss.com
anonymous wrote :
| My question is, how is ESB different than JCA? What are its value adds?
|
JCA is an 'enabling' technology, not a platform in and of itself. An ESB, as I understand it, provides a higher set of services (ie routing, rules, transformations etc). Again, I could be wrong on this being that the definition of an ESB is a bit hard to pin down.
anonymous wrote :
| Use Case #1: ESB is interacting with ESB-unaware message producers and consumers.
|
| In this case, where the ESB is sitting between two ESB-unaware clients, I don't think ESB provides any value (unless its doing some JBPM or Drools stuff) beyond JCA+MDB (inflow) and JCA outflow. I do see a benefit in the actions working with a generic, unifying Message interface though.
|
JCA just provides the mechanism for inflow and outflow it 'enables' a node to receive and send, what should be (again just my opinion) a generic message format. In the use case you mentioned, the ESB would be have to do *something* right?
anonymous wrote :
| The thing I worry about Use Case #2 is when JMS is involved. The JMS API is always going to be richer and more flexible than any all-in-one universal ESB messaging API.
|
Why? JMS is JMS. Are you saying is that all ESB related messaging semantics and characteristics should be able to be mappend onto JMS? Or again, am I completely missing something?
It was my understanding that in an ESB, regardless of messaging type or technology (ie JMS) it has to go through some form of central authority managed by the ESB. To do this you need some internal representation of the message. If you choose JMS, are you basically saying that the ESB is JMS dependent at that point, regardless of client type. I thought that JMS was simply a transport/messaging format (one of many) that the ESB will support.
anonymous wrote :
| So ESB advantages:
|
| * Actions work with a unified Message interface. (Although I do think Seam integration will make this a bit mute).
| * Clients work with a unified abstract Messaging interface that is protocol unaware.
|
|
Yep, this more lin line with how I thought of an ESB. JCA simply provides the 'glue' to accomplish this from node to node.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4038049#4038049
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4038049
18 years, 11 months
[Design of JBoss ESB] - JCA's relation to ESB
by bill.burke@jboss.com
Please tell me if I'm on the right track....
My question is, how is ESB different than JCA? What are its value adds?
Use Case #1: ESB is interacting with ESB-unaware message producers and consumers.
In this case, where the ESB is sitting between two ESB-unaware clients, I don't think ESB provides any value (unless its doing some JBPM or Drools stuff) beyond JCA+MDB (inflow) and JCA outflow. I do see a benefit in the actions working with a generic, unifying Message interface though.
Use Case #2: ESB interacting with ESB aware message producers and consumers.
In this case, ESB's messaging abstraction shines. The client is not aware of the protocol, or even underlying API the message is being published with.
The thing I worry about Use Case #2 is when JMS is involved. The JMS API is always going to be richer and more flexible than any all-in-one universal ESB messaging API. Most of this richness can be hidden as attributes in the EPR (security, persistence, priority), but things like transacted delivery cannot (I guess this could be added to the ESB api).
So ESB advantages:
* Actions work with a unified Message interface. (Although I do think Seam integration will make this a bit mute).
* Clients work with a unified abstract Messaging interface that is protocol unaware.
BTW, I'm doing this to figure out in my mind why you guys do what you do. Why do you need a registry? So that clients can get at EPRs. Why do you have EPRs? So that clients have a protocol independent abstraction.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4038040#4038040
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4038040
18 years, 11 months