
# 常见问题
#### 部署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"。
