我目前正在研究一个由另一个承包商重写的遗留系统。 我们的任务是保持灯亮,直到重写完成。 所以我明白我列出的所有内容都非常古老和过时。
我们有一个直接连接到 10.1 SDE 的 Java 进程。 在Windows 2008服务器上,它工作正常,一切都很棒。 随着Windows 2008的生命周期即将结束,我们必须迁移到Windows 2012或2016。 我们为这两种环境设置了沙盒设置。 但是使用与Windows 2008服务器上完全相同的设置,我们得到一个非常普遍的错误
我们认为问题出在我们正在使用的 ArcSDE 10.2.2 库的连接二进制文件中。
我们正在使用的技术似乎封装了失败的过程: 甲骨文 12c, IBM Java 7, 地理工具 10.6 和 ArcSDE 10.2.2(加上一些ArcSDE 9.3 dll,这可能是关键,但我们不确定。 特别是sdejavautil.dll(
我们得到的错误是:
2019-12-11 22:56:31,454 ERROR [Thread-19] wfdss.framework.gis.geotools.ArcSDEFacade (ArcSDEFacade.java:165) - org.geotools.arcsde.ArcSdeException: Can't create connection to 10.1.10.92 for Session #1[SDE error -51 Unknown error][Error desc=DATABASE LEVEL ERROR OCCURRED.][Extended desc=Unknown error
]
at org.geotools.arcsde.session.Session$CreateSeConnectionCommand.execute(Session.java:621)
at org.geotools.arcsde.session.Session$CreateSeConnectionCommand.execute(Session.java:575)
at org.geotools.arcsde.session.Session.issue(Session.java:180)
at org.geotools.arcsde.session.Session.<init>(Session.java:166)
at org.geotools.arcsde.session.SessionPool$SeConnectionFactory.makeObject(SessionPool.java:384)
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1148)
at org.geotools.arcsde.session.SessionPool.<init>(SessionPool.java:155)
at org.geotools.arcsde.session.SessionPoolFactory.createPool(SessionPoolFactory.java:69)
at org.geotools.arcsde.ArcSDEDataStoreFactory.createDataStore(ArcSDEDataStoreFactory.java:268)
at org.geotools.arcsde.ArcSDEDataStoreFactory.createDataStore(ArcSDEDataStoreFactory.java:259)
at wfdss.framework.gis.geotools.ArcSDEFacade.getDataStore(ArcSDEFacade.java:176)
at wfdss.framework.gis.geotools.ArcSDEFacade.getFeatureSource(ArcSDEFacade.java:154)
at wfdss.framework.gis.geotools.ArcSDEFacade.getTransform(ArcSDEFacade.java:738)
at wfdss.framework.gis.geotools.ReferenceShape.getProjectedGeometryBasedOnReferencePoint(ReferenceShape.java:593)
at wfdss.framework.gis.geotools.CommonGeoOps.getDistanceInMilesBetweenPointAndPoly(CommonGeoOps.java:2819)
at wfdss.framework.database.assessment.IncidentShapeBizFacade.checkIfFirePerimeterExceedsMaxDistToPtOfOrigin(IncidentShapeBizFacade.java:96)
at wfdss.framework.gis.ShapeFileHandler.uploadShape(ShapeFileHandler.java:556)
at wfdss.framework.gis.ShapeFileHandler.processShapes(ShapeFileHandler.java:255)
at wfdss.framework.gis.ShapeFileHandler.processUpload(ShapeFileHandler.java:199)
at wfdss.framework.gis.service.ShapeService$ShapeThread.shapeUpload(ShapeService.java:824)
at wfdss.framework.gis.service.ShapeService$ShapeThread.run(ShapeService.java:462)
at java.lang.Thread.run(Thread.java:795)
Caused by: com.esri.sde.sdk.client.SeException: Unknown error
at com.esri.sde.sdk.client.SeConnection.x(Unknown Source)
at com.esri.sde.sdk.client.SeConnection.<init>(Unknown Source)
at org.geotools.arcsde.session.Session$CreateSeConnectionCommand.execute(Session.java:610)
... 21 more
失败的代码行如下所示。 同样,所有传入的参数都与 2008 年的工作相同。 创建数据存储方法中的某些内容失败。 只是寻找想法,如果有人有任何可以分享的,如果他们有类似的经历。
ArcSDEDataStoreFactory.createDataStore(dataStoreParams);
在这里没有看到太多的GIS问题,所以这就是我点击的原因。 过去的地理标志和地质学家在这里。
我做了一些研究并找到了这篇文章。 希望这是一个简单的解决方案,就像这个人一样。
http://www.forumtopics.com/busobj/viewtopic.php?p=1003011
如果没有,我认为更新方法正在使用的某些驱动程序可能会有所帮助。 我记得在某种连接时遇到了问题,我必须确保所有驱动程序都与我正在使用的驱动程序匹配。 还要检查以确保我使用的驱动程序是否正确。
抱歉,我没有确切的解决方案,但只是想提供帮助。
最终的答案是我们需要使用安装 exe 的"兼容性"设置来安装 SDE 和 JDK 二进制文件。
为此,您只需右键单击任何exe,转到属性,有一个"兼容性"选项卡。 然后只需选择要使ti兼容的Windows版本即可。