<?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 Re: Crash when creating geodatabase after closing deleting a geodatabase in File Geodatabase API Questions</title>
    <link>https://community.esri.com/t5/file-geodatabase-api-questions/crash-when-creating-geodatabase-after-closing/m-p/722298#M1138</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I think this is related to the following issue which talks about thread safety.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://forums.arcgis.com/threads/76527-CloseDatabase-hanging-on-64-bit-Linux-when-same-File-Geodatabase-opened-twice?highlight=thread"&gt;http://forums.arcgis.com/threads/76527-CloseDatabase-hanging-on-64-bit-Linux-when-same-File-Geodatabase-opened-twice?highlight=thread&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In my application which is written in Java with a Swig binding to the API I use threads extensively.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I had synchronized access to the geodatabase objects so that only one thread could concurrently be accessing that geodatabase and any tables, rows etc created from it. Then I had a separate synchronization on the access to the API to create/open/delete geodatabases. I hadn't thought that once I had a geodatabase open that I'd have to synchronize everything to create/modify tables or anything else hidden in the API that used XML. I'm sure now this is the cause of the problem.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[RANT]I find it kind of crazy that an XML library forces everything to be single thread. Is there not a way to create a new instance of the XML parser per thread to avoid this.[/RANT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I can understand that for a given table or for management of the database that synchronization is a good idea. However the fact that there is no option for concurrency across any open geodatabases in the same application makes the performance of an application suck. For example I have code where I want to read data from 30 tables and insert them into an Oracle database. In theory I should be able to run that all in parallel, even on a 4 core machine you'd get a lot of concurrency while some threads are blocked for database IO. But when using non-threaded libraries that have every call synchronized that puts a throttle on concurrency as threads will be waiting on monitors most of the time.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 06 Jan 2014 13:21:14 GMT</pubDate>
    <dc:creator>PaulAustin</dc:creator>
    <dc:date>2014-01-06T13:21:14Z</dc:date>
    <item>
      <title>Crash when creating geodatabase after closing deleting a geodatabase</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/crash-when-creating-geodatabase-after-closing/m-p/722296#M1136</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;In my App (Java with swig bindings to the API) I create 3 geodatabases. Make some changes to them. Commit those changes to a real database. Then I close the geodatabases and create a new one. I get the following exception running on Windows Server 2008 64 bit running a 32bit app compiled using Visual Studio 2008. I don't get the error on Windows 8 or Mac OS X Lion.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;C&amp;nbsp; [ntdll.dll+0x38e19]&amp;nbsp; RtlIntegerToUnicodeString+0x2fc&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;C&amp;nbsp; [ntdll.dll+0x38d28]&amp;nbsp; RtlIntegerToUnicodeString+0x20b&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;C&amp;nbsp; [FileGDBAPI.dll+0xe7aff]&amp;nbsp; FileGDBAPI::Envelope::~Envelope+0x687df&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;C&amp;nbsp; [FileGDBAPI.dll+0x372a1]&amp;nbsp; FileGDBAPI::SpatialReferences::FindSpatialReferenceByName+0x21071&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;C&amp;nbsp; [FileGDBAPI.dll+0x2271]&amp;nbsp; FileGDBAPI::FieldInfo::FieldInfo+0x861&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;C&amp;nbsp; [FileGDBAPI.dll+0x5d1e]&amp;nbsp; FileGDBAPI::Geodatabase::CreateGeodatabase+0xce&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;C&amp;nbsp; [FileGDBAPI.dll+0x8f1f]&amp;nbsp; FileGDBAPI::CreateGeodatabase+0xf&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Sep 2013 21:40:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/crash-when-creating-geodatabase-after-closing/m-p/722296#M1136</guid>
      <dc:creator>PaulAustin</dc:creator>
      <dc:date>2013-09-25T21:40:51Z</dc:date>
    </item>
    <item>
      <title>Re: Crash when creating geodatabase after closing deleting a geodatabase</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/crash-when-creating-geodatabase-after-closing/m-p/722297#M1137</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Further to this it is now occurring on all platforms.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It looks like if I call DeleteGeodatabase then it will crash when I try and create a new one. The geodatabase was closed when calling delete.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 05 Jan 2014 17:00:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/crash-when-creating-geodatabase-after-closing/m-p/722297#M1137</guid>
      <dc:creator>PaulAustin</dc:creator>
      <dc:date>2014-01-05T17:00:04Z</dc:date>
    </item>
    <item>
      <title>Re: Crash when creating geodatabase after closing deleting a geodatabase</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/crash-when-creating-geodatabase-after-closing/m-p/722298#M1138</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I think this is related to the following issue which talks about thread safety.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://forums.arcgis.com/threads/76527-CloseDatabase-hanging-on-64-bit-Linux-when-same-File-Geodatabase-opened-twice?highlight=thread"&gt;http://forums.arcgis.com/threads/76527-CloseDatabase-hanging-on-64-bit-Linux-when-same-File-Geodatabase-opened-twice?highlight=thread&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In my application which is written in Java with a Swig binding to the API I use threads extensively.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I had synchronized access to the geodatabase objects so that only one thread could concurrently be accessing that geodatabase and any tables, rows etc created from it. Then I had a separate synchronization on the access to the API to create/open/delete geodatabases. I hadn't thought that once I had a geodatabase open that I'd have to synchronize everything to create/modify tables or anything else hidden in the API that used XML. I'm sure now this is the cause of the problem.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[RANT]I find it kind of crazy that an XML library forces everything to be single thread. Is there not a way to create a new instance of the XML parser per thread to avoid this.[/RANT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I can understand that for a given table or for management of the database that synchronization is a good idea. However the fact that there is no option for concurrency across any open geodatabases in the same application makes the performance of an application suck. For example I have code where I want to read data from 30 tables and insert them into an Oracle database. In theory I should be able to run that all in parallel, even on a 4 core machine you'd get a lot of concurrency while some threads are blocked for database IO. But when using non-threaded libraries that have every call synchronized that puts a throttle on concurrency as threads will be waiting on monitors most of the time.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 06 Jan 2014 13:21:14 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/crash-when-creating-geodatabase-after-closing/m-p/722298#M1138</guid>
      <dc:creator>PaulAustin</dc:creator>
      <dc:date>2014-01-06T13:21:14Z</dc:date>
    </item>
  </channel>
</rss>

