[jbossts-issues] [JBoss JIRA] (JBTM-2623) Check Glassfish-to-Narayana interoperability (via JTS).

Michael Musgrove (JIRA) issues at jboss.org
Thu Apr 14 06:06:00 EDT 2016


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

Michael Musgrove commented on JBTM-2623:
----------------------------------------

I have created a branch that fixes the blockers (https://github.com/jbosstm/narayana/tree/JBTM-223/interop) and also a wilfly branch that removes the EJB interceptor that blocks the import of foreign transactions (https://github.com/jbosstm/jboss-as/tree/5_BRANCH_JBTM-223). The interop/README.md file in the JBTM-223 branch describes how to test transaction propagation and recovery.

> Check Glassfish-to-Narayana interoperability (via JTS).
> -------------------------------------------------------
>
>                 Key: JBTM-2623
>                 URL: https://issues.jboss.org/browse/JBTM-2623
>             Project: JBoss Transaction Manager
>          Issue Type: Task
>          Components: JTS
>    Affects Versions: 5.2.13.Final
>            Reporter: Michael Musgrove
>            Assignee: Michael Musgrove
>            Priority: Minor
>             Fix For: 5.next
>
>
> This task facilitates the resolution of JBTM-223 Check WL-to-JBossTS interoperability (via JTS).
> Whilst developing a test for recovery with WebLogic I was unable to make progress due to issue \[1\] (basically registering resources for recovery fails). Checking recovery using glassfish may be easier since the source code is readily available and may help with figuring out the correct solution with WL.
> \[1\] According to [https://docs.oracle.com/cd/E12839_01/web.1111/e13731/jtatxexp.htm#WLJTA279]
> XA resources can be registered for recovery via a singleton bean that runs at start up and registers them with the WL transaction manager. When I do this I get the exception as shown:
> {quote}
> javax.transaction.SystemException: Resource 'Dummy'can be registered only in a server process
>         at org.glassfish.transaction.TransactionManagerImplCommon.registerStaticResource(TransactionManagerImplCommon.java:695)
>         at org.jboss.narayana.RecoveryBean.register(RecoveryBean.java:61)
>         at org.jboss.narayana.RecoveryBean.init(RecoveryBean.java:30)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:483)
>         at com.oracle.pitchfork.inject.Jsr250Metadata.invokeLifecycleMethod(Jsr250Metadata.java:377)
>         at com.oracle.pitchfork.inject.Jsr250Metadata.invokeLifecycleMethods(Jsr250Metadata.java:352)
>         at com.oracle.pitchfork.intercept.InterceptionMetadata.invokeLifecycleMethods(InterceptionMetadata.java:399)
>         at weblogic.ejb.container.injection.EjbComponentCreatorImpl.invokePostConstruct(EjbComponentCreatorImpl.java:55)
>         at weblogic.ejb.container.manager.SingletonSessionManager.constructAndInitBean(SingletonSessionManager.java:330)
>         at weblogic.ejb.container.manager.SingletonSessionManager.access$300(SingletonSessionManager.java:62)
>         at weblogic.ejb.container.manager.SingletonSessionManager$SingletonLifecycleManager.doActualInit(SingletonSessionManager.java:753)
>         at weblogic.ejb.container.manager.SingletonSessionManager$SingletonLifecycleManager.initInternal(SingletonSessionManager.java:701)
>         at weblogic.ejb.container.manager.SingletonSessionManager$SingletonLifecycleManager.init(SingletonSessionManager.java:588)
>         at weblogic.ejb.container.manager.SingletonSessionManager.init(SingletonSessionManager.java:255)
>         at weblogic.ejb.container.manager.SingletonSessionManager.perhapsInit(SingletonSessionManager.java:251)
>         at weblogic.ejb.container.deployer.EJBDeployer.start(EJBDeployer.java:968)
>         at weblogic.ejb.container.deployer.EJBModule.start(EJBModule.java:597)
>         at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360)
>         at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356)
>         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
>         at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138)
>         at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
>         at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:216)
>         at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:211)
>         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
>         at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:73)
>         at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:24)
>         at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:729)
>         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
>         at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:258)
>         at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:48)
>         at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165)
>         at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80)
>         at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:226)
>         at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:418)
>         at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)
>         at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:200)
>         at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
>         at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)
>         at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
>         at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
>         at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:210)
>         at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:118)
>         at weblogic.server.AbstractServerService.postConstruct(AbstractServerService.java:78)
>         at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:483)
>         at org.glassfish.hk2.utilities.reflection.ReflectionHelper.invoke(ReflectionHelper.java:1017)
>         at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:388)
>         at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:430)
>         at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:456)
>         at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:225)
>         at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:82)
>         at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2488)
>         at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:98)
>         at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:606)
>         at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:77)
>         at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:231)
>         at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:254)
>         at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:413)
>         at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:456)
>         at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:225)
>         at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:82)
>         at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2488)
>         at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:98)
>         at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:87)
>         at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1162)
>         at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1147)
>         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:548)
>         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
>         at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jbossts-issues mailing list