<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic SR locak on gdb is not releasing in SOE in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/sr-locak-on-gdb-is-not-releasing-in-soe/m-p/70120#M1875</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My problem is sr lock is not releasing on gdb , also please see that code can be improved?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Below is my code&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String exportGDB(String whereClause,IServerObjectHelper serverObjectHelper)&amp;nbsp; // returns the path of GDB&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String tempPath = System.getProperty("java.io.tmpdir");&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SOEHelper soeHelper = new SOEHelper();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String fileName = System.currentTimeMillis() + ".gdb";&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Create a FileGDB workspace factory&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IWorkspaceFactory workspaceFactory = new FileGDBWorkspaceFactory();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Create a new File geodatabase&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IWorkspaceName workspaceName = workspaceFactory.create(tempPath,fileName , null, 0);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IName wsName = (IName) workspaceName;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IWorkspace workspace = new IWorkspaceProxy(wsName.open());&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureWorkspace featureWorkspace = new IFeatureWorkspaceProxy(workspace);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMapLayerInfos layerInfos = soeHelper.getLayerInfo(serverObjectHelper);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IQueryFilter qf = new QueryFilter();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; qf.setWhereClause(whereClause);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureClass fc = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMapLayerInfo layerInfo = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureClass gdbFeatureClass = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeature newFeature = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeature feature = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureCursor&amp;nbsp; featureCursor = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i=0; i &amp;lt; layerInfos.getCount(); i++)&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; layerInfo = layerInfos.getElement(i);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fc = soeHelper.getFeatureClass(layerInfo.getID(), serverObjectHelper);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // IWorkspaceName fcwsName = (IWorkspaceName)fc.getFeatureDataset().getWorkspace();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureClassDescription fcDesc = new FeatureClassDescription();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IObjectClassDescription ocDesc = (IObjectClassDescription) fcDesc;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gdbFeatureClass = new FeatureClass(featureWorkspace.createFeatureClass(layerInfo.getName(), layerInfo.getFields(), &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ocDesc.getInstanceCLSID(), ocDesc.getClassExtensionCLSID(), esriFeatureType.esriFTSimple, "SHAPE", ""));&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // IFeatureClassName sourceFeatureClassName = new FeatureClassName();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // IFeatureDataConverter2 featureDataConverter = new FeatureDataConverter();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // IEnumInvalidObject enumInvalidObject = featureDataConverter.convertFeatureClass((IDatasetName)fcwsName, &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // qf, null,(IFeatureDatasetName)workspaceName, sourceFeatureClassName, &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // soeHelper.getGeomRef(fc), &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // layerInfo.getFields(), "", 1000, 0);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // // Check for errors.&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // IInvalidObjectInfo invalidObjectInfo = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // enumInvalidObject.reset();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // while ((invalidObjectInfo = enumInvalidObject.next()) != null){&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // // Handle the errors in a way appropriate to the application.&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // System.out.println("Errors occurred for the following feature: " +&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // invalidObjectInfo.getInvalidObjectID());&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // }&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureCursor = fc.search(qf, true);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; feature =&amp;nbsp; featureCursor.nextFeature();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(feature != null)&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; newFeature = gdbFeatureClass.createFeature();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int j = 0; j &amp;lt; featureCursor.getFields().getFieldCount(); j++) &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(featureCursor.getFields().getField(j).getType() ==&amp;nbsp; esriFieldType.esriFieldTypeOID)&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { // skip &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; newFeature.setValue(newFeature.getFields().findField(featureCursor.getFields().getField(j).getName()), feature.getValue(j));&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; newFeature.store();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; feature =&amp;nbsp; featureCursor.nextFeature();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cleaner.release(newFeature);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cleaner.release(gdbFeatureClass);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cleaner.release(featureCursor);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Cleaner.releaseAllInCurrentThread();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Cleaner.release(gdbFeatureClass);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Cleaner.release(featureCursor);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; soeHelper.releaseSilently(workspaceName);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; soeHelper.releaseSilently(wsName);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; soeHelper.releaseSilently(layerInfos);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cleaner.release(featureWorkspace);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cleaner.release(workspace);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cleaner.release(workspaceFactory);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; qf = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; workspace = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureWorkspace = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; workspaceFactory = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fc = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; layerInfo = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gdbFeatureClass = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; newFeature = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; feature = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureCursor = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return fileName;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 10 Nov 2015 04:04:44 GMT</pubDate>
    <dc:creator>HaiderAli</dc:creator>
    <dc:date>2015-11-10T04:04:44Z</dc:date>
    <item>
      <title>SR locak on gdb is not releasing in SOE</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/sr-locak-on-gdb-is-not-releasing-in-soe/m-p/70120#M1875</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My problem is sr lock is not releasing on gdb , also please see that code can be improved?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Below is my code&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String exportGDB(String whereClause,IServerObjectHelper serverObjectHelper)&amp;nbsp; // returns the path of GDB&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String tempPath = System.getProperty("java.io.tmpdir");&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SOEHelper soeHelper = new SOEHelper();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String fileName = System.currentTimeMillis() + ".gdb";&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Create a FileGDB workspace factory&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IWorkspaceFactory workspaceFactory = new FileGDBWorkspaceFactory();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Create a new File geodatabase&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IWorkspaceName workspaceName = workspaceFactory.create(tempPath,fileName , null, 0);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IName wsName = (IName) workspaceName;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IWorkspace workspace = new IWorkspaceProxy(wsName.open());&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureWorkspace featureWorkspace = new IFeatureWorkspaceProxy(workspace);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMapLayerInfos layerInfos = soeHelper.getLayerInfo(serverObjectHelper);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IQueryFilter qf = new QueryFilter();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; qf.setWhereClause(whereClause);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureClass fc = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMapLayerInfo layerInfo = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureClass gdbFeatureClass = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeature newFeature = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeature feature = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureCursor&amp;nbsp; featureCursor = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i=0; i &amp;lt; layerInfos.getCount(); i++)&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; layerInfo = layerInfos.getElement(i);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fc = soeHelper.getFeatureClass(layerInfo.getID(), serverObjectHelper);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // IWorkspaceName fcwsName = (IWorkspaceName)fc.getFeatureDataset().getWorkspace();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureClassDescription fcDesc = new FeatureClassDescription();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IObjectClassDescription ocDesc = (IObjectClassDescription) fcDesc;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gdbFeatureClass = new FeatureClass(featureWorkspace.createFeatureClass(layerInfo.getName(), layerInfo.getFields(), &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ocDesc.getInstanceCLSID(), ocDesc.getClassExtensionCLSID(), esriFeatureType.esriFTSimple, "SHAPE", ""));&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // IFeatureClassName sourceFeatureClassName = new FeatureClassName();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // IFeatureDataConverter2 featureDataConverter = new FeatureDataConverter();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // IEnumInvalidObject enumInvalidObject = featureDataConverter.convertFeatureClass((IDatasetName)fcwsName, &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // qf, null,(IFeatureDatasetName)workspaceName, sourceFeatureClassName, &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // soeHelper.getGeomRef(fc), &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // layerInfo.getFields(), "", 1000, 0);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // // Check for errors.&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // IInvalidObjectInfo invalidObjectInfo = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // enumInvalidObject.reset();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // while ((invalidObjectInfo = enumInvalidObject.next()) != null){&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // // Handle the errors in a way appropriate to the application.&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // System.out.println("Errors occurred for the following feature: " +&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // invalidObjectInfo.getInvalidObjectID());&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // }&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureCursor = fc.search(qf, true);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; feature =&amp;nbsp; featureCursor.nextFeature();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(feature != null)&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; newFeature = gdbFeatureClass.createFeature();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int j = 0; j &amp;lt; featureCursor.getFields().getFieldCount(); j++) &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(featureCursor.getFields().getField(j).getType() ==&amp;nbsp; esriFieldType.esriFieldTypeOID)&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { // skip &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; newFeature.setValue(newFeature.getFields().findField(featureCursor.getFields().getField(j).getName()), feature.getValue(j));&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; newFeature.store();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; feature =&amp;nbsp; featureCursor.nextFeature();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cleaner.release(newFeature);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cleaner.release(gdbFeatureClass);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cleaner.release(featureCursor);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Cleaner.releaseAllInCurrentThread();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Cleaner.release(gdbFeatureClass);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Cleaner.release(featureCursor);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; soeHelper.releaseSilently(workspaceName);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; soeHelper.releaseSilently(wsName);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; soeHelper.releaseSilently(layerInfos);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cleaner.release(featureWorkspace);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cleaner.release(workspace);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cleaner.release(workspaceFactory);&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; qf = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; workspace = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureWorkspace = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; workspaceFactory = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fc = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; layerInfo = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gdbFeatureClass = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; newFeature = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; feature = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureCursor = null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return fileName;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Nov 2015 04:04:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/sr-locak-on-gdb-is-not-releasing-in-soe/m-p/70120#M1875</guid>
      <dc:creator>HaiderAli</dc:creator>
      <dc:date>2015-11-10T04:04:44Z</dc:date>
    </item>
  </channel>
</rss>

