problem receive many messages
jivkoto Feb 9, 2005 9:26 AMHi,
I am working with Firebird 1.5.2, Jaybird 1.5.5 Jboss 3.2.6. I am wondering if there are any problems with jms storing in firebird. I will be thankful if someone take a look and give a hand on this:
I am sending many jms messages on two queues, let say A and B. after a while my jboss freezes.
Result many of the messages has reached there destination. But from a moment all are stored in JMS_MESSAGES. There is record in JMS_MESSAGES for one of the queue (B) with CTXID column set, so there is a record in JMS_TRANSACTION as set in CTXID.
Here is my firebird-xs-ds.xml file
<?xml version="1.0" encoding="UTF-8"?> <datasources> <mbean code="org.firebirdsql.management.FBManager" name="jboss.jca:service=FirebirdManager"> <attribute name="FileName">C:\Documents and Settings\zhivko\WORKFLOWDB</attribute> <attribute name="UserName">sysdba</attribute> <attribute name="Password">masterkey</attribute> <attribute name="CreateOnStart">true</attribute> <attribute name="DropOnStop">false</attribute> </mbean> <xa-datasource> <jndi-name>WORKFLOWDB</jndi-name> <track-connection-by-tx>true</track-connection-by-tx> <isSameRM-override-value>false</isSameRM-override-value> <xa-datasource-class>org.firebirdsql.pool.FBConnectionPoolDataSource</xa-datasource-class> <xa-datasource-property name="Database">localhost/3050:WORKFLOWDB</xa-datasource-property> <xa-datasource-property name="UserName">SYSDBA</xa-datasource-property> <xa-datasource-property name="Password">masterkey</xa-datasource-property> <!--user-name>SYSDBA</user-name> <password>masterkey</password--> <!--transaction isolation--> <config-property name="TransactionIsolationName">TRANSACTION_READ_COMMITTED</config-property> <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> <!--pooling parameters--> <min-pool-size>10</min-pool-size> <max-pool-size>500</max-pool-size> <blocking-timeout-millis>300000</blocking-timeout-millis> <idle-timeout-minutes>15</idle-timeout-minutes> <!-- Debugging --> <track-statements>true</track-statements> <!-- HA --> <check-valid-connection-sql>SELECT * FROM tClient </check-valid-connection-sql> <new-connection-sql>SELECT * FROM tClient </new-connection-sql> <!-- <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.*</valid-connection-checker-class-name> --> </xa-datasource> </datasources>
I tried with isolation level = TRANSACTION_READ_UNCOMMITTED but it was the same
Here is my xxx-jdbc2-service.xml
<?xml version="1.0" encoding="UTF-8"?> <server> <mbean code="org.jboss.mq.server.jmx.DestinationManager" name="jboss.mq:service=DestinationManager"> <depends optional-attribute-name="MessageCache">jboss.mq:service=MessageCache</depends> <depends optional-attribute-name="PersistenceManager">jboss.mq:service=PersistenceManager</depends> <depends optional-attribute-name="StateManager">jboss.mq:service=StateManager</depends> </mbean> <mbean code="org.jboss.mq.server.MessageCache" name="jboss.mq:service=MessageCache"> <attribute name="HighMemoryMark">50</attribute> <attribute name="MaxMemoryMark">60</attribute> <attribute name="CacheStore">jboss.mq:service=PersistenceManager</attribute> </mbean> <mbean code="org.jboss.mq.pm.jdbc2.PersistenceManager" name="jboss.mq:service=PersistenceManager"> <depends optional-attribute-name="ConnectionManager">jboss.jca:service=XATxCM,name=WORKFLOWDB</depends> <attribute name="SqlProperties"> BLOB_TYPE=BINARYSTREAM_BLOB INSERT_TX = INSERT INTO tJMSTransactions (cTXID) values(?) INSERT_MESSAGE = INSERT INTO tJMSMessages(cMessageID, cDestination, cMessageBlob, cTXID, cTXOP) VALUES(?,?,?,?,?) SELECT_ALL_UNCOMMITED_TXS = SELECT cTXID FROM tJMSTransactions SELECT_MAX_TX = SELECT MAX(cTXID) FROM tJMSMessages SELECT_MESSAGES_IN_DEST = SELECT cMessageID, cMessageBlob FROM tJMSMessages WHERE cDestination=? SELECT_MESSAGE = SELECT cMessageID, cMessageBlob FROM tJMSMessages WHERE cMessageID=? AND cDestination=? MARK_MESSAGE = UPDATE tJMSMessages SET cTXID=?, cTXOP=? WHERE cMessageID=? AND cDestination=? UPDATE_MESSAGE = UPDATE tJMSMessages SET cMessageBlob=? WHERE cMessageID=? AND cDestination=? UPDATE_MARKED_MESSAGES = UPDATE tJMSMessages SET cTXID=?, cTXOP=? WHERE cTXOP=? UPDATE_MARKED_MESSAGES_WITH_TX = UPDATE tJMSMessages SET cTXID=?, cTXOP=? WHERE cTXOP=? AND cTXID=? UPDATE_MESSAGE = UPDATE tJMSMessages SET cMessageBlob=? WHERE cMessageID=? AND cDestination=? UPDATE_MARKED_MESSAGES = UPDATE tJMSMessages SET cTXID=?, cTXOP=? WHERE cTXOP=? UPDATE_MARKED_MESSAGES_WITH_TX = UPDATE tJMSMessages SET cTXID=?, cTXOP=? WHERE cTXOP=? AND cTXID=? DELETE_MARKED_MESSAGES_WITH_TX = DELETE FROM tJMSMessages WHERE cTXID IN (SELECT cTXID FROM tJMSTransactions) AND cTXOP=? DELETE_TX = DELETE FROM tJMSTransactions WHERE cTXID = ? DELETE_MARKED_MESSAGES = DELETE FROM tJMSMessages WHERE cTXID=? AND cTXOP=? DELETE_TEMPORARY_MESSAGES = DELETE FROM tJMSMessages WHERE cTXOP='T' DELETE_MESSAGE = DELETE FROM tJMSMessages WHERE cMessageID=? AND cDestination=? CREATE_MESSAGE_TABLE = CREATE TABLE tJMSMessages(cMessageID INTEGER NOT NULL, cDestination VARCHAR(150) NOT NULL, cTXID INTEGER, cTXOP CHAR(1), cMessageBlob BLOB, PRIMARY KEY (cMessageID, cDestination)) CREATE_IDX_MESSAGE_TXOP_TXID = CREATE INDEX IDX_JMSMessages_TXOP_TXID ON tJMSMessages (cTXOP, cTXID) CREATE_IDX_MESSAGE_DESTINATION = CREATE INDEX IDX_JMSMessages_Destination ON tJMSMessages (cDestination) CREATE_TX_TABLE = CREATE TABLE tJMSTransactions (cTXID INTEGER, PRIMARY KEY (cTXID)) CREATE_TABLES_ON_STARTUP = FALSE </attribute> <!-- CREATE_TABLES_ON_STARTUP is false, because it done in createDB.xml with optimized storage parameters. --> </mbean> </server>
If any one has any idea please help. Thanks in advanced.