1 Reply Latest reply on Jun 1, 2012 7:12 PM by eliboy

    SQL Server 2008, JBM_MSG & Deadlocks

    alfredw

      Hello,

       

      Here is a quick overview of my setup

      • JBoss AS 5.0.1 With JBoss Messaging
      • MS SQL Server 2008
      • XA Datasource

       

      I've been battling this issue for a while now but I can't seem to figure out why a dead lock occurs when starting up JBoss with a Message in the JBM_MSG and JBM_MSG_REG table. The only way we can get the application server to start up is by purging those two tables.

       

      I've tried the SQL Server Profiler and I've found that after it reads the JBM_MSG table for entries, which it will find 1, after a couple of seconds the database will initiate a ROLLBACK TRAN call.

       

      Any help would be greatly appreciated.

       

      Stack Trace

      2011-02-14 13:35:54,354 DEBUG [org.jboss.jms.server.destination.QueueService] (main) Starting entryPoint.jms:service=Queue,name=EntryPointTasks
      2011-02-14 13:35:54,374 WARN  [org.jboss.messaging.core.impl.JDBCSupport] (main) SQLException caught, SQLState null code:0- assuming deadlock detected, try:1
      com.microsoft.sqlserver.jdbc.SQLServerException: The data has been accessed and is not available for this column or parameter.
                at com.microsoft.sqlserver.jdbc.ServerDTVImpl.getValue(dtv.java:2426)
                at com.microsoft.sqlserver.jdbc.DTV.getValue(dtv.java:176)
                at com.microsoft.sqlserver.jdbc.Column.getValue(Column.java:113)
                at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:1981)
                at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:1976)
                at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getStream(SQLServerResultSet.java:1988)
                at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getBinaryStream(SQLServerResultSet.java:2063)
                at org.jboss.resource.adapter.jdbc.WrappedResultSet.getBinaryStream(WrappedResultSet.java:347)
                at org.jboss.messaging.core.impl.JDBCPersistenceManager.getBytes(JDBCPersistenceManager.java:2514)
                at org.jboss.messaging.core.impl.JDBCPersistenceManager$1GetMessageListTX.doTransaction(JDBCPersistenceManager.java:575)
                at org.jboss.messaging.core.impl.JDBCPersistenceManager$1GetMessageListTX.doTransaction(JDBCPersistenceManager.java:497)
                at org.jboss.messaging.core.impl.JDBCSupport$JDBCTxRunner2.execute(JDBCSupport.java:474)
                at org.jboss.messaging.core.impl.JDBCSupport$JDBCTxRunner2.executeWithRetry(JDBCSupport.java:512)
                at org.jboss.messaging.core.impl.JDBCPersistenceManager.getMessages(JDBCPersistenceManager.java:614)
                at org.jboss.messaging.core.impl.PagingChannelSupport.processReferences(PagingChannelSupport.java:565)
                at org.jboss.messaging.core.impl.PagingChannelSupport.doLoad(PagingChannelSupport.java:498)
                at org.jboss.messaging.core.impl.PagingChannelSupport.load(PagingChannelSupport.java:211)
                at org.jboss.jms.server.destination.QueueService.startService(QueueService.java:105)
                at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:376)
                at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:269)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                at java.lang.reflect.Method.invoke(Method.java:597)
                at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
                at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
                at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:138)
                at org.jboss.mx.server.Invocation.invoke(Invocation.java:90)
                at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:140)
                at org.jboss.mx.server.Invocation.invoke(Invocation.java:90)
                at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
                at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
                at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
                at $Proxy36.start(Unknown Source)
                at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
                at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
                at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
                at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
                at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
                at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
                at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
                at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
                at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
                at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
                at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
                at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
                at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
                at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
                at org.jboss.system.ServiceController.start(ServiceController.java:460)
                at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)
                at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)
                at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
                at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
                at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
                at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
                at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
                at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
                at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
                at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
                at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
                at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
                at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
                at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
                at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
                at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
                at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
                at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
                at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:698)
                at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:304)
                at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:205)
                at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
                at org.jboss.Main.boot(Main.java:209)
                at org.jboss.Main$1.run(Main.java:547)
                at java.lang.Thread.run(Thread.java:619)
      
      
      

       

      UPDATE:


      I've switched out the datasource not to use a xa-datasource thinking that would solve the problem but trying it out again I receive the exact same error.

       

      I'm tempted using Derby for the messaging queues for production if I can't figure this out. Is Derby alright for production systems or is that not recommended?