문제

우리는 G- 시리즈에서 H- 시리에 이르기까지 탠덤 논스톱 시스템 간의 간단한 Java 응용 프로그램을 포팅하고 있습니다. 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 () (적응)

Properties envVars = new Properties();
Process p = r.exec("/bin/env");
envVars.load(p.getInputStream());

스택 추적 (a) :

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:

public WorkerThread (HttpURLConnection conn, String requestData, Logger logger)
{
    this.conn = conn;
    ...
}


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

스택 추적 (b) :

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 버전 (!)의 다른 문제에 대한 해결 방법 이었기 때문에 피할 수 있지만 소켓과 동일한 동작은 실제로 불쾌합니다.

도움이 되었습니까?

해결책 2

업데이트 : 문제는 가짜로 인해 발생했습니다 .so 도서관.

다른 팁

오류 코드 4034는 특정 서버가 논스톱 클러스터에서 실행되지 않음을 나타냅니다. 시스템이 제대로 설정되어 있다고 확신합니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top