<div>Thank u veymuch for your useful help.</div>
<div>It did work well now.Thank u again.: )</div>
<div>&nbsp;</div>
<div>I rechecked my codes to see whether i have other mistakes.</div>
<div>I find that featureReader.close() is used for the close of select operation.</div>
<div>For featService.UpdateFeatures operation,we should set the 3rd parameter to false like this:</div>
<div>featService.UpdateFeatures(resId, commands, false);</div>
<div>so the connections&nbsp;created by&nbsp;Update operation&nbsp;can be released.</div>
<div>&nbsp;<br>Jacky.<br><br>&nbsp;</div>
<div><span class="gmail_quote">2008/8/6, Zac Spitzer &lt;<a href="mailto:zac.spitzer@gmail.com">zac.spitzer@gmail.com</a>&gt;:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">try using featureReader close()<br><br>z<br><br>On Wed, Aug 6, 2008 at 7:30 PM, ÐìÕð &lt;<a href="mailto:xuzhengeology@gmail.com">xuzhengeology@gmail.com</a>&gt; wrote:<br>
&gt; Hi,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; I use JSP and MySQL to develop .FDO connects these two parts together.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; In the software,i use resource service and feature service to search<br>&gt; data stored in the MySQL database.Once i run the page for searching.<br>
&gt; I will got two sleep process in MySQL.I guess the reason is i forgot to<br>&gt; close connections.So i go back to the code to close connections and<br>&gt; services.No use.<br>&gt;<br>&gt; Codes here:<br>&gt;<br>&gt; public Vector select(String mapName,String layerName,String<br>
&gt; layerClassName,String filterString)&nbsp;&nbsp;throws MgException<br>&gt; {<br>&gt;&nbsp;&nbsp; MgResourceService resService =<br>&gt; (MgResourceService)siteConnection.CreateService(MgServiceType.ResourceService);<br>&gt;&nbsp;&nbsp; MgFeatureService featService =<br>
&gt; (MgFeatureService)siteConnection.CreateService(MgServiceType.FeatureService);<br>&gt;<br>&gt;&nbsp;&nbsp; MgMap map = new MgMap();<br>&gt;&nbsp;&nbsp; map.Open(resService, mapName);<br>&gt;<br>&gt;&nbsp;&nbsp; MgLayer layer = getLayerByName(map, layerName);<br>
&gt;<br>&gt;&nbsp;&nbsp; MgFeatureQueryOptions query = new MgFeatureQueryOptions();<br>&gt;<br>&gt;&nbsp;&nbsp; query.SetFilter(filterString);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;MgResourceIdentifier resId = new<br>&gt; MgResourceIdentifier(layer.GetFeatureSourceId());<br>
&gt;&nbsp;&nbsp; MgFeatureReader featureReader =featService.SelectFeatures(resId,<br>&gt; layerClassName, query);<br>&gt;&nbsp;&nbsp; Vector vec=new Vector();<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;while (featureReader.ReadNext())<br>&gt;&nbsp;&nbsp; {<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;MgAgfReaderWriter geometryReaderWriter = new MgAgfReaderWriter();<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;String mc = featureReader.GetString(&quot;MC&quot;);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;long id=featureReader.GetInt64(&quot;FeatId&quot;);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;long id1=featureReader.GetInt64(&quot;id&quot;);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;MgByteReader byteReader = featureReader.GetGeometry(&quot;GEOMETRY&quot;);<br>
&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;MgGeometry geometry = geometryReaderWriter.Read(byteReader);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;MgPoint point = geometry.GetCentroid();<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;double x = point.GetCoordinate().GetX();<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;double y = point.GetCoordinate().GetY();<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;xy n=new&nbsp;&nbsp;xy(x,y,id,id1,mc);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;vec.add(n);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;geometryReaderWriter.delete();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//close<br>&gt;&nbsp;&nbsp; }<br>&gt;<br>&gt;&nbsp;&nbsp; resService.delete();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//close<br>&gt;&nbsp;&nbsp; featService.delete();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //close<br>
&gt;&nbsp;&nbsp; map.delete();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//close<br>&gt;&nbsp;&nbsp; return vec;<br>&gt;<br>&gt; }<br>&gt;<br>&gt; out of this function,i closed the connection to the site with<br>&gt; &quot;siteConnection.delete();&quot;<br>
&gt;<br>&gt; Once i run this function ,checking the process of MySQL with &quot;show<br>&gt; processlist&quot; in MySQL command shell,i will got two more sleep process,which<br>&gt; can not be closed.<br>&gt;<br>&gt; original:<br>
&gt;<br>&gt; mysql&gt; show processlist;<br>&gt;<br>&gt; | Id&nbsp;&nbsp;&nbsp;&nbsp;| User | Host&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| db&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| Command | Time | State<br>&gt; | Info<br>&gt; |&nbsp;&nbsp; 1&nbsp;&nbsp; | root&nbsp;&nbsp;| localhost:4955&nbsp;&nbsp;| psd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| Sleep&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;2<br>
&gt;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | NULL<br>&gt; | 193 | root&nbsp;&nbsp; | localhost:3941 | NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| Query&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp; | NULL&nbsp;&nbsp;|<br>&gt; show processlist |<br>&gt; | 194 | root&nbsp;&nbsp; | localhost:3963 | jsof_data | Sleep&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>&gt; 4&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | NULL<br>
&gt; | 195 | root&nbsp;&nbsp; | localhost:3964 | jsof_data | Sleep&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;8<br>&gt; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| NULL<br>&gt;<br>&gt; 2 rows in set (0.00 sec)<br>&gt;<br>&gt; ofter used the function:<br>&gt;<br>&gt; mysql&gt; show processlist;<br>
&gt;<br>&gt; | Id&nbsp;&nbsp;&nbsp;&nbsp;| User | Host&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| db&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| Command | Time | State<br>&gt; | Info<br>&gt; |&nbsp;&nbsp; 1&nbsp;&nbsp; | root&nbsp;&nbsp;| localhost:4955&nbsp;&nbsp;| psd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| Sleep&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;2<br>&gt;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | NULL<br>&gt; | 193 | root&nbsp;&nbsp; | localhost:3941 | NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| Query&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp; | NULL&nbsp;&nbsp;|<br>
&gt; show processlist |<br>&gt; | 194 | root&nbsp;&nbsp; | localhost:3963 | jsof_data | Sleep&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>&gt; 4&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | NULL<br>&gt; | 195 | root&nbsp;&nbsp; | localhost:3964 | jsof_data | Sleep&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;8<br>&gt; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| NULL<br>
&gt; | 196 | root&nbsp;&nbsp; | localhost:3965 | jsof_data | Sleep<br>&gt;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | NULL<br>&gt; | 197 | root&nbsp;&nbsp; | localhost:3966 | jsof_data | Sleep&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;3<br>&gt; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| NULL<br>&gt;<br>&gt;<br>&gt;<br>
&gt; 6 rows in set (0.00 sec)<br>&gt;<br>&gt; i tried to kill the sleep process with the ways as follow:<br>&gt;<br>&gt; &lt;%@ page language=&quot;java&quot; import=&quot;java.util.*&quot; pageEncoding=&quot;gb2312&quot;%&gt;<br>
&gt; &lt;%@ page import=&quot;java.sql.*&quot;%&gt;<br>&gt; &lt;%@ page import=&quot;java.util.*&quot;%&gt;<br>&gt; &lt;%@ page import=&quot;java.io.*&quot;%&gt;<br>&gt;<br>&gt; &lt;%<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String path = request.getContextPath();<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String basePath = request.getScheme() + &quot;://&quot;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + request.getServerName() + &quot;:&quot; +<br>&gt; request.getServerPort()<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + path + &quot;/&quot;;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(&quot;com.mysql.jdbc.Driver&quot;);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String url =<br>&gt; &quot;jdbc:mysql://localhost/psd?characterEncoding=utf8&amp;user=root&amp;password=root&quot;;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection conn = DriverManager.getConnection(url);<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Statement stmt = conn.createStatement();<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Statement stmt2 = conn.createStatement();<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet rs = stmt.executeQuery(&quot;show processlist&quot;);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (rs.next()) {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String Id = rs.getString(&quot;Id&quot;);<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String cmd = rs.getString(&quot;Command&quot;);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String Time = rs.getString(&quot;Time&quot;);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i = Integer.parseInt(Time);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(i&gt;10&amp;&amp;cmd.equals(&quot;Sleep&quot;))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Kill the<br>
&gt; process which has been slept for more than 10 seconds<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt2.executeQuery(&quot;kill &quot;+Id);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs.close();<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt.close();<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt2.close();<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.close();<br>&gt; %&gt;<br>&gt;<br>&gt; But i will get &quot;The MySQL has gone away&quot;error message.I have to restart<br>&gt; MapGuideServer service to fix this problem.<br>&gt;<br>
&gt; Can anyhelp me on this problem?<br>&gt;<br>&gt; Thanks for your attention:)<br>&gt;<br>&gt; Jacky.<br>&gt;<br>&gt; _______________________________________________<br>&gt; mapguide-users mailing list<br>&gt; <a href="mailto:mapguide-users@lists.osgeo.org">mapguide-users@lists.osgeo.org</a><br>
&gt; <a href="http://lists.osgeo.org/mailman/listinfo/mapguide-users">http://lists.osgeo.org/mailman/listinfo/mapguide-users</a><br>&gt;<br>&gt;<br><br><br><br>--<br>Zac Spitzer -<br><a href="http://zacster.blogspot.com">http://zacster.blogspot.com</a> (My Blog)<br>
+61 405 847 168<br>_______________________________________________<br>mapguide-users mailing list<br><a href="mailto:mapguide-users@lists.osgeo.org">mapguide-users@lists.osgeo.org</a><br><a href="http://lists.osgeo.org/mailman/listinfo/mapguide-users">http://lists.osgeo.org/mailman/listinfo/mapguide-users</a><br>
</blockquote></div><br>