Using Jboss 4.0.3 SP1 with Sybase anywhere version 9.0.2 (3302) it throws a 
deadlock exception when using JMS.

The configuration is as follows:

        1) In the Sybase datasource file the transaction-isolation is set to 
TRANSACTION_READ_COMMITTED
        2) Set the Sybase isolation_level to 1
        3) Created additional indexes on the JMS_MESSAGES table.  (No effect)
        4) The LOCK DATAROWS option is not available in Sybase anywhere. Is 
there a similar configuration paramater?
        5) Remove the UNION in the SELECT_MAX_TX sql command.  (No effect)

Any assistance on this would be greatly appreciated.

sybasedb-jdbc2-service.xml      
      BLOB_TYPE=BYTES_BLOB
      INSERT_TX = INSERT INTO JMS_TRANSACTIONS (TXID) values(?)
      INSERT_MESSAGE = INSERT INTO JMS_MESSAGES (MESSAGEID, DESTINATION, 
MESSAGEBLOB, TXID, TXOP) VALUES(?,?,?,?,?)
      SELECT_ALL_UNCOMMITED_TXS = SELECT TXID FROM JMS_TRANSACTIONS
        SELECT_MAX_TX = SELECT MAX(TXID) FROM JMS_TRANSACTIONS UNION SELECT 
MAX(TXID) FROM JMS_MESSAGES      

      DELETE_ALL_TX = DELETE FROM JMS_TRANSACTIONS
      SELECT_MESSAGES_IN_DEST = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES 
WHERE DESTINATION=?
      SELECT_MESSAGE = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES WHERE 
MESSAGEID=? AND DESTINATION=?
      MARK_MESSAGE = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE MESSAGEID=? 
AND DESTINATION=?
      UPDATE_MESSAGE = UPDATE JMS_MESSAGES SET MESSAGEBLOB=? WHERE MESSAGEID=? 
AND DESTINATION=?
      UPDATE_MARKED_MESSAGES = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE 
TXOP=?
      UPDATE_MARKED_MESSAGES_WITH_TX = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? 
WHERE TXOP=? AND TXID=?
      DELETE_MARKED_MESSAGES_WITH_TX = DELETE FROM JMS_MESSAGES WHERE TXOP=? 
AND JMS_MESSAGES.TXID IN (SELECT TXID FROM JMS_TRANSACTIONS)
      DELETE_TX = DELETE FROM JMS_TRANSACTIONS WHERE TXID = ?
      DELETE_MARKED_MESSAGES = DELETE FROM JMS_MESSAGES WHERE TXID=? AND TXOP=?
      DELETE_TEMPORARY_MESSAGES = DELETE FROM JMS_MESSAGES WHERE TXOP='T'
      DELETE_MESSAGE = DELETE FROM JMS_MESSAGES WHERE MESSAGEID=? AND 
DESTINATION=?
      CREATE_MESSAGE_TABLE = CREATE TABLE JMS_MESSAGES ( MESSAGEID INTEGER NOT 
NULL, \
         DESTINATION VARCHAR(255) NOT NULL, TXID INTEGER NULL, TXOP CHAR(1), \
         MESSAGEBLOB IMAGE, PRIMARY KEY (MESSAGEID, DESTINATION) ) 
      CREATE_IDX_MESSAGE_TXOP_TXID = CREATE INDEX JMS_MESSAGES_TXOP_TXID ON 
JMS_MESSAGES (TXOP, TXID)
      CREATE_IDX_MESSAGE_DESTINATION = CREATE INDEX JMS_MESSAGES_DESTINATION ON 
JMS_MESSAGES (DESTINATION)
      CREATE_TX_TABLE = CREATE TABLE JMS_TRANSACTIONS ( TXID INTEGER, PRIMARY 
KEY (TXID) ) 
      
      CREATE_TABLES_ON_STARTUP = TRUE





org.jboss.mq.SpyJMSException: Could not remove message: 2188 msg=800 hard 
STORED PERSISTENT queue=QUEUE.B priority=4 lateClone=false hashCode=8938306; - 
nested throwable: (com.sybase.jdbc2.jdbc.SybSQLException: ASA Error -306: 
Deadlock detected)
        at 
org.jboss.mq.pm.jdbc2.PersistenceManager.remove(PersistenceManager.java:1136)
        at org.jboss.mq.server.BasicQueue.acknowledge(BasicQueue.java:564)
        at org.jboss.mq.server.JMSQueue.acknowledge(JMSQueue.java:156)
        at 
org.jboss.mq.server.ClientConsumer.acknowledge(ClientConsumer.java:328)
        at 
org.jboss.mq.server.JMSDestinationManager.acknowledge(JMSDestinationManager.java:519)
        at 
org.jboss.mq.server.JMSDestinationManager.transact(JMSDestinationManager.java:464)
        at 
org.jboss.mq.server.JMSServerInterceptorSupport.transact(JMSServerInterceptorSupport.java:186)
        at 
org.jboss.mq.security.ServerSecurityInterceptor.transact(ServerSecurityInterceptor.java:182)
        at 
org.jboss.mq.server.TracingInterceptor.transact(TracingInterceptor.java:412)
        at 
org.jboss.mq.server.JMSServerInvoker.transact(JMSServerInvoker.java:186)
        at 
org.jboss.mq.il.uil2.ServerSocketManagerHandler.handleMsg(ServerSocketManagerHandler.java:172)
        at 
org.jboss.mq.il.uil2.SocketManager$ReadTask.handleMsg(SocketManager.java:369)
        at org.jboss.mq.il.uil2.msgs.BaseMsg.run(BaseMsg.java:377)
        at 
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
        at java.lang.Thread.run(Thread.java:595)
Caused by: com.sybase.jdbc2.jdbc.SybSQLException: ASA Error -306: Deadlock 
detected
        at com.sybase.jdbc2.tds.Tds.processEed(Tds.java:2538)
        at com.sybase.jdbc2.tds.Tds.nextResult(Tds.java:1922)
        at com.sybase.jdbc2.jdbc.ResultGetter.nextResult(ResultGetter.java:69)
        at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:201)
        at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:182)
        at com.sybase.jdbc2.jdbc.SybStatement.updateLoop(SybStatement.java:1611)
        at 
com.sybase.jdbc2.jdbc.SybStatement.executeUpdate(SybStatement.java:1594)
        at 
com.sybase.jdbc2.jdbc.SybPreparedStatement.executeUpdate(SybPreparedStatement.java:89)
        at 
org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:227)
        at 
org.jboss.mq.pm.jdbc2.PersistenceManager.remove(PersistenceManager.java:1124)
        ... 14 more


View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3951296#3951296

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3951296


_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to