dhmlxConnector accumlating open DB cursors

Hi. Nice to meet you. I’m a user that is using the tree as dhtmlx.

(I can not speak English.
So I’m writing through the Google translator.
So I could be wrong grammar)

ex)

c.render_sql("SELECT * FROM TREE","KEY","NAME","","UP_CD");

com.dhtmlx.connector.ConnectorOperationException: Invalid SQL: SELECT  * FROM V_MDS_TREE WHERE  TOP_ID IN ('502892350') AND UP_CD='S1061'
ORA-01000: maximum open cursors exceeded

	at com.dhtmlx.connector.DBDataWrapper.query(DBDataWrapper.java:372)
	at com.dhtmlx.connector.DBDataWrapper.select(DBDataWrapper.java:216)
	at com.dhtmlx.connector.TreeConnector.render_set(TreeConnector.java:87)
	at com.dhtmlx.connector.TreeConnector.render_set(TreeConnector.java:87)
	at com.dhtmlx.connector.TreeConnector.render_set(TreeConnector.java:87)
	at com.dhtmlx.connector.TreeConnector.render_set(TreeConnector.java:87)
	at com.dhtmlx.connector.TreeConnector.render_set(TreeConnector.java:87)
	at com.dhtmlx.connector.TreeConnector.render_set(TreeConnector.java:87)
	at com.dhtmlx.connector.TreeConnector.render_set(TreeConnector.java:87)
	at com.dhtmlx.connector.TreeConnector.render_set(TreeConnector.java:87)
	at com.dhtmlx.connector.TreeConnector.render_set(TreeConnector.java:87)
	at com.dhtmlx.connector.TreeConnector.render_set(TreeConnector.java:87)
	at com.dhtmlx.connector.BaseConnector.output_as_xml(BaseConnector.java:467)
	at com.dhtmlx.connector.BaseConnector.render(BaseConnector.java:329)
	at com.dhtmlx.connector.BaseConnector.render_sql(BaseConnector.java:282)
	at control.TreeController.configure(TreeController.java:51)
	at com.dhtmlx.connector.ConnectorServlet.doGet(ConnectorServlet.java:28)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:619)

Tree data is much ora-01000 error emerges.

I had to search for ora 01000 in the forum.
So I found the following article.
[url]dhmlxConnector accumlating open DB cursors - Connector, DataProcessor - DHTMLX

HashMap<String,String> switching to ArrayList <HashMap<String,String>>
I will change like that, I do not know how to change where.

I hope that I inform you modify any file.
Thanks for reading text difficult to read. I need an answer.

I see the problem, but unfortunately there is no easy way to fix it.

When working with Tree data connector need to make new request while old one is not closed yet, which requires a lot of open cursors. It seems it exceed the maximum allowed limit in case of your app.

‘there is no easy way to fix it’, do not tell
Is there any other way?

Others are fixed by the above method (ArrayList <HashMap <String, String >>).
You also please change like that .

This change solves problem for Oracle but requires additional CPU and memory resources for other DB types.

We will investigate how it can be fixed in more convenient way.