首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在HP Tandem中获取Java Streams时出现问题(不间断)

在HP Tandem中获取Java Streams时出现问题(不间断)
EN

Stack Overflow用户
提问于 2009-11-19 02:26:45
回答 2查看 1.1K关注 0票数 0

我们正在Tandem NonStop系统之间移植一个简单的Java应用程序,从G系列到H系列。Java版本是1.5.0_02。

在执行基本的I/O任务时,例如从客户端套接字获取输出流或打开客户端套接字,我们会收到如下异常

java.io.IOException: Value out of range

java.net.SocketException: Value out of range

(“值超出范围”是一个串联的本地行话,我想它指的是几乎所有的东西)。

有没有人有类似的问题?例如,在处理JNI时I/O损坏?

我想可能是系统出了问题,但问题出在哪里呢?

谢谢。

编辑:

根据请求添加代码段

示例代码片段(a) -使用Runtime.exec () (改编)

代码语言:javascript
复制
Properties envVars = new Properties();
Process p = r.exec("/bin/env");
envVars.load(p.getInputStream());

堆栈跟踪(a):

代码语言:javascript
复制
java.io.IOException: Value out of range (errno:4034)
    at java.io.FileInputStream.readBytes(Native Method)
    at java.io.FileInputStream.read(FileInputStream.java:194)
    at java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:221)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:254)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
    at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:411)
    at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:453)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:183)
    at java.io.InputStreamReader.read(InputStreamReader.java:167)
    at java.io.BufferedReader.fill(BufferedReader.java:136)
    at java.io.BufferedReader.readLine(BufferedReader.java:299)
    at java.io.BufferedReader.readLine(BufferedReader.java:362)
    at util.Environment.getVariables(Environment.java:39)

最后一行失败,输出被重定向到控制台(!)。

示例代码片段(b) -使用HttpURLConnection

代码语言:javascript
复制
public WorkerThread (HttpURLConnection conn, String requestData, Logger logger)
{
    this.conn = conn;
    ...
}


public void run ()
{
    OutputStream out = conn.getOutputStream ();
}

堆栈跟踪(b):

代码语言:javascript
复制
java.net.SocketException: Value out of range (errno:4034)
  at java.net.PlainSocketImpl.socketConnect(Native Method)
  at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
  at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
  at java.net.Socket.connect(Socket.java:507)
  at sun.net.NetworkClient.doConnect(NetworkClient.java:155)
  at sun.net.www.http.HttpClient.openServer(HttpClient.java:365)
  at sun.net.www.http.HttpClient.openServer(HttpClient.java:477)
  at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:280)
  at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:337)
  at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:176)
  at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:736)
  at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:162)
  at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:828)
  at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)

情况(a)是可以避免的,因为它是以前JRE版本(!)的其他问题的变通方法,但套接字的相同行为真的很糟糕。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-19 16:53:49

更新:这个问题是由一个虚假的.so库引起的。

票数 0
EN

Stack Overflow用户

发布于 2009-11-19 08:08:52

错误代码4034似乎表明特定的服务器未在您的NonStop集群中运行。您确定您的系统设置正确吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1758062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档