런타임 환경 알려진 문제 및 제한사항
Liberty 프로파일 런타임 환경에 대해 작업할 때 적용되는 알려진 일부 문제 및 제한사항이 있습니다.

개발자 도구 알려진 문제 및 제한사항도 참조하십시오.
알려진 문제 및 제한사항의 목록
- 일반적 제한사항:
- 지원되는 최소 Java 레벨
- 설치 디렉토리 이름과 경로에 ASCII가 아닌 문자를 포함할 수 없음
- 런타임에 JDBC 데이터 소스를 변경하면 JPA가 실패할 수 있음
- getRealPath에서 리턴된 결과에 의존하는 애플리케이션은 WAR 파일이 아닌 확장 애플리케이션으로 배치되어야 함
- WebSphere Application Server 전체 프로파일 스크립트는 Liberty 프로파일과 동작하지 않음
- 파일세트 제한사항
- Java SDK에서 클래스 대체
공유 라이브러리를 게시 취소하는 경우, 서버가 중지될 때까지 삭제할 수 없음
- java:global lookups restrictions
- 애플리케이션이 임베디드 Liberty 서버에서 시작되지 않음
WebSphere MQ 자원 어댑터 및 일반 JCA 지원 관련 제한사항
- "dropins" 디렉토리에 있는 애플리케이션에는 버전화를 사용할 수 없음
- Liberty 기능에만 해당되는 제한사항:
Admin Center 기능 제한사항
- appSecurity-2.0 기능 제한사항
- Bean 유효성 검증 기능의 제한사항
- 동적 캐시 기능 제한사항
- ejbLite-3.1 기능 제한사항
eventLogging-1.0 기능 제한사항
jpa-2.1 기능 제한사항
- jsp-2.2 기능 제한사항
- monitor-1.0 기능 제한사항
requestTiming-1.0 기능 제한사항
- wmqJmsClient-1.1 기능 제한사항
wmqJmsClient-2.0 기능 제한사항
concurrent-1.0 기능 제한사항
jacc-1.5 기능의 제한사항
- 런타임에 dataSource, jdbcDriver, connectionManager, JDBC 공급업체 특성을 수정하면 JPA가 실패할 수 있음
지원되는 최소 Java 레벨
- Java SE 6 런타임 환경
- IBM®에서 제공하는 Java SDK의 경우 최소 지원 레벨은 6.0(J9 2.6) SR 1입니다. Oracle에서 제공하는 JDK의 경우 최소 지원 레벨은 Java 6 업데이트 26입니다.
- Java SE 7 런타임 환경
- IBM에서 제공하는 Java SDK의 경우 최소 지원 레벨은 IBM Runtime Environment, Java Technology Edition 7.0.4.1입니다. Windows 및 Linux에서 Oracle이 제공하는 JDK의 경우 최소 지원 레벨은 Java SDK/JRE/JDK 7.0.17입니다. Mac OS X에서 Oracle이 제공하는 JDK의 경우 최소 지원 레벨은 Java SDK/JRE/JDK 7.0 업데이트 15입니다.
Java SE 8 런타임 환경
- IBM에서 제공하는 Java SDK의 경우 최소 지원 레벨은 IBM SDK, Java Technology Edition, 버전 8입니다. Oracle에서 제공하는 JDK의 경우 최소 지원 레벨은 Java 8 업데이트 25입니다.
분산 플랫폼에서,
32-비트 또는 64-비트 Java가
지원됩니다.
Windows 및 Linux 시스템의 경우, Oracle에서 JDK를 사용하거나
IBM에서 JDK를 사용할 수 있습니다.
Windows 또는 Linux에서 애플리케이션을 개발하고 해당
애플리케이션을 WebSphere Application Server
전체 프로파일 기반으로 실행 중인 서버에 배치하려는 경우
IBM의 JDK를 사용해야 합니다.
HP 시스템 및 Mac OS의 경우, Oracle에서 JDK를 사용하십시오.

![[8.5.5.2 이상]](../ng_v8552.gif)
![[8.5.5.2 이상]](../ng_v8552.gif)
설치 디렉토리 이름과 경로에 ASCII가 아닌 문자를 포함할 수 없음
최근 JVM은 -jar과 -javaagent 명령으로 비-ASCII 문자 사용을 완전히 지원하지 않습니다. 설치 디렉토리 이름 및 경로에 ASCII 문자만 사용해야 합니다.
런타임에 JDBC 데이터 소스를 변경하면 JPA가 실패할 수 있음
데이터베이스 사전 유형이 특성을 통하여 지정되지 않으면, 첫 번째 엔티티 관리자가 작성되고 데이터베이스 연결이 이루어지면 OpenJPA가 데이터베이스 사전 유형을 발견하고 계산합니다. 이 데이터베이스 사전 유형은 후속으로 작성된 모든 엔티티 관리자에 대해 사용됩니다. 애플리케이션이 실행 중인 동안 JDBC 데이터 소스가 변경되면, 엔티티 관리자 팩토리는 이 변경을 발견하지 못하고 새 데이터 소스에 대한 조작으로 이전 사전을 계속 사용합니다. 데이터베이스가 다른 공급업체로 변경되면 실패할 수 있습니다.
데이터베이스를 다른 공급업체로 변경하면 애플리케이션을 다시 시작하십시오.
런타임에 dataSource, jdbcDriver, connectionManager, JDBC 공급업체 특성을 수정하면 JPA가 실패할 수 있음
dataSource, jdbcDriver, connectionManager 또는 JDBC 공급업체 특성의 구성 목록을 업데이트하면(예를 들어, properties.db2.jcc 또는 properties.oracle) 서버가 실행되는 동안 J2CA8040E 실패를 볼 수 있습니다. 이 실패는 다중 dataSource 요소를 단일 connectionManager와 연관시킬 수 없음을 보여줍니다. 구성이 하나의 connectionManager만을 dataSource 요소와 연관시키더라도 이 실패가 생성됩니다.
이 JDBC 자원의 구성에 대한 업그레이드를 작성하는 경우, 서버를 다시 시작하십시오.
getRealPath에서 리턴된 결과에 의존하는 애플리케이션은 WAR 파일이 아닌 확장 애플리케이션으로 배치되어야 함
컨텐츠가 WAR(web archive) 파일에서 사용 가능하도록 작성된 경우 Java EE 스펙은 getRealPath() 메소드가 null 값을 리턴함을 보여줍니다. WAR 파일을 Liberty 프로파일에 배치하는 경우, 프로파일은 아카이브 파일을 디렉토리 구조로 자동으로 추출하지 않습니다. 그러므로 애플리케이션을 시작할 수 없습니다. 애플리케이션이 getRealPath()에서 리턴된 결과에 의존하는 경우, 애플리케이션을 WAR 파일이 아닌 확장 애플리케이션으로 배치해야 합니다. 예를 들어, 수동으로 WAR 파일을 추출하고 확장 애플리케이션을 dropins 디렉토리로 복사할 수 있습니다.
WebSphere Application Server 전체 프로파일 스크립트는 Liberty 프로파일과 동작하지 않음
WebSphere Application Server 전체 프로파일의 bin 디렉토리에서 스크립트를 사용하여 Liberty 프로파일을 관리할 수 없습니다.
파일세트 제한사항
- 파일세트는 기본 디렉토리의 서브디렉토리를
반복적으로 탐색하지 않습니다. 예를 들어, 다음 지시사항은 지원되지 않습니다.
<fileset id="testFileset" dir="\temp" includes="**\a.jar"/> <fileset id="testFileset" dir="\temp" includes="a\a.jar"/> <fileset id="testFileset" dir="\temp" includes="*\a.jar"/> <fileset id="testFileset" dir="\temp" includes="a\b\a.jar"/>
Java SDK에서 클래스 대체
- javac를 사용하여 명령행에서 빌드하는 경우, javac -endorseddirs 옵션과 ${wlp.install.dir}/dev/specs 디렉토리의 JAR 파일을 사용하여 코드를 컴파일하십시오.
- Apache Ant를 사용하여 빌드하는 경우, javac 태스크의
<compilerarg> 하위 요소와 ${wlp.install.dir}/dev/specs 디렉토리의
JAR 파일을 사용하여 코드를 컴파일하십시오. 빌드 스크립트에서, 별도의 <compilerarg> 요소로
-endorseddirs 옵션과 ${wlp.install.dir}/dev/specs 디렉토리를
지정하십시오. 예를 들면 다음과 같은 경우가 있습니다.
<javac srcdir="src" destdir="classes"/> <compilerarg value="-endorseddirs"/> <compilerarg value="${wlp.install.dir}/dev/specs"/> </javac>
- Apache Maven를 사용하여 빌드하는 경우, Maven 컴파일러 플러그인의
endorseddirs 요소와 ${wlp.install.dir}/dev/specs 디렉토리의
JAR 파일을 사용하여 코드를 컴파일하십시오. 예를 들면 다음과 같은 경우가 있습니다.
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <compilerArguments> <endorseddirs>${wlp.install.dir}/dev/specs</endorseddirs> </compilerArguments> </configuration> </plugin>

공유 라이브러리를 게시 취소하는 경우, 서버가 중지될 때까지 삭제할 수 없음
서버에서 공유된 라이브러리를 게시 취소하는 경우, 라이브러리 JAR 파일은 서버에서 즉시 릴리스되지 않습니다. 그러므로 운영 체제는 파일이 더 이상 사용 중이 아님을 알지 못하여 파일을 삭제하도록 하지 않습니다. 다음에 서버를 중지하면 라이브러리 JAR 파일이 릴리스되며 파일을 삭제할 수 있습니다.
java:global lookups restrictions
java:global 검색을 사용하여 애플리케이션에 정의된 자원은 단지 현재 서버에서 배치된 애플리케이션에 의해 선언된 이름에 액세스하는데 사용될 수 있습니다.
appSecurity-2.0 기능 제한사항
- EJB 애플리케이션의 경우, SYSTEM_IDENTITY의 run-as-mode는 ibm-ejb-jar-ext.xml 파일의 확장 설정에서 지원되지 않습니다.
- getCallerIdentity API는 싱글톤 세션 Bean에 지원되지 않습니다.
- 역할 이름은 먼저 배치 디스크립터에서 @DeclareRoles 어노테이션 또는 <security-role/> 요소를 사용하여 역할 이름을 선언하지 않고 배치 디스크립터에서 요소나 HttpServletRequest.isUserInRole 및 EJBContext.isCallerInRole APIs에 의해 참조할 수 있습니다. 그러나, 역할은 전체 프로필에서 사용되기 전에 선언해야 합니다.
애플리케이션이 임베디드 Liberty 서버에서 시작되지 않음
임베디드 Liberty 서버를 시작하는 Java 프로세스가 libertyInstallDir/bin/tools/ws-javaagent.jar을 가리킨 -javaagent JVM 인수로 시작되었는지 확인하십시오. -javaagent JVM 인수가 사용되지 않은 경우 서버 런타임은 시작되지만 명백한 예외 없이 애플리케이션이 시작에 실패합니다.
![[8.5.5.6 이상]](../ng_v8556.gif)
WebSphere MQ 자원 어댑터 및 일반 JCA 지원 관련 제한사항
wasJmsClient-1.1 또는 wasJmsClient-2.0 기능을 사용하거나 일반 JCA 지원을 사용하면 WebSphere® MQ 자원 어댑터를 WebSphere Application Server Liberty 프로파일 내에서 사용할 수 있습니다.
WebSphere MQ 자원 어댑터 버전 7.5를 Liberty 프로파일 버전 8.5.5 이상에서 사용할 수 있습니다. JMS 2.0 자원 어댑터를 기반으로 하는 WebSphere MQ 자원 어댑터 버전 8.0을 사용하려면 JMS 2.0 자원 어댑터와 호환 가능한 최신 Liberty 프로파일 버전을 사용하고 있어야 합니다.
- Liberty 프로파일 버전 8.5.5.2에서 wasJmsClient-1.1 기능은 IBM MQ 자원 어댑터 버전 7.5.0.5 이상과 함께 사용해야 합니다.
- Liberty 프로파일 버전 8.5.5.6에서 wasJmsClient-2.0 기능은 IBM MQ 자원 어댑터 버전 8.0.0.3 이상과 함께 사용해야 합니다.
WebSphere MQ 자원 어댑터와 Liberty 프로파일 간 버전 호환성 정보에 대한 자세한 정보는 WebSphere MQ 자원 어댑터를 얻기 위한 참조를 참조하십시오.
- z/OS®에서 IBM® WebSphere MQ 자원 어댑터를 실행하려면 wasJmsClient-1.1 또는 wasJmsClient-2.0 기능을 사용해야 합니다.
- 추적 및 로깅은 일반 JCA를 사용하여 Liberty 추적 시스템 내에서 통합되지 않습니다. 추적은 별도의 파일에 기록되며 시스템 특성을 설정하여 사용으로 설정해야만 합니다. 추적을 사용으로 설정하는 프로시저는 Java™ Standard Environment를 위해 JMS 추적 기능에 대한 WebSphere MQ 클래스를 구성하는 것과 동일합니다. Java Standard Environment Trace stanza를 참조하십시오.
"dropins" 디렉토리에 있는 애플리케이션에는 버전화를 사용할 수 없음
"dropins" 디렉토리에 있는 애플리케이션의 경우 파일 이름 및 파일 확장자는 애플리케이션 모니터에 의해 애플리케이션의 유형을 판별하고 애플리케이션 ID 및 애플리케이션 이름을 생성하는 데 사용됩니다. 따라서 파일 이름 또는 파일 확장자를 사용하여 애플리케이션의 버전 번호를 지정할 수 없습니다. 프로덕션 환경에서는 "dropins" 디렉토리를 사용하지 않는 것이 좋습니다.
Admin Center 기능 제한사항
Bean 유효성 검증 기능의 제한사항
- OSGi 애플리케이션 내에서 Bean 유효성 검증이 지원되지 않습니다.
![[8.5.5.6 이상]](../ng_v8556.gif)
- OSGi 애플리케이션 내에서 Bean 유효성 검증이 지원되지 않습니다.
- beanValidation-1.0 기능이 포함된 validation.xml 파일에서 사용자 정의 ConstraintValidatorFactory 구현을 제공하는 애플리케이션은 Bean Validation 1.1 API에 대해 컴파일되지 않습니다.
동적 캐시 기능 제한사항
- 캐시 복제는 지원되지 않습니다.
- 랜덤 및 크기 기반 제거 기술을 사용하여 고성능 디스크 캐싱 모드만 지원됩니다.
- cachespec.xml 파일의 포틀릿 캐시 뿐만 아니라 웹 서비스 클라이언트 및 서버 측 캐싱에 대한 지원은 없습니다.
- SingleThreadModel 서블릿의 서블릿 캐싱에 대한 지원은 없습니다.
- 특성 파일을 사용한 캐시 구성 정의는 EJB(Enterprise JavaBeans)만 포함하는 JAR 파일에 지원되지 않습니다.
- 힙 캐시 크기 제한은 32비트 JVM(Java Virtual Machine)에 대해서만 작동합니다.
ejbLite-3.1 기능 제한사항
- 버전 3.0 이전의 EJB 모듈은 지원되지 않습니다. 이 제한사항은 .xml 파일 형식이 아니라 .xmi 파일 형식을 사용하는 바인딩과 확장기능은 지원되지 않음도 나타냅니다.
- 세션 Bean은 ejblocal 네임스페이스에 바인드되지 않으며 이는 JNDI 검색 및 ejb-ref 바인딩 이름이 java:global, java:app 또는 java:module 이름을 사용해야 함을 의미합니다. simple-binding-name 및 인터페이스 binding-name 요소는 ibm-ejb-jar-bnd.xml 파일에서 무시됩니다.
- Stateful Bean 패시베이션 디렉토리는 구성할 수 없습니다. 파일은 서버 작업 영역에 패시베이션됩니다.
![[8.5.5.6 이상]](../ng_v8556.gif)
eventLogging-1.0 기능 제한사항
- 실행 중인 서버에서 eventLogging-1.0 기능을 제거하면 배치된 웹 애플리케이션이 다시 시작됩니다.
![[8.5.5.6 이상]](../ng_v8556.gif)
jpa-2.1 기능 제한사항
jpa-2.1 기능의 경우, CORBA/RMI-IIOP를 통한 JPA 엔티티 교환을 위해서는 통신 중인 두 참가자가 모두 고유한 JPA 기능 레벨을 사용해야 합니다.
jsp-2.2 기능 제한사항
- 변환된 JSP 파일을 메모리에만 저장하기 위한 useInMemory 구성 옵션을 지원하지 않습니다.
monitor-1.0 기능 제한사항
- 기능이 server.xml 파일에서 제거되면 서버를 다시 시작하여 JAX-WS 애플리케이션이 작동하도록 해야 합니다.
![[8.5.5.6 이상]](../ng_v8556.gif)
requestTiming-1.0 기능 제한사항
- 실행 중인 서버에서 requestTiming-1.0 기능을 제거하면 배치된 웹 애플리케이션이 다시 시작됩니다.
- requestTiming-1.0 가능이 활성화된 경우 DayTrader 애플리케이션으로 측정될 때 가능한 최대 애플리케이션 처리량의 8% 가량 영향을 미치는 것으로 표시되었습니다. 애플리케이션에 대한 영향이 더하거나 덜해질 수 있지만 약간의 성능 저하가 감지될 수 있다는 점은 알아두어야 합니다.
wmqJmsClient-1.1 기능 제한사항
- Windows 환경 변수에서 PATH 변수가 WebSphere MQ 설치 bin 디렉토리를 지시하도록 수동으로 설정해야 합니다. 애플리케이션이 BINDING 연결 모드를 사용할 때 이 경로 변수를 설정해야 합니다.
- Java(일반적으로 Base Java라고 함)용 WebSphere MQ 클래스는 wmqJmsClient-1.1 기능에 포함되지 않습니다. 이는 다른 애플리케이션 서버용 자원 어댑터에 포함되지만, Java Enterprise Edition 환경의 Base Java API에는 권장되지 않습니다. 자세한 정보는 J2EE/JEE 환경에서 WebSphere MQ Java 인터페이스 사용을 참조하십시오.
- WebSphere MQ 자원 어댑터의 BINDINGS_THEN_CLIENT 전송 유형은 wmqJmsClient-1.1 기능에 지원되지 않습니다.
- AMS(Advanced Messaging Security) 기능은 wmqJmsClient-1.1 기능에 대해 포함되지 않습니다.
![[8.5.5.6 이상]](../ng_v8556.gif)
wmqJmsClient-2.0 기능 제한사항
- Windows 환경 변수에서 PATH 변수가 WebSphere MQ 설치 bin 디렉토리를 지시하도록 수동으로 설정해야 합니다. 애플리케이션이 BINDING 연결 모드를 사용할 때 이 경로 변수를 설정해야 합니다.
- Java(일반적으로 Base Java라고 함)용 WebSphere MQ 클래스는 wmqJmsClient-2.0 기능에 포함되지 않습니다. 이는 다른 애플리케이션 서버용 자원 어댑터에 포함되지만, Java Enterprise Edition 환경의 Base Java API에는 권장되지 않습니다. 자세한 정보는 J2EE/JEE 환경에서 WebSphere MQ Java 인터페이스 사용을 참조하십시오.
- WebSphere MQ 자원 어댑터의 BINDINGS_THEN_CLIENT 전송 유형은 wmqJmsClient-2.0 기능에 지원되지 않습니다.
concurrent-1.0 기능 제한사항
concurrent-1.0 기능의 경우
다음과 같은 제한사항이 적용됩니다.
securityContext 유형의 스레드 컨텍스트의 경우 JAAS 로그인 모듈을 사용하여 추가되지 않은 주제에 있는 사용자 정의 정보는 전파되지 않습니다. 예를 들어, 제출자의 주제에 TAI에 의해 추가된 사용자 정의 프린시펄이 포함되어 있으면 전파되는 주제에는 이 사용자 정의 프린시펄이 포함되지 않습니다.
![[8.5.5.6 이상]](../ng_v8556.gif)
jacc-1.5 기능의 제한사항
- 애플리케이션 ear 파일의 ibm-application-bnd.xml 파일 또는 ibm-application-bnd.xmi 파일에 있는 권한 정보(권한 속성의 사용자 및 그룹 속성)
- server.xml 파일에 있는 권한 정보(application-bnd 요소에서 보안 역할 속성의 사용자, 그룹 및 특별 주제 속성)