常见问题
部署iDME时,MongoDB连接失败怎么办?
由于CloudPond没有下沉MongoDB服务,因此MongoDB采用自建集群方式。当前支持4.x版本MongoDB,并生成类似于“mongodb://192.168.50.19:27017,192.168.50.20:27017,192.168.50.21:27017”格式的URL。若选择5.x版本,则会提示如下报错。
[cluster-ClusterId{value='6380a0889bcb6f2d7d2ba480',description='null'}-192.168.50.19: 27017] INFO [org.mongodb.driver.cluster: info] [76] - Exception in monitor thread while connecting to server 192.168.50.19:27017com.mongodb.MongoSocketOpenException: Exception opening socket ERROR [o.s.boot.SpringApplication: reportFailure] [830] - Application run failed com.mongodb.MongoSocketReadException: Prematurely reached end of stream
部署iDME时,提示启动时间过长怎么办?
在启动Linux服务器时,由于安全随机数导致的线程阻塞,会使得启动时间过长(半小时左右)。因此在CloudPond启动iDME时,需要将安全随机数生成函数由Windows下的“SecureRandom secureRandom = SecureRandom.getInstanceStrong();”调整为:“SecureRandom secureRandom = SecureRandom.getInstance("NativePRNGNonBlocking");”。
综合后可调整为:
SecureRandom secureRandom = null; if (isWindows()) { secureRandom = SecureRandom.getInstanceStrong(); } else if (isLinux()) { secureRandom = SecureRandom.getInstance("NativePRNGNonBlocking"); }
部署iDME后,其接口调用方式是什么?
前缀采用http://${iDME服务器IP地址}/rdm_应用ID_app/services,后缀再拼接需要调用的接口mapping地址。
例如调用获取所有非内部的数据实体模型的接口,采用前缀拼接上后缀“/rdm/basic/api/DataModelManagement/getAllDMEntity”,即调用:
“http://${iDME服务器IP地址}/rdm_应用ID_app/services/rdm/basic/api/DataModelManagement/getAllDMEntity”。