[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [xmlblaster] JDBC connection going stale in 0.84



Hello Thomas,
I had a look at the error.
It seems that the error derived from a malfunctionning reconnection policy we had (it did not work with the new postgres driver which comes along with xmlBlaster). This error was fixed for the JdbcQueueCommonTablePlugin but we forgot to fix it for the JdbcQueuePlugin. I fixed it now so you can checkout the code from our cvs repository.


I noticed you use the JdbcQueuePlugin which is not our default anymore:
we have two different approaches for storing data on the DB: The JdbcQueuePlugin and the JdbcQueueCommonTablePlugin. The second is now the default since it offers a much simpler DB structure: only three tables for all queue entries. If this approach sounds interesting to you please have a look at the requirement:


http://www.xmlBlaster.org/xmlBlaster/doc/requirements/queue.jdbc.commontable.html

Regards
Michele


Lance Thomas wrote:
Hello XMLBlaster team,

We are encountering an issue with XMLBlaster 0.84 relating to persistent
message storage. We have it configured to use a postgres database as the
target for persistent storage.


After several days of running, we believe that XMLBlaster's database
connection goes stale. After that point, no database persistence works. See
below:

 [Feb 28, 2003 12:42:54 PM ERROR
TopicHandler-/node/http_10_1_10_20_3412/msg/http_10_1_10_20_3412-10464538942
05000000] Persisting TopicHandler failed, we continue memory based:
XmlBlasterException errorCode=[resource.db.unknown]
node=[http_10_1_10_20_3412]
location=[org.xmlBlaster.util.queue.jdbc.JdbcQueuePlugin-topicStore:http_10_
1_10_20_3412] message=[removeRandom(entry[]) caught sql exception, status is
 <JdbcQueuePlugin id='topicStore:http_10_1_10_20_3412' type='JDBC'
version='1.0' numOfEntries='23' numOfBytes='11477'>
  <persistence relating='topicStore'/>
  <numOfPersistents>23</numOfPersistents>
  <sizeOfPersistents>11477</sizeOfPersistents>
  <associatedTable>XMLBLASTER1044294718704000000</associatedTable>
 </JdbcQueuePlugin> : An IO erro occured while sending to the backend -
Exception: java.net.SocketException: Socket closed
Stack Trace:

java.net.SocketException: Socket closed
	at java.net.SocketOutputStream.socketWrite0(Native Method)
	at
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java(Compiled
Code))
	at
java.net.SocketOutputStream.write(SocketOutputStream.java(Compiled Code))
	at
java.io.BufferedOutputStream.write(BufferedOutputStream.java(Compiled Code))
	at
java.io.BufferedOutputStream.write(BufferedOutputStream.java(Compiled Code))
	at
org.postgresql.core.QueryExecutor.sendQuery(QueryExecutor.java(Compiled
Code))
	at
org.postgresql.core.QueryExecutor.sendQuery(QueryExecutor.java(Compiled
Code))
	at
org.postgresql.core.QueryExecutor.execute(QueryExecutor.java(Compiled Code))
	at
org.postgresql.jdbc1.AbstractJdbc1Statement.execute(AbstractJdbc1Statement.j
ava(Compiled Code))
	at
org.postgresql.jdbc1.AbstractJdbc1Statement.execute(AbstractJdbc1Statement.j
ava(Compiled Code))
	at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.j
ava(Compiled Code))
	at
org.postgresql.jdbc1.AbstractJdbc1Statement.executeUpdate(AbstractJdbc1State
ment.java(Compiled Code))
	at
org.postgresql.jdbc1.AbstractJdbc1Statement.executeUpdate(AbstractJdbc1State
ment.java:183)
	at
org.xmlBlaster.util.queue.jdbc.JdbcManager.update(JdbcManager.java:673)
	at
org.xmlBlaster.util.queue.jdbc.JdbcManager.deleteEntries(JdbcManager.java:99
6)
	at
org.xmlBlaster.util.queue.jdbc.JdbcQueuePlugin.removeRandom(JdbcQueuePlugin.
java:567)
	at
org.xmlBlaster.util.queue.jdbc.JdbcQueuePlugin.removeRandom(JdbcQueuePlugin.
java:542)
	at
org.xmlBlaster.util.queue.jdbc.JdbcQueuePlugin.remove(JdbcQueuePlugin.java:1
000)
	at
org.xmlBlaster.engine.msgstore.cache.PersistenceCachePlugin.remove(Persisten
ceCachePlugin.java(Compiled Code))
	at
org.xmlBlaster.engine.RequestBroker.removePersistentTopicHandler(RequestBrok
er.java:1111)
	at
org.xmlBlaster.engine.TopicHandler.removeTopicPersistence(TopicHandler.java:
1265)
	at org.xmlBlaster.engine.TopicHandler.toDead(TopicHandler.java:1402)
	at
org.xmlBlaster.engine.TopicHandler.fireMessageEraseEvent(TopicHandler.java:1
558)
	at
org.xmlBlaster.engine.RequestBroker.erase(RequestBroker.java:1659)
	at
org.xmlBlaster.engine.RequestBroker.erase(RequestBroker.java:1602)
	at
org.xmlBlaster.engine.XmlBlasterImpl.erase(XmlBlasterImpl.java:258)
	at
org.xmlBlaster.protocol.xmlrpc.XmlBlasterImpl.erase(XmlBlasterImpl.java:208)
	at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:40)
	at java.lang.reflect.Method.invoke(Method.java:335)
	at org.apache.xmlrpc.Invoker.execute(Unknown Source)
	at org.apache.xmlrpc.XmlRpcServer$Worker.executeInternal(Unknown
Source)
	at org.apache.xmlrpc.XmlRpcServer$Worker.execute(Unknown Source)
	at org.apache.xmlrpc.WebServer$Connection.run(Unknown Source)
	at org.apache.xmlrpc.WebServer$Connection.run(Unknown Source)
	at org.apache.xmlrpc.WebServer$Runner.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:566)
End of Stack Trace
]

If this has been fixed in more recent versions, please let us know. We saw
the following and didn't know if it addressed it: "Bugfix of deadlock in
JDBC protocol driver which used the buggy org.jutils.time.Timeout. Ported
org.jutils.pool to org.xmlBlaster.util.pool. Reported by Sebastian Sturm"

Thanks,

Lance Thomas




--
Michele Laghi
mailto:laghi at swissinfo.org
tel. +46 8 7492952 / mob. +46 70 4103964
http://www.geocities.com/laghi2000
http://www.xmlBlaster.org