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