Regarding Mercy Drag problem in PostgreSQL

Hi,



I am trying with DHTMLX Tree control, I am using PostgreSQL as backend database, I am using mercy drag method for moving the nodes. When I move the single node means its working perfectly, when I try to move multiple nodes at a time means I am getting error



org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.



For this I tried to catch the exception, and reopen the database connection, and tried the operation… Still I am unable to solve this problem.



Or else is there any way get the update status from the dataprocessor.js I think through that method also we can solve this problem.



Looking forward for your reply.



With Regards,

R. Subramanian





org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.

    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:201)

    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:392)

    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:330)

    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:240)

    at update.DataBase.Pastegroups(DataBase.java:199)

    at update.DataBase.Pastegroups(DataBase.java:224)

    at update.DataBase.copyPastegroups(DataBase.java:261)

    at update.DataBase.insertNode(DataBase.java:439)

    at update.XmlGenerator.createUpdateXML(XmlGenerator.java:88)

    at org.apache.jsp.pages.update_jsp._jspService(update_jsp.java:58)

    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)

    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)

    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)

    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)

    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)

    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)

    at java.lang.Thread.run(Thread.java:595)

Caused by: java.io.IOException: Stream closed

    at sun.nio.cs.StreamEncoder.ensureOpen(StreamEncoder.java:38)

    at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:151)

    at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213)

    at org.postgresql.core.PGStream.flush(PGStream.java:493)

    at org.postgresql.core.v3.QueryExecutorImpl.sendSync(QueryExecutorImpl.java:631)

    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:174)

    … 32 more

org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.

    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:201)

    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:392)

    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:330)

    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:240)

    at update.DataBase.Pastegroups(DataBase.java:199)

    at update.DataBase.copyPastegroups(DataBase.java:261)

    at update.DataBase.insertNode(DataBase.java:439)

    at update.XmlGenerator.createUpdateXML(XmlGenerator.java:88)

    at org.apache.jsp.pages.update_jsp._jspService(update_jsp.java:58)

    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)

    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)

    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)

    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)

    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)

    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)

    at java.lang.Thread.run(Thread.java:595)

Caused by: java.io.IOException: Stream closed

    at sun.nio.cs.StreamEncoder.ensureOpen(StreamEncoder.java:38)

    at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:151)

    at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213)

    at org.postgresql.core.PGStream.flush(PGStream.java:493)

    at org.postgresql.core.v3.QueryExecutorImpl.sendSync(QueryExecutorImpl.java:631)

    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:174)

    … 31 more

Or else is there any way get the update status from the dataprocessor.js
You can try to enable debug mode of dataprocessor, in such case you will see each command send to server, and each response from it.

    dataprocessor.enableDebug(true);

The current state of dataprocessor can be checked by
   
    dataprocessor.getSyncState();


Hi,



Thanks for your reply, I will try this method now.



Regards,



R. Subramanian