[jboss-jira] [JBoss JIRA] (AS7-1908) Provide tooling for converting AS7-specific JGroups configuration to native JG config

Richard Achmatowicz (JIRA) jira-events at lists.jboss.org
Tue Feb 7 15:22:48 EST 2012


    [ https://issues.jboss.org/browse/AS7-1908?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12664062#comment-12664062 ] 

Richard Achmatowicz edited comment on AS7-1908 at 2/7/12 3:22 PM:
------------------------------------------------------------------

Some background. 

An AS7 JGroups configuration is created using management operations, either directly from the CLI (post boot time) or indirectly from the JGroups subsystem configuration XML (at boot time). The operations are essentially 

{noformat}
/subsystem=jgroups/stack=udp:add()
/subsystem=jgroups/stack=udp/transport=TRANSPORT:add(type=UDP)
/subsystem=jgroups/stack=udp:add-protocol(type=MPING)
...
{noformat}

>From these operations, ChannelFactoryServices holding JGroups configuration information and having the ability to create JGroups channels are created; for example, ChannelFactoryService("udp") and ChannelFactoryService("tcp"). 

After completion of such commands, these services will have been configured and installed in the Modular Service Container but possibly not yet started, as they are started on demand by clients like Infinispan. At this stage, the JGroups configuration information is just not useable - it is held in three different class types ProtocolStackConfiguration, TransportConfiguration and ProtocolConfiguration and these instances contain injection point references to other services such as a socket binding service (for picking up configured bind addresses, executor service (for picking up executors) and so on. These injection points are not guaranteed to hold useful information until the ChannelFactoryService is started.

Channels are also represented as services, ChannelService, and they contain essentially a name, a link back to a ChannelFactory and a real JGroups channel which is only created when they start. For example, ChannelService("web") for web apps. Once a channel has been created, it is easy to get a native JGroups configuration, via Channel.getProtocolStack().printProtocolSpec(true). There will be a fairly straightforward relationship between the XML and this configuration - with some defaults for protocol properties thrown in by the ProtocolDefaultsService of the JGroups subsystem.

Thus, once a channel is configured, installed *and started*, we can easily look up the ChannelService and get the native JGroups stack from which that Channel was created. The tricky bit is what to do when the services are still dormant and have not yet been started. 



 


                
      was (Author: rachmato):
    Some background. 

An AS7 JGroups configuration is created using management operations, either directly from the CLI (post boot time) or indirectly from the JGroups subsystem configuration XML (at boot time). The operations are essentially 

{noformat}
/subsystem=jgroups/stack=udp:add()
/subsystem=jgroups/stack=udp/transport=TRANSPORT:add(type=UDP)
/subsystem=jgroups/stack=udp:add-protocol(type=MPING)
...
{noformat}

>From these operations, ChannelFactoryServices holding JGroups configuration information and having the ability to create JGroups channels are created; for example, ChannelFactoryService("udp") and ChannelFactoryService("tcp"). 

These services will have been configured and installed in the Modular Service Container but possibly not yet started, as they are started on demand by clients like Infinispan. At this stage, getting a native JGroups configuration is not easy - the config information is not in the same format.

Channels are also represented as services, ChannelService, and they contain essentially a name, a link back to a ChannelFactory and a real JGroups channel which is only created when they start. For example, ChannelService("web") for web apps. Once a channel has been created, it is easy to get a native JGroups configuration, via Channel.getProtocolStack().printProtocolSpec(true). There will be a fairly straightforward relationship between the XML and this configuration - with some defaults for protocol properties thrown in by the ProtocolDefaultsService of the JGroups subsystem.

Thus, once a channel is configured, installed *and started*, we can easily look up the ChannelService and get the native JGroups stack from which that Channel was created. The tricky bit is what to do when the services are still dormant and have not yet been started. 



 


                  
> Provide tooling for converting AS7-specific JGroups configuration to native JG config
> -------------------------------------------------------------------------------------
>
>                 Key: AS7-1908
>                 URL: https://issues.jboss.org/browse/AS7-1908
>             Project: Application Server 7
>          Issue Type: Feature Request
>          Components: Clustering
>    Affects Versions: 7.1.0.CR1
>            Reporter: Radoslav Husar
>            Assignee: Richard Achmatowicz
>            Priority: Trivial
>              Labels: eap6-ux
>
> We should be able to tests people's JG in AS7 configuration using standalone JGroups.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list