Discussion:
[openjms-developer] Garbage collecting messages from RDBMS
Benjamin Outram
2005-05-11 10:55:58 UTC
Permalink
Hello,

I am having trouble getting openJMS to garbage collect messages from the
database using 0.7.6.1 and 0.7.7 (CVS).

I think that some messages are being deleted and some are not. When a message
isn't deleted I get the following error message in the logs:

RMI TCP Connection(29)-192.168.0.115 | 242 | Cannot remove
message=ID:f1fec87d-bcd1-1004-863f-3d8cccddcdea

Looking at org.exolab.jms.persistence.Messages line 242 this error is logged
when the table row isn't deleted. The SQL statement is "delete from messages
where messageId=?" Looking in the database, the message with id
'ID:f1fec87d-bcd1-1004-863f-3d8cccddcdea' does exist.

database config:

<DatabaseConfiguration>
<RdbmsDatabaseConfiguration
driver="org.firebirdsql.jdbc.FBDriver"
url="jdbc:firebirdsql://127.0.0.1:3050/c:/Program
Files/Firebird/Firebird_1_5/data/DATA.FDB"
user="..."
password="..."
maxActive="0"
testQuery="SELECT CURRENT_TIME FROM RDB$DATABASE"
testBeforeUse="true" />
</DatabaseConfiguration>

administered topic config:

<administeredTopic name="logMessageTopic"/>

I use a non durable subscriber and do logMessageTopicSubscriber.receive(1000) to
receive a message.

Object messages are published to the topic using the log4j JMSAppender

<appender name="jms" class="org.apache.log4j.net.JMSAppender">
<param name="InitialContextFactoryName"
value="org.exolab.jms.jndi.InitialContextFactory" />
<param name="ProviderURL" value="rmi://127.0.0.1:1099/" />
<param name="TopicConnectionFactoryBindingName"
value="JmsTopicConnectionFactory" />
<param name="TopicBindingName" value="logMessageTopic" />
<param name="LocationInfo" value="true" />
</appender>

I run openJMS as an embedded server using
JmsServer jmsServer = new JmsServer(configFileName);
jmsServer.init();

Any help would be greatly appreciated. Thanks.
Tim Anderson
2005-05-13 13:12:46 UTC
Permalink
In the CVS version, the messages are reference counted,
so you shouldn't see this message.
Have you got a test I can run to reproduce the problem?
-----Original Message-----
Behalf Of Benjamin Outram
Sent: Wednesday, 11 May 2005 8:56 PM
Subject: [openjms-developer] Garbage collecting messages from RDBMS
Hello,
I am having trouble getting openJMS to garbage collect
messages from the database using 0.7.6.1 and 0.7.7 (CVS).
I think that some messages are being deleted and some are
not. When a message isn't deleted I get the following error
RMI TCP Connection(29)-192.168.0.115 | 242 | Cannot remove
message=ID:f1fec87d-bcd1-1004-863f-3d8cccddcdea
Looking at org.exolab.jms.persistence.Messages line 242 this
error is logged when the table row isn't deleted. The SQL
statement is "delete from messages where messageId=?" Looking
in the database, the message with id
'ID:f1fec87d-bcd1-1004-863f-3d8cccddcdea' does exist.
<DatabaseConfiguration>
<RdbmsDatabaseConfiguration
driver="org.firebirdsql.jdbc.FBDriver"
url="jdbc:firebirdsql://127.0.0.1:3050/c:/Program
Files/Firebird/Firebird_1_5/data/DATA.FDB"
user="..."
password="..."
maxActive="0"
testQuery="SELECT CURRENT_TIME FROM RDB$DATABASE"
testBeforeUse="true" />
</DatabaseConfiguration>
<administeredTopic name="logMessageTopic"/>
I use a non durable subscriber and do
logMessageTopicSubscriber.receive(1000) to receive a message.
Object messages are published to the topic using the log4j JMSAppender
<appender name="jms" class="org.apache.log4j.net.JMSAppender">
<param name="InitialContextFactoryName"
value="org.exolab.jms.jndi.InitialContextFactory" />
<param name="ProviderURL" value="rmi://127.0.0.1:1099/" />
<param name="TopicConnectionFactoryBindingName"
value="JmsTopicConnectionFactory" />
<param name="TopicBindingName" value="logMessageTopic" />
<param name="LocationInfo" value="true" />
</appender>
I run openJMS as an embedded server using
JmsServer jmsServer = new JmsServer(configFileName); jmsServer.init();
Any help would be greatly appreciated. Thanks.
-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7393&alloc_id=16281&op=click
_______________________________________________
https://lists.sourceforge.net/lists/listinfo/openjms-developer
Loading...