相关疑难解决方法(0)

如何更改Linux中的打开文件数限制?

运行我的应用程序时,我有时会收到错误too many files open.

运行ulimit -a报告限制为1024.如何将限制增加到1024以上?

编辑 ulimit -n 2048权限错误中的结果.

linux

188
推荐指数
4
解决办法
49万
查看次数

java.net.SocketException:打开的文件太多

我有一个java应用程序运行得很好(在Ubuntu 10.04上)几个小时,直到它命中"java.net.SocketException:太多打开的文件".Sender.java的代码可以在这里找到

难道是因为我创造的一个新实例HttpPut,并HttpPost为每个线程?我正在使用apache-commons HTTPClient 4.

这是异常日志:

java.net.SocketException: Too many open files
    at java.net.Socket.createImpl(Socket.java:414)
    at java.net.Socket.connect(Socket.java:544)
    at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:123)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:133)
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554)
    at com.marketplace.io.Sender.doBasicHttpPost(Sender.java:434)
    at com.marketplace.io.Sender.appVisualExists(Sender.java:223)
    at com.marketplace.io.Sender.addVisualToCollection(Sender.java:350)
    at com.marketplace.service.ImageThread.run(ImageThread.java:136)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:636)
Run Code Online (Sandbox Code Playgroud)

java apache-httpclient-4.x

19
推荐指数
3
解决办法
7万
查看次数

Java 11 HttpClient Http2 流过多错误

我正在使用HttpClientJava 11 将请求发布到 HTTP2 服务器。HttpClient 对象被创建为一个 Singleton Spring bean,如下所示。

@Bean
    public HttpClient getClient() {
                return HttpClient.newBuilder().version(Version.HTTP_2).executor(Executors.newFixedThreadPool(20)).followRedirects(Redirect.NORMAL)
                .connectTimeout(Duration.ofSeconds(20)).build();
    }

I am using the sendAsync method to send the requests asynchronously.

When I try to hit the server continuously, I am receiving the error after certain time "java.io.IOException: too many concurrent streams". I used Fixed threadpool in the Client building to try to overcome this error, but it is still giving the same error.

The Exception stack is..

java.util.concurrent.CompletionException: java.io.IOException: …
Run Code Online (Sandbox Code Playgroud)

concurrency stream multiplexing http2 java-11

7
推荐指数
2
解决办法
2885
查看次数

使用 Java 连接 SFTP 时发生 UnknownHostException

我正在尝试使用 java 中的 5 个线程将文件连续上传到 SFTP 服务器,在启动程序时正确上传文件但过了一段时间,

所有线程在尝试创建新会话时都会抛出 UnknownHostException 异常持续 5 到 10 分钟,经过一段时间程序正常工作后,我无法找到导致此异常的原因,

这是用于连接sftp的代码,

        JSch jsch = new JSch();
        jsch.setKnownHosts(host_file);
        session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT);
        session.setPassword(SFTPPASS);
        java.util.Properties config = new java.util.Properties();
        config.put("StrictHostKeyChecking", "no");
        session.setConfig(config);
        session.connect();
        channel = session.openChannel("sftp");
        channel.connect();
Run Code Online (Sandbox Code Playgroud)

例外 :

 at td.bdops.clupload.CARUpload.uploadZip(CARUpload.java:398)
    at td.bdops.clupload.CARUpload.uploadZip(CARUpload.java:398)
Caused by: java.net.UnknownHostException: sftp.opsbank2-prod.tio.systems
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at com.jcraft.jsch.Util.createSocket(Util.java:343)
    at com.jcraft.jsch.Session.connect(Session.java:215)
    at com.jcraft.jsch.Session.connect(Session.java:183)
    at td.bdops.util.FTPUtility.uploadAWSFTP(FTPUtility.java:227)
    at td.bdops.util.FTPUtility.uploadAWSFTP(FTPUtility.java:247)
Run Code Online (Sandbox Code Playgroud)

谁能解释一下,这个错误的根本原因是什么

java linux sftp jsch amazon-ec2

5
推荐指数
1
解决办法
6585
查看次数