Skip to main content

Hi all,

I'm currently having some trouble updating a file geodatabase. I have a workspace that uses a regex to create individual feature classes in a file geodatabase. I have set the 'Feature Class or Table Name' in the writer to:

@ReplaceRegEx(@Value(Actual_URL),^.+/(.+?)\.zip$,\1)

 It works fine on the first run but when I try to run the workspace a second time with 'Overwrite Existing Geodatabase: Yes' it gives me the following error:

"Unable to connect to the File Geodatabase at 'C:\Test.gdb'. Make sure the correct filename was specified, and that the geodatabase wasn't saved with a newer version of ArcGIS than the one installed locally. The error number from ArcObjects is: '-2147024894'. The error message from ArcObjects is: {}A fatal error has occurred. Check the logfile above for details"

 From what I've read here it may be because the overwrite relies on the spatial indexing from the original file geodatabase. Perhaps there is a workaround where I can set the workspace to delete the existing featureclasses in the geodatabase before it runs? 

Thanks

Hi @dunuts

1. Do you have the option "drop and create" in your writer parameters?

2. Can you try with the Geodatabase API writer?

Cheers,

Lyes


Hi @dunuts

1. Do you have the option "drop and create" in your writer parameters?

2. Can you try with the Geodatabase API writer?

Cheers,

Lyes

Hi Lyes, (@gisinnovationsb),

 

I have already tried the geodatabase API writer with the same result.

 

In the writer itself I get the following options:

 

I also have 'Writer Mode' under 'Advanced parameters and that's currently set to 'INSERT', the options are: 'INSERT', 'UPDATE', 'DELETE'.

 

Thank you,

 

Dónal

 


Hi Lyes, (@gisinnovationsb),

 

I have already tried the geodatabase API writer with the same result.

 

In the writer itself I get the following options:

 

I also have 'Writer Mode' under 'Advanced parameters and that's currently set to 'INSERT', the options are: 'INSERT', 'UPDATE', 'DELETE'.

 

Thank you,

 

Dónal

 

Could you please try to set "Drop Table" to Yes instead of No?

 

 


If you hard-code the feature class/table name, does it work? Just trying
to narrow down whether that regex is the cause of the problem (unlikely
as it sounds).


I don't see it as being the spatial indexing, because you aren't updating the geodb. You're just completely overwriting it. So that shouldn't be related.

 

 


Hi Lyes, (@gisinnovationsb),

 

I have already tried the geodatabase API writer with the same result.

 

In the writer itself I get the following options:

 

I also have 'Writer Mode' under 'Advanced parameters and that's currently set to 'INSERT', the options are: 'INSERT', 'UPDATE', 'DELETE'.

 

Thank you,

 

Dónal

 

@gisinnovationsb

 

I have tried the geodatabase API writer again and it works if I use 'Drop and Create' in the table handling.

 

@Mark2AtSafe

 

I haven't tried hard-coding them Mark as a second go at the geodatabase API writer seems to have solved things.

 

 

Thanks for both your help.

 


@gisinnovationsb

 

I have tried the geodatabase API writer again and it works if I use 'Drop and Create' in the table handling.

 

@Mark2AtSafe

 

I haven't tried hard-coding them Mark as a second go at the geodatabase API writer seems to have solved things.

 

 

Thanks for both your help.

 

Perhaps this would sound weird, but can you please check on the compatibility FME - ArcGIS? Not sure if this makes sense though, can you please check into that direction? Which FME version and which ArcGIS version are you using?

 


I'm also having this problem with the same error message, running from FME Server - I can create the geodatabase just fine if it isn't already there, but not overwrite. Using ArcObjects and could try the API, but from responses above it looks like that could still be a problem. My feature class name is hardcoded.

My workaround for this is to use the following python startup script to delete the existing geodatabase before the translation - works on desktop but not yet tested with the server:

import os, shutil

gdb_path = (add your file path here) if os.path.exists(gdb_path):
shutil.rmtree(gdb_path)
print "Deleted the existing subcatchments geodatabase at " + gdb_path else:
print "Could not delete the existing subcatchments geodatabase at " + gdb_path

 


Reply