2.3.0-~2.3.1避坑点
1、当同步等待调用合约结果时,会有内存溢出风险。
避坑方法:不要使用同步等待结果。
syncResultTimeout设置为0
2、 连接池设置不当,会出现Pool exhausted异常,详见:
java.lang.RuntimeException: java.util.NoSuchElementException: Pool exhausted
at org.chainmaker.sdk.ChainClient.sendTxRequest(ChainClient.java:2419) ~[chainmaker-sdk-java-2.3.1.jar!/:?]
at org.chainmaker.sdk.ChainClient.sendRequest(ChainClient.java:2619) ~[chainmaker-sdk-java-2.3.1.jar!/:?]
at org.chainmaker.sdk.ChainClient.sendContractRequest(ChainClient.java:2564) ~[chainmaker-sdk-java-2.3.1.jar!/:?]
at org.chainmaker.sdk.ChainClient.queryContract(ChainClient.java:461) ~[chainmaker-sdk-java-2.3.1.jar!/:?]
避坑方法:临时方法就是根据并发量,调大maxTotal和maxIdle。
经测试,调大后压测时又可能会出现其他异常。
3、连接池连接未关闭异常。如下:
[[] 2023-05-19 18:15:50,721][commons-pool-evictor][ERROR] ManagedChannelOrphanWrapper$Manage