Bela Ban wrote:
 
 
 Brian Stansberry wrote:
> In JGroups 2.6.2, the JGroups team is introducing the shared transport 
> as a (superior) alternative to the multiplexer.  Want to touch off a 
> discussion of how to take advantage of that in JBC.
>
> Currently in JBC, user can inject a ChannelFactory into their cache 
> configuration, and configure a MultiplexerStack (string).  If both are 
> set, JBC calls ChannelFactory.createMultiplexerChannel(), which 
> returns a MuxChannel.
>
> So, how can JBC get a regular JChannel w/ a shared transport instead 
> of a MuxChannel?  Couple solutions come to mind:
>
> 1) Add a configuration property ChannelStack to the JBC config.  If 
> present, JBC calls JChannelFactory.createChannel(String) instead of 
> ChannelFactory.createMultiplexerChannel().  Basically, the user 
> indicates what they want by how they configure.  This IMHO is the 
> cleanest and simplest.
>
> Problem is the createChannel(String) method is not exposed in the 
> ChannelFactory interface; it's only in the JChannelFactory 
> implementation.  JBC needs to use the interface.  Bela, can this 
> method be added to the interface in 2.6.2?
 
 I changed this in the 2.6 branch, however, as 2.6.2 was released 
 yesterday I cannot add it to 2.6.2...
  
Being able to handle this in JBC 2.1.0 is a bit more of an issue due to 
a bug in the way JBM handles a Channel.connect() call 
(
http://jira.jboss.com/jira/browse/JBMESSAGING-1244).  The bug basically 
means JBM will fail if it calls 
ChannelFactory.createMultiplexerChannel() and the call doesn't return a 
MuxChannel.  So, my intended approach for AS 5 (override 
createMultiplexerChannel()and return a regular JChannel if it's 
configured for shared transport) breaks JBM.
Maybe they'll get JBMESSAGING-1244 fixed in time for AS 5; maybe not. 
If we can get a JGroups 2.6.3 and JBC 2.1.0.GA able to call 
ChannelFactory.createChannel(), then I can just let JBM get a MuxChannel.
-- 
Brian Stansberry
Lead, AS Clustering
JBoss, a division of Red Hat
brian.stansberry(a)redhat.com