西班牙
斯潘4
嗨,我们现在遇到了一个问题,这个问题现在已经成为我们工作流程的真正障碍。亚搏在线我们正在运行一个附加在fme云上的工作台,它在postgis中获取内容并写入fgdb。问题是随机的(老实说)它会失败,并出现错误:
地理数据库错误(-2147220987):用户没有执行操作的权限。
如果您再次运行任务,特别是在它失败的功能上运行,它将不会运行任何问题。
我知道还有其他的报道,但当我们运行本地没有问题。
@brianat亚搏在线safe@david_r@mark2atsafe之前都对这个错误发表过评论,通读我看不出任何相关的问题,因为我们是超级用户,并且在本地进行了测试。
附加的两个日志概述了错误,较大的日志用于运行一个非常大的任务,导出数千个表/功能类,另一个日志仅用于它(偶然)失败的任务,该任务成功运行。
从更大的日志中,错误报告在这里,无法导出特征-gde_k_150l_地球化学
'2019-05-31 10:52:16| 332.0| 0.1|通知|FileGDB写入器:创建表'GDE_K_170L_GEOCHRON'
通知|FileGDB写入器:创建表'GDE_K_160M_GEOCHRON'
通知|FileGDB写入器:创建表'GDE_K_160L_GEOCHRON'
通知|FileGDB写入器:创建表'GDE_K_150M_GEOCHRON'
通知|FileGDB写入器:创建表'GDE_K_150L_GEOCHRON'
| 0.0|错误|地理数据库错误(-2147220987):用户没有权限执行操作。
| 0.0|错误|FileGDB写入器:无法写入特性
|状态|存储功能到FME功能存储文件' /data/fmeserver/resources/logs/engine/current/jobs/142000/job_142382_log.ffs'
错误2019-05-31 10:52:17 | 332.3 | 0.0 | | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| 0.0|错误|功能类型:' GDE_K_150L_GEOCHRON'
| 0.0|错误|属性(编码:UTF-8): ' age'值为' 93.60000000'
|属性(字符串):' attribute_0_fme_data_type '有值' fme_int32'
| 0.0|错误|属性(字符串):' attribute_0name '有值' objectid'
| 0.0|错误|属性(字符串):' attribute_0native_data_type '有值' int4'
|属性(字符串):' attribute_10_fme_data_type '有值' fme_datetime "
然而,我运行gde_u k_u150l_u地球化学的第二个日志成功地工作了。此处为完整日志:
API_Self_Service_Postgis2fgdb_Oliver_2.fmw
最初我们按顺序运行这个任务-在一个单独的工作区中写入到fgdb,每个传递的特性都有一个运行器,没有我们试图在一个工作区中完成它。两种方法都有相同的问题。
同样的工作流对sh亚搏在线apefile、sqlite等也很好,有人能告诉我们哪里出错了吗?
谢谢你
奥利弗
@dellerbeck感谢您的回复并花时间查看工作台。我认为您绝对正确,在某一点上,当创建feature类时会创建一个锁文件,然后由于某种原因,当fme试图向它写入时,它不会被释放。
对于正在执行删除的第二个writer,错误/失败发生在fme到达这一点之前,并且随着这个从工作台上完全删除,它仍然会出错。
作为一个不那么好的想法,我们已经在桌面上创建了一个空文件地理数据库,其中包含所有可能的功能类,然后正在测试fme cloud如何对此进行写入和插入数据,而不必创建和插入。
早期迹象表明这是有希望的,但这不是一个长期的解决方案,因为我们最终会为客户提供成千上万的特性类,而不管他们实际上要求了多少。还有一个问题是,这消除了使用动态模式进行动态工作的想法。对模式的任何更改都意味着需要重新生成文件geodatabase。
再次感谢你的帮助。
在使用Goedatabsae开放API文件和对相同的文件地理数据库进行读/写之前,我曾遇到过类似的问题,特别是在尝试删除正在写入的表时。它似乎是在.gdb目录中创建的.lock文件,当试图删除锁文件或在.lock文件存在时试图删除表时,会发生权限错误。
由于你得到的错误与2个工作空间的顺序运行,我假设FME不释放连接之间的功能作家。
我注意到的一件事是,您正在编写所有的功能,然后运行一个删除,其中changedetect_uuid = '-9999',是否有一种方法,可以在编写之前过滤这个值,从而消除第二次写入的需要,或者这个值是在FGDB中编写的?
?2019安全亚搏在线软件公司|法律