자바 서비스 래퍼 Community Edition은 자바를 배포하기위한 구성하고 사용하기 쉬운 유틸리티 역할을 바닥부터 설계되었습니다 완전 무료 및 오픈 소스 명령 줄 소프트웨어는 기본 UNIX 데몬 또는 Windows 배경으로여 프로그램입니다 services.Provides 오류 보정 functionalityIt 자동 무응답 또는의 JVM (자바 가상 머신)을 추락 다시 시작됩니다 오류 보정 기능을 제공하는 유연하고 신뢰할 수있는 크로스 플랫폼 소프트웨어입니다. 또한, 소프트웨어는 표준 스크립트, 쉽게 응용 프로그램 설치 및 로깅 기능, 자식 프로세스의 관리, 타임 이벤트, 경고 전자 메일, 이벤트 명령, 상대 메모리 제한, 여러 언어에 대한 지원뿐만 아니라, 사용자 정의 이벤트와 작업을 갖추고 있습니다.
커뮤니티 에디션이 그것 및 다른 URL로, 오픈 소스 라이센스하에 배포됩니다;의 기능은 당신이, 프로세스 우선 순위를 제어하기 위해, JVM의를 다시 시작하고 모니터링하기 위해, UNIX 데몬으로 실행하는 Java 응용 프로그램을 활성화에만 사용할 수 있습니다로 제한됩니다 트리거 JVM는, 스레드 덤프 및 종료, 와일드 카드를 사용할뿐만 아니라, 로그 및 자바 서비스 래퍼의 커뮤니티 에디션을 시작 JVM 콘솔 output.Getting 자바 서비스 래퍼 커뮤니티 EditionTo 시작 캡처, 사용자 정의 작업 디렉토리를 사용하기를 다시 시작합니다 컴퓨터 및 다른 URL에 해당하는 패키지를 다운로드;의에게 아키텍처를 홈 디렉토리에 아카이브를 저장, 압축을 풀고, 터미널 응용 프로그램을 열고, & lsquo의 위치로 이동, 빈 및 다른 URL; 폴더 (예 : CD를 /home/softoware/wrapper-linux-x86-64-3.5.26/bin/)과 & lsquo 실행; ./ 래퍼 및 다른 URL을; POSIX 및 UNIX와 유사한 운영 systemsJava 서비스 래퍼의 넓은 범위에 사용 메시지 및 사용할 수있는 명령 줄 options.Runs를 표시합니다 명령은 세 가지 버전, 커뮤니티 에디션, 스탠다드 에디션, 프로페셔널 에디션에 분포한다. 그것은 모든 GNU / Linux 배포판과 호환되지만 (64 비트를 지원하는 POSIX와 FreeBSD, AIX, HP-UX, 마이크로 소프트 윈도우, 맥 OS X, 솔라리스를 포함한 유닉스와 유사한 운영체제, 다양한 범위의 x86_64의 실행 ), 32 비트 (86), ARMEL, ARMHf, SPARC, s390의 경우, s390x가, 아이테니엄, PPC (파워)뿐만 아니라 PA-RISC 하드웨어 플랫폼
이 릴리스의 새로운 기능입니다 무엇 :.
JVM 다시 시작이 래퍼가 무시 된 상태에있을 때 요청 될 때 로그 메시지를 향상시킬 수 있습니다. (표준 / 프로페셔널 에디션)
교착 청소가 완료되면 추가로 디버그 메시지를 추가합니다. 기능적인 변화는 있지만이 쉽게 스윕 주어진 애플리케이션에 걸리는 시간을 알 수 있도록 첨가하지 않았다.
환경 변수가 설정 한 곳의 내부 추적을 청소합니다. 기능적인 변경 사항이 없습니다.
스크립트 파일 '은 uname -o'와 Cygwin에서 검색 할 때 '-o'유효한 매개 변수가 아니기 때문에, 일부 운영 체제의 (등 솔라리스, 맥 OS는) 오류 메시지가 표시됩니다. 이제 우리는 혼란을 피하기 위해이 오류 메시지를 숨기고 우리는 Cygwin에서가 실행되고 있지 않음을 추측 할 수 있습니다.
스크립트 파일을 사용 systemd와 서비스를 주행 제어 할 수있는 기능을 추가한다.
맥 OS X에서, 오타를 수정 자바 JAVA_HOME 환경 변수를 설정하는 찾을 수있는 또 다른 방법을 추가하고이 경로에없는 경우 sysctl을 실행하는 전체 경로를 사용합니다. 이 지적 Dannes Wessels가 감사합니다.
래퍼를 사용자 정의 할 때 최신 버전의 Windows에 문제를 해결합니다. 대상을 만들 때 인증서가 제거되지 않았습니다. 새 인증서로 대상에 서명 할 때이 오류로 이어지는되었다.
/ 다시 시작 맥 OS X에서 launchctl와 래퍼 서비스를 중지하는 쉘 스크립트에서 누락 지원을 추가
/ 다시 시작 갑자기 출세와 래퍼 서비스를 중지하는 쉘 스크립트에서 누락 지원을 추가합니다.
'님'명령의 경로뿐만 아니라 새로운 SU_BIN과 SU_OPTS 변수를 사용하여 래퍼 쉘 스크립트의 인수를 추가로 지정하는 기능을 설정할 수있는 기능을 추가합니다.
JVM 시작시 종료 결과 명령 줄 문제가 예기치 않은 종료처럼 보였다 WrapperSimpleApp, WrapperStartStopApp 및 WrapperJarApp 도우미 클래스에서 문제를 해결합니다. 이 래퍼는 첫 번째 시도에서 포기하는 것보다 다시 오히려 JVM을 다시 시작하려고 할 것이라는 점을 의미했다.
사용법 배너는 이제 명령 줄 관련 문제에 대해 표시 될 수 있도록 WrapperSimpleApp, WrapperStartStopApp 및 WrapperJarApp 도우미 클래스를 수정. 지정된 클래스, 메서드 또는 jar 파일에 문제가 여전히 오류로 기록되지만 사용자에게 보여주는 것은 이러한 경우에 사용이 혼란이었다.
원시 문자열의 처리가 교체 인수를 방법과 동일하게 처리 될 수 있도록 대체 인자가없는 WrapperResources.getString () 메소드를 수정한다. 이제 모든 문자열이 반환되기 전에 즉, MessageFormat 클래스에 의해 처리됩니다. 이전 버전의 단일 따옴표를 회피 할 필요에 대한 일치하지 않았다.
추가 옵션 키 검증 WrapperResources.getString () 메소드에 전달 문자열 형식이 올바르게되어 있는지 확인합니다. 사용하도록 설정하는 방법에 정보를 WrapperResources 클래스를 참조하십시오.
속성 wrapper.backend.type 새로운 옵션을 추가합니다 : AUTO, 소켓, SOCKET_IPv4, SOCKET_IPv6, PIPE를. AUTO로 설정하면, 래퍼는 소켓의 IPv4를 열고 오류의 경우에는 IPv6로 파이프로 대체 (fallback)을 시도합니다.
시작시 로케일을 설정하지 않고 넓은 문자로 멀티 바이트 변환 할 때 (UNIX 전용) 버그를 수정. 버트에게 감사합니다.
wrapper.commandfile 속성에 대한 테스트 명령으로 'CLOSE_SOCKET'에 'CLOSE_BACKEND'별명을 추가합니다. 이 일정한 시간 동안 백엔드 연결되어 여러 옵션 및 이름이 더 이식 있기 때문이다.
스크립트가 제대로 ''10 .5.0에'버전을 '10 .10 비교에 실패 된 곳 OS X 요세미티를 실행하는 경우 Mac에서 문제를 해결합니다. 이것은 32 비트 바이너리를 실행할 수 있다고 생각 스크립트를 선도했다. 래퍼 이진 델타 팩 이름이 사용되는 경우에만 문제가 있었다.
래퍼 클래스 경로 요소를 누락에 대한 경고를 기록하는 방법을 제어하는 것을 가능하게 새로운 wrapper.java.classpath.missing.loglevel 속성을 추가합니다. 이전에는 항상 디버그 출력으로 기록 된 비활성화 할 수 없습니다.
구성 또는 JVM 그 자체와 관련이없는 Java 프로세스를 시작하는 낮은 수준의 문제가있는 경우, 래퍼는 더 이상 그러한 시도가 무의미한 것으로 다시 시도 없다.
윈도우 시스템 API는 길이 32767 문자를 통해 환경 변수를 설정하려고하면 프로세스가 중단 될 문제가 있습니다. 래퍼는 지금이 확인하고 변수를 설정하기보다는 오류를 기록합니다. wrapper.java.classpath.use_environment 속성이 TRUE 때 매우 큰 클래스 경로가 사용 된 경우 문제가 있었다.
윈도우 명령 줄의 길이가 32766자를 초과 할 수 없습니다. 이와 같이 긴 명령이 제공 될 때 다른 버전의 Windows는 다르게 처리합니다. 래퍼는 이제 자신의 검사를 수행하고 일관된 방식으로 오류를 보여줍니다.
명령 행은 시스템의 최대 값보다 더 긴 경우 UNIX 플랫폼에서 오류 메시지를 향상시킬 수 있습니다. 이 최대 값은 플랫폼 및 환경에 의해 크게 변화하고 확실하게 산출하는 것이 곤란하므로 최대 길이는 현재 메시지에 도시되지 않는다.
매우 큰 구성 파일이 WrapperManager은 시작에 장애를 일으킬 수 UNIX 플랫폼에서 문제를 해결합니다. 이는 연결을 통해 백엔드 WrapperManager로 구성 파일의 부분적인 전사에 의해 야기되었다. 에 관계없이 사용되는 백엔드 유형의 일어날 것입니다. 변화 문제를 야기 구성 파일의 크기가 크게 특정 시스템에 기초.
매우 큰 구성 파일이 wrapper.backend.type 속성이 PIPE로 설정되었을 때 시작시 WrapperManager로 보낼 실패 Windows 플랫폼에서 문제를 해결합니다. 유일한 문제였습니다 WrapperManager.getProperties () 메소드가 비어있을 것입니다. (프로페셔널 에디션)
32766의 최대 명령 줄 길이 Windows에서 WrapperManager.exec에 체크 () 메소드를 추가하고 32767 (프로페셔널 에디션)의 최대 환경 변수 이름 - 값 쌍 길이
NULL 포인터의 자유가 WrapperManager.exec () 호출의 정리 프로세스의 일부로 수행되고 있던 문제를 해결합니다. 이 모든 문제의 원인이 알려져 있지 않습니다.
추가 getStdOut (), getStdErr () 및 getStdIn ()는 getInputStream (에 별칭으로 WrapperProcess 클래스 방법), getErrorStream () 및로 getOutputStream ()는 방법의 혼동을 피하기 도움이됩니다.
wrapper.console.direct 사실 때 긴 로그 라인 31,397 문자 후 손상된있어 Windows 7에서 문제를 해결합니다. 이 기본 윈도우 API에 문제가 될 것으로 보인다 만 표시 문제였다. 문제를 해결하려면 30000 단일 API 호출로 기록 할 수있는 최대 문자 수를 감소. 이 변화는 내부이고 기록 라인의 길이에는 제한이 아직 없습니다.
래퍼가 wrapper.backend.type 속성이 파이프 때 백엔드에 쓰기에 실패 할 경우 교착 상태를 해결합니다. 코드 검토에 의해 발견 실제로 일어날지는 알려지지 않음.
맥 OSX 10.5.0에서 스크립트 파일 launchctl 구성 파일의 키 'KeepAlive를'을 사용할 것이다. 맥 OSX의 이전 버전은 동일한 키 '온 디맨드'를 계속 사용합니다. 이 지적 로빈 감사합니다. (표준 / 프로페셔널 에디션)
OS X의 시스템에서 호스팅되는 가상화 된 Windows 시스템에서 실행되는 애플 블루투스 장치에 연결 호스트 ID의 사용을 금지합니다.
멀티 바이트 메시지가 기록 될 때 WrapperManager.log ()가 제대로 작동하지 않는 문제를 해결합니다.
그것은 거대하고 중요한 데이터를 포함 할 수 있기 때문에 디버그 출력에서 전체 구성 등록 패킷은 로그 출력에서 억제된다. 디버깅을 지원하기 위해 축약 출력 크기를 추가합니다.
오류 메시지가보고 될 때마다 UNIX 플랫폼에서 메모리 누수를 수정합니다. 메시지가 반복해서 기록 된 경우에만 문제였다.
코드 리뷰를 통해 볼 수있는 몇 가지 다른 잠재적 메모리 누수를 수정합니다. 실제 문제를 일으키는 것으로 알려져 없습니다.
이 버전 3.5.23의 새로운 기능 :
이 표준 / 프로페셔널 에디션 :
알 수없는 라이센스 유형가 발생하면, 디버깅에 도움을주기 위해 오류 메시지의 알 수없는 유형을 포함한다.
언어가 일본어와 같은 2 바이트 로케일로 설정 될 때 Z / OS에 메모리 손상 문제를 해결합니다.
를 통해 이동 심하게 2 바이트 문자가 발생 인코딩 할 때 훨씬 더 내구성이 래퍼를합니다.
Preofessional 판 :
지금 말한다 있도록 WrapperManager.exec ()가 래퍼가 종료되는 동안 호출 할 때 발생 예외를 수정하는 것이 아니라 네이티브 라이브러리가로드되지 않았 음을 말하는 것보다.
래퍼는 자식 프로세스가 래퍼 출시에 대한 모든 자식 프로세스를 알고 있는지 확인하기 위해 발사되는 동안 백엔드가 닫히지 않습니다 있는지 확인하기 위해 더욱 조심.
래퍼 인해 백엔드 연결이 종료되기 시작 자식 프로세스를 통보되지 않은 경우에 경고 메시지를 추가합니다.
자식 프로세스가 종료 된 후 래퍼가 종료하고있는 동안 자식 프로세스에서 표준 출력 또는 표준 오류 출력을 읽는 동안 발생 될 수있는 잠재적 인 NPE를 수정합니다.
우리가 현재 표준 출력 또는 표준 오류에서 읽기에 차단 된 프로세스 후 정리하려고 갇히지 된 UNIX 플랫폼에서 문제를 해결합니다.
자식 프로세스 목록의 내부 잠금을 확보하는 타임 아웃이 자바 프로세스가 종료 될 때까지 다른 종료 된 자식 프로세스가 존재하지 않는 것으로 좀비를 방치로 이어지는, 동기화 얻을 수있는 내부 카운터를 발생시킨 경우 UNIX 플랫폼에서 문제를 해결합니다.
자식 프로세스와 통신하는 데 사용되는 파이프 파일 설명이 잘못 모든 자식 프로세스에 전달되고 있었다 UNIX 플랫폼에서 문제를 해결합니다. 그들은 시간이 지남에 따라 증가하지 않았다.
wrapper.lang.encoding이 UTF-8 LANG 환경 변수가 설정되지 않은 올바르게에 해결되지 않은 FreeBSD의 시스템에서 문제를 해결합니다.
WrapperProcess.waitFor () 또는 WrapperProcess.exitValue ()를 호출 잠재적 동기화 문제를 해결합니다.
사용자 문제를 디버깅을 지원하기위한 다양한 시간 초과 값을 보여주는 추가 디버그 로그 출력을 추가합니다.
쉘 스크립트가 제대로 맥 OSX 코디와 OS 버전을 감지되지 않은 문제를 해결합니다.
구성 파일의 파일 참조를 포함에 정의되지 않은 환경 변수에 대한 경고를 추가합니다.
wrapper.java.additional_file과 wrapper.app.parameter_file 속성으로 지정된 파일에 환경 변수 확장에 대한 지원을 추가합니다.
이 래퍼의 나머지 부분과 일치하도록 WrapperUNIXGroup.toString () 메소드에 서식 정수를 수정합니다.
/ /usr/local/lib/libbiconv.so, 우리는 지금 /usr/local/lib/libiconv.so를 찾아 라이브러리를 동적으로 위치를 FreeBSD의 10에서의 iconv 라이브러리 요구 사항이 충족 될 수없는 문제를 해결하거나, 순서에 lib 디렉토리 / libkiconv.so.4.
줄 바꿈을 포함하는 문자열이 제대로 구성된 헤더 앞에는 각 행을 가지게됩니다 WrapperPrintStream.println () 메소드를 수정합니다.
이 어떤 버전 3.5.14의 새로운 기능 :
이 래퍼 바이너리 파일 이름에 괄호가 & quot 발생했을 AppCommand.bat.in 파일에 문제를 해결 ; PATH이 시간 & quot에서 예상치 못한; 오류가 발생했습니다.
(표준 / 프로페셔널 에디션)
래퍼는 다른 언어를 지정하는 데 사용에도 wrapper.lang 기본 시스템 언어를 사용하도록 계속 윈도우 64 비트 플랫폼에서 래퍼의 지역화 된 버전을 사용할 때 문제를 해결합니다. 3.5.12에 도입.
'상태'명령이 잘못 사용 출력 '쿼리'로보고되고 있던 윈도우 AppCommand.bat.in 명령 기반의 배치 파일에서 문제를 해결합니다. 사용 된 경우 '상태'명령은 항상 올바르게 작동했다.
코딩 오류 ... & quot; 일부 비동기 메시지는 경고 메시지 & quot 원인이되었던 곳 UNIX 플랫폼에서 문제를 해결; 의도 된 메시지의 장소에 기록합니다. 구성 로그 파일에 쓰기 권한을 가지고 있지 않은 경우에 볼 수있다. 잘못된 로그 메시지 이외에, 래퍼가 제대로 작동했다. 3.5.2에 도입.
RUN_AS_USER이 설정되었을 때 벼락 부자가 제대로 작동하지 않는 실행 UNIX 스크립트에서 문제를 해결합니다.
지금 PID 파일의 읽기 전용 검사를 수행 할 스크립트를 실행하는 사용자 수 있도록 UNIX 쉘 스크립트에 대한 '상태'명령을 실행하는 경우 보안 검사를 휴식.
'삭제'명령은 응용 프로그램이 설치되지 않은 경우에도 실행중인 응용 프로그램을 중지하려고했던 UNIX 스크립트에 문제를 해결합니다.
wrapper.ntservice.account이 지정 될 때 잠재적으로 Windows 서비스를 설치하는 동안 충돌이 발생할 수있는 버퍼 오버 플로우를 수정합니다. 이것은 3.5.12에서 소개되었다.
시작에서 발생하는 잠재적 충돌을 일으킬 수있는 힙 손상을 수정합니다. 시스템 이벤트 로그를 사용하여 Windows 시스템 만은 영향을 받았다. 코드 리뷰에서 발견 된 사용자에 대해이 문제를 일으키지의보고가 적이 없었다. 구성 wrapper.log이 래퍼는 항상 이러한 경우 이벤트 로그에 기록하려고에 기록 할 수없는 경우에 발생할 수 있습니다. 3.5.12에 도입.
버전이 일치하는 경우에 경고를 보여주는 시작 UNIX 쉘 스크립트와 래퍼 사이에 새로운 버전의 비교를 추가합니다. 쉘 스크립트와 래퍼 적어도 버전 3.5.14 각각의 경우 검사에만 작동합니다.
PID 파일이 이미 존재한다면 시작하지 래퍼를 알려주는 새로운 wrapper.pidfile.strict 속성을 추가했습니다. 이전 버전과의 호환성을 위해 기본값은 false입니다.
읽기 및 쓰기 시간 초과 인 경우 백엔드 소켓 자바 측보다 탄성 확인. 이 문제가되었습니다해서는 안 백엔드 소켓은 기본적으로 설정 시간 제한이 없습니다. 몇 가지 사용자가 특정 시스템에 문제 그러나이 수정을 주도 보도했다.
백엔드 소켓 타임 아웃의 테스트를 돕기 위해, 새로운 wrapper.backend.so_timeout 시스템 특성은 가능한 시간 제한을 사용하는 백엔드 소켓을 구성 할 수 있도록 하였다. 자세한 내용은 WrapperManager.exec () 클래스의 Javadoc을 참조하십시오.
이 버전 3.5.11의 새로운 기능 :
이 버퍼 오버 플로우로 인한 Windows에서 잠재적 인 충돌을 해결합니다. 이것은이 항상 충돌이 발생하지 않았다 버전 3.5.0부터 문제가되어와 .. 더 이상의 wrapper.ntservice.dependency을 정의 메모리에 무엇에 따라 구성에 영향을하고있다. 그것은 주어진 구성 파일의 재현성이 매우 문제가있다.
래퍼는 WinVerifyTrust에서 시스템 호출에 문제가 CRL를 업데이트하는 데 있었기 때문에 일부 시스템에서 시동 15 초 이상을 복용 한 경우 Windows에서 문제를 해결합니다. 래퍼 바이너리 버전 3.5.7에 서명하고 시작한 이후이 문제였다. WinVerifyTrust에서 호출이 더 이상 구성된 wrapper.startup_thread.timeout보다 오래 걸리는 경우, 래퍼는 지체없이 시동 할 것입니다.
(표준 / 프로페셔널 에디션)
명시 적으로 정의하는 동안 사용자 정의 된 바이너리의 인증서를 제거합니다. 그렇지 않으면 다른 인증서와 바이너리를 사임 문제가 발생했습니다.
래퍼가 어떤 이유로 구성 wrapper.logfile에 기록 할 수없는 경우, 우리는 항상 기본 로그 파일에 후퇴하고 실패에 대한 메시지를 기록합니다. 기본도 실패하면 그 다음도 기록되지만 메시지는 대부분의 경우 콘솔에 기록 될 것이다. 래퍼 그래서 우리는 지금에 관계없이 항상 wrapper.syslog.loglevel 무엇으로 설정되어 있는지의 시스템 로그 또는에서 EventLog 모두에 메시지를 보내 수정합니다. 이 로그 파일 액세스 문제의 원인을 추적 할 수 있도록하는 것이 중요하다.
모든 라인은 항상 로그 파일로 그룹화 해 지도록 버전 3.5.0부터, 그것은 멀티 라인 로그 메시지를 출력하기 위해 내부적으로 가능했다. 이 버전은 여러 줄의 로그 출력이 이제 UNIX의 sylog 또는 Windows의 EventLog에 하나의 메시지로 기록됩니다 약간 수 있도록 로깅 코드를 수정합니다.
JVM에서 출력의 매우 긴 줄이 래퍼가 잠시 멈춘 것처럼하는 원인이 문제를 해결합니다. 수십만 문자를 포함하는 단일 출력 라인이 로그인 한 처음, 내부 버퍼는 점진적으로주기 당 100 자 증가되고 있었다. 랩퍼는 이제 크게 새로운 버퍼 크기를 선택하는 데 필요한 사이클의 수를 감소시키기 위해 마지막 알려진 크기에 기초하여 크기를 증가시킨다.
이 무한정 대기하는 것이 가능하므로 PAUSE_THREAD 명령을 수정합니다. 만 래퍼를 테스트하는 데 유용합니다.
가능 다음 로그 항목을 일시 정지 할 수 있도록 새로운 PAUSE_LOGGER 명령을 추가합니다. 만 래퍼를 테스트하는 데 유용합니다.
UNIX에서 JVM과 래퍼 사이의 표준 출력 / 표준 에러 파이프가 제대로 정리되지 않았다. 이 작은 누수 결과 있지만 그렇지 않으면 해가 있었다. 파이프는 이제 정리하고 각각의 JVM 인스턴스 초기화됩니다.
다시 시작 요청이 JVM에서 유래 할 때 시스템이 긴 디스크 IO 큐의 결과로 매우 무거운 IO가 발생 된 경우 래퍼가 JVM을 다시 시작하지 못할 수있는 문제를 해결합니다. 이 종료보다는 다시 시작에 래퍼를 일으키는 쓰기에 차단하고 다시 시작 요청을 그리워하는 래퍼의 메인 루프가 발생했다. 이 모든 플랫폼에 영향을 미칠 수 있습니다. Windows에서, 그것은 또한 출력을 동결 콘솔에서 선택을 한 후 다시 시작하는 JVM 내에서 요청을 재현 할 수 있습니다.
이 훨씬 더 쉬워 졌을 JVM 내에서 래퍼 속성 값에 액세스 할 수 있도록 새로운 WrapperPropertyUtil 헬퍼 클래스를 추가합니다.
자바 로그 출력 인해 strncpy에서 시스템 기능의 오용에 손상받을 수있는 몇 가지 플랫폼에서 버그를 수정. 이 기능은 일부 구현이 중복 메모리 복사를 지원하지 않는 것을 경고합니다. 문제는 출력의 빈 줄 다음 줄에 하나의 리눅스 테스트 시스템에서 재생 될 수 있습니다. 이 문제는 3.4.0부터 존재했다.
이 버전 3.5.9의 새로운 기능 :
이 이름 네트워크 어댑터가 포함 & quot Windows에서 문제를 해결; PRO / 1000 & quot; 호스트 ID의 목록에서 제거되고 있었다가 표시 될 때 & quot;을 Wrapper.exe -h & quot; 실행되었습니다. 이 3.5.7 이하 또는 개발 라이센스 키에 의해보고 된 호스트 ID에 대해 생성 된 기존의 서버 라이센스 키 파일에 영향을 미치지 않았다. 그러나 래퍼 래퍼가 라이센스 파일없이 시작되었을 때 유효한 호스트 ID가 발견 될 수 있다는보고가 발생할 않았다. 이것은 우리가 제거하는 데 실패 3.5.8에 추가 된 몇 가지 테스트 코드에 의해 발생했다.
연속 출력의 매우 많은 양의 JVM에서 기록되는 때 래퍼가 올바르게 메인 루프로 다시 제어를 산출되지 않은 문제를 해결합니다. 버전 3.4.0에 도입. 3.5.8 이전 버전에서는이 JVM이 타임 아웃 자체를 다시 시작 원인이 있었다. 특정 문제가 해결되었지만 이런 일이있을 때 3.5.8에서 래퍼 프로세스는 여전히 응답했을 것이다. 래퍼는 이제 항상 연속 기록의 250 밀리 초 후에 다시 메인 루프에 yeild 것입니다.
현재 사용자의 어플리케이션뿐만 아니라 콘솔 출력 양이 큰 경우를 작성 WrapperManager 노력 기록 디버그 출력을 차단할 수있는 문제를 해결. 극단적 인 상황에서이 JVM이 고정 된 생각 래퍼되었다. 디버그 출력이 활성화 된 경우에만 문제가 있었다.
쉘 스크립트를 구조 조정하여 모든 버전은 지금 다시 같은 스크립트를 사용합니다.
이 버전 3.5.8의 새로운 기능 :
(표준 / 프로페셔널 에디션)
버전 3.5.5을 시작으로, 사용자가 자신의 시스템에 주니퍼 네트워크 연결 네트워크 어댑터가있는 경우 호스트 ID를 변경하는 문제를 방지하기 위해 윈도우의 모든 00FF의 *의 호스트 ID의 사용을 무효화. 이것은 고객의 OS가이 호스트 ID의 범위를 사용합니다 패러랠에서 실행 너무 제한적으로 밝혀졌다. 래퍼는 이제 실제 주니퍼 네트워크 연결 호스트 ID를 무효화하는 것이 더 조심.
(표준 / 프로페셔널 에디션)
래퍼는 시스템에 어떤 호스트 ID를 찾을 수 없을 때 사용자에게 표시 메시지를 향상시킬 수 있습니다.
옵션 -F grep와 사용할 수 없습니다이었다 솔라리스에 래퍼 스크립트에 문제가 수정되었습니다.
래퍼 디버그 출력에 추가 된 윈도우 버전 정보를 표시합니다.
이 래퍼는 로그 메시지를 기록하는 데 오랜 시간이 걸렸습니다 있음을 감지 할 때마다 래퍼가 경고를 표시하게 wrapper.log.warning.threshold 속성을 추가했습니다. 이것은 매우 심하게로드 된 시스템에서 느린 IO에 의한보고 문제를 테스트하기 위해 추가되었습니다.
JVM은 즉시 그 자체를 종료하면 다시 시작 JVM을 요청 필터가 무시 될 문제를 해결합니다. JVM 또는 필터 내에서 그 다시 시작 요청이 항상 같은 종료 요청에 우선 있도록 래퍼는 이제 더 일치한다. 외부 종료 요청, 또는 다른 작업에서 사람들은 여전히 과거에 그랬던 것처럼 행동 및 종료 래퍼에 계속됩니다. 뛰어난 다시 시작 요청이 보존되거나 무시되는 경우 래퍼는 또한 디버그 출력에 메시지를 기록합니다.
특정 멀티 바이트 시스템 인코딩 일부 Windows 플랫폼에서 발생할 수있는 AppCommand.bat 배치 파일에 문제가 수정되었습니다. 스크립트는 다시 작성되었습니다 및 의심스러운 부분이 단순화되었다. 스크립트의 기능이 보존되어있다.
구성 속성에 사용할 수있는 환경 변수 WRAPPER_CONF_DIR을 추가했습니다. (기능 요청 3160644)
스크립트를 RUN_AS_USER에 지정된 다른 사용자를 실행할 때 올바른 종료 코드 스크립트 출구를 만들어 받았습니다. (버그 보고서 3185281)
코드 서명 인증서가 확인 된에 실패했을 때 일어날 수있는 액세스 위반을 수정합니다.
백엔드 소켓이 강제로 외부 닫혀있는 경우 오류를 기록. 그것은 디버그 로그 수준에서 기록지고 있었다. 이 메시지는 & quot이다 기존 연결은 원격 호스트에 의해 강제로 끊겼습니다. (0x2746) & quot ;. 디버그 출력이 활성화 된 경우 메시지는 기록 되었기 때문에, JVM은 무슨 일이 있었는지에 대해 명확한 설명과 함께 다시 시작된다. 소켓 폐쇄의 소스는 조사 중입니다.
(프로페셔널 에디션)
WrapperManager API에 자바 호출 fireUserEvent을 추가했습니다. 이 필터 트리거없이 사용자 이벤트 메일, 작업을 발사 할 수 있습니다. 또한 보안 페이지에서이 호출에 대한 보안 모델에 대한 자세한 정보를 검색 할 수 있습니다.
구성 java 명령은 유니버설 바이너리가 아닌 경우 맥 버전에 대한 경고를 수정합니다. 검사는 스크립트를 실행할 때 wrapper.java.command 예기치 않은 동작을 방지하기 위해 실행에 직접 지적 있는지 확인하기 위해 3.4.0에서 추가되었다. 메시지는 경고하고 래퍼에 관계없이 계속됩니다. 표준 PPC, ppc_64, x86_64에, I386,뿐만 아니라 유니버설 바이너리는 이제 모든 경고없이 올바르게 작동합니다.
래퍼의 디폴트 값. *. umask를 속성은 프로세스가 현재의 umask를 사용하고 있습니다. 기본 값은 항상 0022 전에.
래퍼는 기존 & quot를 사용하여 JVM와 통신 여부를 제어하는 데 사용되는 새로운 wrapper.backend.type 속성을 추가, SOCKET & quot을; 또는 새로운 실험 & quot; PIPE & quot ;. 이는 일부 Windows 시스템은 OS 수준에서 소켓을 닫는 드문 문제에 대한 해결 방법으로 추가되었습니다. 이것은 오직 Windows 2003에서 관찰되었다, 그러나뿐만 아니라 다른 Windows 버전에 존재 할 수있다.
래퍼는 전용 스레드의 모든 자바 콘솔 출력을 처리하도록하는 새로운 실험 wrapper.use_javaio_thread 속성을 추가합니다.
쉽게 네이티브 라이브러리가로드 및 시작시 초기화 여부를 테스트하는 사용자 코드를 할 수있는 새로운 WrapperManager.isNativeLibraryOk () 메소드를 추가합니다.
가능 여러 스레드가 차단하거나 정지 할 때 래퍼의 동작을 테스트 할 수 wrapper.commandfile 속성에 새로운 PAUSE_THREAD 명령을 추가합니다. 이 시뮬레이션과 크게 IO가 결합 된 서버에서 문제를 재현하는 데 사용되었다.
래퍼 장시간 JVM 핑 못할 때 랩퍼 자바 측의 동작 방식을 개선. JVM 자체는 JVM 자체를 재 동기화 수 있도록 종료하는 데 사용됩니다. 이 로그 파일에 기록하는 동안 래퍼 잠시 동안 차단할 수와 JVM이 종료 되었기 때문에 크게 IO 경계했다 시스템에 문제가 발생했다. JVM은 지금과 같은 상황에서 종료하지 않습니다. JVM은 래퍼와 백엔드 소켓이나 파이프가 지금까지 닫혀있는 경우 여전히 거의 즉시 종료하기 때문에 고아가 될하지 않습니다.
그것은 더 이상 가능 래퍼와없는 고장 모드를 시뮬레이션하기 위해 사용되는 WrapperManager.appearOrphan () 메소드를 사용 중지.
래퍼는 코드 서명 / 타임 스탬프 인증서에 대한 인증서 오류를 처리하는 방식을 변경. 바이너리 또는 서명이 기형화되어 있기 때문에 반대 서명자에 문제가 발견되었습니다하지 않을 경우 래퍼는 이제 종료 자체는 이진의 서명이 성공적으로 검증되지 않은 경우. 3.5.7부터 윈도우 래퍼 바이너리 서명됩니다. 일부 사용자는 윈도우 2008 시스템은 코모도 인증서가 자신의 시스템에 기본으로 설치되어 있었기 때문에 시작하는 래퍼 거부하는 문제가 있었다 아래로 잠겨 있습니다.
가능 Java 응용 프로그램을 실행하는 간단한 도구로 래퍼를 사용할 수있게 새로운 wrapper.java.detach_started 속성을 추가합니다. 활성화 된 경우, 래퍼는 즉시 종료하고 JVM은 자체에서 실행 남아 있습니다.
wrapper.ntservice.account 속성을 통해 지정된 사용자 계정과 래퍼를 실행하는 경우, 래퍼는 자동으로 설치시 서비스로 로그온 계정에 대한 권한을 추가합니다. (기능 요청 # 3286491)
이 버전 3.5.6의 새로운 기능 :
이 절대 경로를 wrapper.logfile에 대해 지정된 경우 로그 파일 경로가 잘못 계산되고 있던 UNIX 플랫폼에서 문제를 해결하고, 파일이 이미 존재하지 않았다. 경고 메시지가 표시되고 있었다하지만 랩퍼는 기본 로그 파일을 계속 사용한다. 일부 플랫폼에 충돌이 맥 OSX를 포함 의한 표시되는 메시지에 문제가 발생했습니다. 버전 3.5.5에 도입.
이 구성 wrapper.logfile의 디렉토리에 액세스 할 수없는 경우 래퍼가 충돌 할 Windows 플랫폼에서 문제를 해결합니다. 버전 3.5.5에 도입. 버그 # 3087424.
메시지가 이제 래퍼가 기본 로그 파일로 다시 떨어지는에서 성공하는 경우에 사용하여 종료 로그 파일에 기록 될 수 있도록 구성 wrapper.logfile 쓰기 문제가있는 경우 경고가 표시되는 방식을 개선합니다.
여기서 wrapper.java.additional Windows 플랫폼에서 문제를 해결합니다. Java 명령 행을 구축 할 때 명령 행에 지정된 및 공백이 포함 된 속성이 제대로 requoted되지 않았다. 버전 3.3.6에 도입.
경고 메시지가 wrapper.java.additional의 잘못된 값에 대해 기록 된 문제를 해결합니다. 속성은 손상된 텍스트가 포함되어 있습니다. 버전 3.3.6에 도입.
UNIX 플랫폼에서 문제를 해결 어디 wrapper.java.additional에 대한 잘못된 값. 속성은 올바르게보고하고 건너 뛰지 만 JVM을 시작하는 결과 명령 줄은 JVM이 실행 실패의 원인이 된 빈 값을했다되고 있었다. 잘못된 값은 & quot로 시작하지 않는 값이다 - & quot; 문자.
래퍼가 시작되었던 작업 디렉토리를 참조하는 데 사용할 수있는 새로운 WRAPPER_INIT_DIR 환경 변수를 추가합니다. 래퍼는 항상 래퍼 바이너리의 위치에 그 작업 디렉토리를 변경하기 때문에이 특정 응용 프로그램에 필요합니다.
더 이상 스크립트의 현재 위치로 작동되도록 변경 DIR UNIX 쉘 스크립트를 수정하지 않는다. 래퍼 버전 3.2.0 이후 자신의 위치에 작업 디렉토리를 변경 되었기 때문에이 더 이상 필요하지 않습니다.
래퍼는 자바 프로세스를 죽이는 전에 쓰레드 덤프를 수행 한 후 대기하는 시간을 제어 할 수있는 새로운 wrapper.request_thread_dump_on_failed_jvm_exit.delay 속성을 추가합니다. 이 지연은 항상 5 초로 하드 코딩되었다.
그들을 더 일치하도록 잘못된 구성 값에 대한 몇 가지 경고 메시지의 텍스트를 정리합니다.
(프로페셔널 에디션)
가능 jvm_kill 이벤트가 해고와 JVM이 실제로 죽는 사이에 허용하는 시간의 양을 제어 할 수 있습니다 새로운 wrapper.jvm_kill.delay 속성을 추가합니다. 유용한 외부 이벤트 명령은 먼저 JVM 프로세스에 뭔가를 할 필요가있는 해고되는 경우.
(프로페셔널 에디션)
문제를 해결 어디 wrapper.event의 출력 및 LT.; EVENT_NAME한다 .message 및 wrapper.event & LT.; EVENT_NAME있다가, .loglevel 속성은 UNIX 플랫폼에서 제대로 표시되지 않았습니다.
(프로페셔널 에디션)
WrapperManager.exec ()로 시작되었다 자식 프로세스의 많은 수의, 같은 순간에 종료하는 경우 래퍼의 Java 측이 제대로 통보하지 않는 한 UNIX 플랫폼에서 문제를 해결합니다. 다음 어린이들이 정리 될 수있는 시점에서, 종료 할 때까지 그들 중 일부는 소멸 한 상태로 가고 있었다. 사용자 코드가 종료 프로세스의 일부로서 WrapperProcess.waitFor ()를 호출 한 경우에 주로 JVM 종료에 문제가 있었다. 에 WaitFor는 어느 시점에 갇히지하고 다른 아이가 종료 될 때까지 그렇게 남아있을 것 호출합니다. 이 수정 프로그램의 일환으로, 동기화에 두 개의 코드베이스를 가져 윈도우 구현에 몇 가지 변화도있었습니다.
(프로페셔널 에디션)
복수의 thread가 Childobjects을 만들 때 Windows에서 문제를 해결, 핸들은 unintendedly 입력 / 출력 / Errorstream에 읽기 / 쓰기에 문제가 발생, 다른 자식 프로세스에 의해 상속받을 수 있었다.
(프로페셔널 에디션)
이 요구 사항 :
이 오라클 자바 스탠다드 에디션 런타임 환경
댓글을 찾을 수 없습니다