当我尝试执行外部进程时,我注意到我的Java程序存在句柄泄漏。下面提供了我的示例代码。你能指导我做错什么吗?
我正在Windows 10 OS上使用Open JDK 10运行此程序。有什么办法可以减少手柄?
2018-12-12 12:42:30,321 ERROR o.a.j.p.h.p.Proxy: [46349] ...
2018-12-12 12:42:30,321 ERROR o.a.j.p.h.p.Proxy: [46349] Problem with keystore
java.io.IOException: >> keytool error: java.lang.RuntimeException: java.io.IOException: DNSName components must begin with a letter <<
Command failed, code: 1
'keytool -genkeypair -alias 4o8rhl3t1a.execute-api.ap-southeast-1.amazonaws.com -dname "cn=4o8rhl3t1a.execute-api.ap-southeast-1.amazonaws.com, o=JMeter Proxy (TEMPORARY TRUST ONLY)" -keyalg RSA -keystore proxyserver.jks -storepass {redacted} -keypass {redacted} -validity 7 -ext san=dns:4o8rhl3t1a.execute-api.ap-southeast-1.amazonaws.com'
at org.apache.jorphan.exec.KeyToolUtils.genkeypair(KeyToolUtils.java:172) ~[jorphan.jar:5.0 r1840935]
at org.apache.jorphan.exec.KeyToolUtils.generateSignedCert(KeyToolUtils.java:286) ~[jorphan.jar:5.0 r1840935]
at org.apache.jorphan.exec.KeyToolUtils.generateHostCert(KeyToolUtils.java:277) ~[jorphan.jar:5.0 r1840935]
at org.apache.jmeter.protocol.http.proxy.ProxyControl.updateKeyStore(ProxyControl.java:1606) ~[ApacheJMeter_http.jar:5.0 r1840935]
at org.apache.jmeter.protocol.http.proxy.Proxy.getSSLSocketFactory(Proxy.java:326) [ApacheJMeter_http.jar:5.0 r1840935]
at org.apache.jmeter.protocol.http.proxy.Proxy.startSSL(Proxy.java:431) [ApacheJMeter_http.jar:5.0 r1840935]
at org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:194) [ApacheJMeter_http.jar:5.0 r1840935]
答案 0 :(得分:0)
似乎我运行程序的操作系统或机器中存在问题。当我在另一台装有OpenJDK 10的计算机上运行时,没有句柄泄漏,但是句柄数增加到最大2800,下降到450。
在实验时以下注释。