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:[EMAIL PROTECTED] tel. +46 8 7492952 / mob. +46 70 4103964 http://www.geocities.com/laghi2000 http://www.xmlBlaster.org
