1 2 3 4 Previous Next 53 Replies Latest reply on May 22, 2008 8:16 AM by dimitris

    migrating TransactionManager and Invokers to POJO

    jhalliday

      For some time I've been trying to convert the TransactionManager integration for AS5 over to microcontainer from JMX, see http://www.jboss.com/index.html?module=bb&op=viewtopic&t=124499 for the story so far.

      We have arrived at a point where it looks like the best option may be to bite the bullet and move the TransactionManager plus anything that depends on it i.e. the invokers, out of jboss-service.xml and into deploy instead.

      Anyone from the AS side care to comment?

        • 1. Re: migrating TransactionManager and Invokers to POJO
          starksm64

          Yes, that is what should be done. http://jira.jboss.com/jira/browse/JBAS-5103 can be used for subtask issues related to the move.

          • 2. Re: migrating TransactionManager and Invokers to POJO
            jhalliday

            It looks like this is a blocker for further work on the JTS. Unlike the JTA, the JTS depends on the CORBA ORB. The ORB is in deploy, which means the JTS has to move there too. Although I can test the POJO JTA version by moving it into bootstrap temporarily, we need both JTA and JTS working before the next JBossTS release. Hence if JBAS-5103 has to be deferred past beta4, a new transactions release will likely do the same.

            • 3. Re: migrating TransactionManager and Invokers to POJO

              I don't see anything stopping you from moving the contents of
              iiop-service.xml into conf/jboss-service.xml for temporary testing purposes?

              • 4. Re: migrating TransactionManager and Invokers to POJO
                jhalliday

                You mean keep the JTS in its JMX version rather than converting to POJO? It's an option I guess, but if I keep going down the path of making temporary changes to the AS, at some point my test results become meaningless since I'm basically just hacking the AS to make them pass. Likewise I'd be testing a version of the TS I has no intention of releasing. Still, probably worth it if I reach a point of wanting to test new JTS features that don't relate to the way it's integrated or deployed in AS.

                • 5. Re: migrating TransactionManager and Invokers to POJO
                  dimitris

                  If the primary problem we want to solve is to allow JBossTS JTS to work/be able to plug-in to AS, why not moving the deploy/iiop-service.xml content permanently to conf/jboss-services.xml in the all config for the AS5.0 release? We can then revisit the issue post AS5.0.

                  As a side note, I really don't understand why JBossTS, or someone for that matter, cannot experimenting in parallel with POJOizing the integrating JBossTS beans and trying out different configuration schenarios.


                  • 6. Re: migrating TransactionManager and Invokers to POJO
                    anil.saldhana

                    I thought conf/jboss-service.xml was supposed to become history.

                    • 7. Re: migrating TransactionManager and Invokers to POJO
                      dimitris

                       

                      "anil.saldhana@jboss.com" wrote:
                      I thought conf/jboss-service.xml was supposed to become history.

                      Be my guest and remove it.

                      • 8. Re: migrating TransactionManager and Invokers to POJO
                        dimitris

                        I tried to move things around a bit (tx-manager, remoting service, invokers) in the deploy dir, and hit the problem Adrian was talking about.

                        The WebDeployer depends on the transaction service.

                        00:43:36,750 ERROR [ProfileServiceBootstrap] Failed to load profile: Summary of
                        incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
                        
                        *** CONTEXTS MISSING DEPENDENCIES: Name -> Dependency{Required State:Actual Stat
                        e}
                        
                        WSDeployerHook_JAXRPC_POST_JSE
                         -> WebServiceDeployerPostJSE{Installed:Instantiated}
                         -> WSDeployerHook_JAXRPC_POST_JSE{Installed:Configured}
                         -> WSDeployerHook_JAXRPC_POST_JSE{Installed:Configured}
                         -> WebServiceDeployerPostJSE{Start:Instantiated}
                         -> WebServiceDeployerPostJSE{Create:Instantiated}
                         -> WebServiceDeployerPostJSE{Installed:Instantiated}
                        
                        WSDeployerHook_JAXRPC_PRE_JSE
                         -> WSDeployerHook_JAXRPC_PRE_JSE{Installed:Configured}
                         -> WebServiceDeployerPreJSE{Create:Instantiated}
                         -> WebServiceDeployerPreJSE{Installed:Instantiated}
                         -> WebServiceDeployerPreJSE{Installed:Instantiated}
                         -> WSDeployerHook_JAXRPC_PRE_JSE{Installed:Configured}
                         -> WebServiceDeployerPreJSE{Start:Instantiated}
                        
                        WSDeployerHook_JAXWS_POST_JSE
                         -> WebServiceDeployerPostJSE{Start:Instantiated}
                         -> WebServiceDeployerPostJSE{Create:Instantiated}
                         -> WSDeployerHook_JAXWS_POST_JSE{Installed:Configured}
                         -> WSDeployerHook_JAXWS_POST_JSE{Installed:Configured}
                         -> WebServiceDeployerPostJSE{Installed:Instantiated}
                         -> WebServiceDeployerPostJSE{Installed:Instantiated}
                        
                        WSDeployerHook_JAXWS_PRE_JSE
                         -> WebServiceDeployerPreJSE{Create:Instantiated}
                         -> WebServiceDeployerPreJSE{Installed:Instantiated}
                         -> WSDeployerHook_JAXWS_PRE_JSE{Installed:Configured}
                         -> WSDeployerHook_JAXWS_PRE_JSE{Installed:Configured}
                         -> WebServiceDeployerPreJSE{Start:Instantiated}
                         -> WebServiceDeployerPreJSE{Installed:Instantiated}
                        
                        WarDeployer
                         -> jboss.jca:service=CachedConnectionManager{Start:Configured}
                         -> jboss.jca:service=CachedConnectionManager{Create:Configured}
                         -> jboss:service=TransactionManager{Create:** NOT FOUND **}
                         -> jboss:service=TransactionManager{Start:** NOT FOUND **}
                        
                        WebServiceDeployerPostJSE
                        
                        WebServiceDeployerPreJSE
                        
                        jboss.jca:service=CachedConnectionManager
                         -> jboss:service=TransactionManager{Start:** NOT FOUND **}
                         -> jboss:service=TransactionManager{Create:** NOT FOUND **}
                        
                        
                        *** CONTEXTS IN ERROR: Name -> Error
                        
                        jboss:service=TransactionManager -> ** NOT FOUND **
                        


                        • 9. Re: migrating TransactionManager and Invokers to POJO
                          jhalliday

                          Looks like the web deployer change (JBAS-5144) is done. Would one of the AS people care to try moving the invokers again? Once they are gone I should be able to move the transaction manager, I don't think anything else depends on it.

                          • 10. Re: migrating TransactionManager and Invokers to POJO
                            jhalliday

                            Took another look at this and it seems the current stumbling block is deployers/jca-hack-for-tomcat-service.xml which can't find the TransactionManager if I move it into deploy. Who is responsible for that hack and when is it going to be cleaned up?

                            • 11. Re: migrating TransactionManager and Invokers to POJO
                              brian.stansberry

                               

                              "jhalliday" wrote:
                              Would one of the AS people care to try moving the invokers again?


                              Not sure what you mean by this.

                              The error you posted is because the WarDeployer has a now unnecessary

                              <depends>jboss.jca:service=CachedConnectionManager</depends>


                              That just needs to be moved to the deploy/jbossweb.sar's jboss.web:service=WebServer mbean; that's where the dependency really is. And the jca-hack-for-tomcat-service.xml moved to deploy/renamed. I just did that locally and the server starts fine. I'd be happy to check that in, but don't know anything about any issues with the invokers.

                              • 12. Re: migrating TransactionManager and Invokers to POJO
                                brian.stansberry

                                The CachedConnectionManager is moved. http://jira.jboss.com/jira/browse/JBAS-5346

                                I read the rest of this thread and know what you're talking about with invokers now. :-)

                                The issue there is probably that once the invokers are out of conf/jboss-service.xml, deploy/ services that have an implicit dependency on them are no longer certain to deploy after them.

                                • 13. Re: migrating TransactionManager and Invokers to POJO
                                  jhalliday

                                  OK that helps, thanks Brian.

                                  I'm now hitting an issue with the war deployer (from deployers/jbossweb.deployer/) depending on the transaction manager, which I've moved from conf/jboss-service.xml to deploy/transaction-service.xml

                                  It seems the startup order is not what I expected. I thought it went: bootstrap, jboss-service.xml; deploy/*, deployers/* but that's not what I'm seeing here. Can any AS gurus shed some light on this? Documentation for the expected behaviour seems to be a bit thin on the ground right now...

                                  • 14. Re: migrating TransactionManager and Invokers to POJO

                                    Obviously deployers are before deploy otherwise you couldn't deploy anything ;-)

                                    The jbossweb deployer should not depend on the TM. That dependency should be
                                    moved to the jboss.web:service=WebServer mbean like Brian did for the CCM.
                                    See the JIRA issue.

                                    1 2 3 4 Previous Next