JBoss Community

Re: Transactional MSC

created by Paul Robinson in JBoss Transactions Development - View the full discussion

David,

 


David Lloyd wrote:

 

Paul Robinson wrote:

 

All,

 

I've knocked up a quick prototype [1] that uses JBoss Modules to provide classloader isolation. I'm sure we all (especially David) already know what this would look like, but I thought it would be a good idea to create something so that I can make sure I understand it properly and so that we have something tangible to discuss.

 

In the prototype, I've created a new JBossModule called "org.jboss.narayana.arjunacore". This module has its own jbossts-properties.xml (located at /modules/system/layers/base/org/jboss/narayana/arjunacore/main/config/jbossts-properties.xml) for configuring this instance of ArjunaCore. In the property file I have changed the object store location to be in "./dummymsc-object-store"; this allows us to see that two separate configs are actually being used.

 

To show this in action, I created a new subsystem that depends on the "org.jboss.narayana.arjunacore" that: starts the recovery manager, begins a BasicAction, adds a BasicRecord to the transaction and then commits the BasicAction. I used a subsytem to demonstrate this as I wanted something low level that would match closely enough, how Transactional MSC would use transactions.

 

This is just a quick prototype, I've not considered what further configuration of ArjunaCore should be done. Neither have I ensured other services, such as the transaction reaper, are running. I can work on this, if we decide this is the right approach to take (initially).

 

 

[1] https://github.com/paulrobinson/jboss-as/tree/TxMSC_arjuna_module

 

That's more or less what I had in mind.  Though it's likely only MSC itself which will have this dependency - and maybe the new wildfly core management system - which both lie underneath extensions, rather than being extensions themselves.  Those may well be the only things in the system that "see" arjunacore directly in fact, unless we directly expose the arjunacore APIs for coordination purposes.

Yes, I was assuming that this would lie underneath extensions. I just needed some place to do the prototype and I felt that deploying an application would be too high up the stack.

 

Do you agree that this approach is adequate for you to develop a solution for Transactional MSC? Also, does it look like it would be adequate for how you are planning on implementing the "embeded use of the server infrastructure" feature? If so, I think we can defer the discussion around removing global state, until we are further down the implementation path of Transactional MSC.

 

If so, I think the next steps are for me to update my prototype to create a minimal configuration of ArjunaCore that meets your requirements, as documented on this page so far. For example, disabling stats, disabling the recovery manager's network port, etc.

 

Should we also document, in more detail, your plan on how you intend to use ArjunaCore? This would probably make it easier for us to provide feedback and to also make sure Narayana is providing everything you need.

Reply to this message by going to Community

Start a new discussion in JBoss Transactions Development at Community