长安链JAVA SDK避坑总结

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

猜你喜欢

转载自blog.csdn.net/h363659487/article/details/130809163