구성 가이드
실행 중인 애플리케이션 및 서비스를 포함한 Red Hat JBoss Enterprise Application Platform 설정 및 유지 관리 방법.
초록
JBoss EAP 문서에 대한 피드백 제공 링크 복사링크가 클립보드에 복사되었습니다!
오류를 보고하거나 문서를 개선하기 위해 Red Hat Jira 계정에 로그인하여 문제를 제출하십시오. Red Hat Jira 계정이 없는 경우 계정을 생성하라는 메시지가 표시됩니다.
프로세스
- 티켓을 생성하려면 다음 링크를 클릭하십시오.
- 요약 에 문제에 대한 간략한 설명을 입력합니다.
- 설명에서 문제 또는 개선 사항에 대한 자세한 설명을 제공합니다. 문서에서 문제가 발생한 위치에 URL을 포함합니다.
- Submit 을 클릭하고 문제를 적절한 문서 팀으로 라우팅합니다.
보다 포괄적 수용을 위한 오픈 소스 용어 교체 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
1장. 소개 링크 복사링크가 클립보드에 복사되었습니다!
이 가이드를 사용하여 JBoss EAP를 구성하기 전에 최신 버전의 JBoss EAP가 다운로드 및 설치된 것으로 가정합니다. 설치 방법은 Red Hat JBoss Enterprise Application Platform 설치 방법을 참조하십시오.
JBoss EAP의 설치 위치는 호스트 시스템마다 다르기 때문에 이 가이드에서는 설치 위치를 EAP_HOME 로 나타냅니다. 관리 작업을 수행할 때 EAP_HOME 대신 JBoss EAP 설치의 실제 위치를 사용해야 합니다.
2장. JBoss EAP 시작 및 중지 링크 복사링크가 클립보드에 복사되었습니다!
2.1. JBoss EAP 시작 및 중지 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP를 시작하는 방법은 JBoss EAP를 독립 실행형 서버로 실행하는지 또는 관리형 도메인의 서버에서 실행 중인지에 따라 달라집니다.
JBoss EAP를 중지하는 방법은 JBoss EAP의 대화형 또는 백그라운드 인스턴스를 실행 중인지에 따라 다릅니다.
2.1.1. JBoss EAP를 독립 실행형 서버로 시작 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP를 독립 실행형 서버로 실행하여 JBoss EAP의 단일 인스턴스를 관리할 수 있습니다.
서버는 일시 중지된 상태로 시작되고 필요한 모든 서비스가 시작될 때까지 요청을 수락하지 않습니다. 필수 서비스가 시작되면 서버가 일반 실행 상태로 전환되고 요청을 수락할 수 있습니다.
이 시작 스크립트는 EAP_HOME/bin/standalone.conf 파일 또는 Windows Server의 standalone.conf. skip를 사용하여 JVM 옵션과 같은 기본 설정을 설정합니다. 이 파일에서 설정을 사용자 지정할 수 있습니다.
터미널에서 시작 스크립트 인수 목록을 보려면 --help 인수를 사용합니다.
JBoss EAP는 기본적으로 standalone.xml 구성 파일을 사용하지만 다른 파일을 사용하여 시작할 수 있습니다.
사전 요구 사항
- Install JBoss EAP.
프로세스
- 터미널을 엽니다.
다음 스크립트를 사용하여 JBoss EAP를 독립 실행형 서버로 시작합니다.
EAP_HOME/bin/standalone.sh
$ EAP_HOME/bin/standalone.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Windows Server의 경우
EAP_HOME\bin\standalone.extension 스크립트를사용합니다.
-
Windows Server의 경우
2.1.2. 관리형 도메인에서 서버용 JBoss EAP 시작 링크 복사링크가 클립보드에 복사되었습니다!
관리형 도메인 운영 모드에서 JBoss EAP를 실행하여 단일 도메인 컨트롤러를 사용하여 여러 JBoss EAP 인스턴스를 관리할 수 있습니다.
서버는 일시 중단된 상태로 시작하고 필요한 모든 서비스가 시작될 때까지 요청을 수락하지 않습니다. 필수 서비스가 시작되면 서버는 일반 실행 상태로 전환되고 요청을 수락하기 시작합니다.
도메인의 서버 그룹보다 먼저 도메인 컨트롤러를 시작해야 합니다.
사전 요구 사항
- Install JBoss EAP.
프로세스
- 터미널을 엽니다.
먼저 도메인 컨트롤러를 시작한 다음 다음 스크립트를 사용하여 연결된 각 호스트 컨트롤러를 시작합니다.
EAP_HOME/bin/domain.sh
$ EAP_HOME/bin/domain.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Windows Server의 경우
EAP_HOME\bin\domain.#159 스크립트를사용합니다.
-
Windows Server의 경우
이 시작 스크립트는 EAP_HOME/bin/domain.conf 파일 또는 Windows Server의 경우 domain.conf. #159를 사용하여 JVM 옵션과 같은 기본 기본 설정을 설정합니다. 이 파일에서 설정을 사용자 지정할 수 있습니다.
JBoss EAP는 기본적으로 host.xml 호스트 구성 파일을 사용하지만 다른 구성 파일을 사용하여 시작할 수 있습니다.
관리형 도메인을 설정할 때 시작 스크립트에 추가 인수를 전달해야 합니다.
사용 가능한 모든 시작 스크립트 인수의 전체 목록을 보려면 --help 인수를 사용합니다.
2.1.3. JBoss EAP의 대화형 인스턴스 중지 링크 복사링크가 클립보드에 복사되었습니다!
독립 실행형 서버의 대화형 인스턴스 또는 도메인 컨트롤러를 시작한 터미널에서 중지할 수 있습니다.
사전 요구 사항
- 실행 중인 JBoss EAP 인스턴스가 있어야 합니다.
프로세스
-
JBoss EAP를 시작한 터미널에서
Ctrl+C를 누릅니다.
2.1.4. JBoss EAP의 백그라운드 인스턴스 중지 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI에 연결하여 관리형 도메인에서 독립 실행형 서버 또는 서버의 실행 중인 인스턴스를 종료할 수 있습니다.
사전 요구 사항
- 터미널에서 실행 중인 JBoss EAP 인스턴스가 있어야 합니다.
프로세스
다음 스크립트를 사용하여 관리 CLI를 시작합니다.
EAP_HOME/bin/jboss-cli.sh --connect
$ EAP_HOME/bin/jboss-cli.sh --connectCopy to Clipboard Copied! Toggle word wrap Toggle overflow shutdown명령을 실행합니다.shutdown
shutdownCopy to Clipboard Copied! Toggle word wrap Toggle overflow
관리형 도메인의 서버에서 JBoss EAP의 인스턴스를 실행하는 경우 shutdown 명령과 함께 --host 인수를 사용하여 종료할 호스트 이름을 지정해야 합니다.
2.2. 관리자 전용 모드에서 JBoss EAP 실행 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 관리자 전용 모드에서 시작할 수 있습니다. 이 모드를 사용하면 다른 런타임 서비스를 시작하거나 최종 사용자 요청을 처리하지 않고도 JBoss EAP를 실행하고 관리 요청을 수락할 수 있습니다. 관리자 전용 모드는 관리형 도메인뿐만 아니라 독립 실행형 서버 모두에서 사용할 수 있습니다.
2.2.1. 관리자 전용 모드에서 독립 실행형 서버 실행 링크 복사링크가 클립보드에 복사되었습니다!
독립 실행형 서버를 사용하여 관리자 전용 모드에서 JBoss EAP 인스턴스를 실행할 수 있습니다.
사전 요구 사항
- JBoss EAP가 설치되어 있어야 합니다.
프로세스
- 터미널을 엽니다.
관리자 전용 모드에서 JBoss EAP 인스턴스를 시작하려면 JBoss EAP 인스턴스를 시작할 때
--start-mode=admin-only런타임 인수를 사용합니다.EAP_HOME/bin/standalone.sh --start-mode=admin-only
$ EAP_HOME/bin/standalone.sh --start-mode=admin-onlyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 서버의 실행 중인 모드를 확인합니다. 서버가 관리자 전용 모드에서 실행되는 경우에만 결과는
ADMIN_ONLY가 됩니다.:read-attribute(name=running-mode) { "outcome" => "success", "result" => "ADMIN_ONLY" }:read-attribute(name=running-mode) { "outcome" => "success", "result" => "ADMIN_ONLY" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고또한 다음 명령을 사용하여 JBoss EAP가 시작된 초기 실행 모드를 확인할 수 있습니다.
/core-service=server-environment:read-attribute(name=initial-running-mode)
/core-service=server-environment:read-attribute(name=initial-running-mode)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다른 런타임 스위치로 JBoss EAP 인스턴스를 중지하고 시작하는 것 외에도 관리 CLI를 사용하여 다른 모드로 다시 로드할 수도 있습니다.
서버를 관리자 전용 모드로 다시 로드하려면 다음을 수행합니다.
reload --start-mode=admin-only
reload --start-mode=admin-onlyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 일반 모드로 다시 로드하려면 다음을 수행합니다.
reload --start-mode=normal
reload --start-mode=normalCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고서버가 관리자 전용 모드에서 시작되고
reload명령에--start-mode인수가 지정되지 않은 경우 서버가 일반 모드로 시작됩니다.
2.2.2. 관리자 전용 모드에서 관리형 도메인 실행 링크 복사링크가 클립보드에 복사되었습니다!
관리형 도메인에서 도메인 컨트롤러가 관리자 전용 모드로 시작되면 보조 호스트 컨트롤러에서 들어오는 연결을 허용하지 않습니다. 관리자 전용 모드에서 시작된 호스트 컨트롤러는 서버를 시작하지 않습니다.
사전 요구 사항
- JBoss EAP가 설치되어 있어야 합니다.
프로세스
- 터미널을 엽니다.
--admin-onlyruntime 인수를 전달하여 관리자 전용 모드에서 호스트 컨트롤러를 시작합니다.EAP_HOME/bin/domain.sh --admin-only
$ EAP_HOME/bin/domain.sh --admin-onlyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 호스트 컨트롤러의 실행 중인 모드를 확인합니다. 호스트 컨트롤러가 관리자 전용 모드에서 실행되는 경우에만 결과는
ADMIN_ONLY가 됩니다./host=HOST_NAME:read-attribute(name=running-mode) { "outcome" => "success", "result" => "ADMIN_ONLY" }/host=HOST_NAME:read-attribute(name=running-mode) { "outcome" => "success", "result" => "ADMIN_ONLY" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다른 런타임 스위치로 호스트 컨트롤러를 중지하고 시작하는 것 외에도 관리 CLI를 사용하여 다른 모드로 다시 로드할 수도 있습니다.
호스트 컨트롤러를 관리자 전용 모드로 다시 로드하려면 다음을 수행합니다.
reload --host=HOST_NAME --admin-only=true
reload --host=HOST_NAME --admin-only=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트 컨트롤러를 일반 모드로 다시 로드하려면 다음을 수행합니다.
reload --host=HOST_NAME --admin-only=false
reload --host=HOST_NAME --admin-only=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고호스트 컨트롤러가 관리자 전용 모드에서 시작되고
--admin-only인수가다시 로드명령에 지정되지 않은 경우 호스트 컨트롤러가 일반 모드로 시작됩니다.
2.3. JBoss EAP 일시 중단 및 종료 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 정상적으로 일시 중지되거나 종료될 수 있습니다. 이렇게 하면 새 요청을 수락하지 않고도 활성 요청이 정상적으로 완료될 수 있습니다. 시간 초과 값은 일시 중지 또는 종료 작업이 활성 요청이 완료될 때까지 대기하는 시간을 지정합니다. 서버가 일시 중지되는 동안 관리 요청이 계속 처리됩니다.
일시 중단 및 정상 종료는 서버 전체 조정되어 요청이 서버에 들어오는 진입점에 중점을 둡니다. 다음 하위 시스템은 일시 중지 및 정상 종료를 지원합니다.
- Cryostat
-
undertow하위 시스템은 모든 요청이 완료될 때까지 기다립니다. - mod_cluster
-
modcluster하위 시스템은 로드 밸런서에 서버가PRE_SUSPEND단계에서 일시 중단됨을 알립니다. - Jakarta Enterprise Cryostats
-
Cryo
stat3하위 시스템은 모든 원격 세션 빈 요청 및 Cryostat 메시지 전달이 완료될 때까지 기다립니다.PRE_SUSPEND단계에서 Cryostat에 대한 전달이 중지됩니다. Jakarta Enterprise Cryostat 타이머는 일시 중지되며 서버가 다시 시작될 때 누락된 타이머가 활성화됩니다. - 트랜잭션
일시 중지되면 서버는 새 요청을 허용하지 않지만 진행 중 트랜잭션 및 요청은 완료되거나 시간 초과 기간이 만료될 때까지 계속될 수 있습니다. 예를 들어 서버는 일시 중단 서버에서 활성 트랜잭션과 관련된 들어오는 원격 호출을 허용합니다.
이는 XTS 트랜잭션과 관련된 웹 서비스 요청에도 적용됩니다.
정상 종료 전에 트랜잭션을 시작하고 실패하는 경우(예: 필요한 데이터베이스를 사용할 수 없음) 복구 관리자가 정상 종료 절차로 인해 작동하지 않을 수 있으므로 트랜잭션이 자동으로 복구되지 않습니다. 복구 관리자를 사용하고 실패한 트랜잭션을 완료하려면 JBoss EAP 인스턴스를 다시 시작해야 합니다.
기본적으로 Cryostat
3하위 시스템에 대해 트랜잭션 정상 종료가 비활성화됩니다. 일시 중지하기 전에 서버가 Jakarta Enterprise Cryostats 관련 트랜잭션이 완료될 때까지 대기하려면 트랜잭션 정상 종료를 활성화해야 합니다. 예를 들면 다음과 같습니다./subsystem=ejb3:write-attribute(name=enable-graceful-txn-shutdown,value=true)
/subsystem=ejb3:write-attribute(name=enable-graceful-txn-shutdown,value=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Jakarta Enterprise Cryostats 클라이언트가 정상 종료 중에 클러스터 노드를 호출할 수 있으므로 이 동작은 기본적으로 비활성화되어 있습니다. 클러스터 환경에서 서버는 원격 호출에 더 이상 노드를 사용할 수 없음을 트랜잭션이 완료된 후 원격 클라이언트에 알립니다. 클라이언트가 이 기간 동안(처리가 완료되기 전에) 새 요청을 종료하는 노드에 보내는 경우 노드는 요청을 거부합니다.
- Jakarta Concurrency
서버는 모든 활성 작업이 완료될 때까지 기다립니다. 대기 중인 모든 작업은 건너뜁니다. Jakarta Concurrency에는 지속성이 없으므로 건너뛰는 대기 중인 작업이 손실됩니다.
서버가 일시 중단된 상태이지만 예약된 작업은 예약된 시간에 계속 실행되지만
java.lang.IllegalStateException이 발생합니다. 서버가 다시 시작되면 예약된 작업이 정상적으로 계속 실행되고 대부분의 경우 작업을 다시 예약할 필요가 없습니다.- batch
- 서버는 제한 시간 내에 실행 중인 모든 작업을 중지하고 예약된 모든 작업을 지연합니다.
정상 종료는 현재 새 인바운드 Jakarta 메시징 메시지를 거부하지 않습니다. Jakarta Batch 작업과 Jakarta Concurrency 작업이 현재 진행 중일 수 있지만 실행 시 현재 시간 초과 창을 통과하는 Jakarta Concurrency 작업이 제출되었습니다.
요청은 request-controller 하위 시스템에서 추적합니다. 이 하위 시스템이 없으면 일시 중지 및 재개 기능이 제한되며 서버는 요청을 일시 중지하거나 종료하기 전에 요청이 완료될 때까지 기다리지 않습니다. 이 기능이 필요하지 않은 경우 약간의 성능 향상을 위해 request-controller 하위 시스템을 제거할 수 있습니다.
2.3.1. 서버 일시 중단 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 8.0은 서버 작업을 정상적으로 일시 중단하는 일시 중단 모드를 제공합니다. 이렇게 하면 모든 활성 요청이 정상적으로 완료되지만 새 요청을 수락하지 않습니다. 서버가 일시 중지되면 종료되거나 실행 중인 상태로 반환되거나 유지보수를 수행하기 위해 일시 중지된 상태로 되돌릴 수 있습니다.
관리 인터페이스는 서버를 일시 중지하면 영향을 받지 않습니다.
관리 콘솔 또는 관리 CLI를 사용하여 서버를 일시 중지하고 다시 시작할 수 있습니다.
서버 일시 중단 상태 확인
서버 일시 중단 상태는 다음 관리 CLI 명령을 사용하여 볼 수 있습니다. 결과 값은 RUNNING,PRE_SUSPEND,SUSPENDING 또는 SUSPENDED 중 하나입니다.
독립 실행형 서버의 일시 중단 상태를 확인합니다.
:read-attribute(name=suspend-state)
:read-attribute(name=suspend-state)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리형 도메인에서 서버의 일시 중단 상태를 확인합니다.
/host=primary/server=server-one:read-attribute(name=suspend-state)
/host=primary/server=server-one:read-attribute(name=suspend-state)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
일시 중단
다음 관리 CLI 명령을 사용하여 활성 요청이 완료될 때까지 대기하는 시간 제한 값(초)을 지정하여 서버를 일시 중지합니다. 기본값은 0 이며 즉시 일시 중지됩니다. 값이 -1 이면 모든 활성 요청이 완료될 때까지 서버가 무기한 대기합니다.
각 예제에서는 일시 중지하기 전에 요청이 완료될 때까지 최대 60초 동안 기다립니다.
독립 실행형 서버를 일시 중지합니다.
:suspend(suspend-timeout=60)
:suspend(suspend-timeout=60)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리형 도메인의 모든 서버를 일시 중지합니다.
:suspend-servers(suspend-timeout=60)
:suspend-servers(suspend-timeout=60)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리형 도메인에서 단일 서버를 일시 중지합니다.
/host=primary/server-config=server-one:suspend(suspend-timeout=60)
/host=primary/server-config=server-one:suspend(suspend-timeout=60)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 그룹의 모든 서버를 일시 중지합니다.
/server-group=main-server-group:suspend-servers(suspend-timeout=60)
/server-group=main-server-group:suspend-servers(suspend-timeout=60)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 호스트 컨트롤러에서 관리하는 모든 서버를 일시 중지합니다.
/host=primary:suspend-servers(suspend-timeout=60)
/host=primary:suspend-servers(suspend-timeout=60)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
resume
resume 명령은 새 요청을 수락하도록 서버를 일반 실행 상태로 반환합니다. 호스트, 서버, 서버 그룹 또는 도메인 수준에서 명령을 시작할 수 있습니다. 예를 들면 다음과 같습니다.
:resume
:resume
Suspended 상태에서 서버 시작
서버가 다시 시작될 때까지 서버에서 요청을 수락하지 않도록 일시 중지된 상태에서 서버를 시작할 수 있습니다.
독립 실행형 서버를 일시 중단된 상태로 시작하려면 JBoss EAP 인스턴스를 시작할 때
--start-mode=suspend런타임 인수를 사용합니다.EAP_HOME/bin/standalone.sh --start-mode=suspend
$ EAP_HOME/bin/standalone.sh --start-mode=suspendCopy to Clipboard Copied! Toggle word wrap Toggle overflow 관리형 도메인 서버를 일시 중단된 상태로 시작하려면 관리 CLI 명령에서
start-mode=suspend인수를시작작업에 전달합니다./host=HOST_NAME/server-config=SERVER_NAME:start(start-mode=suspend)
/host=HOST_NAME/server-config=SERVER_NAME:start(start-mode=suspend)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고start-mode인수를 서버의다시 로드및재시작작업에 전달할 수도 있습니다.관리형 도메인 서버 그룹의 모든 서버를 일시 중단된 상태로 시작하려면 관리 CLI 명령에서
start-mode=suspend인수를start-servers작업에 전달합니다./server-group=SERVER_GROUP_NAME:start-servers(start-mode=suspend)
/server-group=SERVER_GROUP_NAME:start-servers(start-mode=suspend)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고start-mode인수를 서버 그룹에 대한reload-servers및restart-servers작업에 전달할 수도 있습니다.
2.3.2. 관리 CLI를 사용하여 정상적으로 서버 종료 링크 복사링크가 클립보드에 복사되었습니다!
서버를 중지할 때 적절한 시간 초과 값이 지정된 경우 서버가 정상적으로 종료됩니다. 명령이 실행되면 서버가 일시 중지되고 종료되기 전에 모든 요청이 완료될 때까지 지정된 시간 초과까지 기다립니다.
다음 관리 CLI 명령을 사용하여 서버를 정상적으로 종료합니다. 서버가 활성 요청이 완료될 때까지 대기할 시간 초과 값(초)을 지정합니다. 기본값은 서버를 즉시 종료하는 0 입니다. 값 -1 을 사용하면 서버가 종료되기 전에 모든 활성 요청이 완료될 때까지 무기한 대기합니다.
각 예제에서는 요청을 종료하기 전에 최대 60초 동안 기다립니다.
독립 실행형 서버를 정상적으로 종료합니다.
shutdown --suspend-timeout=60
shutdown --suspend-timeout=60Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리형 도메인의 모든 서버를 정상적으로 중지합니다.
:stop-servers(suspend-timeout=60)
:stop-servers(suspend-timeout=60)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리형 도메인에서 정상적으로 단일 서버를 중지합니다.
/host=primary/server-config=server-one:stop(suspend-timeout=60)
/host=primary/server-config=server-one:stop(suspend-timeout=60)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 그룹의 모든 서버를 정상적으로 중지합니다.
/server-group=main-server-group:stop-servers(suspend-timeout=60)
/server-group=main-server-group:stop-servers(suspend-timeout=60)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트 컨트롤러와 관리하는 모든 서버를 종료합니다.
/host=primary:shutdown(suspend-timeout=60)
/host=primary:shutdown(suspend-timeout=60)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
suspend-timeout 속성은 호스트 컨트롤러가 아닌 호스트 컨트롤러에서 관리하는 서버에만 적용됩니다.
OS 신호를 사용하여 정상적으로 서버 종료
org.wildfly.sigterm.suspend.timeout 시스템 속성을 설정한 다음 kill -15 PID 와 같은 OS TERM 신호를 전송하여 서버를 정상적으로 종료할 수 있습니다. 기본적으로 이 동작은 관리 CLI의 shutdown --suspend-timeout=0 명령과 동일하므로 현재 처리 요청이 즉시 종료됩니다. 제한 시간은 org.wildfly.sigterm.suspend.timeout 시스템 속성에서 구성할 수 있으며, 서버가 종료되기 전에 요청이 완료될 때까지 대기하는 최대 시간(초)을 나타냅니다. 값 -1 은 서버가 무기한 대기함을 나타냅니다.
관리형 도메인에서는 서버를 종료하는 데 OS 신호를 사용해서는 안 됩니다. 대신 관리 CLI 또는 관리 콘솔을 사용하여 호스트 컨트롤러를 사용하여 서버를 종료해야 합니다.
-Xrs java 인수가 JVM 옵션에 전달되는 경우 또는 전송된 신호가 하나가 아닌 경우와 같이 JVM이 신호 처리를 비활성화하도록 구성된 경우 또는 KILL 신호가 전송되는 경우와 같이 프로세스가 응답할 수 있는 경우 OS 신호를 사용하는 정상 종료는 작동하지 않습니다.
2.4. JBoss EAP 시작 및 중지(RPM 설치) 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP를 시작하고 중지하는 것은 RPM 설치 시 ZIP 또는 설치 관리자 설치에 비해 다릅니다.
2.4.1. JBoss EAP의 RPM 설치 시작 링크 복사링크가 클립보드에 복사되었습니다!
명령을 사용하여 독립 실행형 서버 또는 관리형 도메인 운영 모드에서 JBoss EAP의 RPM 설치를 시작할 수 있습니다. 다음 명령은 RHEL(Red Hat Enterprise Linux) 8 이상 버전과만 호환됩니다.
독립 실행형 서버로 JBoss EAP 시작(RPM 설치)
sudo systemctl start eap8-standalone.service
$ sudo systemctl start eap8-standalone.service
이렇게 하면 기본적으로 standalone.xml 구성 파일을 사용하여 JBoss EAP가 시작됩니다. RPM 서비스 구성 파일에서 속성을 설정하여 다른 독립 실행형 서버 구성 파일로 JBoss EAP를 시작할 수 있습니다. 자세한 내용은 아래의 RPM 서비스 속성 구성 섹션을 참조하십시오.
관리형 도메인에서 JBoss EAP 시작(RPM 설치)
sudo systemctl start eap8-domain.service
$ sudo systemctl start eap8-domain.service
그러면 기본적으로 host.xml 구성 파일을 사용하는 JBoss EAP가 시작됩니다. RPM 서비스 구성 파일에서 속성을 설정하여 다른 관리형 도메인 구성 파일로 JBoss EAP를 시작할 수 있습니다. 자세한 내용은 아래의 RPM 서비스 속성 구성 섹션을 참조하십시오.
2.4.2. RPM 서비스 속성 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 JBoss EAP 설치를 위한 RPM 서비스 속성 및 기타 시작 옵션을 구성하는 방법을 설명합니다. 수정 전에 구성 파일을 백업하는 것이 좋습니다.
RPM 설치에 사용 가능한 모든 시작 옵션 목록은 RPM 서비스 구성 속성 섹션을 참조하십시오.
Red Hat Enterprise Linux 7 이상의 경우 RPM 서비스 구성 파일이 systemd 를 사용하여 로드되므로 변수 표현식이 확장되지 않습니다.
서버 구성 파일을 지정합니다.
독립 실행형 서버를 시작할 때
standalone.xml파일이 기본적으로 사용됩니다. 관리형 도메인에서 실행하는 경우 기본적으로host.xml파일이 사용됩니다. 적절한 RPM 구성 파일(예: Cryostat8-standalone.conf)에서WILDFLY_SERVER_CONFIG속성을 설정하여 다른 구성 파일로 JBoss EAP를 시작할 수 있습니다.WILDFLY_SERVER_CONFIG=standalone-full.xml
WILDFLY_SERVER_CONFIG=standalone-full.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 IP 주소에 바인딩합니다.
기본적으로 JBoss EAP RPM 설치는
0.0.0.0에 바인딩됩니다. 적절한 RPM 구성 파일 (예: Cryostat8-standalone.conf)에서WILDFLY_BIND속성을 설정하여 JBoss EAP를 특정 IP 주소에 바인딩할 수 있습니다.WILDFLY_BIND=192.168.0.1
WILDFLY_BIND=192.168.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고관리 인터페이스를 특정 IP 주소에 바인딩하려면 다음 예와 같이 JBoss EAP 시작 구성 파일에서 이 인터페이스를 구성할 수 있습니다.
JVM 옵션 또는 Java 속성을 설정합니다.
시작 구성 파일을 편집하여 JBoss EAP 시작 스크립트에 전달할 JVM 옵션 또는 Java 속성을 지정할 수 있습니다. 이 파일은 독립 실행형 서버의 경우
EAP_HOME/bin/standalone.conf입니다. 관리형 도메인의 경우EAP_HOME/bin/domain.conf입니다. 다음 예제에서는 힙 크기를 구성하고 JBoss EAP 관리 인터페이스를 IP 주소에 바인딩합니다.JAVA_OPTS="$JAVA_OPTS -Xms2048m -Xmx2048m" JAVA_OPTS="$JAVA_OPTS -Djboss.bind.address.management=192.168.0.1"
JAVA_OPTS="$JAVA_OPTS -Xms2048m -Xmx2048m" JAVA_OPTS="$JAVA_OPTS -Djboss.bind.address.management=192.168.0.1"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고필요한 경우 JBoss EAP 바인딩 주소는
WILDFLY_BIND속성을 사용하여 구성해야 하며 여기에서jboss.bind.address표준 속성을 사용하지 않아야 합니다.
속성의 이름이 /usr/lib/systemd/system/eap8-standalone.service:, 및 JBoss EAP 시작 구성 파일(예: EAP_HOME/bin/standalone.conf )에 모두 동일한 이름이 있는 경우 우선순위를 사용하는 값은 JBoss EAP 시작 구성 파일에서 우선합니다. 이러한 속성 중 하나는 JAVA_HOME 입니다.
2.4.3. JBoss EAP의 RPM 설치 중지 링크 복사링크가 클립보드에 복사되었습니다!
명령을 사용하여 독립 실행형 서버 또는 관리형 도메인 운영 모드에서 JBoss EAP의 RPM 설치를 중지할 수 있습니다. 다음 명령은 RHEL(Red Hat Enterprise Linux) 8 이상 버전과만 호환됩니다.
JBoss EAP를 독립 실행형 서버로 중지(RPM 설치)
sudo systemctl stop eap8-standalone.service
$ sudo systemctl stop eap8-standalone.service
관리형 도메인에서 JBoss EAP 중지(RPM 설치)
sudo systemctl stop eap8-domain.service
$ sudo systemctl stop eap8-domain.service
RPM 설치에 사용 가능한 모든 시작 옵션 목록은 RPM 서비스 구성 파일 섹션을 참조하십시오.
2.5. Windows Server용 PowerShell 스크립트 링크 복사링크가 클립보드에 복사되었습니다!
PowerShell 스크립트 컬렉션은 기술 프리뷰로만 제공됩니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있으며 Red Hat은 해당 기능을 프로덕션용으로 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
JBoss EAP에는 대부분의 JBoss EAP 관리 스크립트에 해당하는 PowerShell 스크립트가 포함되어 있습니다. 여기에는 Microsoft Windows Server에서 JBoss EAP를 시작하는 PowerShell 스크립트가 포함됩니다.
JBoss EAP PowerShell 스크립트는 테스트된 버전의 Windows Server에서 실행되는 PowerShell 버전 2 이상에서 작동하도록 설계되었습니다.
JBoss EAP PowerShell 스크립트는 EAP_HOME\bin 에 있으며 JBoss EAP 배치 스크립트와 거의 동일한 방식으로 사용됩니다.
예를 들어 standalone-full.xml 구성 파일을 사용하여 독립 실행형 JBoss EAP 서버를 시작하려면 다음 PowerShell 명령을 사용합니다.
.\standalone.ps1 "-c=standalone-full.xml"
.\standalone.ps1 "-c=standalone-full.xml"
JBoss EAP PowerShell 스크립트의 인수는 따옴표로 묶어야 합니다.
3장. JBoss EAP 관리 링크 복사링크가 클립보드에 복사되었습니다!
명령줄 관리 CLI, 웹 기반 관리 콘솔, Java API 또는 HTTP API를 사용하여 JBoss EAP를 구성할 수 있습니다. 이러한 관리 인터페이스를 사용하여 변경한 내용은 자동으로 유지되며 관리 API에서 XML 구성 파일을 덮어씁니다. 관리 CLI 및 관리 콘솔은 기본 방법이며 XML 구성 파일을 수동으로 편집하지 않는 것이 좋습니다. 다음은 JBoss EAP를 시작할 때 관리 CLI를 사용하여 수정할 수 있는 구성 파일의 예입니다.
JBoss EAP는 독립 실행형 서버 또는 관리형 도메인당 하나의 구성 파일을 사용하여 단순화된 구성을 사용합니다. 다른 구성 파일을 지정하지 않으면 JBoss EAP는 다음 예제 구성 파일 중 하나를 사용합니다.
-
독립 실행형 서버에 대한 기본 구성은
EAP_HOME/standalone/configuration/standalone.xml파일에 저장됩니다. -
관리형 도메인에 대한 기본 구성은
EAP_HOME/domain/configuration/domain.xml파일에 저장됩니다. -
호스트 컨트롤러에 대한 기본 구성은
EAP_HOME/domain/configuration/host.xml파일에 저장됩니다.
JBoss EAP는 YAML 구성 파일을 사용하여 독립 실행형 서버 구성을 지원합니다. 자세한 내용은 YAML 구성 파일을 사용하여 독립 실행형 서버 구성 을 참조하십시오.
관리형 도메인의 서버에서 YAML 구성은 지원되지 않습니다.
3.1. 하위 시스템, 확장 및 프로필 정보 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP의 다른 하위 시스템은 JBoss EAP 기능의 다양한 측면을 구성합니다. 예를 들어 로깅 하위 시스템은 애플리케이션 및 서버 로깅을 구성합니다.
확장 은 서버의 핵심 기능을 확장하는 모듈입니다. 확장 기능은 배포에 필요한 대로 로드되며 더 이상 필요하지 않으면 언로드됩니다.
하위 시스템은 특정 확장에 대한 구성 옵션을 제공합니다. 사용 가능한 하위 시스템에 대한 자세한 내용은 JBoss EAP Cryostat 개요 를 참조하십시오.
하위 시스템 구성 컬렉션은 서버에 대한 요구 사항을 충족하도록 구성된 프로필 을 구성합니다. 독립 실행형 서버에는 이름이 지정되지 않은 단일 프로필이 있습니다. 관리형 도메인은 도메인의 서버 그룹에서 사용할 여러 프로필을 정의할 수 있습니다.
관리 콘솔 또는 관리 CLI 사용
관리 콘솔과 관리 CLI는 모두 유효하며 JBoss EAP 인스턴스의 구성을 업데이트하는 방법이 지원됩니다. 둘 중 하나를 결정하는 것은 선호의 문제입니다. 그래픽 웹 기반 인터페이스를 사용하려는 사용자는 관리 콘솔을 사용해야 합니다. 명령줄 인터페이스를 선호하는 사용자는 관리 CLI를 사용해야 합니다.
3.2. 관리 사용자 링크 복사링크가 클립보드에 복사되었습니다!
기본 JBoss EAP 구성은 사용자가 인증 없이도 로컬 호스트의 관리 CLI에 액세스할 수 있도록 로컬 인증을 제공합니다.
그러나 관리 CLI에 원격으로 액세스하거나 로컬 호스트에서 트래픽이 시작된 경우에도 원격 액세스로 간주되는 관리 콘솔을 사용하려면 관리 사용자를 추가해야 합니다. 관리 사용자를 추가하기 전에 관리 콘솔에 액세스하려고 하면 오류 메시지가 표시됩니다.
그래픽 설치 프로그램을 사용하여 JBoss EAP를 설치하는 경우 설치 프로세스 중에 관리 사용자가 생성됩니다.
이 가이드에서는 기본 제공 인증을 위해 새 사용자를 속성 파일에 추가하는 유틸리티인 add-user 스크립트를 사용하여 JBoss EAP에 대한 간단한 사용자 관리에 대해 설명합니다.
LDAP 또는 RBAC(역할 기반 액세스 제어)와 같은 고급 인증 및 권한 부여 옵션은 JBoss EAP 보안 아키텍처 의 코어 관리 인증 섹션을 참조하십시오.
3.2.1. 관리 사용자 추가 링크 복사링크가 클립보드에 복사되었습니다!
add-user 유틸리티 스크립트를 사용하여 관리 사용자를 추가할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
add-user유틸리티 스크립트를 실행하고 프롬프트를 따릅니다.EAP_HOME/bin/add-user.sh
$ EAP_HOME/bin/add-user.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Windows Server의 경우
EAP_HOME\bin\add-user.extension 스크립트를사용합니다.Enter를눌러 기본 옵션a를 선택하여 관리 사용자를 추가합니다.이 사용자는 ManagementRealm 에 추가되며 관리 콘솔 또는 관리 CLI를 사용하여 관리 작업을 수행할 수 있는 권한이 부여됩니다. 다른 선택 사항인
b는 애플리케이션에 사용되며 특정 권한을 제공하지 않는 ApplicationRealm 에 사용자를 추가합니다.원하는 사용자 이름과 암호를 입력합니다. 암호를 확인하라는 메시지가 표시됩니다.
참고사용자 이름은 임의의 숫자 및 순서로 다음 문자만 포함할 수 있습니다.
- 영숫자 (a-z, A-Z, 0-9)
- 대시(-), 마침표(.), 쉼표(,), at sign(@)
- 백슬래시(\)
- 동일 (=)
기본적으로 JBoss EAP는 약한 암호를 허용하지만 경고를 발행합니다.
이 기본 동작 변경에 대한 자세한 내용은 추가 사용자 유틸리티 암호 제한 설정을 참조하십시오.
-
사용자가 속한 쉼표로 구분된 그룹 목록을 입력합니다. 사용자가 그룹에 속하지 않도록
하려면 Enter 키를눌러 비워 둡니다. -
정보를 검토하고
yes를 입력하여 확인합니다.
사용자는 매개 변수를 add-user 스크립트에 전달하여 비대화형으로 생성할 수도 있습니다. 이 접근 방식은 로그 및 기록 파일에 암호가 표시되므로 공유 시스템에서 권장되지 않습니다. 자세한 내용은 비대화형으로 추가 사용자 유틸리티 실행을 참조하십시오.
3.2.2. 비대화형으로 추가 사용자 유틸리티 실행 링크 복사링크가 클립보드에 복사되었습니다!
명령줄에서 인수를 전달하여 add-user 스크립트를 비대화형으로 실행할 수 있습니다. 최소한 사용자 이름과 암호를 제공해야 합니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
이 접근 방식은 로그 및 기록 파일에 암호가 표시되므로 공유 시스템에서 권장되지 않습니다.
여러 그룹에 속하는 사용자 생성
다음 명령은 guest 및 mgmtgroup 그룹과 함께 관리 사용자 mgmtuser1 을 추가합니다.
EAP_HOME/bin/add-user.sh -u 'mgmtuser1' -p 'password1!' -g 'guest,mgmtgroup'
$ EAP_HOME/bin/add-user.sh -u 'mgmtuser1' -p 'password1!' -g 'guest,mgmtgroup'
대체 속성 파일 지정
기본적으로 add-user 스크립트를 사용하여 생성된 사용자 및 그룹 정보는 서버 구성 디렉터리에 있는 속성 파일에 저장됩니다.
사용자 정보는 다음 속성 파일에 저장됩니다.
-
EAP_HOME/standalone/configuration/mgmt-users.properties -
EAP_HOME/domain/configuration/mgmt-users.properties
그룹 정보는 다음 속성 파일에 저장됩니다.
-
EAP_HOME/standalone/configuration/mgmt-groups.properties -
EAP_HOME/domain/configuration/mgmt-groups.properties
이러한 기본 디렉터리 및 속성 파일 이름은 재정의할 수 있습니다. 다음 명령은 사용자 속성 파일에 다른 이름과 위치를 지정하는 새 사용자를 추가합니다.
EAP_HOME/bin/add-user.sh -u 'mgmtuser2' -p 'password1!' -sc '/path/to/standaloneconfig/' -dc '/path/to/domainconfig/' -up 'newname.properties'
$ EAP_HOME/bin/add-user.sh -u 'mgmtuser2' -p 'password1!' -sc '/path/to/standaloneconfig/' -dc '/path/to/domainconfig/' -up 'newname.properties'
새 사용자가 /path/to /standaloneconfig/newname.properties 및/path/to/ domainconfig/newname.properties 에있는 사용자 속성 파일에 추가되었습니다. 이러한 파일이 이미 존재하거나 오류가 표시됩니다.
사용 가능한 모든 추가 사용자 인수 및 용도의 전체 목록은 --help 인수를 사용하거나 Add-user 유틸리티 인수 섹션을 참조하십시오.
3.2.3. 사용자 유틸리티 암호 제한 추가 링크 복사링크가 클립보드에 복사되었습니다!
add-user 유틸리티 스크립트의 암호 제한 사항은 EAP_HOME/bin/add-user.properties 파일을 사용하여 구성할 수 있습니다.
add-user.properties 파일은 보호되지 않은 일반 텍스트 파일이며 콘텐츠에 대한 경고 없는 액세스를 방지하기 위해 보안을 유지해야 합니다.
의도하지 않은 암호를 설정하지 않으려면 키보드의 시스템 키 맵이 올바른지 확인합니다. 기본 시스템 키맵은 en-qwerty 입니다. 이 기본 설정을 변경하고 새 암호를 생성하는 경우 암호가 SimplePasswordStrengthChecker 클래스에 있는 기준을 충족하는지 확인해야 합니다.
기본적으로 JBoss EAP는 약한 암호를 허용하지만 경고를 발행합니다. 지정된 최소 요구 사항을 충족하지 않는 암호를 거부하려면 password.restriction 속성을 REJECT 로 설정합니다.
다음 표에서는 EAP_HOME/bin/add-user.properties 파일에서 구성할 수 있는 추가 암호 요구 사항 설정을 설명합니다.
| 속성 | 설명 |
|---|---|
|
|
암호의 최소 문자 수입니다. 예를 들어 |
|
| 암호가 유효해야 하는 임계값을 설정합니다. 유효한 임계값 항목은 다음과 같습니다.
*
*
*
*
기본값은
참고: 임계값을 지정하지 않으면 |
|
|
암호에 설정된 최소 알파벳 문자 수입니다. 예를 들어, |
|
|
암호에 설정된 최소 숫자 문자 수입니다. 예를 들어, |
|
|
암호에 설정된 최소 기호 수입니다. 예를 들어, |
|
|
사용자가 root 와 같이 쉽게 결정된 암호를 설정하지 못하도록 제한합니다. 예를 들어 |
|
|
사용자가 사용자 이름을 암호로 설정하지 않도록 제한합니다. 예를 들어, |
추가 리소스
Red Hat 고객 포털에서 기본 시스템 설정 구성 가이드를 참조하십시오.
3.2.4. 관리 사용자 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
메시지가 표시되면 사용자 이름을 입력하여 add-user 유틸리티 스크립트를 사용하여 기존 관리 사용자의 설정을 업데이트할 수 있습니다.
이미 존재하는 사용자 이름을 입력하면 다음과 같은 몇 가지 옵션이 제공됩니다.
-
를입력하여 기존 사용자의 암호를 업데이트합니다. -
b를 입력하여 기존 사용자를 비활성화합니다. -
c를 입력하여 새 사용자 이름을 입력합니다.
add-user 스크립트를 사용하여 사용자를 비대화형으로 업데이트할 때 사용자는 확인 프롬프트 없이 자동으로 업데이트됩니다.
3.3. 관리 인터페이스 링크 복사링크가 클립보드에 복사되었습니다!
3.3.1. 관리 CLI 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI(명령줄 인터페이스)는 JBoss EAP용 명령줄 관리 툴입니다.
관리 CLI를 사용하여 서버를 시작 및 중지하고, 애플리케이션을 배포 및 배포 취소, 시스템 설정을 구성하고, 기타 관리 작업을 수행합니다. 배치 모드에서 작업을 수행하여 여러 작업을 그룹으로 실행할 수 있습니다.
ls,cd 및 pwd 와 같은 많은 일반적인 터미널 명령을 사용할 수 있습니다. 관리 CLI는 탭 완료도 지원합니다.
명령 및 작업, 구문 및 일괄 처리 모드로 실행되는 관리 CLI 사용에 대한 자세한 내용은 JBoss EAP 관리 CLI 가이드를 참조하십시오.
관리 CLI 시작
EAP_HOME/bin/jboss-cli.sh
$ EAP_HOME/bin/jboss-cli.sh
Windows Server의 경우 EAP_HOME\bin\jboss-cli.extension 스크립트를 사용합니다.
실행 중인 서버에 연결
connect
connect
또는 관리 CLI를 시작하고 EAP_HOME/bin/jboss-cli.sh --connect 명령을 사용하여 한 단계로 연결할 수 있습니다.
도움말 표시
일반적인 도움말에는 다음 명령을 사용합니다.
help
help
명령에 --help 플래그를 사용하여 해당 특정 명령을 사용하는 방법에 대한 지침을 받습니다. 예를 들어 deploy 를 사용하여 정보를 수신하기 위해 다음 명령을 실행합니다.
deploy --help
deploy --help
관리 CLI 종료
quit
quit
시스템 설정 보기
다음 명령은 read-attribute 작업을 사용하여 예제 데이터 소스가 활성화되었는지 여부를 표시합니다.
/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
{
"outcome" => "success",
"result" => true
}
/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
{
"outcome" => "success",
"result" => true
}
관리형 도메인에서 실행하는 경우 명령 앞에 /profile=PROFILE_NAME 을 추가하여 업데이트할 프로필을 지정해야 합니다.
/profile=default/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
/profile=default/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
시스템 설정 업데이트
다음 명령은 write-attribute 작업을 사용하여 예제 데이터 소스를 비활성화합니다.
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled,value=false)
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled,value=false)
서버 시작
관리 CLI는 관리형 도메인에서 실행할 때 서버를 시작하고 중지하는 데 사용할 수도 있습니다.
/host=HOST_NAME/server=server-one:start
/host=HOST_NAME/server=server-one:start
3.3.2. 관리 콘솔 개요 링크 복사링크가 클립보드에 복사되었습니다!
관리 콘솔은 JBoss EAP를 위한 웹 기반 관리 툴입니다.
관리 콘솔을 사용하여 서버를 시작 및 중지하고, 애플리케이션을 배포 및 제거하고, 시스템 설정을 조정하며, 서버 구성을 영구적으로 수정합니다. 관리 콘솔은 사용자가 서버를 다시 시작하거나 다시 로드해야 하는 변경을 수행할 때 실시간 알림을 사용하여 관리 작업을 수행할 수도 있습니다.
관리형 도메인에서 동일한 도메인의 서버 인스턴스 및 서버 그룹은 도메인 컨트롤러의 관리 콘솔에서 중앙 집중식으로 관리됩니다.
기본 관리 포트를 사용하여 로컬 호스트에서 실행되는 JBoss EAP 인스턴스의 경우 http://localhost:9990/console/index.html 에서 웹 브라우저를 통해 관리 콘솔에 액세스할 수 있습니다. 관리 콘솔에 액세스하는 데 필요한 역할이 있는 사용자로 로그인합니다.
관리 콘솔은 JBoss EAP 독립 실행형 서버 또는 관리형 도메인을 탐색하고 관리하기 위한 다음 탭을 제공합니다.
- 홈페이지
- 몇 가지 일반적인 구성 및 관리 작업을 수행하는 방법을 알아봅니다. JBoss EAP 관리 콘솔에 익숙해지려면 둘러보기를 확인하십시오.
- 배포
- 배포를 추가, 제거 및 활성화합니다. 관리형 도메인에서 서버 그룹에 배포를 할당합니다.
- 설정
- 웹 서비스, 메시징 또는 고가용성과 같은 기능을 제공하는 사용 가능한 하위 시스템을 구성합니다. 관리형 도메인에서 다른 하위 시스템 구성이 포함된 프로필을 관리합니다.
- 런타임
- 서버 상태, JVM 사용량 및 서버 로그와 같은 런타임 정보를 확인합니다. 관리형 도메인에서 호스트, 서버 그룹 및 서버를 관리합니다.
- 업데이트 관리자
- 기존 설치를 업데이트하고 채널을 관리합니다.
- 액세스 제어
- 역할 기반 액세스 제어를 사용할 때 사용자 및 그룹에 역할을 할당합니다.
3.3.2.1. 관리 콘솔에서 리소스 속성 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
필요한 권한이 있는 경우 관리 콘솔에서 리소스 속성을 편집할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 선택한 리소스를 수정할 수 있는 적절한 권한이 있습니다.
- 사용자를 생성했습니다.
프로세스
- 관리 콘솔에 로그인합니다. 기본 포트에서 실행되는 로컬 서버의 경우 http://localhost:9990/console/index.html 에서 관리 콘솔에 액세스할 수 있습니다.
- 수정할 리소스에 대한 관리 콘솔의 적절한 섹션으로 이동합니다.
- 편집을 클릭합니다.
필요한 변경을 수행합니다.
필수 필드는 별표(*)로 표시됩니다. 도움말 을 클릭하여 속성 설명을 볼 수 있습니다.
참고특성 유형에 따라 입력 필드는 텍스트 필드, ON/OFF 필드 또는 드롭다운일 수 있습니다. 일부 텍스트 필드에서 를 입력하면 구성의 다른 위치에서의 값이 제안 사항으로 표시될 수 있습니다.
- 저장을 클릭합니다.
필요한 경우 변경 사항을 적용하려면 서버를 다시 로드합니다.
적용하기 위해 다시 로드해야 하는 변경을 수행할 때 팝업 창이 열립니다. 독립 실행형 서버를 다시 로드하려면 팝업 창에서 다시 로드 를 클릭합니다. 관리형 도메인에서 서버를 다시 로드하려면 토폴로지 를 클릭하고 적절한 서버를 선택한 다음 드롭다운 목록에서 다시 로드 를 선택합니다.
수행한 최근 구성 작업의 기록을 보려면 알림 아이콘을 클릭합니다.
3.3.2.2. 관리 콘솔 활성화 또는 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
/core-service=management/management-interface=http-interface 리소스의 console-enabled 부울 속성을 설정하여 관리 콘솔을 활성화하거나 비활성화할 수 있습니다. 도메인 모드의 기본 호스트의 경우 /host=primary/core-service=management/management-interface=http-interface 를 사용합니다.
관리 콘솔을 활성화하거나 비활성화한 후에는 JBoss EAP 인스턴스를 다시 시작하거나 다시 로드해야 합니다.
관리 콘솔 활성화 예
/core-service=management/management-interface=http-interface:write-attribute(name=console-enabled,value=true)
/core-service=management/management-interface=http-interface:write-attribute(name=console-enabled,value=true)
관리 콘솔 예
/core-service=management/management-interface=http-interface:write-attribute(name=console-enabled,value=false)
/core-service=management/management-interface=http-interface:write-attribute(name=console-enabled,value=false)
3.3.2.3. 관리 콘솔의 언어 변경 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 관리 콘솔의 언어 설정은 영어입니다. 대신 다음 언어 중 하나를 사용하도록 선택할 수 있습니다.
- 독일어(de)
- 중국어 간체 (zh-Hans)
- 브라질 포르투갈어 (pt-BR)
- 프랑스어(fr)
- 스페인어 (es)
- 일본어 (ja)
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 사용자를 생성했습니다.
프로세스
- 관리 콘솔에 로그인합니다. 기본 포트에서 실행되는 로컬 서버의 경우 http://localhost:9990/console/index.html 에서 관리 콘솔에 액세스할 수 있습니다.
- 설정을 클릭합니다.
- Locale 목록에서 필요한 언어를 선택합니다.
- 저장을 클릭합니다. 확인 상자에 애플리케이션을 다시 로드해야 함을 알려줍니다.
- 예를 클릭합니다. 선택한 로케일을 사용하도록 웹 브라우저를 자동으로 새로 고칩니다.
3.3.2.4. 관리 콘솔 제목 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
각 JBoss EAP 인스턴스를 빠르고 쉽게 식별할 수 있도록 관리 콘솔 제목을 사용자 지정할 수 있습니다. 관리 콘솔 제목을 사용자 지정하는 경우 관리 콘솔 인스턴스를 종료한 후에도 변경 사항이 유지되지 않습니다. 콘솔의 새 인스턴스를 열고 로그인하면 관리 콘솔 제목이 재설정됩니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 사용자를 생성했습니다.
프로세스
- 관리 콘솔에 로그인합니다. 기본 포트에서 실행되는 로컬 서버의 경우 http://localhost:9990/console/index.html 에서 관리 콘솔에 액세스할 수 있습니다.
- 설정을 클릭하고 제목 필드의 제목 을 수정합니다.
저장을 클릭합니다.
확인 상자에 관리 콘솔을 다시 로드해야 함을 알려줍니다.
예를 클릭합니다.
시스템이 웹 브라우저를 자동으로 새로 고치고 새 제목이 탭 헤더에 표시됩니다.
3.4. 관리 API 링크 복사링크가 클립보드에 복사되었습니다!
관리 API 엔드포인트는 관리 클라이언트가 JBoss EAP 관리 계층과 통합하기 위한 진입점 역할을 합니다.
3.4.1. HTTP API 링크 복사링크가 클립보드에 복사되었습니다!
HTTP API 끝점은 HTTP 프로토콜을 사용하여 JBoss EAP 관리 계층과 통합하는 관리 클라이언트의 진입점입니다.
HTTP API는 JBoss EAP 관리 콘솔에서 사용되지만 다른 클라이언트에도 통합 기능을 제공합니다. 기본적으로 HTTP API는 http://HOST_NAME:9990/management 에서 액세스할 수 있습니다. 이 URL에는 API에 노출된 원시 속성 및 값이 표시됩니다.
리소스 읽기
HTTP POST 메서드를 사용하여 다른 작업을 읽거나 쓰거나 수행할 수 있지만 GET 요청을 사용하여 일부 읽기 작업을 수행할 수 있습니다. HTTP GET 메서드는 다음 URL 형식을 사용합니다.
http://HOST_NAME:9990/management/PATH_TO_RESOURCE?operation=OPERATION&PARAMETER=VALUE
http://HOST_NAME:9990/management/PATH_TO_RESOURCE?operation=OPERATION&PARAMETER=VALUE
교체 가능한 모든 값을 요청에 적합한 값으로 교체해야 합니다. 다음 값은 OPERATION 대체 값에 사용할 수 있는 옵션입니다.
| 현재의 | 설명 |
|---|---|
| attribute |
|
| operation-description |
|
| operation-names |
|
| resource |
|
| resource-description |
|
| 스냅샷 |
|
다음 예제 URL은 HTTP API를 사용하여 읽기 작업을 수행하는 방법을 보여줍니다.
예: 리소스의 모든 속성 및 값 읽기
http://HOST_NAME:9990/management/subsystem/undertow/server/default-server/http-listener/default
http://HOST_NAME:9990/management/subsystem/undertow/server/default-server/http-listener/default
기본 HTTP 리스너의 모든 속성 및 해당 값이 표시됩니다.
기본 작업은 read-resource 입니다.
예: 리소스에 대한 특성 값 읽기
http://HOST_NAME:9990/management/subsystem/datasources/data-source/ExampleDS?operation=attribute&name=enabled
http://HOST_NAME:9990/management/subsystem/datasources/data-source/ExampleDS?operation=attribute&name=enabled
이렇게 하면 ExampleDS 데이터 소스에 대해 활성화된 속성 값이 표시됩니다.
리소스 업데이트
HTTP POST 메서드를 사용하여 구성 값을 업데이트하거나 HTTP API를 사용하여 다른 작업을 수행할 수 있습니다. 이러한 작업에 대한 인증을 제공해야 합니다.
다음 예제에서는 HTTP API를 사용하여 리소스를 업데이트하는 방법을 보여줍니다.
예: 리소스의 속성 값 업데이트
curl --digest http://HOST_NAME:9990/management --header "Content-Type: application/json" -u USERNAME:PASSWORD -d '{"operation":"write-attribute", "address":["subsystem","datasources","data-source","ExampleDS"], "name":"enabled", "value":"false", "json.pretty":"1"}'
$ curl --digest http://HOST_NAME:9990/management --header "Content-Type: application/json" -u USERNAME:PASSWORD -d '{"operation":"write-attribute", "address":["subsystem","datasources","data-source","ExampleDS"], "name":"enabled", "value":"false", "json.pretty":"1"}'
이렇게 하면 ExampleDS 데이터 소스에 대한 enabled 속성 값이 false 로 업데이트됩니다.
예: 서버에 대한 작업 실행
curl --digest http://localhost:9990/management --header "Content-Type: application/json" -u USERNAME:PASSWORD -d '{"operation":"reload"}'
$ curl --digest http://localhost:9990/management --header "Content-Type: application/json" -u USERNAME:PASSWORD -d '{"operation":"reload"}'
이렇게 하면 서버가 다시 로드됩니다.
HTTP API를 사용하여 JBoss EAP에 애플리케이션을 배포하는 방법에 대한 자세한 내용은 HTTP API를 사용하여 애플리케이션 배포를 참조하십시오.
3.4.1.1. custom-constant HTTP 헤더 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP의 HTTP 관리 끝점은 클라이언트에 전송되는 모든 응답에서 사전 정의된 HTTP 헤더 세트를 반환합니다. 이 사전 정의된 HTTP 헤더 세트 외에 반환하도록 custom-constant HTTP 헤더를 정의할 수 있습니다.
JBoss EAP는 다음과 같이 custom-constant HTTP 헤더를 요청에 적용합니다.
JBoss EAP는 요청 경로에 대해 구성된 접두사와 일치하여 custom-constant HTTP 헤더를 적용합니다.
예를 들어 custom-constant HTTP 헤더를
/또는/management와 같은 요청 경로의 요청에 매핑할 수 있습니다.요청이 여러 접두사와 일치하는 경우 JBoss EAP는 모든 매핑의 custom-constant HTTP 헤더를 적용합니다.
예를 들어 경로
/management에 대한 요청은 / 및모두에 대한 매핑과 일치합니다. JBoss EAP는 두 매핑의 헤더를 적용합니다./management요청이 끝나면 응답이 클라이언트로 반환되기 전에 해당 끝점에 의해 설정된 헤더를 덮어씁니다.
예를 들어 관리 끝점은 각 응답에서
X-Frame-Options헤더를 설정합니다. 이름이X-Frame-Options인 custom-constant HTTP 헤더를 정의하면 custom-constant HTTP 헤더가 기본 헤더를 덮어씁니다.
단일 매핑의 응답에서 반환되도록 여러 custom-constant HTTP 헤더를 정의할 수 있습니다.
다음은 custom-constant HTTP 헤더를 정의하는 규칙입니다.
- custom-constant HTTP 헤더는 RFC-7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics 및 Content에서 지원되는 문자만 포함할 수 있습니다.
다음과 같이 사전 정의된 HTTP 헤더를 덮어쓸 수 없습니다.
-
연결 -
콘텐츠 길이 -
content-Type -
날짜 transfer-Encoding이러한 사전 정의된 헤더를 재정의하려고 하면 오류가 발생합니다.
예를 들어 이름이
Date인 custom-constant HTTP 헤더를 설정하려고 하면 다음 오류가 반환됩니다.{ "outcome" => "failed", "failure-description" => "WFLYCTL0458:Disallowed HTTP Header name 'Date'", "rolled-back" => true }{ "outcome" => "failed", "failure-description" => "WFLYCTL0458:Disallowed HTTP Header name 'Date'", "rolled-back" => true }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
사용자 정의 일치 HTTP 헤더를 생성할 때 중요한 고려 사항:
- JBoss EAP는 지정된 경로에 연결할 수 있는지 여부를 확인하지 않습니다.
- 하위 시스템은 HTTP 관리 인터페이스에서 지원하는 컨텍스트를 동적으로 추가할 수 있습니다.
- custom-constant HTTP 헤더는 끝점이 요청에 대한 응답을 처리하는 방법을 변경하지 않습니다.
3.4.1.2. custom-constant HTTP 헤더 정의 링크 복사링크가 클립보드에 복사되었습니다!
필요한 경로 접두사의 모든 응답에서 반환되는 custom-constant HTTP 헤더를 정의합니다.
사용자 정의 일치 HTTP 헤더를 생성하기 전에 다음 고려 사항을 이해해야 합니다.
- JBoss EAP는 지정된 경로에 연결할 수 있는지 여부를 확인하지 않습니다.
- 하위 시스템은 HTTP 관리 인터페이스에서 지원하는 컨텍스트를 동적으로 추가할 수 있습니다.
- custom-constant HTTP 헤더는 끝점이 요청에 대한 응답을 처리하는 방법을 변경하지 않습니다.
프로세스
사용자 정의 상수 HTTP 헤더를 정의합니다.
/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path="PATH_PREFIX",headers=[{name="HEADER_NAME",value="HEADER_VALUE"}]}])/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path="PATH_PREFIX",headers=[{name="HEADER_NAME",value="HEADER_VALUE"}]}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요write-attribute작업을 사용하면reload-required프롬프트가 열립니다.변경 사항을 적용하려면 서버를 다시 로드합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow HTTP 관리 인터페이스에 대한 요청은 사전 정의된 HTTP 헤더 세트 외에 HEADER_VALUE 값을 사용하여 HTTP 헤더 HEADER_NAME 을 반환합니다.
custom-constant HTTP 헤더 X-help의 예
/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path="/",headers=[{name="X-Help",value="http://mywebsite.com/help"}]}])/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path="/",headers=[{name="X-Help",value="http://mywebsite.com/help"}]}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증 단계
HTTP 관리 인터페이스로 요청을 보냅니다.
curl -s -D - -o /dev/null --digest http://localhost:9990/management/ -u USERNAME:PASSWORD
curl -s -D - -o /dev/null --digest http://localhost:9990/management/ -u USERNAME:PASSWORDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제 custom-constant HTTP 헤더
X-Help에 대한 샘플 응답Copy to Clipboard Copied! Toggle word wrap Toggle overflow 응답에는
X-Helpcustom-constant HTTP 헤더가 포함됩니다.
3.4.1.3. custom-constant HTTP 헤더를 정의하는 CLI 명령 링크 복사링크가 클립보드에 복사되었습니다!
다음 CLI 명령은 독립 실행형 및 관리형 도메인 모드로 custom-constant HTTP 헤더를 정의합니다.
독립 실행형 모드
단일 custom-constant HTTP 헤더를 정의하려면 다음 명령을 사용합니다.
/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path=/PREFIX,headers=[{name=X-HEADER,value=HEADERVALUE}]}])/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path=/PREFIX,headers=[{name=X-HEADER,value=HEADERVALUE}]}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령을 실행하면 다음과 같은 XML 구성이 생성됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여러 custom-constant HTTP 헤더를 정의하려면 다음 명령을 사용합니다.
/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path=/PREFIX1,headers=[{name=X-HEADER,value=HEADERVALUE-FOR-X}]},{path=/PREFIX2,headers=[{name=Y-HEADER,value=HEADERVALUE-FOR-Y}]}])/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path=/PREFIX1,headers=[{name=X-HEADER,value=HEADERVALUE-FOR-X}]},{path=/PREFIX2,headers=[{name=Y-HEADER,value=HEADERVALUE-FOR-Y}]}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow
도메인 모드
단일 custom-constant HTTP 헤더를 정의하려면 다음 명령을 사용합니다.
/host=primary/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path=/PREFIX,headers=[{name=X-HEADER,value=HEADER-VALUE}]}])/host=primary/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path=/PREFIX,headers=[{name=X-HEADER,value=HEADER-VALUE}]}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령을 실행하면 다음과 같은 XML 구성이 생성됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여러 custom-constant HTTP 헤더를 정의하려면 다음 명령을 사용합니다.
/host=primary/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[ {path=/PREFIX-1,headers=[{name=X-HEADER,value=HEADER-VALUE-FOR-X}]},{path=/PREFIX-2,headers=[{name=Y-HEADER,value=HEADER-VALUE-FOR-Y}]}])/host=primary/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[ {path=/PREFIX-1,headers=[{name=X-HEADER,value=HEADER-VALUE-FOR-X}]},{path=/PREFIX-2,headers=[{name=Y-HEADER,value=HEADER-VALUE-FOR-Y}]}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.2. 네이티브 API 링크 복사링크가 클립보드에 복사되었습니다!
네이티브 API 엔드포인트는 기본 프로토콜을 사용하여 JBoss EAP 관리 계층과 통합하는 관리 클라이언트의 진입점입니다. 기본 API는 JBoss EAP 관리 CLI에서 사용하지만 다른 클라이언트에도 통합 기능을 제공합니다.
다음 Java 코드는 네이티브 API를 사용하여 Java 코드에서 관리 작업을 실행하는 방법의 예를 보여줍니다.
EAP_HOME/bin/client/jboss-cli-client.jar 파일에 있는 필수 JBoss EAP 라이브러리를 클래스 경로에 추가해야 합니다.
예: 기본 API를 사용하여 리소스 읽기
3.5. 구성 데이터 링크 복사링크가 클립보드에 복사되었습니다!
3.5.1. 독립 실행형 서버 구성 파일 링크 복사링크가 클립보드에 복사되었습니다!
독립 실행형 구성 파일은 EAP_HOME/standalone/configuration/ 디렉터리에 있습니다. 사전 정의된 5개의 프로필(기본값, ha, full ,full -ha ,load-balancer) 각각에 대해 별도의 파일이 있습니다. 다음은 JBoss EAP를 시작할 때 관리 CLI를 사용하여 수정할 수 있는 구성 파일의 예입니다.
| 구성 파일 | 목적 |
|---|---|
|
| 이 독립 실행형 구성 파일은 Jakarta EE 웹 프로파일 인증 구성과 JBoss EAP가 독립 실행형 서버를 시작할 때 사용하는 기본 구성입니다. 이 구성에는 Jakarta EE 웹 프로필에 대해 하위 시스템, 네트워킹, 배포, 소켓 바인딩 및 기타 구성 가능한 세부 정보를 포함하여 서버에 대한 모든 정보가 포함되어 있습니다. 이 구성은 메시징 또는 고가용성에 필요한 하위 시스템을 제공하지 않습니다. |
|
|
이 독립 실행형 구성 파일은 고가용성이 있는 Jakarta EE 웹 프로필 인증 구성이며 모든 기본 하위 시스템을 포함하며 고가용성에 필요한 |
|
|
이 독립 실행형 구성 파일은 Jakarta EE 전체 플랫폼 인증 구성이며 모든 기본 하위 시스템을 포함하며 |
|
| 이 독립 실행형 구성 파일은 Jakarta EE 완전 플랫폼 인증 구성이며 메시징 및 고가용성을 위한 항목을 포함하여 가능한 모든 하위 시스템에 대한 지원을 포함합니다. |
|
| 이 독립 실행형 구성 파일에는 다른 JBoss EAP 인스턴스를 로드 밸런싱하기 위해 기본 제공 mod_cluster 프런트 엔드 로드 밸런서를 사용하는 데 필요한 최소 하위 시스템이 포함되어 있습니다. |
기본적으로 JBoss EAP를 독립 실행형 서버로 시작하면 standalone.xml 파일이 사용됩니다. 다른 구성으로 JBoss EAP를 시작하려면 --server-config 인수를 사용합니다. 예를 들면 다음과 같습니다.
EAP_HOME/bin/standalone.sh --server-config=standalone-full.xml
$ EAP_HOME/bin/standalone.sh --server-config=standalone-full.xml
YAML 파일을 사용하여 독립 실행형 서버 업데이트
YAML 파일을 사용하여 독립 실행형 서버를 구성하면 사용자 지정 프로세스가 외부화되고 서버 업그레이드 속도가 향상됩니다. 이 기능을 사용하면 서버가 읽기 전용 모드로 시작됩니다. 즉, 서버를 다시 시작한 후에는 구성 변경 사항이 유지되지 않습니다.
관리형 도메인의 서버에서 YAML 구성은 지원되지 않습니다.
사용자는 YAML 파일에서 다양한 리소스를 수정할 수 있습니다. YAML 파일에서 지원되는 요소는 다음과 같습니다.
-
core-service -
인터페이스 -
socket-binding-group -
하위 시스템 -
system-property
YAML 파일에서는 다음 요소가 지원되지 않습니다.
-
extension: 서버에 확장을 추가합니다. 이 요소는 누락된 모듈이 필요할 수 있으므로 지원되지 않습니다. -
deployment: 서버에 배포를 추가합니다. 이 요소는 구성 외에도 보다 광범위한 변경이 필요하기 때문에 지원되지 않습니다. -
deployment-overlay: 서버에 deployment-overlays를 추가합니다. 이 요소는 구성 외에도 보다 광범위한 변경이 필요하기 때문에 지원되지 않습니다. -
path: YAML 파일을 구문 분석할 때 이미 정의되어 있습니다.
YAML 루트 노드는 Wildfly-configuration 입니다. 모델 트리에 따라 리소스를 수정할 수 있습니다. 리소스가 이미 존재하는 경우( XML 구성 파일 또는 이전 YAML 파일에 의해 생성됨) 모델 트리를 사용하여 해당 리소스를 업데이트할 수 있습니다. 리소스가 없는 경우 모델 트리를 사용하여 리소스를 생성할 수 있습니다.
새 PostGresql 데이터 소스를 정의하는 YAML 구성 파일의 예
위의 예제에서는 postgresql 라는 jdbc-driver 와 PostgreSQLDS 라는 데이터 소스 를 정의합니다.
YAML 구성 파일을 사용하여 모듈을 관리할 수 없습니다. 대신 수동으로 또는 관리 CLI를 사용하여 org.postgresql.jdbc 모듈을 생성하거나 프로비저닝해야 합니다.
3.5.1.1. 태그를 사용한 YAML 파일 작업 링크 복사링크가 클립보드에 복사되었습니다!
태그를 사용하여 YAML 구성 파일에서 여러 작업을 수행할 수 있습니다.
!undefine: 특성을 정의하지 않음정의되지 않은
CONSOLE로거 수준 YAML 구성 파일 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow !remove: 리소스 제거임베디드 Artemis 브로커를 제거하고 원격 브로커 YAML 구성 파일에 연결
Copy to Clipboard Copied! Toggle word wrap Toggle overflow !list-add: 목록에 요소를 추가 (선택 사항 인덱스 사용)권한 목록 YAML 구성 파일에
RemoteTransactionPermission추가Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고인덱스특성이 정의되지 않은 경우 목록 끝에 항목이 추가됩니다.
3.5.1.2. YAML 파일을 사용하여 독립 실행형 서버 시작 링크 복사링크가 클립보드에 복사되었습니다!
YAML 구성 파일을 사용하여 독립 실행형 서버를 시작할 수 있습니다.
프로세스
- 터미널을 엽니다.
다음 명령을 사용하여 YAML 파일로 독립 실행형 서버를 시작합니다.
./standalone.sh -y=/home/ehsavoie/dev/wildfly/config2.yml:config.yml -c standalone-full.xml
./standalone.sh -y=/home/ehsavoie/dev/wildfly/config2.yml:config.yml -c standalone-full.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow --yaml또는-y인수를 사용하면 YAML 파일 목록을 전달할 수 있습니다. Windows Server의 경우 (;) 또는 Mac 및 Unix 기반 운영 체제의 경우 콜론(:)을 사용하여 각 YAML 파일 경로를 분리해야 합니다. 절대 경로, 현재 실행 디렉터리를 기준으로 하는 경로 또는 독립 실행형 구성 디렉터리와 관련된 경로를 사용할 수 있습니다.이 작업은 파일이 정의되고 초기 작업이 XML 구성으로 정의되는 순서대로 적용됩니다.
3.5.2. 관리형 도메인 구성 파일 링크 복사링크가 클립보드에 복사되었습니다!
관리형 도메인 구성 파일은 EAP_HOME/domain/configuration/ 디렉터리에 있습니다. 다음은 JBoss EAP를 시작할 때 관리 CLI를 사용하여 수정할 수 있는 구성 파일의 예입니다.
| 구성 파일 | 목적 |
|---|---|
|
| 관리형 도메인의 기본 구성 파일입니다. 도메인 컨트롤러만 이 파일을 읽습니다. 이 파일에는 모든 프로필(기본값, ha, full ,full -ha ,load-balancer)에 대한 구성이 포함되어 있습니다. |
|
|
이 파일에는 네트워크 인터페이스, 소켓 바인딩, 호스트 이름 및 기타 호스트별 세부 정보와 같이 관리형 도메인의 물리적 호스트와 관련된 구성 세부 정보가 포함됩니다. |
|
|
이 파일에는 서버를 관리형 도메인 컨트롤러로 실행하는 데 필요한 구성 세부 정보만 포함됩니다. |
|
|
이 파일에는 서버를 관리형 도메인 호스트 컨트롤러로 실행하는 데 필요한 구성 세부 정보만 포함됩니다. 도메인 컨트롤러를 정의하지 않으며, 연결할 |
기본적으로 관리형 도메인에서 JBoss EAP를 시작하면 host.xml 파일이 사용됩니다. 다른 구성으로 JBoss EAP를 시작하려면 --host-config 인수를 사용합니다. 예를 들면 다음과 같습니다.
EAP_HOME/bin/domain.sh --host-config=host-primary.xml
$ EAP_HOME/bin/domain.sh --host-config=host-primary.xml
3.5.3. 구성 데이터 백업 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 서버 구성을 복원하려면 다음 위치에서 데이터를 백업해야 합니다.
EAP_HOME/standalone/configuration/- 전체 디렉터리를 백업하여 독립 실행형 서버의 사용자 데이터, 서버 구성 및 로깅 설정을 저장합니다.
EAP_HOME/standalone/data- data/content 디렉터리에 제한된 관리 배포에 대한 데이터를 백업합니다.
EAP_HOME/standalone/deployments- 독립 실행형 서버를 위한 배포를 백업합니다.
EAP_HOME/domain/configuration/- 사용자 및 프로필 데이터, 도메인 및 호스트 구성, 관리형 도메인의 로깅 설정을 저장하기 위해 전체 디렉터리를 백업합니다.
EAP_HOME/domain/data- 데이터/콘텐츠 디렉터리에 제한된 관리형 도메인에서 관리형 도메인 및 배포에 대한 데이터를 백업합니다.
EAP_HOME/modules/- 사용자 지정 모듈을 백업합니다.
EAP_HOME/welcome-content/- 사용자 정의 시작 콘텐츠를 백업합니다.
EAP_HOME/bin/- 사용자 지정 스크립트 또는 시작 구성 파일을 백업합니다.
3.5.4. 구성 파일 스냅샷 링크 복사링크가 클립보드에 복사되었습니다!
서버의 유지 관리 및 관리를 지원하기 위해 JBoss EAP는 시작 시 원본 구성 파일의 타임스탬프가 지정된 버전을 생성합니다.
관리 작업에서 변경한 추가 구성 변경으로 인해 원래 파일이 자동으로 백업되고 참조 및 롤백을 위해 인스턴스의 작업 사본이 보존됩니다. 또한 현재 서버 구성의 지정 시간 복사본인 구성 스냅샷을 가져올 수 있습니다. 이러한 스냅샷은 관리자가 저장하고 로드할 수 있습니다.
다음 예제에서는 standalone.xml 파일을 사용하지만 domain.xml 및 host.xml 파일에 동일한 프로세스가 적용됩니다.
스냅샷 가져오기
관리 CLI를 사용하여 현재 구성의 스냅샷을 만듭니다.
:take-snapshot
{
"outcome" => "success",
"result" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot/20151022-133109702standalone.xml"
}
:take-snapshot
{
"outcome" => "success",
"result" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot/20151022-133109702standalone.xml"
}
스냅샷 나열
관리 CLI를 사용하여 모든 스냅샷을 나열합니다.
스냅샷 삭제
관리 CLI를 사용하여 스냅샷을 삭제합니다.
:delete-snapshot(name=20151022-133109702standalone.xml)
:delete-snapshot(name=20151022-133109702standalone.xml)
3.5.5. 스냅샷으로 서버 시작 링크 복사링크가 클립보드에 복사되었습니다!
스냅샷 또는 자동으로 저장된 구성 버전을 사용하여 서버를 시작할 수 있습니다.
사전 요구 사항
- JBoss EAP를 설치했습니다.
- 구성 파일의 스냅샷을 작성했습니다.
프로세스
-
EAP_HOME/standalone/configuration/standalone_xml_history디렉터리로 이동하여 로드할 스냅샷 또는 저장된 구성 파일을 식별합니다. 서버를 시작하고 선택한 구성 파일을 가리킵니다. 구성 디렉터리인
EAP_HOME/standalone/configuration/에 상대적인 파일 경로를 전달합니다.EAP_HOME/bin/standalone.sh --server-config=standalone_xml_history/snapshot/20151022-133109702standalone.xml
$ EAP_HOME/bin/standalone.sh --server-config=standalone_xml_history/snapshot/20151022-133109702standalone.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
관리형 도메인에서 서버를 실행하는 경우 구성 파일을 지정하는 대신 --host-config 및 --domain-config=<config > 인수를 사용합니다.
3.5.6. 구성 변경 보기 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP를 사용하여 실행 중인 시스템의 구성 변경 사항을 추적할 수 있습니다. 이를 통해 관리자는 다른 권한 있는 사용자가 변경한 구성 변경 내역을 볼 수 있습니다.
변경 사항은 메모리에 저장되며 서버를 다시 시작하면 유지되지 않습니다. 이 기능은 관리 감사 로깅 을 대체하지 않습니다.
관리 CLI 또는 관리 콘솔에서 추적을 활성화하고 구성 변경 사항을 볼 수 있습니다.
관리 CLI에서 구성 변경 사항 추적 및 보기
구성 변경 사항을 추적하려면 다음 관리 CLI 명령을 사용합니다. max-history 특성을 사용하여 저장할 항목 수를 지정할 수 있습니다.
/subsystem=core-management/service=configuration-changes:add(max-history=20)
/subsystem=core-management/service=configuration-changes:add(max-history=20)
관리형 도메인에서 호스트 및 서버 관련 수정 사항에 대한 호스트 수준에서 구성 변경 사항이 추적됩니다. 호스트 컨트롤러에 대한 구성 변경을 활성화하면 모든 관리 서버에 대해 이를 수행할 수 있습니다. 다음 명령을 사용하여 호스트당 구성 변경 사항을 추적할 수 있습니다.
/host=HOST_NAME/subsystem=core-management/service=configuration-changes:add(max-history=20)
/host=HOST_NAME/subsystem=core-management/service=configuration-changes:add(max-history=20)
최신 구성 변경 목록을 보려면 다음 관리 CLI 명령을 사용합니다.
/subsystem=core-management/service=configuration-changes:list-changes
/subsystem=core-management/service=configuration-changes:list-changes
관리형 도메인에서 다음 명령을 사용하여 호스트의 구성 변경 사항을 나열할 수 있습니다.
/host=HOST_NAME/subsystem=core-management/service=configuration-changes:list-changes
/host=HOST_NAME/subsystem=core-management/service=configuration-changes:list-changes
다음 명령을 사용하여 특정 서버에 영향을 주는 구성 변경 사항을 나열할 수 있습니다.
/host=HOST_NAME/server=SERVER_NAME/subsystem=core-management/service=configuration-changes:list-changes
/host=HOST_NAME/server=SERVER_NAME/subsystem=core-management/service=configuration-changes:list-changes
그러면 날짜, 원본, 결과 및 작업 세부 정보가 포함된 각 구성 변경 사항이 나열됩니다. 예를 들어 list-changes 명령의 아래 출력은 가장 최근 표시된 구성 변경 사항을 표시합니다.
이 예에서는 구성에 영향을 준 세 가지 작업의 세부 정보를 나열합니다.
- 관리 CLI에서 서버를 다시 로드합니다.
-
관리 CLI에서
ExampleDS데이터 소스 비활성화. -
관리 콘솔에서
ExpiryQueue대기열 제거.
관리 콘솔에서 구성 변경 사항 추적 및 보기
관리 콘솔에서 구성 변경 사항을 추적할 수 있도록 런타임 탭으로 선택하고 서버 또는 호스트로 이동하여 변경 사항을 추적하고 드롭다운에서 구성 변경 사항을 선택합니다. 구성 변경 사항 사용을 클릭하고 최대 기록 값을 제공합니다.
그런 다음 이 페이지의 표에 날짜, 원본, 결과 및 작업 세부 정보가 포함된 각 구성 변경 사항이 나열됩니다.
3.5.7. 속성 교체 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP에서 표현식을 사용하여 구성에서 리터럴 값 대신 대체 가능한 속성을 정의할 수 있습니다.
standalone*.xml 또는 domain.xml 구성 파일에서 속성 교체를 사용하면 속성이 시스템 속성에 있는 값으로 교체됩니다. 시스템 속성은 EAP 프로필 xml 파일에 정의되거나 명령줄 터미널에서 -D 명령을 입력하여 정의됩니다.
지정된 하위 시스템에서 속성 교체가 허용되는지 확인하려면 다음 명령을 사용하여 하위 시스템 구성에 대한 설명을 표시합니다.
/subsystem=datasources:read-resource-description(recursive=true)
/subsystem=datasources:read-resource-description(recursive=true)
expressions-allowed 속성이 true 로 설정된 경우 속성 교체가 허용됩니다.
표현식은 ${PARAMETER:DEFAULT_VALUE} 형식을 사용합니다. 지정된 매개변수가 설정되면 매개 변수의 값이 사용됩니다. 그렇지 않으면 제공된 기본값이 사용됩니다.
식을 해결하기 위해 지원되는 소스는 시스템 속성 및 환경 변수입니다. 환경 변수를 사용하여 표현식을 확인하는 경우 ${env.LANG} 형식을 사용합니다.
standalone.xml 구성 파일의 다음 예제에서는 jboss.bind.address 매개변수를 설정하지 않는 한 공용 인터페이스에 대한 inet-address 를 127.0.0.1 로 설정합니다.
<interface name="public">
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>
다음 명령을 사용하여 EAP를 독립 실행형 서버로 시작할 때 jboss.bind.address 매개변수를 설정할 수 있습니다.
EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
배포 전용 배포의 경우 소스는 배포 아카이브의 META-INF/jboss.properties 파일에 나열된 속성일 수 있습니다. 하위 배포를 지원하는 배포 유형의 경우 속성 파일이 외부 배포에 있는 경우 모든 하위 배포에서 해상도의 범위가 지정됩니다(예: EAR). 속성 파일이 하위 배포에 있는 경우 해상도의 범위는 해당 하위 배포로만 지정됩니다.
3.5.8. 중첩된 표현식 링크 복사링크가 클립보드에 복사되었습니다!
고정 값 대신 고급 식을 사용할 수 있는 식을 중첩할 수 있습니다.You can nest expressions, which allows for more advanced use of expressions in place of fixed values.
중첩 표현식의 형식은 일반 표현식과 유사하지만 하나의 표현식은 다른 표현식에 포함됩니다. 예를 들면 다음과 같습니다.
${SYSTEM_VALUE_1${SYSTEM_VALUE_2}}
${SYSTEM_VALUE_1${SYSTEM_VALUE_2}}
JBoss EAP는 중첩 표현식을 재귀적으로 평가하므로 내부 표현식이 먼저 평가되고 외부 표현식이 평가됩니다. 표현식은 재귀가 될 수 있습니다. 여기서 표현식은 다른 표현식으로 확인되고, 이 표현식은 확인됩니다. 관리 CLI 명령을 제외하고 표현식이 허용되는 모든 곳에 중첩 표현식이 허용됩니다.
데이터 소스 정의 암호가 마스킹된 경우 중첩 표현식을 사용할 수 있습니다. 예를 들면 다음과 같습니다.
3.5.9. 배포 설명자 기반 속성 교체 링크 복사링크가 클립보드에 복사되었습니다!
배포 설명자 기반 속성 교체는 설명자를 기반으로 속성을 대체하여 애플리케이션 및 빌드 체인에서 환경에 대한 가정을 제거할 수 있습니다.
환경별 구성은 주석 또는 빌드 시스템 스크립트가 아닌 배포 설명자에 지정할 수 있습니다. 파일 또는 명령줄의 매개 변수로 구성을 제공할 수 있습니다.
데이터 소스 연결 매개 변수와 같은 애플리케이션 구성은 일반적으로 개발, 테스트 및 프로덕션 환경에 따라 다릅니다. Jakarta EE 사양에 이러한 구성을 외부화하는 방법이 포함되어 있지 않으므로 이러한 분산은 빌드 시스템 스크립트에 의해 수용되는 경우가 있습니다. JBoss EAP를 사용하면 설명자 기반 속성 교체를 사용하여 외부에서 구성을 관리할 수 있습니다.
spec-descriptor-property-replacement 플래그는 Jakarta EE 설명자 교체를 제어하고 JBoss EAP는 기본적으로 이를 비활성화합니다. 이 기능이 활성화되면 다음 배포 설명자의 속성을 교체할 수 있습니다.
-
ejb-jar.xml -
permissions.xml -
persistence.xml -
application.xml -
web.xml
다음 관리 CLI 명령을 사용하여 Jakarta EE 설명자에서 속성 교체를 활성화하거나 비활성화할 수 있습니다.
/subsystem=ee:write-attribute(name="spec-descriptor-property-replacement",value=VALUE)
/subsystem=ee:write-attribute(name="spec-descriptor-property-replacement",value=VALUE)
jboss-descriptor-property-replacement 플래그는 JBoss 관련 설명자 교체를 제어하고 JBoss EAP는 기본적으로 이를 활성화합니다. 이 기능이 활성화되면 다음 배포 설명자의 속성을 교체할 수 있습니다.
-
jboss-ejb3.xml -
jboss-app.xml -
jboss-web.xml -
jboss-permissions.xml -
*-jms.xml -
*-ds.xml
다음 관리 CLI 명령을 사용하여 JBoss EAP 관련 설명자에서 속성 교체를 활성화하거나 비활성화합니다.
/subsystem=ee:write-attribute(name="jboss-descriptor-property-replacement",value=VALUE)
/subsystem=ee:write-attribute(name="jboss-descriptor-property-replacement",value=VALUE)
annotation-property-replacement 플래그는 주석 내부의 속성 교체를 제어하며 기본적으로 활성화되어 있지 않습니다. 이 기능이 활성화되면 애플리케이션 클래스 내부의 주석 속성의 속성을 교체할 수 있습니다.
다음 관리 CLI 명령을 사용하여 주석에서 속성 교체를 활성화하거나 비활성화합니다.
/subsystem=ee:write-attribute(name="annotation-property-replacement",value=VALUE)
/subsystem=ee:write-attribute(name="annotation-property-replacement",value=VALUE)
system property 값이 설정된 경우 annotations -property-replacement 를 true 로 설정하여 주석에서 속성 교체를 활성화할 수 있습니다. 예를 들어 시스템 속성을 설정하여 Message Driven Cryostat에서 maxSession 값을 교체할 수 있습니다.
-DexampleMDB.maxSession 시스템 속성을 100 으로 설정할 수 있습니다. 이 시스템 속성을 설정하지 않으면 기본값은 20 입니다.
3.5.10. Git을 사용하여 구성 데이터 관리 링크 복사링크가 클립보드에 복사되었습니다!
Git을 사용하여 서버 구성 데이터, 속성 파일 및 배포를 관리하고 유지할 수 있습니다. 이를 통해 이러한 파일의 버전 기록을 관리할 수 있을 뿐만 아니라 하나 이상의 Git 리포지토리를 사용하여 여러 서버 및 노드에서 서버 및 애플리케이션 구성을 공유할 수 있습니다. 이 기능은 기본 구성 디렉터리 레이아웃을 사용하는 독립 실행형 서버에서만 작동합니다.
로컬 Git 리포지토리에서 구성 데이터를 사용하거나 원격 Git 리포지토리에서 데이터를 가져오도록 선택할 수 있습니다. Git 리포지토리는 독립 실행형 서버 콘텐츠의 기본 디렉터리인 jboss.server.base.dir 디렉터리에 구성됩니다. jboss.server.base.dir 디렉터리가 Git을 사용하도록 구성되면 JBoss EAP는 관리 CLI 또는 관리 콘솔을 사용하여 구성에 대한 모든 업데이트를 자동으로 커밋합니다. 구성 파일을 수동으로 편집하여 서버 외부에서 변경한 내용은 커밋되지 않습니다. 그러나 Git CLI를 사용하여 수동 변경 사항을 추가하고 커밋할 수 있습니다. Git CLI를 사용하여 커밋 기록을 보고 분기를 관리하며 콘텐츠를 관리할 수도 있습니다.
이 기능을 사용하려면 서버를 시작할 때 명령줄에서 다음 인수 중 하나 이상을 전달합니다.
| 인수 | 설명 |
|---|---|
| --git-repo |
서버 구성 데이터를 관리하고 유지하는 데 사용되는 Git 리포지토리의 위치입니다. 로컬에 저장하려는 경우 |
| --git-branch | 사용할 Git 리포지토리의 분기 또는 태그 이름입니다. 이 인수는 기존 분기 또는 태그 이름 이름이 없는 경우 생성되지 않기 때문에 지정해야 합니다. 태그 이름을 사용하는 경우 리포지토리를 분리된 HEAD 상태에 넣습니다. 즉, 향후 커밋은 임의의 분기에 연결되어 있지 않습니다. 태그 이름은 읽기 전용이며 일반적으로 여러 노드에서 구성을 복제해야 할 때 사용됩니다. |
| --git-auth |
원격 Git 리포지토리에 연결할 때 사용할 자격 증명이 포함된 Elytron 구성 파일의 URL입니다. 원격 Git 리포지토리에 인증이 필요한 경우 이 인수가 필요합니다. Elytron은 SSH를 지원하지 않습니다. 따라서 암호 없이 개인 키를 사용하여 기본 SSH 인증만 지원됩니다. 이 인수는 |
로컬 Git 리포지토리 사용
로컬 Git 리포지토리를 사용하려면 --git-repo=local 인수를 사용하여 서버를 시작합니다. 서버를 시작할 때 --git-branch=GIT_BRANCH_NAME 인수를 추가하여 원격 리포지토리에 선택적 분기 또는 태그 이름을 지정할 수도 있습니다. 이 인수는 기존 분기 또는 태그 이름 이름이 없는 경우 생성되지 않기 때문에 지정해야 합니다. 태그 이름을 사용하는 경우 리포지토리를 분리된 HEAD 상태에 넣습니다. 즉, 향후 커밋은 임의의 분기에 연결되어 있지 않습니다.
다음은 로컬 리포지토리의 1.0.x 분기를 사용하여 서버를 시작하는 명령의 예입니다.
EAP_HOME/bin/standalone.sh --git-repo=local --git-branch=1.0.x
$ EAP_HOME/bin/standalone.sh --git-repo=local --git-branch=1.0.x
로컬 Git 리포지토리를 사용하기 위해 인수로 서버를 시작하면 JBoss EAP는 jboss.server.base.dir 디렉터리가 이미 Git에 대해 구성되어 있는지 확인합니다. 그렇지 않은 경우 JBoss EAP는 기존 구성 콘텐츠를 사용하여 jboss.server.base.dir 디렉터리에 Git 리포지토리를 생성하고 초기화합니다. JBoss EAP는 --git-branch 인수에서 전달하는 분기 이름을 확인합니다. 해당 인수가 전달되지 않으면 master 분기를 확인합니다. 초기화 후 독립 실행형 서버 콘텐츠의 기본 디렉터리에 .git/ 디렉터리 및 .gitignore 파일이 표시됩니다.
원격 Git 리포지토리 사용
원격 Git 리포지토리를 사용하려면 --git-repo=REMOTE_REPO 인수를 사용하여 서버를 시작합니다. 인수 값은 로컬 Git 구성에 수동으로 추가한 URL 또는 원격 별칭일 수 있습니다.
서버를 시작할 때 --git-branch=GIT_BRANCH_NAME 인수를 추가하여 원격 리포지토리에 선택적 분기 또는 태그 이름을 지정할 수도 있습니다. 이 인수는 기존 분기 또는 태그 이름 이름이 없는 경우 생성되지 않기 때문에 지정해야 합니다. 태그 이름을 사용하는 경우 리포지토리를 분리된 HEAD 상태에 넣습니다. 즉, 향후 커밋은 임의의 분기에 연결되어 있지 않습니다.
Git 리포지토리에 인증이 필요한 경우 서버를 시작할 때 --git-auth=AUTH_FILE_URL 인수도 추가해야 합니다. 이 인수는 Git 리포지토리에 연결하는 데 필요한 자격 증명이 포함된 Elytron 구성 파일의 URL이어야 합니다. 다음은 인증에 사용할 수 있는 Elytron 구성을 지정하는 WildFly Client 구성 파일의 예입니다.
Elytron은 SSH를 지원하지 않습니다. 따라서 암호 없이 개인 키를 사용하여 기본 SSH 인증만 지원됩니다.
다음은 원격 Cryostat - configuration 리포지토리의 1.0.x 분기를 사용하여 전체 프로필로 서버를 시작하고 인증 자격 증명을 포함하는 Elytron 구성 파일에 URL을 전달하는 명령의 예입니다.
EAP_HOME/bin/standalone.sh --git-repo=https://github.com/MY_GIT_ID/eap-configuration.git --git-branch=1.0.x --git-auth=file:///home/USER_NAME/github-wildfly-config.xml --server-config=standalone-full.xml
$ EAP_HOME/bin/standalone.sh --git-repo=https://github.com/MY_GIT_ID/eap-configuration.git --git-branch=1.0.x --git-auth=file:///home/USER_NAME/github-wildfly-config.xml --server-config=standalone-full.xml
원격 Git 리포지토리를 사용하기 위해 인수로 서버를 시작하면 JBoss EAP는 jboss.server.base.dir 디렉터리가 이미 Git에 대해 구성되어 있는지 확인합니다. 그렇지 않은 경우 JBoss EAP는 jboss.server.base.dir 디렉터리에 기존 구성 파일을 삭제하여 원격 Git 구성 데이터로 교체합니다. JBoss EAP는 --git-branch 인수에서 전달하는 분기 이름을 확인합니다. 해당 인수가 전달되지 않으면 master 분기를 확인합니다. 이 프로세스가 완료되면 독립 실행형 서버 콘텐츠의 기본 디렉터리에 .git/ 디렉터리와 .gitignore 파일이 표시되어야 합니다.
나중에 원래 사용된 것보다 다른 --git-repo URL 또는 --git-branch 이름을 전달하는 서버를 시작하는 경우 서버를 시작하려고 할 때 java.lang.RuntimeException: WFLYSRV0268: WFLYSRV0268: Failed to pull the repository GIT_REPO_NAME 오류 메시지가 표시됩니다. JBoss EAP는 jboss.server.base.dir 디렉터리에 현재 구성된 것과 다른 리포지토리 및 분기에서 구성 데이터를 가져오고 Git 가져오기로 인해 충돌이 발생합니다.
Git을 사용할 때 원격 구성 데이터 게시
관리 CLI publish-configuration 작업을 사용하여 Git 리포지토리 변경 사항을 원격 리포지토리로 내보낼 수 있습니다. JBoss EAP는 서버를 시작할 때 부팅 프로세스 중에 원격 Git 리포지토리에서 구성을 가져오기 때문에 여러 서버에서 구성 데이터를 공유할 수 있습니다. 이 작업은 원격 리포지토리에서만 사용할 수 있습니다. 로컬 리포지토리에서 작동하지 않습니다.
다음 관리 CLI 작업은 구성 데이터를 원격 192.0.2. -configuration 리포지토리에 게시합니다.
:publish-configuration(location="=https://github.com/MY_GIT_ID/eap-configuration.git")
{"outcome" => "success"}
:publish-configuration(location="=https://github.com/MY_GIT_ID/eap-configuration.git")
{"outcome" => "success"}
Git에서 스냅샷 사용
Git 커밋 기록을 사용하여 구성 변경 사항을 추적하는 것 외에도 스냅샷을 작성하여 특정 시점에 구성을 유지할 수도 있습니다. 스냅샷을 나열하고 삭제할 수 있습니다.
Git을 사용할 때 스냅샷 생성
스냅샷은 Git에 태그로 저장됩니다. 스냅샷 태그 이름 및 커밋 메시지를 take-snapshot 작업에서 인수로 지정합니다.
다음 관리 CLI 작업은 스냅샷을 사용하여 "snapshot-01" 태그의 이름을 지정합니다.
:take-snapshot(name="snapshot-01", comment="1st snapshot")
{
"outcome" => "success",
"result" => "1st snapshot"
}
:take-snapshot(name="snapshot-01", comment="1st snapshot")
{
"outcome" => "success",
"result" => "1st snapshot"
}
Git을 사용할 때 스냅샷 나열
list-snapshots 작업을 사용하여 모든 스냅샷 태그를 나열할 수 있습니다.
다음 관리 CLI 작업에는 스냅샷 태그가 나열됩니다.
Git을 사용할 때 스냅샷 삭제
delete-snapshot 작업에 태그 이름을 전달하여 특정 스냅샷을 삭제할 수 있습니다.
다음 관리 CLI 작업은 이름이 "snapshot-01"인 스냅샷을 삭제합니다.
:delete-snapshot(name="snapshot-01")
{"outcome" => "success"}
:delete-snapshot(name="snapshot-01")
{"outcome" => "success"}
3.6. 파일 시스템 경로 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 파일 시스템 경로에 논리 이름을 사용합니다. 그런 다음 구성의 다른 영역은 논리 이름을 사용하여 경로를 참조할 수 있으므로 각 인스턴스에 절대 경로를 사용할 필요가 없으며 특정 호스트 구성이 범용 논리 이름으로 확인되도록 할 수 있습니다.
예를 들어 기본 로깅 하위 시스템 구성은 jboss.server.log.dir 을 서버 로그 디렉터리의 논리 이름으로 선언합니다.
예: 서버 로그 디렉터리에 대한 상대 경로 예
<file relative-to="jboss.server.log.dir" path="server.log"/>
<file relative-to="jboss.server.log.dir" path="server.log"/>
JBoss EAP는 사용자가 구성 파일에서 구성할 필요 없이 다양한 표준 경로를 자동으로 제공합니다.
| 속성 | 설명 |
|---|---|
| java.home | Java 설치 디렉터리 |
| jboss.controller.temp.dir |
독립 실행형 서버 및 관리형 도메인에 대한 공통 별칭입니다. 임시 파일 스토리지에 사용할 디렉터리입니다. 관리형 도메인의 |
| jboss.domain.base.dir | 도메인 콘텐츠의 기본 디렉터리입니다. |
| jboss.domain.config.dir | 도메인 구성이 포함된 디렉터리입니다. |
| jboss.domain.data.dir | 도메인이 영구 데이터 파일 스토리지에 사용할 디렉터리입니다. |
| jboss.domain.log.dir | 도메인이 영구 로그 파일 스토리지에 사용할 디렉터리입니다. |
| jboss.domain.temp.dir | 도메인이 임시 파일 스토리지에 사용할 디렉터리입니다. |
| jboss.domain.deployment.dir | 도메인이 배포된 콘텐츠를 저장하는 데 사용할 디렉터리입니다. |
| jboss.domain.servers.dir | 도메인에서 관리형 도메인 인스턴스의 출력을 저장하는 데 사용할 디렉터리입니다. |
| jboss.home.dir | JBoss EAP 배포의 루트 디렉터리입니다. |
| jboss.server.base.dir | 독립 실행형 서버 콘텐츠의 기본 디렉터리입니다. |
| jboss.server.config.dir | 독립 실행형 서버 구성이 포함된 디렉터리입니다. |
| jboss.server.data.dir | 독립 실행형 서버가 영구 데이터 파일 스토리지에 사용할 디렉터리입니다. |
| jboss.server.log.dir | 독립 실행형 서버가 로그 파일 스토리지에 사용할 디렉터리입니다. |
| jboss.server.temp.dir | 독립 실행형 서버가 임시 파일 스토리지에 사용할 디렉터리입니다. |
| jboss.server.deploy.dir | 독립 실행형 서버가 배포된 콘텐츠를 저장하는 데 사용할 디렉터리입니다. |
| user.dir | 사용자의 현재 작업 디렉터리입니다. |
| user.home | 사용자 홈 디렉터리입니다. |
표준 경로를 재정의하거나 사용자 정의 경로를 추가할 수 있습니다.
3.6.1. 파일 시스템 경로 보기 링크 복사링크가 클립보드에 복사되었습니다!
다음 관리 CLI 명령을 사용하여 파일 시스템 경로를 나열합니다.
ls /path
ls /path
관리형 도메인에서 다음 관리 CLI 명령을 사용하여 특정 서버의 파일 시스템 경로를 나열할 수 있습니다.
ls /host=HOST_NAME/server=SERVER_NAME/path
ls /host=HOST_NAME/server=SERVER_NAME/path
다음 관리 CLI 명령을 사용하여 파일 시스템 경로의 값을 읽습니다.
/path=PATH_NAME:read-resource
/path=PATH_NAME:read-resource
관리형 도메인에서 다음 관리 CLI 명령을 사용하여 특정 서버의 파일 시스템 경로 값을 읽을 수 있습니다.
/host=HOST_NAME/server=SERVER_NAME/path=PATH_NAME:read-resource
/host=HOST_NAME/server=SERVER_NAME/path=PATH_NAME:read-resource
3.6.2. 표준 경로 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
jboss.server.* 또는 jboss.domain.* 로 시작하는 표준 경로의 기본 위치를 덮어쓸 수 있습니다. 이 작업은 다음 두 가지 방법 중 하나로 수행할 수 있습니다.
서버를 시작할 때 명령줄 인수를 전달합니다. 예를 들면 다음과 같습니다.
EAP_HOME/bin/standalone.sh -Djboss.server.log.dir=/var/log
$ EAP_HOME/bin/standalone.sh -Djboss.server.log.dir=/var/logCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 위치를 포함하도록 server 구성 파일(
standalone.conf또는domain.conf)에서JAVA_OPTS변수를 수정합니다. 예를 들면 다음과 같습니다.JAVA_OPTS="$JAVA_OPTS -Djboss.server.log.dir=/var/log"
JAVA_OPTS="$JAVA_OPTS -Djboss.server.log.dir=/var/log"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
관리형 도메인의 표준 경로 덮어쓰기
이 예에서 목표는 도메인 파일을 /opt/jboss_eap/domain_data 디렉터리에 저장하고 각 최상위 디렉터리에 사용자 지정 이름을 지정하는 것입니다. 기본 디렉터리 그룹화인 by-server 가 사용됩니다.
-
로그 파일은
all_logs하위 디렉터리에 저장됩니다. -
데이터 파일은
all_data하위 디렉터리에 저장됩니다. -
임시 파일은
all_temp하위 디렉터리에 저장됩니다. -
서버의 파일은
all_servers하위 디렉터리에 저장됩니다.
이 구성을 달성하기 위해 JBoss EAP를 시작할 때 여러 시스템 속성을 덮어씁니다.
EAP_HOME/bin/domain.sh -Djboss.domain.temp.dir=/opt/jboss_eap/domain_data/all_temp -Djboss.domain.log.dir=/opt/jboss_eap/domain_data/all_logs -Djboss.domain.data.dir=/opt/jboss_eap/domain_data/all_data -Djboss.domain.servers.dir=/opt/jboss_eap/domain_data/all_servers
$ EAP_HOME/bin/domain.sh -Djboss.domain.temp.dir=/opt/jboss_eap/domain_data/all_temp -Djboss.domain.log.dir=/opt/jboss_eap/domain_data/all_logs -Djboss.domain.data.dir=/opt/jboss_eap/domain_data/all_data -Djboss.domain.servers.dir=/opt/jboss_eap/domain_data/all_servers
결과 경로 구조는 다음과 같습니다.
3.6.3. 사용자 정의 경로 추가 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI 또는 관리 콘솔을 사용하여 사용자 정의 파일 시스템 경로를 추가할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
관리 CLI에서 다음 관리 CLI 명령을 사용하여 새 경로를 추가할 수 있습니다.
/path=my.custom.path:add(path=/my/custom/path)
/path=my.custom.path:add(path=/my/custom/path)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 관리 콘솔에서 구성 탭으로 이동하여 경로를 선택하고 View 를 클릭하여 파일 시스템 경로를 구성할 수 있습니다. 여기에서 경로를 추가, 수정 및 제거할 수 있습니다.
그런 다음 구성에서 이 사용자 지정 경로를 사용할 수 있습니다. 예를 들어 아래 로그 처리기는 상대 경로에 사용자 지정 경로를 사용합니다.
3.7. 디렉터리 그룹화 링크 복사링크가 클립보드에 복사되었습니다!
관리형 도메인에서 각 서버의 파일은 EAP_HOME/domain 디렉터리에 저장됩니다. 호스트 컨트롤러의 directory-grouping 특성을 사용하여 서버의 하위 디렉터리를 구성하는 방법을 지정할 수 있습니다. 디렉터리는 서버 또는 유형 별로 그룹화할 수 있습니다. 기본적으로 디렉터리는 서버로 그룹화됩니다.
서버별 디렉터리 그룹화
기본적으로 디렉터리는 서버로 그룹화됩니다. 관리가 서버 중심적인 경우 이 구성을 사용하는 것이 좋습니다. 예를 들어 서버 인스턴스별로 백업 및 로그 파일 처리를 구성할 수 있습니다.
ZIP 설치 방법을 사용하여 JBoss EAP를 설치하는 경우 기본 디렉터리 구조(서버별로 그룹화)는 다음과 같습니다.
서버별 도메인 디렉터리를 그룹화하려면 다음 관리 CLI 명령을 입력합니다.
/host=HOST_NAME:write-attribute(name=directory-grouping,value=by-server)
/host=HOST_NAME:write-attribute(name=directory-grouping,value=by-server)
그러면 호스트 컨트롤러의 host.xml 구성 파일이 업데이트됩니다.
유형별 디렉터리 그룹화
디렉토리를 서버별로 그룹화하는 대신 파일 유형별로 그룹화할 수 있습니다. 관리가 파일 유형 중심적인 경우 이 구성을 사용하는 것이 좋습니다. 예를 들어 데이터 파일만 쉽게 백업할 수 있습니다.
ZIP 설치 방법을 사용하여 JBoss EAP를 설치하고 도메인의 파일이 유형별로 그룹화되는 경우 디렉토리 구조는 다음과 같습니다.
도메인 디렉터리를 유형별로 그룹화하려면 다음 관리 CLI 명령을 입력합니다.
/host=HOST_NAME:write-attribute(name=directory-grouping,value=by-type)
/host=HOST_NAME:write-attribute(name=directory-grouping,value=by-type)
그러면 호스트 컨트롤러의 host.xml 구성 파일이 업데이트됩니다.
3.8. 시스템 속성 링크 복사링크가 클립보드에 복사되었습니다!
Java 시스템 속성을 사용하여 많은 JBoss EAP 옵션을 구성하고 애플리케이션 서버 내에서 사용할 이름-값 쌍을 설정할 수 있습니다.
시스템 속성을 사용하여 JBoss EAP 구성의 기본값을 덮어쓸 수 있습니다. 예를 들어 공용 인터페이스 바인딩 주소에 대한 다음 XML 구성은 jboss.bind.address 시스템 속성으로 설정할 수 있지만 시스템 속성이 제공되지 않으면 기본적으로 127.0.0.1 로 설정됩니다.
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
JBoss EAP에서 시스템 속성을 설정할 수 있는 방법은 다음과 같습니다.
JBoss EAP 관리형 도메인을 사용하는 경우 시스템 속성을 전체 도메인, 특정 서버 그룹, 특정 호스트 및 모든 서버 인스턴스 또는 하나의 특정 서버 인스턴스에 적용할 수 있습니다. 대부분의 다른 JBoss EAP 도메인 설정과 마찬가지로 보다 구체적인 수준에서 설정된 시스템 속성은 더 추상적인 수준을 재정의합니다. 자세한 내용은 도메인 관리 장을 참조하십시오.
시작 스크립트에 시스템 속성 전달
-D 인수를 사용하여 JBoss EAP 시작 스크립트에 시스템 속성을 전달할 수 있습니다. 예를 들면 다음과 같습니다.
EAP_HOME/bin/standalone.sh -Djboss.bind.address=192.168.1.2
$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=192.168.1.2
시스템 속성을 설정하는 이 방법은 JBoss EAP를 시작하기 전에 설정해야 하는 JBoss EAP 옵션에 특히 유용합니다.
관리 CLI를 사용하여 시스템 속성 설정
관리 CLI를 사용하여 다음 구문을 사용하여 시스템 속성을 설정할 수 있습니다.
/system-property=PROPERTY_NAME:add(value=PROPERTY_VALUE)
/system-property=PROPERTY_NAME:add(value=PROPERTY_VALUE)
예를 들면 다음과 같습니다.
/system-property=jboss.bind.address:add(value=192.168.1.2)
/system-property=jboss.bind.address:add(value=192.168.1.2)
관리 CLI를 사용하여 시스템 속성을 설정할 때 위 예제를 포함한 일부 JBoss EAP 옵션은 다음 서버를 다시 시작한 후에만 적용됩니다.
관리형 도메인의 경우 위의 예제에서는 전체 도메인에 대한 시스템 속성을 구성하지만 도메인 구성의 보다 구체적인 수준에서 시스템 속성을 설정하거나 재정의할 수도 있습니다.
관리 콘솔을 사용하여 시스템 속성 설정
- 독립 실행형 JBoss EAP 서버의 경우 구성 탭의 관리 콘솔에서 시스템 속성을 구성할 수 있습니다. 시스템 속성 을 선택하고 보기 버튼을 클릭합니다.
관리형 도메인의 경우:
- 도메인 수준 시스템 속성은 구성 탭에서 설정할 수 있습니다. 시스템 속성 을 선택하고 보기 버튼을 클릭합니다.
- 서버 그룹 및 서버 수준 시스템 속성은 런타임 탭에서 설정할 수 있습니다. 구성할 서버 그룹 또는 서버를 선택하고 서버 그룹 또는 서버 이름 옆에 있는 보기 버튼을 클릭하고 시스템 속성 탭을 선택합니다.
- 호스트 수준 시스템 속성은 런타임 탭에서 설정할 수 있습니다. 구성할 호스트를 선택한 다음 호스트 이름 옆에 있는 드롭다운 메뉴를 사용하여 속성을 선택합니다.
JAVA_OPTS를 사용하여 시스템 속성 설정
시스템 속성은 JAVA_OPTS 환경 변수를 사용하여 구성할 수도 있습니다. JAVA_OPTS 를 수정하는 방법은 여러 가지가 있지만 JBoss EAP 프로세스에서 사용하는 JAVA_OPTS 를 설정하기 위한 구성 파일을 JBoss EAP에서 제공합니다.
독립 실행형 서버의 경우 이 파일은 EAP_HOME/bin/standalone.conf 입니다. 또는 관리형 도메인의 경우 EAP_HOME/bin/domain.conf 입니다. Microsoft Windows 시스템의 경우 이러한 파일에는 .extension 확장자가 있습니다.
RPM 설치의 경우 RPM 서비스 구성 파일은 JAVA_OPTS 를 수정하여 시스템 속성을 구성하는 기본 위치입니다. 자세한 내용은 RPM 서비스 속성 구성 을 참조하십시오.
관련 구성 파일에서 JAVA_OPTS 에 시스템 속성 정의를 추가합니다. 아래 예제에서는 Red Hat Enterprise Linux 시스템에서 바인딩 주소 설정을 보여줍니다.
standalone.conf의 경우 파일 끝에JAVA_OPTS시스템 속성 정의를 추가합니다. 예를 들면 다음과 같습니다.... # Set the bind address JAVA_OPTS="$JAVA_OPTS -Djboss.bind.address=192.168.1.2"
... # Set the bind address JAVA_OPTS="$JAVA_OPTS -Djboss.bind.address=192.168.1.2"Copy to Clipboard Copied! Toggle word wrap Toggle overflow domain.conf의 경우 프로세스 컨트롤러JAVA_OPTS설정 전에JAVA_OPTS를 설정해야 합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.9. 관리 감사 로깅 링크 복사링크가 클립보드에 복사되었습니다!
관리 API를 사용하는 관리 콘솔, 관리 CLI 또는 사용자 지정 애플리케이션을 사용하여 수행한 모든 작업을 로깅하는 관리 인터페이스에 대한 감사 로깅을 활성화할 수 있습니다. 감사 로그 항목은 JSON 형식으로 저장됩니다. 기본적으로 감사 로깅은 비활성화되어 있습니다.
파일 또는 syslog 서버로 출력하도록 감사 로깅을 구성할 수 있습니다.
JBoss EAP에 인증된 세션이 없으므로 로그인 및 로그아웃 이벤트를 감사할 수 없습니다. 대신 사용자에서 작업을 수신하면 감사 메시지가 기록됩니다.
3.9.1. 독립 실행형 서버 감사 로깅 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 비활성화되지만 기본 감사 로깅 구성은 파일에 씁니다.
이 구성은 다음 관리 CLI 명령을 사용하여 읽을 수 있습니다.
/core-service=management/access=audit:read-resource(recursive=true)
/core-service=management/access=audit:read-resource(recursive=true)
독립 실행형 서버에 대한 감사 로깅 활성화를 참조하십시오. ???
3.9.2. 관리형 도메인 감사 로깅 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 비활성화되지만 기본 감사 로깅 구성은 각 호스트와 각 서버에 대해 파일을 작성합니다.
이 구성은 다음 관리 CLI 명령을 사용하여 읽을 수 있습니다.
/host=HOST_NAME/core-service=management/access=audit:read-resource(recursive=true)
/host=HOST_NAME/core-service=management/access=audit:read-resource(recursive=true)
관리형 도메인에 대한 감사 로깅 활성화를 참조하십시오. ???
3.9.3. 관리 감사 로깅 활성화 링크 복사링크가 클립보드에 복사되었습니다!
감사 로깅은 기본적으로 비활성화되어 있지만 JBoss EAP는 감사 로깅을 위해 파일 처리기로 사전 구성됩니다. 감사 로깅을 활성화하는 관리 CLI 명령은 독립 실행형 서버로 실행 중인지 아니면 관리형 도메인에서 실행 중인지에 따라 달라집니다. 파일 처리기 속성에 대한 관리 감사 로깅 특성을 참조하십시오.
다음 명령은 NATIVE 및 HTTP 감사 로깅을 활성화합니다. Cryostat 감사 로깅을 구성하려면 Enable Cryostat 관리 감사 로깅 을 참조하십시오.
syslog 감사 로깅을 설정하려면 syslog 서버에 관리 감사 로깅 전송을 참조하십시오.
3.9.3.1. 독립 실행형 서버 감사 로깅 활성화 링크 복사링크가 클립보드에 복사되었습니다!
다음 명령을 사용하여 감사 로깅을 활성화할 수 있습니다.
/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)
/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)
기본적으로 감사 로그는 EAP_HOME/standalone/data/audit-log.log 에 작성합니다.
3.9.3.2. 관리형 도메인 감사 로깅 활성화 링크 복사링크가 클립보드에 복사되었습니다!
관리형 도메인의 기본 감사 로깅 구성은 각 호스트와 각 서버에 대한 감사 로그를 작성하도록 사전 구성됩니다.
다음 명령을 사용하여 각 호스트에 대한 감사 로깅을 활성화할 수 있습니다.
/host=HOST_NAME/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)
/host=HOST_NAME/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)
기본적으로 감사 로그를 EAP_HOME/domain/data/audit-log.log 에 작성합니다.
다음 명령을 사용하여 각 서버의 감사 로깅을 활성화할 수 있습니다.
/host=HOST_NAME/core-service=management/access=audit/server-logger=audit-log:write-attribute(name=enabled,value=true)
/host=HOST_NAME/core-service=management/access=audit/server-logger=audit-log:write-attribute(name=enabled,value=true)
기본적으로 감사 로그를 EAP_HOME/domain/servers/SERVER_NAME/data/audit-log.log 에 작성합니다.
3.9.4. Cryostat 관리 감사 로깅 활성화 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 기본적으로 비활성화되어 있지만 audit 로깅을 위한 파일 처리기로 사전 구성됩니다. 감사 로깅을 활성화하는 관리 CLI 명령은 독립 실행형 서버 또는 관리형 도메인으로 실행 중인지에 따라 달라집니다.
NATIVE 또는 HTTP 감사 로깅을 구성하려면 관리 감사 로깅 활성화를 참조하십시오.
3.9.4.1. 독립 실행형 서버 Cryostat 감사 로깅 활성화 링크 복사링크가 클립보드에 복사되었습니다!
다음 명령을 사용하여 독립 실행형 서버에 대해 Cryostat 감사 로깅을 활성화할 수 있습니다.
/subsystem=jmx/configuration=audit-log:add() /subsystem=jmx/configuration=audit-log/handler=file:add()
/subsystem=jmx/configuration=audit-log:add()
/subsystem=jmx/configuration=audit-log/handler=file:add()
그러면 Cryostat 감사 로깅이 활성화되고 정의된 파일 처리기를 사용하여 이러한 로그를 EAP_HOME/standalone/data/audit-log.log 에 씁니다.
3.9.4.2. 관리형 도메인 Cryostat 감사 로깅 활성화 링크 복사링크가 클립보드에 복사되었습니다!
관리형 도메인의 각 호스트 및 프로필에 대해 Cryostat 감사 로깅을 활성화할 수 있습니다.
호스트에 대해 Cryostat 감사 로깅 활성화
호스트의
jmx하위 시스템에서 감사 로깅을 활성화합니다./host=HOST_NAME/subsystem=jmx/configuration=audit-log:add()
/host=HOST_NAME/subsystem=jmx/configuration=audit-log:add()Copy to Clipboard Copied! Toggle word wrap Toggle overflow jmx하위 시스템에 대한 감사 로깅이 활성화되면 다음 명령을 사용하여 호스트에 대해 처리기를 정의할 수 있습니다./host=HOST_NAME/subsystem=jmx/configuration=audit-log/handler=host-file:add()
/host=HOST_NAME/subsystem=jmx/configuration=audit-log/handler=host-file:add()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로 이 로그는
EAP_HOME/domain/data/audit-log.log에 audit 로그를 작성합니다.
프로필에 대해 Cryostat 감사 로깅 활성화
프로필의
jmx하위 시스템에서 감사 로깅을 활성화합니다./profile=PROFILE_NAME/subsystem=jmx/configuration=audit-log:add()
/profile=PROFILE_NAME/subsystem=jmx/configuration=audit-log:add()Copy to Clipboard Copied! Toggle word wrap Toggle overflow jmx하위 시스템에 대한 감사 로깅이 활성화되면 다음 명령을 사용하여 프로필에 대해 처리기를 정의할 수 있습니다./profile=PROFILE_NAME/subsystem=jmx/configuration=audit-log/handler=server-file:add()
/profile=PROFILE_NAME/subsystem=jmx/configuration=audit-log/handler=server-file:add()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로 이 로그는
EAP_HOME/domain/servers/SERVER_NAME/data/audit-log.log에 audit로그를 작성합니다.
3.9.5. syslog 서버에 관리 감사 로깅 전송 링크 복사링크가 클립보드에 복사되었습니다!
syslog 처리기는 감사 로그 항목이 syslog 서버로 전송되는 매개변수, 특히 syslog 서버의 호스트 이름과 syslog 서버가 수신 대기하는 포트를 지정합니다. 감사 로깅을 syslog 서버로 전송하면 로컬 파일 또는 로컬 syslog 서버에 로깅하는 것보다 더 많은 보안 옵션이 제공됩니다. 여러 syslog 처리기를 정의하고 동시에 활성화할 수 있습니다.
기본적으로 감사 로깅은 활성화된 경우 파일로 출력되도록 사전 구성됩니다. 다음 단계를 사용하여 syslog 서버에 대한 감사 로깅을 설정하고 활성화합니다. syslog 처리기 속성에 대한 관리 감사 로깅 특성을 참조하십시오.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
syslog 처리기를 추가합니다.
syslog 서버의 호스트 및 포트를 지정하여 syslog 처리기를 생성합니다. 관리형 도메인에서
/core-service명령 앞에/host=HOST_NAME이 있어야 합니다.batch /core-service=management/access=audit/syslog-handler=SYSLOG_HANDLER_NAME:add(formatter=json-formatter) /core-service=management/access=audit/syslog-handler=SYSLOG_HANDLER_NAME/protocol=udp:add(host=HOST_NAME,port=PORT) run-batch
batch /core-service=management/access=audit/syslog-handler=SYSLOG_HANDLER_NAME:add(formatter=json-formatter) /core-service=management/access=audit/syslog-handler=SYSLOG_HANDLER_NAME/protocol=udp:add(host=HOST_NAME,port=PORT) run-batchCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고전달할 매개변수는 지정된 프로토콜에 따라 다릅니다.
TLS를 사용하여 syslog 서버와 안전하게 통신하도록 처리기를 구성하려면 다음과 같이 인증을 구성해야 합니다.
/core-service=management/access=audit/syslog-handler=SYSLOG_HANDLER_NAME/protocol=tls/authentication=truststore:add(keystore-path=PATH_TO_TRUSTSTORE,keystore-password=TRUSTSTORE_PASSWORD)
/core-service=management/access=audit/syslog-handler=SYSLOG_HANDLER_NAME/protocol=tls/authentication=truststore:add(keystore-path=PATH_TO_TRUSTSTORE,keystore-password=TRUSTSTORE_PASSWORD)Copy to Clipboard Copied! Toggle word wrap Toggle overflow syslog 처리기에 참조를 추가합니다.
관리형 도메인에서 이 명령 앞에
/host=HOST_NAME이어야 합니다./core-service=management/access=audit/logger=audit-log/handler=SYSLOG_HANDLER_NAME:add
/core-service=management/access=audit/logger=audit-log/handler=SYSLOG_HANDLER_NAME:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 감사 로깅을 활성화합니다.
감사 로깅을 활성화하려면 관리 감사 로깅 활성화를 참조하십시오.
운영 체제에서 로깅이 활성화되지 않는 한 JBoss EAP에서 syslog 서버에 대한 감사 로깅 활성화는 작동하지 않습니다.
Red Hat Enterprise Linux의 rsyslog 구성에 대한 자세한 내용은 https://access.redhat.com/documentation/en/red-hat-enterprise-linux/ 에서 Red Hat Enterprise Linux 시스템 관리자 가이드 의 Rsyslog 기본 구성 섹션을 참조하십시오.
3.9.6. 감사 로그 항목 읽기 링크 복사링크가 클립보드에 복사되었습니다!
파일에 대한 감사 로그 항목은 텍스트 뷰어 에서 가장 잘 볼 수 있는 반면 syslog 서버로의 출력은 syslog 뷰어 애플리케이션을 사용하여 가장 잘 볼 수 있습니다.
일부에서는 텍스트 편집기 를 사용하여 로그 파일을 보는 것이 권장되지 않습니다. 일부에서는 추가 로그 항목이 로그 파일에 기록되지 않을 수 있습니다.
감사 로그 항목은 JSON 형식으로 저장됩니다. 각 로그 항목은 선택적 타임스탬프로 시작한 다음 아래 표의 필드로 시작합니다.
| 필드 이름 | 설명 |
|---|---|
| 액세스 | 여기에는 다음 값 중 하나가 있을 수 있습니다.
|
| 부팅 |
부팅 프로세스 중에 작업이 실행된 경우 값이 |
| domainUUID | 도메인 컨트롤러에서 서버, 보조 호스트 컨트롤러 및 보조 호스트 컨트롤러 서버로 전파되므로 모든 작업을 함께 연결하는 ID입니다. |
| Ops | 실행 중인 작업입니다. JSON으로 직렬화된 작업 목록입니다. 부팅 시 이 작업은 XML 구문 분석으로 인한 작업입니다. 부팅되면 목록에 일반적으로 단일 항목이 포함됩니다. |
| R/O |
작업이 관리 모델을 변경하지 않는 경우 값이 |
| remote-address | 이 작업을 실행하는 클라이언트의 주소입니다. |
| success |
작업이 성공한 경우 값이 |
| type |
이 값은 |
| user |
인증된 사용자의 사용자 이름입니다. 실행 중인 서버와 동일한 시스템에서 관리 CLI를 사용하여 작업이 발생한 경우 특수 사용자 |
| version | JBoss EAP 인스턴스의 버전 번호입니다. |
3.10. 서버 라이프사이클 이벤트 알림 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP core-management 하위 시스템 또는 Cryostat를 사용하여 서버 라이프사이클 이벤트에 대한 알림을 설정할 수 있습니다. 서버 런타임 구성 상태 또는 서버 실행 상태가 변경되면 알림이 트리거됩니다.
JBoss EAP의 서버 런타임 구성 상태는 STARTING,RUNNING,RELOAD_REQUIRED,RESTART_REQUIRED,STOPPING, STOPPED 입니다.
JBoss EAP에 대한 서버 실행 상태는 STARTING,NORMAL,ADMIN_ONLY,PRE_SUSPEND,SUSPENDING,SUSPENDED,STOPPING, STOPPED 입니다.
3.10.1. 코어 관리 하위 시스템을 사용하여 서버 라이프사이클 이벤트 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
리스너를 JBoss EAP 코어 관리 하위 시스템에 등록하여 서버 라이프사이클 이벤트를 모니터링할 수 있습니다. 다음 단계에서는 이벤트를 파일에 기록하는 리스너 예제를 생성하고 등록하는 방법을 보여줍니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
리스너를 생성합니다.
아래 예제와 같이
org.wildfly.extension.core.management.client.ProcessStateListener의 구현을 만듭니다.예: Listener 클래스
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고리스너를 구현할 때 다음 사항을 고려하십시오.
- 서버가 다시 로드되는 경우 서버가 중지되는 동안 리스너가 수신 대기를 중지하고 서버가 시작될 때 리스너가 다시 로드됩니다. 따라서 구현은 동일한 JVM 내에서 여러 번 올바르게 로드, 초기화 및 제거할 수 있는지 확인해야 합니다.
- 리스너에 대한 알림은 서버 상태 변경에 대한 응답을 허용하기 위해 차단하고 있습니다. 구현은 차단 또는 교착 상태가 되지 않도록 해야 합니다.
- 각 리스너 인스턴스는 자체 스레드에서 실행되며 순서가 보장되지 않습니다.
클래스를 컴파일하고 JAR에 패키징합니다.
컴파일하려면
org.wildfly.core:wildfly-core-clientMaven 모듈을 사용해야 합니다.JAR을 JBoss EAP 모듈로 추가합니다.
다음 관리 CLI 명령을 사용하여 JAR의 모듈 이름과 경로를 제공합니다.
module add --name=org.simple.lifecycle.events.listener --dependencies=org.wildfly.extension.core-management-client --resources=/path/to/simple-listener-0.0.1-SNAPSHOT.jar
module add --name=org.simple.lifecycle.events.listener --dependencies=org.wildfly.extension.core-management-client --resources=/path/to/simple-listener-0.0.1-SNAPSHOT.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
리스너를 등록합니다.
다음 관리 CLI 명령을 사용하여
core-management하위 시스템에 리스너를 추가합니다. 서버 라이프사이클 이벤트를 기록하려면 class, module, file 위치를 지정합니다./subsystem=core-management/process-state-listener=my-simple-listener:add(class=org.simple.lifecycle.events.listener.SimpleListener, module=org.simple.lifecycle.events.listener,properties={file=/path/to/my-listener-output.txt})/subsystem=core-management/process-state-listener=my-simple-listener:add(class=org.simple.lifecycle.events.listener.SimpleListener, module=org.simple.lifecycle.events.listener,properties={file=/path/to/my-listener-output.txt})Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 서버 라이프사이클 이벤트가 위의 SimpleListener 클래스를 기반으로 my-listener-output.txt 파일에 기록됩니다. 예를 들어 관리 CLI에서 :suspend 명령을 실행하면 다음이 my-listener-output.txt 파일에 출력됩니다.
Running state change for STANDALONE_SERVER: normal to suspending Running state change for STANDALONE_SERVER: suspending to suspended
Running state change for STANDALONE_SERVER: normal to suspending
Running state change for STANDALONE_SERVER: suspending to suspended
이는 실행 중 상태가 정상에서 중지됨으로 변경된 후 일시 일시 나타냅니다.
중지됨 을
3.10.2. Cryostat 알림을 사용하여 서버 라이프사이클 이벤트 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
Cryostat 알림 리스너를 등록하여 서버 라이프사이클 이벤트를 모니터링할 수 있습니다. 다음 단계에서는 이벤트를 파일에 기록하는 예제 리스너를 생성하고 추가하는 방법을 보여줍니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
리스너를 생성합니다.
아래 예제와 같이
java.management.NotificationListener의 구현을 생성합니다.예: Listener 클래스
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 알림 리스너를 등록합니다.
알림 리스너를
Server에추가합니다.예: 알림 리스너 추가
MBeanServer server = ManagementFactory.getPlatformMBeanServer(); server.addNotificationListener(ObjectName.getInstance("jboss.root:type=state"), new StateNotificationListener(), null, null);MBeanServer server = ManagementFactory.getPlatformMBeanServer(); server.addNotificationListener(ObjectName.getInstance("jboss.root:type=state"), new StateNotificationListener(), null, null);Copy to Clipboard Copied! Toggle word wrap Toggle overflow - JBoss EAP 패키지 및 배포.
이제 서버 라이프사이클 이벤트가 위의 StateNotificationListener 클래스를 기반으로 파일에 기록됩니다. 예를 들어 관리 CLI에서 :suspend 명령을 실행하면 running-notifications.txt 파일에 다음이 출력됩니다.
jmx.attribute.change 5 jboss.root:type=state The attribute 'RunningState' has changed from 'normal' to 'suspending' jmx.attribute.change 6 jboss.root:type=state The attribute 'RunningState' has changed from 'suspending' to 'suspended'
jmx.attribute.change 5 jboss.root:type=state The attribute 'RunningState' has changed from 'normal' to 'suspending'
jmx.attribute.change 6 jboss.root:type=state The attribute 'RunningState' has changed from 'suspending' to 'suspended'
이는 실행 중 상태가 정상에서 중지됨으로 변경된 후 일시 일시 나타냅니다.
중지됨 을
4장. 네트워크 및 포트 구성 링크 복사링크가 클립보드에 복사되었습니다!
4.1. 인터페이스 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 구성에 걸쳐 이름이 지정된 인터페이스를 참조합니다. 이를 통해 구성은 각 용도에 인터페이스의 전체 세부 정보가 필요하지 않고 논리적 이름으로 개별 인터페이스 선언을 참조할 수 있습니다.
또한 관리형 도메인에서 더 쉽게 구성할 수 있습니다. 여기서 네트워크 인터페이스 세부 정보가 여러 시스템에 따라 다를 수 있습니다. 각 서버 인스턴스는 논리 이름 그룹에 대응할 수 있습니다.
standalone.xml,domain.xml 및 host.xml 파일에는 모두 인터페이스 선언이 포함됩니다. 사용되는 기본 구성에 따라 몇 가지 사전 구성된 인터페이스 이름이 있습니다. 관리 인터페이스는 HTTP 관리 끝점을 포함하여 관리 계층이 필요한 모든 구성 요소 및 서비스에 사용할 수 있습니다. 공용 인터페이스는 모든 애플리케이션 관련 네트워크 통신에 사용할 수 있습니다. 비보안 인터페이스는 표준 구성의 IIOP 소켓에 사용됩니다. 개인 인터페이스는 표준 구성의 Cryostat 소켓에 사용됩니다.
4.1.1. 기본 인터페이스 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 인터페이스 구성은 기본적으로 설정됩니다.
JBoss EAP는 이러한 인터페이스를 127.0.0.1 에 바인딩하지만 이러한 값은 적절한 속성을 설정하여 런타임 시 재정의할 수 있습니다. 예를 들어 다음 명령을 사용하여 JBoss EAP를 독립 실행형 서버로 시작할 때 공용 인터페이스의 inet-address 를 설정할 수 있습니다.
EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
또는 server start 명령행에서 -b 스위치를 사용할 수 있습니다.
EAP_HOME/bin/standalone.sh -b IP_ADDRESS
$ EAP_HOME/bin/standalone.sh -b IP_ADDRESS
위의 명령에서 -b IP_ADDRESS 는 -Djboss.bind.address=IP_ADDRESS 와 동일합니다.
-b 스위치를 사용하여 관리 인터페이스의 inet-address 를 설정할 수도 있습니다.
EAP_HOME/bin/standalone.sh -bmanagement=IP_ADDRESS
$ EAP_HOME/bin/standalone.sh -bmanagement=IP_ADDRESS
단일 변수만 설정하려면 jboss.bind.address.management 를 jboss.bind.address.address로 변경할 수 있습니다. -b 스위치 또는 -Djboss.bind.address 를 설정하면 공용 및 관리 인터페이스가 동일한 IP_ADDRESS 를 공유합니다.
서버 시작 옵션에 대한 자세한 내용은 Server Runtime Arguments 를 참조하십시오.
JBoss EAP에서 사용하는 기본 네트워크 인터페이스 또는 포트를 수정하는 경우 수정된 인터페이스 또는 포트를 사용하는 스크립트도 변경해야 합니다. 여기에는 JBoss EAP 서비스 스크립트와 관리 콘솔 또는 관리 CLI에 액세스할 때 올바른 인터페이스 및 포트를 지정해야 합니다.
4.1.2. 인터페이스 구성 링크 복사링크가 클립보드에 복사되었습니다!
네트워크 인터페이스는 물리적 인터페이스에 대한 논리 이름 및 선택 기준을 지정하여 선언합니다. 선택 기준은 와일드카드 주소를 참조하거나 유효한 일치를 위해 인터페이스 또는 주소에 있어야 하는 하나 이상의 특성 세트를 지정할 수 있습니다. 사용 가능한 모든 인터페이스 선택 기준의 목록은 인터페이스 속성 섹션을 참조하십시오.
인터페이스는 관리 콘솔 또는 관리 CLI를 사용하여 구성할 수 있습니다. 다음은 인터페이스 추가 및 업데이트의 몇 가지 예입니다. 관리 CLI 명령 다음에 해당 구성 XML이 표시됩니다.
NIC 값을 사용하여 인터페이스 추가
NIC 값이 eth0 인 새 인터페이스를 추가합니다.
/interface=external:add(nic=eth0)
/interface=external:add(nic=eth0)
<interface name="external"> <nic name="eth0"/> </interface>
<interface name="external">
<nic name="eth0"/>
</interface>
여러 조건부 값을 사용하여 인터페이스 추가
작동 중인 경우 올바른 서브넷의 인터페이스/address와 일치하는 새 인터페이스를 추가하고, 멀티캐스트를 지원하며, 지점 간이 아닙니다.
/interface=default:add(subnet-match=192.168.0.0/16,up=true,multicast=true,not={point-to-point=true})
/interface=default:add(subnet-match=192.168.0.0/16,up=true,multicast=true,not={point-to-point=true})
인터페이스 속성 업데이트
이 값을 런타임 시 설정할 수 있도록 jboss.bind.address 속성을 유지하면서 공용 인터페이스의 기본 inet-address 값을 업데이트합니다.
/interface=public:write-attribute(name=inet-address,value="${jboss.bind.address:192.168.0.0}")
/interface=public:write-attribute(name=inet-address,value="${jboss.bind.address:192.168.0.0}")
<interface name="public">
<inet-address value="${jboss.bind.address:192.168.0.0}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:192.168.0.0}"/>
</interface>
관리형 도메인의 서버에 인터페이스 추가
/host=HOST_NAME/server-config=SERVER_NAME/interface=INTERFACE_NAME:add(inet-address=127.0.0.1)
/host=HOST_NAME/server-config=SERVER_NAME/interface=INTERFACE_NAME:add(inet-address=127.0.0.1)
4.2. 소켓 바인딩 링크 복사링크가 클립보드에 복사되었습니다!
소켓 바인딩 및 소켓 바인딩 그룹을 사용하면 JBoss EAP 구성에 필요한 네트워킹 인터페이스와 네트워크 포트 및 해당 관계를 정의할 수 있습니다. 소켓 바인딩은 소켓에 대해 이름이 지정된 구성입니다. 소켓 바인딩 그룹은 논리 이름으로 그룹화되는 소켓 바인딩 선언 컬렉션입니다.
이를 통해 구성의 다른 섹션은 각 용도에 소켓 구성의 전체 세부 정보가 필요하지 않고 논리 이름으로 소켓 바인딩을 참조할 수 있습니다.
이러한 이름의 구성에 대한 선언은 standalone.xml 및 domain.xml 구성 파일에서 확인할 수 있습니다. 독립 실행형 서버에는 하나의 소켓 바인딩 그룹만 포함되어 있지만 관리형 도메인에는 여러 그룹을 포함할 수 있습니다. 관리형 도메인의 각 서버 그룹에 대해 소켓 바인딩 그룹을 생성하거나 여러 서버 그룹 간에 소켓 바인딩 그룹을 공유할 수 있습니다.
JBoss EAP는 기본적으로 사용되는 소켓 바인딩 그룹과 개별 배포의 요구 사항에 따라 다릅니다.
JBoss EAP 구성의 소켓 바인딩 그룹에는 다음 세 가지 유형의 소켓 바인딩이 있습니다.
- 인바운드 소켓 바인딩
socket-binding요소는 JBoss EAP 서버에 대한 인바운드 소켓 바인딩을 구성하는 데 사용됩니다. 기본 JBoss EAP 구성은 HTTP 및 HTTPS 트래픽과 같은 여러 사전 구성된소켓 바인딩요소를 제공합니다. 또 다른 예는 JBoss EAP에 대한 메시징 구성 의 Broadcast groups 섹션에서 확인할 수 있습니다.이 요소의 속성은 인바운드 소켓 바인딩 특성 표에서 확인할 수 있습니다.
- 원격 아웃 바운드 소켓 바인딩
remote-destination-outbound-socket-binding요소는 JBoss EAP 서버에 원격 대상에 대한 아웃 바운드 소켓 바인딩을 구성하는 데 사용됩니다. 기본 JBoss EAP 구성은 메일 서버에 사용할 수 있는 원격 대상 소켓 바인딩 예제를 제공합니다. 또 다른 예는 JBoss EAP에 대한 메시징 구성 의 원격 연결에 통합 Artemis 리소스 어댑터 사용 섹션에서 확인할 수 있습니다.이 요소의 특성은 Remote outbound socket binding attributes table에서 확인할 수 있습니다.
- 로컬 아웃 바운드 소켓 바인딩
local-destination-outbound-socket-binding요소는 JBoss EAP 서버에 로컬인 대상에 대한 아웃 바운드 소켓 바인딩을 구성하는 데 사용됩니다. 이 유형의 소켓 바인딩은 일반적으로 사용되지 않을 수 있습니다.이 요소의 속성은 로컬 아웃 바운드 소켓 바인딩 특성 표에서 확인할 수 있습니다.
4.2.1. 관리 포트 링크 복사링크가 클립보드에 복사되었습니다!
관리 포트는 JBoss EAP 7에 통합되었습니다. 기본적으로 JBoss EAP 8.0은 관리 CLI에서 사용하는 기본 관리와 웹 기반 관리 콘솔에서 사용하는 HTTP 관리에 모두 포트 9990 을 사용합니다. JBoss EAP 6에서 네이티브 관리 포트로 사용된 포트 9999 는 더 이상 사용되지 않지만 원하는 경우 활성화할 수 있습니다.
관리 콘솔에 HTTPS가 활성화된 경우 기본적으로 포트 9993 이 사용됩니다.
4.2.2. 기본 소켓 바인딩 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP에는 사전 정의된 5개의 프로필(기본값, ha, full ,full -ha ,load-balancer) 각각에 대해 소켓 바인딩 그룹이 포함되어 있습니다.
기본 포트 및 설명과 같은 기본 소켓 바인딩에 대한 자세한 내용은 기본 소켓 바인딩 그룹 섹션을 참조하십시오.
JBoss EAP에서 사용하는 기본 네트워크 인터페이스 또는 포트를 수정하는 경우 수정된 인터페이스 또는 포트를 사용하는 스크립트도 변경해야 합니다. 여기에는 JBoss EAP 서비스 스크립트와 관리 콘솔 또는 관리 CLI에 액세스할 때 올바른 인터페이스 및 포트를 지정해야 합니다.
독립 실행형 서버
독립 실행형 서버로 실행하는 경우 구성 파일별로 하나의 소켓 바인딩 그룹만 정의됩니다. 각 독립 실행형 구성 파일(standalone.xml,standalone-ha.xml,standalone-full.xml,)은 해당 프로필에서 사용하는 기술에 대한 소켓 바인딩을 정의합니다.
standalone-full-ha.xml
예를 들어 기본 독립 실행형 구성 파일(standalone.xml)은 아래 소켓 바인딩을 지정합니다.
관리형 도메인
관리형 도메인에서 실행하는 경우 모든 소켓 바인딩 그룹이 domain.xml 파일에 정의됩니다. 미리 정의된 소켓 바인딩 그룹이 5개 있습니다.
-
standard-sockets -
ha-sockets -
full-sockets -
full-ha-sockets -
load-balancer-sockets
각 소켓 바인딩 그룹은 해당 프로필에서 사용하는 기술에 대한 소켓 바인딩을 지정합니다. 예를 들어 full-ha-sockets 소켓 바인딩 그룹은 고가용성을 위해 full-ha 프로필에서 사용하는 여러 jgroups 소켓 바인딩을 정의합니다.
관리 인터페이스에 대한 소켓 구성은 도메인 컨트롤러의 host.xml 파일에 정의되어 있습니다.
4.2.3. 소켓 바인딩 구성 링크 복사링크가 클립보드에 복사되었습니다!
소켓 바인딩을 정의할 때 포트 및 인터페이스 특성과 멀티캐스트 주소 및 멀티 캐스트 설정을 구성할 수 있습니다. 사용 가능한 모든 소켓 바인딩 속성에 대한 자세한 내용은 Socket 바인딩 특성 섹션을 참조하십시오.
포트 와 같은 멀티 캐스트
소켓 바인딩은 관리 콘솔 또는 관리 CLI를 사용하여 구성할 수 있습니다. 다음 단계는 소켓 바인딩 그룹을 추가하고, 소켓 바인딩을 추가하고, 관리 CLI를 사용하여 소켓 바인딩 설정을 구성하는 단계를 진행합니다.
프로세스
새 소켓 바인딩 그룹을 추가합니다.
참고독립 실행형 서버로 실행할 때는 이 단계를 수행할 수 없습니다.
/socket-binding-group=new-sockets:add(default-interface=public)
/socket-binding-group=new-sockets:add(default-interface=public)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 소켓 바인딩을 추가합니다.
/socket-binding-group=new-sockets/socket-binding=new-socket-binding:add(port=1234)
/socket-binding-group=new-sockets/socket-binding=new-socket-binding:add(port=1234)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 소켓 바인딩 그룹에 의해 설정된 기본값 이외의 인터페이스를 사용하도록 소켓 바인딩을 변경합니다.
/socket-binding-group=new-sockets/socket-binding=new-socket-binding:write-attribute(name=interface,value=unsecure)
/socket-binding-group=new-sockets/socket-binding=new-socket-binding:write-attribute(name=interface,value=unsecure)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 예제에서는 위의 단계가 완료된 후 XML 구성이 표시되는 방법을 보여줍니다.
4.2.4. 서버의 소켓 바인딩 및 열려 있는 포트 보기 링크 복사링크가 클립보드에 복사되었습니다!
관리 콘솔에서 서버의 소켓 바인딩 이름과 열려 있는 포트를 볼 수 있습니다.
사전 요구 사항
소켓 바인딩 이름과 열린 포트는 서버가 다음 상태 중 하나에 있는 경우에만 표시됩니다.
-
running -
reload-required -
restart-required
프로세스
- 관리 콘솔에 액세스하여 런타임으로 이동합니다.
- 오른쪽 창에서 소켓 바인딩 이름과 열려 있는 포트를 보려면 서버를 클릭합니다.
4.2.5. 포트 오프셋 링크 복사링크가 클립보드에 복사되었습니다!
포트 오프셋은 해당 서버의 소켓 바인딩 그룹에 지정된 모든 포트 값에 추가된 숫자 오프셋 값입니다. 이를 통해 서버는 소켓 바인딩 그룹에 정의된 포트 값을 상속하여 동일한 호스트의 다른 서버와 충돌하지 않도록 오프셋을 사용할 수 있습니다. 예를 들어 소켓 바인딩 그룹의 HTTP 포트가 8080 이고 서버에서 100 의 포트 오프셋을 사용하는 경우 HTTP 포트는 8180 입니다.
다음은 관리 CLI를 사용하여 관리형 도메인의 서버에 대해 250 의 포트 오프셋을 설정하는 예입니다.
/host=primary/server-config=server-two/:write-attribute(name=socket-binding-port-offset,value=250)
/host=primary/server-config=server-two/:write-attribute(name=socket-binding-port-offset,value=250)
포트 오프셋은 관리형 도메인의 서버와 동일한 호스트에서 여러 독립 실행형 서버를 실행하는 데 사용할 수 있습니다.
jboss.socket.binding.port-offset 속성을 사용하여 독립 실행형 서버를 시작할 때 포트 오프셋을 전달할 수 있습니다.
EAP_HOME/bin/standalone.sh -Djboss.socket.binding.port-offset=100
$ EAP_HOME/bin/standalone.sh -Djboss.socket.binding.port-offset=100
4.3. IPv6 주소 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 JBoss EAP는 IPv4 주소를 사용하여 실행되도록 구성되어 있습니다. 아래 단계에서는 IPv6 주소를 사용하여 실행하도록 JBoss EAP를 구성하는 방법을 보여줍니다.
4.3.1. IPv6 주소에 대한 JVM 스택 구성 링크 복사링크가 클립보드에 복사되었습니다!
IPv6 주소를 선호하도록 시작 구성을 업데이트합니다.
프로세스
시작 구성 파일을 엽니다.
-
독립 실행형 서버로 실행하는 경우
EAP_HOME/bin/standalone.conf파일(또는 Windows Server의 경우standalone.conf.#159)을 편집합니다. -
관리형 도메인에서 실행하는 경우
EAP_HOME/bin/domain.conf파일(또는 Windows Server의 경우domain.conf.skip)을 편집합니다.
-
독립 실행형 서버로 실행하는 경우
java.net.preferIPv4Stack속성을false로 설정합니다.-Djava.net.preferIPv4Stack=false
-Djava.net.preferIPv4Stack=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow java.net.preferIPv6Addresses속성을 추가하고true로 설정합니다.-Djava.net.preferIPv6Addresses=true
-Djava.net.preferIPv6Addresses=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 예제에서는 시작 구성 파일의 JVM 옵션이 위의 변경 후 어떻게 표시되는지 보여줍니다.
4.3.2. IPv6 주소에 대한 인터페이스 선언 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
구성의 기본 인터페이스 값은 IPv6 주소로 변경할 수 있습니다. 예를 들어 아래 관리 CLI 명령은 관리 인터페이스를 IPv6 루프백 주소(::1)로 설정합니다.
/interface=management:write-attribute(name=inet-address,value="${jboss.bind.address.management:[::1]}")
/interface=management:write-attribute(name=inet-address,value="${jboss.bind.address.management:[::1]}")
다음 예제에서는 위의 명령을 실행한 후 XML 구성이 어떻게 보일 수 있는지 보여줍니다.
5장. JBoss EAP 클래스 로드 개요 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 배포된 애플리케이션의 클래스 경로를 제어하기 위해 모듈식 클래스 로드 시스템을 사용합니다. 이 시스템은 계층적 클래스 로더의 기존 시스템보다 유연성과 제어 기능을 제공합니다. 개발자는 애플리케이션에서 사용할 수 있는 클래스를 세밀하게 제어할 수 있으며 애플리케이션 서버에서 제공하는 클래스를 무시하도록 배포를 구성할 수 있습니다.
모듈식 클래스 로더는 모든 Java 클래스를 모듈이라는 논리 그룹으로 구분합니다. 각 모듈은 다른 모듈에 대한 종속성을 정의하여 해당 모듈의 클래스를 자체 클래스 경로에 포함할 수 있습니다. 배포된 각 Java Archive(JAR) 및 Web Archive(WAR) 파일은 모듈로 처리되므로 개발자는 모듈 구성을 추가하여 애플리케이션의 클래스 경로 내용을 제어할 수 있습니다.
5.1. JBoss EAP의 모듈 유형 링크 복사링크가 클립보드에 복사되었습니다!
모듈은 클래스 로드 및 종속성 관리에 사용되는 클래스의 논리 그룹입니다. JBoss EAP는 다음 두 가지 유형의 모듈을 식별합니다.
- 정적 모듈
- 동적 모듈
이 둘의 가장 큰 차이점은 패키지화 방법입니다.
JBoss EAP는 사전 정의된 모듈 세트도 제공합니다.
5.1.1. JBoss EAP의 정적 모듈 링크 복사링크가 클립보드에 복사되었습니다!
정적 모듈은 애플리케이션 서버의 EAP_HOME/modules/ 디렉터리에 정의됩니다. 각 모듈은 하위 디렉터리로 존재합니다(예: EAP_HOME/modules/com/mysql/ ). 그런 다음 각 모듈 디렉터리에는 기본 설정 파일과 module.xml (JAR) 파일이 포함된 slot 하위 디렉터리가 포함되어 있습니다. 모든 애플리케이션 서버 제공 API는 Jakarta EE API 및 기타 API를 포함하여 정적 모듈로 제공됩니다.
예: MySQL JDBC Driver module.xml 파일
MySQL 드라이버 JAR 이름 mysql-connector-j-8.0.33.jar는 예제로만 제공됩니다. 테스트된 MySQL 버전에 대한 자세한 내용은 테스트 된 데이터베이스 를 참조하십시오.
모듈 이름 com.mysql 은 슬롯 이름을 제외하고 모듈의 디렉터리 구조와 일치해야 합니다.
동일한 타사 라이브러리를 사용하는 동일한 서버에 많은 애플리케이션이 배포되는 경우 사용자 지정 정적 모듈을 생성할 수 있습니다. 각 애플리케이션과 함께 이러한 라이브러리를 번들하는 대신 관리자가 이러한 라이브러리를 포함하는 모듈을 생성하고 설치할 수 있습니다. 그런 다음 애플리케이션은 사용자 지정 정적 모듈에 대한 명시적 종속성을 선언할 수 있습니다.
JBoss EAP 배포에 제공된 모듈은 EAP_HOME/modules 디렉터리 내의 시스템 디렉터리에 있습니다. 이렇게 하면 타사가 제공하는 모듈과 별도로 유지됩니다. JBoss EAP 상단에 계층이 있는 모든 Red Hat 제품도 시스템 디렉터리에 모듈을 설치했습니다.
사용자는 모듈당 하나의 디렉터리를 사용하여 사용자 지정 모듈이 EAP_HOME/modules 디렉터리에 설치되어 있는지 확인해야 합니다. 이렇게 하면 제공된 버전 대신 시스템 디렉터리에 이미 존재하는 모듈의 사용자 지정 버전이 로드됩니다. 이러한 방식으로 사용자 제공 모듈이 시스템 모듈보다 우선합니다.
JBOSS_MODULEPATH 환경 변수를 사용하여 JBoss EAP가 모듈을 검색하는 위치를 변경하는 경우 제품은 지정된 위치 중 하나의 시스템 하위 디렉터리 구조를 찾습니다. 시스템 구조는 JBOSS_MODULEPATH 로 지정된 위치에 있어야 합니다.
module.xml 파일의 resource-root path 요소에서 절대 경로 사용도 지원됩니다. 이렇게 하면 리소스 라이브러리를 EAP_HOME/modules 디렉터리로 이동할 필요 없이 액세스할 수 있습니다.
예: module.xml 파일의 절대 경로
5.1.2. JBoss EAP의 동적 모듈 링크 복사링크가 클립보드에 복사되었습니다!
동적 모듈은 각 JAR(Java Archive) 또는 WAR(Web Archive) 배포에 대해 애플리케이션 서버에서 생성 및 로드하거나 Enterprise Archive(EAR)의 각 하위 배포에 대해 생성 및 로드합니다. 동적 모듈의 이름은 배포된 아카이브의 이름에서 파생됩니다. 배포는 모듈로 로드되므로 종속성을 구성하고 다른 배포에서 종속성으로 사용할 수 있습니다.
모듈은 일반적으로 명시적 또는 암시적 종속성을 사용하는 애플리케이션이 배포되는 경우에만 필요합니다.
5.1.3. JBoss EAP에서 사전 정의된 모듈 링크 복사링크가 클립보드에 복사되었습니다!
애플리케이션 서버에서 기본 모듈 로더를 사용하는 경우 사전 정의된 모듈 세트를 사용할 수 있습니다. 모든 JBoss Modules API를 포함하는 특수 모듈 org.jboss.modules 에서는 항상 사용할 수 있으며 JBoss 모듈에서 제공합니다. 표준 JPMS(Java Platform Module System) 모듈도 표준 이름으로 사용할 수 있습니다.
Java 9 이상에서 사용할 수 있는 플랫폼 모듈 목록은 적절한 JDK 설명서를 참조하십시오.
5.2. JBoss EAP의 모듈 종속 항목 링크 복사링크가 클립보드에 복사되었습니다!
모듈 종속성은 하나의 모듈에 함수를 위한 하나 이상의 다른 모듈의 클래스가 필요하다는 선언입니다. JBoss EAP가 모듈을 로드할 때 모듈식 클래스 로더는 해당 모듈의 종속성을 구문 분석하고 각 종속성의 클래스를 클래스 경로에 추가합니다. 지정된 종속성을 찾을 수 없는 경우 모듈을 로드하지 못합니다.
JAR(Java Archive) 또는 Web Archive(WAR)와 같은 배포된 애플리케이션은 동적 모듈로 로드되고 종속성을 사용하여 JBoss EAP에서 제공하는 API에 액세스합니다.
종속 항목에는 명시적 및 암시적 이라는 두 가지 유형의 종속 항목이 있습니다.
- 명시적 종속 항목
-
명시적 종속성은 개발자가 구성 파일에서 선언합니다. 정적 모듈은
module.xml파일에 종속 항목을 선언할 수 있습니다. 동적 모듈은 배포의MANIFEST.MF또는jboss-deployment-structure.xml배포 설명자에 종속 항목을 선언할 수 있습니다. - 암시적 종속 항목
- 암시적 종속성은 배포에 특정 조건 또는 메타데이터가 있는 경우 JBoss EAP에 의해 자동으로 추가됩니다. JBoss EAP와 함께 제공되는 Jakarta EE API는 배포에서 암시적 종속성을 감지하여 추가되는 모듈의 예입니다.
jboss-deployment-structure.xml 배포 설명자 파일을 사용하여 특정 암시적 종속성을 제외하도록 배포를 구성할 수도 있습니다. 이는 애플리케이션이 JBoss EAP가 암시적 종속성으로 추가하려고 하는 특정 버전의 라이브러리를 번들하는 경우에 유용할 수 있습니다.
선택적 종속 항목
명시적 종속 항목은 선택 사항으로 지정할 수 있습니다. 선택적 종속성을 로드하지 않으면 모듈이 로드되지 않습니다. 그러나 나중에 종속성을 사용할 수 있게 되면 모듈의 클래스 경로에 추가되지 않습니다. 종속성은 모듈이 로드될 때 사용할 수 있어야 합니다.
내보낸 종속성
모듈의 클래스 경로에는 자체 클래스와 즉각적인 종속 항목만 포함됩니다. 모듈은 종속 항목 중 하나의 종속 항목의 클래스에 액세스할 수 없습니다. 그러나 모듈은 명시적 종속성을 내보내도록 지정할 수 있습니다. 내보낸 종속성은 내보내는 모듈에 따라 다릅니다.
예를 들어 모듈 A는 모듈 B에 따라 다르며 모듈 C는 모듈 C에 따라 달라집니다. 모듈 A는 모듈 B의 클래스에 액세스할 수 있으며 모듈 B는 모듈 C의 클래스에 액세스할 수 있습니다. 모듈 A는 모듈 C의 클래스에 액세스할 수 없습니다. 단, 모듈 A는 모듈 C의 클래스에 액세스할 수 없습니다.
- 모듈 A는 모듈 C에 대한 명시적 종속성을 선언합니다.
- 모듈 B는 모듈 C에 대한 종속성을 내보냅니다.
글로벌 모듈
글로벌 모듈은 JBoss EAP가 모든 애플리케이션에 대한 종속성으로 제공하는 모듈입니다. 모든 모듈은 JBoss EAP의 글로벌 모듈 목록에 추가하여 글로벌하게 만들 수 있습니다. 모듈을 변경할 필요가 없습니다.
자세한 내용은 JBoss EAP의 글로벌 모듈을 참조하십시오.
5.3. JBoss EAP용 사용자 지정 모듈 생성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 지정 모듈을 생성하는 것은 동일한 타사 라이브러리를 사용하는 동일한 서버에 많은 애플리케이션이 배포되는 경우 유용할 수 있습니다. 각 애플리케이션과 함께 이러한 라이브러리를 번들하는 대신 관리자가 이러한 라이브러리를 포함하는 모듈을 생성하고 설치할 수 있습니다.
다음과 같은 방법으로 사용자 지정 모듈을 생성할 수 있습니다.
5.3.1. 수동으로 사용자 지정 모듈 생성 링크 복사링크가 클립보드에 복사되었습니다!
Java Archive(JAR) 또는 기타 리소스 파일에서 모듈을 생성하여 JBoss EAP의 애플리케이션에서 사용할 수 있도록 할 수 있습니다.
사전 요구 사항
- 모듈에 필요한 JAR 또는 리소스 파일이 있습니다.
프로세스
EAP_HOME/modules/디렉터리에 적절한 디렉터리 구조를 생성합니다.예: MySQL JDBC 드라이버 디렉터리 구조 생성
cd EAP_HOME/modules/ mkdir -p com/mysql/main
$ cd EAP_HOME/modules/ $ mkdir -p com/mysql/mainCopy to Clipboard Copied! Toggle word wrap Toggle overflow JAR 파일 또는 기타 필요한 리소스를
main/하위 디렉터리에 복사합니다.예: MySQL JDBC 드라이버 JAR 복사
cp /path/to/mysql-connector-j-8.0.33.jar EAP_HOME/modules/com/mysql/main/
$ cp /path/to/mysql-connector-j-8.0.33.jar EAP_HOME/modules/com/mysql/main/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고MySQL 드라이버 JAR 이름 mysql-connector-j-8.0.33.jar는 예제로만 제공됩니다. 테스트된 MySQL 버전에 대한 자세한 내용은 테스트 된 데이터베이스 를 참조하십시오.
main/하위 디렉터리에module.xml파일을 생성하여 파일에 적절한 리소스 및 종속 항목을 지정합니다.예: MySQL JDBC 드라이버
module.xml파일Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고MySQL 드라이버 JAR 이름 mysql-connector-j-8.0.33.jar는 예제로만 제공됩니다. 테스트된 MySQL 버전에 대한 자세한 내용은 테스트 된 데이터베이스 를 참조하십시오.
5.3.2. 관리 CLI를 사용하여 사용자 정의 모듈 생성 링크 복사링크가 클립보드에 복사되었습니다!
JAR(Java Archive) 또는 기타 리소스 파일에서 모듈을 생성하여 관리 CLI를 사용하여 JBoss EAP의 애플리케이션에서 사용할 수 있도록 할 수 있습니다.
모듈 관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다. 자세한 내용은 다음을 참조하세요.
기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
사전 요구 사항
- 모듈에 필요한 JAR 또는 리소스 파일이 있습니다.
프로세스
- JBoss EAP 서버를 시작합니다.
관리 CLI를 시작합니다.
EAP_HOME/bin/jboss-cli.sh
$ EAP_HOME/bin/jboss-cli.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모듈 추가관리 CLI 명령을 사용하여 새 코어 모듈을 추가합니다.구문
module add --name=<MODULE_NAME> --resources=<PATH_TO_RESOURCE> --dependencies=<DEPENDENCIES>
module add --name=<MODULE_NAME> --resources=<PATH_TO_RESOURCE> --dependencies=<DEPENDENCIES>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예: MySQL 모듈 생성
module add --name=com.mysql --resources=</path/to>/mysql-connector-j-8.0.33.jar --dependencies=java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
module add --name=com.mysql --resources=</path/to>/mysql-connector-j-8.0.33.jar --dependencies=java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고MySQL 드라이버 JAR 이름 mysql-connector-j-8.0.33.jar는 예제로만 제공됩니다. 테스트된 MySQL 버전에 대한 자세한 내용은 테스트 된 데이터베이스 를 참조하십시오.
5.4. 종속성으로 모듈 추가 링크 복사링크가 클립보드에 복사되었습니다!
모듈의 리소스에 액세스하려면 애플리케이션에 종속성으로 추가된 모듈이 있어야 합니다.
- 모든 애플리케이션에 모듈을 종속 항목으로 추가하는 방법은 JBoss EAP의 글로벌 모듈 섹션을 참조하십시오.
예를 들어 다음 단계에서는 여러 속성 파일이 포함된 JAR 파일을 모듈로 추가하고 글로벌 모듈을 정의하여 애플리케이션이 이러한 속성을 로드할 수 있도록 합니다.
프로세스
JAR 파일을 코어 모듈로 추가합니다.
module add --name=myprops --resources=</path/to>/properties.jar
module add --name=myprops --resources=</path/to>/properties.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 배포에서 사용할 수 있도록 이 모듈을 글로벌 모듈로 정의합니다.
/subsystem=ee:list-add(name=global-modules,value={name=myprops})/subsystem=ee:list-add(name=global-modules,value={name=myprops})Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
애플리케이션에서 Java 아카이브(JAR)에 포함된 속성 파일 중 하나에서 속성을 검색할 수 있는지 확인합니다.
Thread.currentThread().getContextClassLoader().getResource("my.properties");Thread.currentThread().getContextClassLoader().getResource("my.properties");Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5. JBoss EAP에서 사용자 지정 모듈 제거 링크 복사링크가 클립보드에 복사되었습니다!
다음과 같은 방법으로 JBoss EAP에서 불필요한 모듈을 제거할 수 있습니다.
5.5.1. 수동으로 사용자 지정 모듈 제거 링크 복사링크가 클립보드에 복사되었습니다!
모듈을 수동으로 제거하기 전에 배포된 애플리케이션 또는 서버 구성의 다른 위치(예: 데이터 소스)에는 필요하지 않은지 확인합니다.
프로세스
module.xml파일 및 관련 JAR 파일 또는 기타 리소스를 포함하는EAP_HOME/modules/에서 모듈의 디렉터리를 제거합니다.예를 들어
EAP_HOME/modules/com/mysql/디렉터리를 제거하여 기본 슬롯에서 사용자 지정 MySQL JDBC 드라이버 모듈을 제거합니다.main/
5.5.2. 관리 CLI를 사용하여 사용자 정의 모듈 제거 링크 복사링크가 클립보드에 복사되었습니다!
모듈 제거 관리 CLI 명령을 사용하여 사용자 지정 모듈을 제거할 수 있습니다.
관리 CLI 명령을 사용하여 사용자 지정 모듈을 제거하는 것은 기술 프리뷰로만 제공됩니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
관리 CLI를 시작합니다.
EAP_HOME/bin/jboss-cli.sh
$ EAP_HOME/bin/jboss-cli.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow module removemanagement CLI 명령을 사용하여 사용자 지정 모듈을 제거합니다.구문
module remove --name=MODULE_NAME
module remove --name=MODULE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow -
제거할 모듈이
main이외의 슬롯에 있는 경우--slot인수를 사용합니다.
예: MySQL 모듈 제거
module remove --name=com.mysql
module remove --name=com.mysqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
제거할 모듈이
이 명령을 사용하여 모듈을 추가 및 제거하는 방법에 대한 자세한 내용은 module --help 를 실행합니다.
5.6. JBoss EAP의 글로벌 모듈 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP의 글로벌 모듈 목록을 정의하여 모든 JBoss EAP 배포에 종속 항목으로 추가할 수 있습니다.
글로벌 모듈로 구성할 모듈의 이름을 알아야 합니다. 포함된 모듈의 전체 목록과 지원 여부에 대한 자세한 내용은 Red Hat JBoss Enterprise Application Platform 8.0 Included Modules on the Red Hat Customer Portal을 참조하십시오. 배포의 모듈에 대한 이름 지정 규칙은 JBoss EAP에 대한 동적 모듈 이름 지정 규칙을 참조하십시오.
다음 관리 CLI 명령을 사용하여 글로벌 모듈 목록을 정의합니다.
/subsystem=ee:write-attribute(name=global-modules,value=[{name=<MODULE_NAME_1>},{name=<MODULE_NAME_2>}]
/subsystem=ee:write-attribute(name=global-modules,value=[{name=<MODULE_NAME_1>},{name=<MODULE_NAME_2>}]
다음 관리 CLI 명령을 사용하여 기존 글로벌 모듈 목록에 단일 모듈을 추가합니다.
/subsystem=ee:list-add(name=global-modules,value={name=<MODULE_NAME>})
/subsystem=ee:list-add(name=global-modules,value={name=<MODULE_NAME>})
구성 탭에서 EE 하위 시스템으로 이동하고 글로벌 모듈 섹션을 선택하여 관리 콘솔을 사용하여 글로벌 모듈을 추가하고 제거할 수도 있습니다.
외부 종속 항목에서 글로벌 모듈에 액세스할 수 있도록 하려면 명시적으로 해당 모듈을 사용할 수 있도록 설정해야 합니다. 다음 옵션을 사용하여 글로벌 모듈의 서비스를 외부에서 사용할 수 있도록 합니다.
-
jboss-deployment-structure.xml의 모듈에services="import"를 추가합니다. 글로벌 모듈 정의에
services="true"를 추가합니다./subsystem=ee:write-attribute(name=global-modules,value=[{name=module1,services=true}]/subsystem=ee:write-attribute(name=global-modules,value=[{name=module1,services=true}]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 여러 모듈을 추가할 때:
/subsystem=ee:write-attribute(name=global-modules,value=[{name=module1,services=true},{name=module2,services=false}]/subsystem=ee:write-attribute(name=global-modules,value=[{name=module1,services=true},{name=module2,services=false}]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기존 목록에 새 모듈을 추가하려면 다음을 수행합니다.
/subsystem=ee:list-add(name=global-modules,value={name=module1,services=true})/subsystem=ee:list-add(name=global-modules,value={name=module1,services=true})Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
관리 콘솔을 사용하여 글로벌 모듈을 정의할 때 Services 속성 값이
On인지 확인합니다.
5.7. 글로벌 디렉터리 생성 링크 복사링크가 클립보드에 복사되었습니다!
글로벌 디렉터리는 글로벌 모듈 접근 방식에 대한 더 나은 대안을 제공합니다. 예를 들어 글로벌 모듈에 나열된 라이브러리 이름을 변경하려면 글로벌 모듈을 제거하고 라이브러리 이름을 변경한 다음 라이브러리를 새 글로벌 모듈에 추가해야 합니다. 글로벌 디렉터리에 나열된 라이브러리 이름을 변경하는 경우 서버를 다시 로드하여 모든 배포에서 라이브러리 이름을 사용할 수 있도록 해야 합니다.
글로벌 디렉터리를 사용하여 다음을 수행할 수 있습니다.
- 배포된 애플리케이션에서 여러 라이브러리를 공유합니다.
- 일반적으로 애플리케이션 라이브러리에 추가된 공통 프레임워크를 공통 위치에 이동하여 라이브러리를 유지 관리합니다.
글로벌 디렉터리를 생성할 때 EE 하위 시스템은 글로벌 디렉터리를 구성한 다음 디렉터리를 검사하여 JBoss Modules 모듈 종속성을 생성합니다. 모듈 종속성에는 글로벌 디렉터리 라이브러리 및 JAR 파일이 포함됩니다. 이 모듈 종속성에는 다음 리소스 로더도 포함되어 있습니다.
- 경로 리소스 로더는 애플리케이션에 대한 리소스로 파일을 제공합니다.
- 리소스 로더는 JAR 파일에 포함된 클래스를 애플리케이션에 제공합니다.
EE 하위 시스템은 배포된 각 애플리케이션에 대해 모듈 종속성을 시스템 종속성으로 추가합니다.
사전 요구 사항
운영 체제에 표준 디렉터리를 생성합니다. 이 표준 디렉터리에는 애플리케이션에 배포해야 하는 모든 JAR 파일과 리소스가 포함되어야 합니다. 이렇게 하면 디렉터리 트리가 생성됩니다.
애플리케이션에 복사된 공통 라이브러리 목록을 표시하는 공통 디렉터리의 예는 다음과 같습니다.
/my-common-libs/log4j2.xml /my-common-libs/libs/log4j-api-2.14.1.jar /my-common-libs/libs/log4j-core-2.14.1.jar
/my-common-libs/log4j2.xml /my-common-libs/libs/log4j-api-2.14.1.jar /my-common-libs/libs/log4j-core-2.14.1.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고서버는 애플리케이션을 배포하고 글로벌 디렉터리를 로드하므로 서버의 라이브러리 버전을 재정의하도록 글로벌 디렉터리를 구성할 수 없습니다. 글로벌 디렉터리는 서버와 함께 제공되는 라이브러리를 교체할 수 없습니다.
프로세스
서버 설정에 따라 글로벌 디렉터리를 생성합니다. 선택적
relative-to속성을 사용하여 글로벌 디렉터리를 상대 경로로 설정할 수 있습니다.독립 실행형 서버에서 글로벌 디렉터리를 생성하는 예:
[standalone@localhost:9990 /] /subsystem=ee/global-directory=my-common-libs:add(path=my-common-libs, relative-to=jboss.home.dir)
[standalone@localhost:9990 /] /subsystem=ee/global-directory=my-common-libs:add(path=my-common-libs, relative-to=jboss.home.dir)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리형 도메인의 서버에 글로벌 디렉터리를 생성하는 예:
[domain@localhost:9990 /] /profile=default/subsystem=ee/global-directory=my-common-libs:add(path=my-common-libs, relative-to=jboss.server.data.dir)
[domain@localhost:9990 /] /profile=default/subsystem=ee/global-directory=my-common-libs:add(path=my-common-libs, relative-to=jboss.server.data.dir)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리형 도메인의 서버의 경우
relative-path특성을 사용하여domain.xml에 정의된 JBoss EAP 프로필 아래에 글로벌 디렉터리를 추가할 수 있습니다. 시스템 경로 또는 이relative-to속성의 사용자 지정 시스템 경로를 지정할 수 있습니다.참고관리형 도메인에서 서버를 실행하는 경우 모든 서버 인스턴스에서 글로벌 디렉터리의 내용이 일관되게 유지되는지 확인해야 합니다. 예를 들어 각 호스트에는 글로벌 디렉터리 콘텐츠가 포함된 로컬 파일 시스템 디렉터리가 포함되어야 합니다.
서버 인스턴스를 다시 로드하여 글로벌 디렉터리를 활성화합니다.
서버가 루트 디렉토리에서 시작하여 각 하위 디렉터리 수준을 포함하여 디렉터리 트리의 콘텐츠를 알파벳순으로 스캔할 수 있도록 서버를 다시 로드해야 합니다. 서버는 각 디렉터리 수준의 파일을 알파벳순으로 JBoss Modules 모듈 종속성에 추가합니다.
글로벌 디렉터리의 내용을 변경하거나 글로벌 디렉터리에서 JAR 파일을 추가하거나 추가하는 경우 서버를 다시 로드하여 배포된 애플리케이션에서 변경 사항을 제공해야 합니다. 예를 들어 글로벌 디렉터리에서 JAR 라이브러리를 교체하는 경우 서버를 다시 로드하여 글로벌 디렉터리를 다시 스캔하고 배포된 애플리케이션을 변경된 JAR 라이브러리로 업데이트합니다.
5.8. 글로벌 디렉터리 구성의 현재 값 읽기 링크 복사링크가 클립보드에 복사되었습니다!
read-resource 작업을 사용하여 글로벌 디렉터리 구성의 현재 값을 읽을 수 있습니다.
프로세스
서버 설정에 따라
read-resource작업을 사용하여 글로벌 디렉터리 구성의 현재 값을 읽습니다.독립 실행형 서버에서 글로벌 디렉터리 구성의 현재 값을 읽는 출력의 예.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리형 도메인의 서버에서 글로벌 디렉터리 구성의 현재 값을 읽는 출력의 예.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9. 글로벌 디렉터리 제거 링크 복사링크가 클립보드에 복사되었습니다!
서버 구성에서 글로벌 디렉터리를 제거할 수 있습니다. 이 작업은 서버 구성 파일에서 글로벌 디렉터리 리소스만 제거하고 기본 디렉터리 또는 해당 파일에 영향을 미치지 않습니다.
프로세스
독립 실행형 서버에서 글로벌 디렉터리를 제거하려면 다음 명령을 사용합니다.
[standalone@localhost:9990 /] /subsystem=ee/global-directory=my-common-libs:remove()
[standalone@localhost:9990 /] /subsystem=ee/global-directory=my-common-libs:remove()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리형 도메인의 서버에서 글로벌 디렉터리를 제거하려면 다음 명령을 사용합니다.
[domain@localhost:9990 /] /profile=default/subsystem=ee/global-directory=my-common-libs:remove()
[domain@localhost:9990 /] /profile=default/subsystem=ee/global-directory=my-common-libs:remove()Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.10. JBoss EAP의 하위 배포 격리 구성 링크 복사링크가 클립보드에 복사되었습니다!
EAR(Enterprise Archive)의 각 하위 배포는 자체 클래스 로더가 있는 동적 모듈입니다. 하위 배포에는 항상 상위 모듈에 대한 암시적 종속성이 있으므로 EAR/lib 의 클래스에 액세스할 수 있습니다. 기본적으로 하위 배포는 해당 EAR 내의 다른 하위 배포의 리소스에 액세스할 수 있습니다.
하위 배포에서 다른 하위 배포에 속하는 클래스에 액세스할 수 없도록 하려면 JBoss EAP에서 엄격한 하위 배포 격리를 활성화할 수 있습니다. 이 설정은 모든 배포에 영향을 미칩니다.
5.10.1. 모든 배포에 대한 하위 배포 모듈 격리 활성화 링크 복사링크가 클립보드에 복사되었습니다!
하위 시스템에서 관리 콘솔 또는 관리 CLI를 사용하여 하위 배포 격리를 활성화하거나 비활성화할 수 있습니다. 기본적으로 하위 배포 격리는 false 로 설정되어 있으며, 이를 통해 하위 배포는 EAR(Enterprise Archive) 배포 내의 다른 하위 배포의 리소스에 액세스할 수 있습니다.
프로세스
다음 관리 CLI 명령을 사용하여 EAR 하위 배포 격리를 활성화합니다.
/subsystem=ee:write-attribute(name=ear-subdeployments-isolated,value=true)
/subsystem=ee:write-attribute(name=ear-subdeployments-isolated,value=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
EAR의 하위 배포는 더 이상 다른 하위 배포의 리소스에 액세스할 수 없습니다.
5.11. 외부 JBoss EAP 모듈 디렉터리 정의 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 모듈의 기본 디렉터리는 EAP_HOME/modules 입니다. JBOSS_MODULEPATH 변수를 사용하여 JBoss EAP 모듈에 다른 디렉터리를 지정할 수 있습니다. 다음 단계에 따라 JBoss EAP 시작 구성 파일에서 이 변수를 설정합니다.
JBoss EAP 시작 구성 파일에서 이를 설정하는 대신 JBOSS_MODULEPATH 를 환경 변수로 설정할 수도 있습니다.
프로세스
시작 구성 파일을 편집합니다.
-
독립 실행형 서버로 실행하는 경우
EAP_HOME/bin/standalone.conf파일 또는 Windows Server의standalone.conf.#159를 편집합니다. -
관리형 도메인에서 실행하는 경우
EAP_HOME/bin/domain.conf파일 또는 Windows Server의 경우domain.conf.errors를 편집합니다.
-
독립 실행형 서버로 실행하는 경우
JBOSS_MODULEPATH변수를 설정합니다. 예를 들면 다음과 같습니다.JBOSS_MODULEPATH="/path/to/modules/directory/"
JBOSS_MODULEPATH="/path/to/modules/directory/"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 디렉터리 목록을 지정하려면 콜론(
:)을 사용하여 디렉터리 목록을 제한합니다.참고Windows Server의 경우 다음 구문을 사용하여
JBOSS_MODULEPATH변수를 설정합니다.set "JBOSS_MODULEPATH /path/to/modules/directory/"
set "JBOSS_MODULEPATH /path/to/modules/directory/"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 디렉터리 목록을 지정하려면
;(;)를 사용하여 디렉터리 목록을 제한합니다.
5.12. JBoss EAP에 대한 동적 모듈 이름 지정 규칙 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 모든 배포를 다음 규칙에 따라 이름이 지정된 모듈로 로드합니다.
WAR(Web Archive) 및 JAR(Java Archive) 파일의 배포는 다음 형식을 사용하여 이름이 지정됩니다.
deployment.DEPLOYMENT_NAME
deployment.DEPLOYMENT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어
inventory.war및store.jar에는 각각deployment.inventory.war및deployment.store.jar의 모듈 이름이 있습니다.EAR(Enterprise Archive) 내의 하위 배포의 이름은 다음 형식을 사용하여 이름이 지정됩니다.
deployment.EAR_NAME.SUBDEPLOYMENT_NAME
deployment.EAR_NAME.SUBDEPLOYMENT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어 엔터프라이즈 아카이브
accounts.ear내의reports.war의 하위 배포에는deployment.accounts.ear.reports.war의 모듈 이름이 있습니다.
6장. 애플리케이션 배포 관리 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP에는 관리자와 개발자 모두를 지원하는 다양한 애플리케이션 배포 및 구성 옵션이 있습니다. 관리자의 경우 관리 콘솔 과 관리 CLI 는 프로덕션 환경에서 애플리케이션 배포를 관리하는 이상적인 그래픽 및 명령줄 인터페이스를 제공합니다. 개발자의 경우 애플리케이션 배포 테스트 옵션에는 구성 가능한 파일 시스템 배포 스캐너, HTTP API, Red Hat CodeReady Studio와 같은 IDE, Maven 이 포함됩니다.
애플리케이션을 배포할 때 org.jboss.metadata.parser.validate 시스템 속성을 true 로 설정하여 배포 설명자에 대한 유효성 검사를 활성화할 수 있습니다. 이 작업은 다음 방법 중 하나로 수행할 수 있습니다.
서버를 시작하는 동안
EAP_HOME/bin/standalone.sh -Dorg.jboss.metadata.parser.validate=true
$ EAP_HOME/bin/standalone.sh -Dorg.jboss.metadata.parser.validate=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 관리 CLI 명령을 사용하여 서버 구성에 추가하여 다음을 수행합니다.
/system-property=org.jboss.metadata.parser.validate:add(value=true)
/system-property=org.jboss.metadata.parser.validate:add(value=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1. 관리 CLI를 사용하여 애플리케이션 배포 관리 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 애플리케이션을 배포하면 배포 스크립트를 생성하고 실행하는 기능과 함께 단일 명령줄 인터페이스를 활용할 수 있습니다. 이 스크립팅 기능을 사용하여 특정 애플리케이션 배포 및 관리 시나리오를 구성할 수 있습니다. 독립 실행형 서버로 실행할 때 단일 서버의 배포를 관리하거나 관리형 도메인에서 실행할 때 전체 서버 네트워크를 관리할 수 있습니다.
6.1.1. 독립 실행형 서버에서 애플리케이션 배포 관리 링크 복사링크가 클립보드에 복사되었습니다!
6.1.1.1. 관리 CLI를 사용하여 독립 실행형 서버에 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
deployment deploy-file 명령을 사용하여 관리 CLI를 사용하여 독립 실행형 서버로 애플리케이션을 배포할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
관리 CLI에서 웹 아카이브(war)로 패키지된 애플리케이션을 배포합니다.
구문
deployment deploy-file <path_to_the_application>/<application_name>.war
deployment deploy-file <path_to_the_application>/<application_name>.warCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
deployment deploy-file /my-applications/test-application.war
deployment deploy-file /my-applications/test-application.warCopy to Clipboard Copied! Toggle word wrap Toggle overflow 배포에 성공하면 관리 CLI에 대한 출력이 생성되지 않지만 서버 로그에 다음 출력과 같은 배포 메시지가 표시됩니다.
WFLYSRV0027: Starting deployment of "test-application.war" (runtime-name: "test-application.war") WFLYUT0021: Registered web context: /test-application WFLYSRV0010: Deployed "test-application.war" (runtime-name : "test-application.war")
WFLYSRV0027: Starting deployment of "test-application.war" (runtime-name: "test-application.war") WFLYUT0021: Registered web context: /test-application WFLYSRV0010: Deployed "test-application.war" (runtime-name : "test-application.war")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
마찬가지로 다음 배포 명령을 사용할 수 있습니다.
-
deployment deploy-cli-archive를 사용하여.cli아카이브 파일의 콘텐츠를 배포합니다. CLI 배포 아카이브는.cli확장자가 있는JAR파일입니다. 배포해야 하는 애플리케이션 아카이브와 CLI 스크립트 파일,deploy.scr및undeploy.scr, 명령 및 작업이 포함되어 있습니다. 한 스크립트 파일deploy.scr에는 애플리케이션 아카이브를 배포하고 환경을 설정하는 명령 및 작업이 포함되어 있습니다. 다른 스크립트 파일인undeploy.scr에는 애플리케이션 아카이브 배포를 취소하고 환경을 정리하는 명령이 포함되어 있습니다. -
배포 deploy-url을 사용하여 URL에서 참조하는 콘텐츠를 배포합니다.
-- 옵션을 사용하여 runtime-name 속성을 지정하는 경우 이름에 runtime-name .war 확장을 포함해야 합니다. 그렇지 않으면 웹 컨텍스트는 JBoss EAP에 의해 등록되지 않습니다.
6.1.1.2. 관리 CLI를 사용하여 독립 실행형 서버에서 애플리케이션 배포 취소 링크 복사링크가 클립보드에 복사되었습니다!
배포 un deploy 명령을 사용하여 관리 CLI를 사용하여 독립 실행형 서버에서 애플리케이션 배포를 취소할 수 있습니다. 애플리케이션 배포를 취소하면 리포지토리에서 배포 콘텐츠가 삭제됩니다. 애플리케이션을 사용할 수 없는 동안 배포 콘텐츠를 유지하려면 대신 배포를 비활성화할 수 있습니다. 자세한 내용은 관리 CLI를 사용하여 독립 실행형 서버에서 애플리케이션 비활성화를 참조하십시오.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
관리 CLI를 사용하여 애플리케이션 배포를 취소합니다.
구문
deployment undeploy <deployment>
deployment undeploy <deployment>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
deployment undeploy test-application.war
deployment undeploy test-application.warCopy to Clipboard Copied! Toggle word wrap Toggle overflow 배포 취소에 성공하면 관리 CLI에 대한 출력이 생성되지 않지만 서버 로그에 다음 출력과 같은 배포 취소 메시지가 표시됩니다.
WFLYUT0022: Unregistered web context: /test-application WFLYSRV0028: Stopped deployment test-application.war (runtime-name: test-application.war) in 62ms WFLYSRV0009: Undeployed "test-application.war" (runtime-name: "test-application.war")
WFLYUT0022: Unregistered web context: /test-application WFLYSRV0028: Stopped deployment test-application.war (runtime-name: test-application.war) in 62ms WFLYSRV0009: Undeployed "test-application.war" (runtime-name: "test-application.war")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
마찬가지로 배포 undeploy-cli-archive를 사용하여 아카이브 파일에서 콘텐츠를 배포 취소할 수 있습니다. 와일드카드(.cli *)를 사용하여 모든 배포 배포를 취소할 수도 있습니다.
deployment undeploy *
deployment undeploy *
6.1.1.3. 관리 CLI를 사용하여 독립 실행형 서버에서 애플리케이션 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
리포지토리에서 배포 콘텐츠를 제거하지 않고 배포된 애플리케이션을 비활성화할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
관리 CLI에서
배포 disable 명령을 사용하여 단일 애플리케이션 또는 JBoss EAP에 배포된 모든 애플리케이션을 비활성화할수 있습니다.단일 배포를 비활성화합니다.
구문
deployment disable <deployment>
deployment disable <deployment>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
deployment disable test-application.war
deployment disable test-application.warCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 배포를 비활성화합니다.
deployment disable-all
deployment disable-allCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.1.4. 관리 CLI를 사용하여 독립 실행형 서버에서 애플리케이션 활성화 링크 복사링크가 클립보드에 복사되었습니다!
비활성화된 애플리케이션을 활성화할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
관리 CLI에서
deployment enable명령을 사용하여 JBoss EAP에 배포된 단일 애플리케이션 또는 모든 애플리케이션을 활성화할 수 있습니다.단일 배포를 활성화합니다.
구문
deployment enable <deployment>
deployment enable <deployment>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
deployment enable test-application.war
deployment enable test-application.warCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 배포를 활성화합니다.
deployment enable-all
deployment enable-allCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.1.5. 관리 CLI를 사용하여 독립 실행형 서버에 배포 나열 링크 복사링크가 클립보드에 복사되었습니다!
독립 실행형 서버에 배포를 나열하고 런타임 이름, 상태 등과 같은 배포 정보를 볼 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
배포 info명령을 사용하여 배포 정보를 나열합니다.deployment info
deployment infoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에는 런타임 이름, 상태 및 활성화 여부와 같은 각 배포에 대한 세부 정보가 표시됩니다.
NAME RUNTIME-NAME PERSISTENT ENABLED STATUS helloworld.war helloworld.war true true OK test-application.war test-application.war true true OK
NAME RUNTIME-NAME PERSISTENT ENABLED STATUS helloworld.war helloworld.war true true OK test-application.war test-application.war true true OKCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이름별 배포 정보를 표시하려면 다음을 수행합니다.
deployment info helloworld.war
deployment info helloworld.warCopy to Clipboard Copied! Toggle word wrap Toggle overflow
deployment list 명령을 사용하여 모든 배포를 나열 할 수도 있습니다.
6.1.2. 관리형 도메인에서 애플리케이션 배포 관리 링크 복사링크가 클립보드에 복사되었습니다!
6.1.2.1. 관리 CLI를 사용하여 관리형 도메인에 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
deployment deploy-file 명령을 사용하고 애플리케이션을 배포해야 하는 서버 그룹을 지정하여 관리 CLI를 사용하여 독립 실행형 서버를 배포할 수 있습니다.
사전 요구 사항
- JBoss EAP는 관리형 도메인으로 실행되고 있습니다.
프로세스
관리 CLI에서 특정 서버 그룹 또는 모든 서버 그룹에 웹 아카이브(war)로 패키지된 애플리케이션을 배포할 수 있습니다.
애플리케이션을 특정 서버 그룹에 배포합니다.
구문
deployment deploy-file <path_to_the_application>/<application_name>.war --server-groups=<server-group_1>,..., <server-group_1>
deployment deploy-file <path_to_the_application>/<application_name>.war --server-groups=<server-group_1>,..., <server-group_1>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
deployment deploy-file /my-applications/test-application.war --server-groups=main-server-group,other-server-group
deployment deploy-file /my-applications/test-application.war --server-groups=main-server-group,other-server-groupCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 서버 그룹에 애플리케이션을 배포합니다.
구문
deployment deploy-file <path_to_the_application>/<application_name>.war --all-server-groups
deployment deploy-file <path_to_the_application>/<application_name>.war --all-server-groupsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
deployment deploy-file /my-applications/test-application.war --all-server-groups
deployment deploy-file /my-applications/test-application.war --all-server-groupsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 성공적으로 배포해도 관리 CLI에 대한 출력이 생성되지 않지만 서버 로그에 영향을 받는 각 서버에 대한 배포 메시지가 표시됩니다.
[Server:server-one] WFLYSRV0027: Starting deployment of "test-application.war" (runtime-name: "test-application.war") [Server:server-one] WFLYUT0021: Registered web context: /test-application [Server:server-one] WFLYSRV0010: Deployed "test-application.war" (runtime-name : "test-application.war")
[Server:server-one] WFLYSRV0027: Starting deployment of "test-application.war" (runtime-name: "test-application.war") [Server:server-one] WFLYUT0021: Registered web context: /test-application [Server:server-one] WFLYSRV0010: Deployed "test-application.war" (runtime-name : "test-application.war")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
마찬가지로 다음 배포 명령을 사용할 수 있습니다.
-
deployment deploy-cli-archive명령을 사용하여.cli아카이브 파일의 콘텐츠를 배포합니다. CLI 배포 아카이브는.cli확장자가 있는JAR파일입니다. 배포해야 하는 애플리케이션 아카이브와 CLI 스크립트 파일,deploy.scr및undeploy.scr, 명령 및 작업이 포함되어 있습니다. 한 스크립트 파일deploy.scr에는 애플리케이션 아카이브를 배포하고 환경을 설정하는 명령 및 작업이 포함되어 있습니다. 다른 스크립트 파일인undeploy.scr에는 애플리케이션 아카이브 배포를 취소하고 환경을 정리하는 명령이 포함되어 있습니다. -
배포 deploy-url명령을 사용하여 URL에서 참조하는 콘텐츠를 배포합니다.
-- 옵션을 사용하여 runtime-name 속성을 지정하는 경우 이름에 runtime-name .war 확장을 포함해야 합니다. 그렇지 않으면 웹 컨텍스트는 JBoss EAP에 의해 등록되지 않습니다.
6.1.2.2. 관리 CLI를 사용하여 관리형 도메인에서 애플리케이션 배포 취소 링크 복사링크가 클립보드에 복사되었습니다!
배포 un deploy 명령을 사용하여 관리 CLI를 사용하여 관리형 도메인으로 실행되는 JBoss EAP에서 애플리케이션 배포를 취소할 수 있습니다. 애플리케이션 배포를 취소하면 리포지토리에서 배포 콘텐츠가 삭제됩니다. 애플리케이션을 사용할 수 없는 동안 배포 콘텐츠를 유지하려면 대신 배포를 비활성화할 수 있습니다. 자세한 내용은 관리 CLI를 사용하여 관리형 도메인에서 애플리케이션 비활성화를 참조하십시오.
사전 요구 사항
- JBoss EAP는 관리형 도메인으로 실행되고 있습니다.
프로세스
관리 CLI에서 해당 배포를 사용하여 모든 서버 그룹에서 애플리케이션 배포를 취소합니다.
구문
deployment undeploy <application_name>.war --all-relevant-server-groups
deployment undeploy <application_name>.war --all-relevant-server-groupsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
deployment undeploy test-application.war --all-relevant-server-groups
deployment undeploy test-application.war --all-relevant-server-groupsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 배포에 성공하면 관리 CLI에 대한 출력이 생성되지 않지만 다음 출력과 같이 영향을 받는 각 서버에 대한 배포 취소 메시지가 표시됩니다.
[Server:server-one] WFLYUT0022: Unregistered web context: /test-application [Server:server-one] WFLYSRV0028: Stopped deployment test-application.war (runtime-name: test-application.war) in 74ms [Server:server-one] WFLYSRV0009: Undeployed "test-application.war" (runtime-name: "test-application.war")
[Server:server-one] WFLYUT0022: Unregistered web context: /test-application
[Server:server-one] WFLYSRV0028: Stopped deployment test-application.war (runtime-name: test-application.war) in 74ms
[Server:server-one] WFLYSRV0009: Undeployed "test-application.war" (runtime-name: "test-application.war")
마찬가지로 배포 undeploy-cli-archive 명령을 사용하여 .cli 아카이브 파일에서 컨텐츠 배포를 취소할 수 있습니다. 와일드카드(*)를 사용하여 모든 배포 배포를 취소할 수도 있습니다.
deployment undeploy * --all-relevant-server-groups
deployment undeploy * --all-relevant-server-groups
6.1.2.3. 관리 CLI를 사용하여 관리형 도메인에서 애플리케이션 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
배포된 애플리케이션을 특정 서버 그룹에서 비활성화하고 해당 배포를 사용하는 다른 서버 그룹의 리포지토리에 해당 콘텐츠를 유지할 수 있습니다.
사전 요구 사항
- JBoss EAP는 관리형 도메인으로 실행되고 있습니다.
프로세스
관리 CLI에서
배포 disable 명령을 사용하여 단일 애플리케이션 또는 JBoss EAP에 배포된 모든 애플리케이션을 비활성화할수 있습니다.단일 애플리케이션 중단:
구문
deployment disable <application_name>.war --server-groups=<server-group_1>,..., <server-group_1>
deployment disable <application_name>.war --server-groups=<server-group_1>,..., <server-group_1>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
deployment disable test-application.war --server-groups=other-server-group
deployment disable test-application.war --server-groups=other-server-groupCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 배포를 비활성화합니다.
구문
deployment disable-all --server-groups=<server-group_1>,..., <server-group_1>
deployment disable-all --server-groups=<server-group_1>,..., <server-group_1>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
deployment disable-all --server-groups=other-server-group
deployment disable-all --server-groups=other-server-groupCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.2.4. 관리 CLI를 사용하여 관리형 도메인에서 애플리케이션 활성화 링크 복사링크가 클립보드에 복사되었습니다!
비활성화된 배포된 애플리케이션을 활성화합니다.
사전 요구 사항
- JBoss EAP는 관리형 도메인으로 실행되고 있습니다.
프로세스
관리 CLI에서
deployment enable명령을 사용하여 JBoss EAP에 배포된 단일 애플리케이션 또는 모든 애플리케이션을 활성화할 수 있습니다.단일 배포를 활성화합니다.
구문
deployment enable <deployment> --server-groups=<server-group_1>,..., <server-group_1>
deployment enable <deployment> --server-groups=<server-group_1>,..., <server-group_1>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
deployment enable test-application.war --server-groups=other-server-group
deployment enable test-application.war --server-groups=other-server-groupCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 배포를 활성화합니다.
deployment enable-all --server-groups=<server-group_1>,..., <server-group_1>
deployment enable-all --server-groups=<server-group_1>,..., <server-group_1>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
deployment enable-all --server-groups=other-server-group
deployment enable-all --server-groups=other-server-groupCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.2.5. 관리 CLI를 사용하여 관리형 도메인에 배포 나열 링크 복사링크가 클립보드에 복사되었습니다!
배포 목록을 나열하고 런타임 이름, 상태 등과 같은 배포 정보를 볼 수 있습니다.
사전 요구 사항
- JBoss EAP는 관리형 도메인으로 실행되고 있습니다.
프로세스
배포 info명령을 사용하여 배포 정보를 나열합니다.deployment info helloworld.war
deployment info helloworld.warCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에는 각 서버 그룹에 배포 및 해당 상태가 나열됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 그룹별 배포 정보를 표시하려면 다음을 수행합니다.
deployment info --server-group=other-server-group
deployment info --server-group=other-server-groupCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에는 지정된 서버 그룹의 배포 및 해당 상태가 나열됩니다.
NAME RUNTIME-NAME STATE helloworld.war helloworld.war added test-application.war test-application.war enabled
NAME RUNTIME-NAME STATE helloworld.war helloworld.war added test-application.war test-application.war enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow
deployment list 명령을 사용하여 도메인의 모든 배포를 나열 할 수도 있습니다.
6.2. 관리 콘솔을 사용하여 애플리케이션 배포 관리 링크 복사링크가 클립보드에 복사되었습니다!
관리 콘솔을 사용하여 애플리케이션을 배포하면 사용하기 쉬운 그래픽 인터페이스가 제공됩니다. 필요한 경우 서버 또는 서버 그룹에 배포되는 애플리케이션을 한눈에 확인할 수 있으며 필요에 따라 콘텐츠 리포지토리에서 애플리케이션을 활성화, 비활성화 또는 제거할 수 있습니다.
6.2.1. 관리 콘솔을 사용하는 독립 실행형 서버에서 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
배포는 JBoss EAP 관리 콘솔의 Deployments 탭에서 보고 관리할 수 있습니다.
애플리케이션 배포
Add (+) 버튼을 클릭합니다. 배포를 업로드하거나관리되지 않는 배포를 추가하거나 빈 배포를 생성하여 애플리케이션을 배포 하도록 선택할 수 있습니다. 배포는 기본적으로 활성화되어 있습니다.
배포 업로드
서버의 콘텐츠 리포지토리에 복사되고 JBoss EAP에서 관리할 애플리케이션을 업로드합니다.
관리되지 않는 배포 추가
배포 위치를 지정합니다. 이 배포는 서버의 콘텐츠 리포지토리에 복사되지 않으며 JBoss EAP에서 관리되지 않습니다.
빈 배포 생성
빈 배포를 생성합니다. 파일을 생성한 후 배포에 파일을 추가할 수 있습니다.
애플리케이션 배포 취소
배포를 선택하고 배포 취소 옵션을 선택합니다. JBoss EAP는 콘텐츠 리포지토리에서 배포를 제거합니다.
애플리케이션 비활성화
배포를 선택하고 Disable 옵션을 선택하여 애플리케이션을 비활성화합니다. 이렇게 하면 배포 배포가 취소되지만 콘텐츠 리포지토리에서 제거되지는 않습니다.
애플리케이션 교체
배포를 선택하고 교체 옵션을 선택합니다. 원본과 동일한 이름이 있어야 하는 배포의 새 버전을 선택하고 마침 을 클릭합니다. 이 명령은 원래 버전의 배포를 취소 및 제거한 다음 새 버전을 배포합니다.
6.2.2. 관리 콘솔을 사용하여 관리형 도메인에서 애플리케이션 배포 관리 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 관리 콘솔의 Deployments 탭에서는 다음을 통해 배포를 보고 관리할 수 있습니다.
콘텐츠 리포지토리
모든 관리 및 관리되지 않는 배포는 Content Repository 섹션에 나열됩니다. 배포는 여기에서 서버 그룹에 추가 및 배포할 수 있습니다.
서버 그룹
하나 이상의 서버 그룹에 배포된 배포는 서버 그룹 섹션에 나열됩니다. 배포를 활성화하고 여기에서 서버 그룹에 직접 추가할 수 있습니다.
6.2.2.1. 관리 콘솔을 사용하여 콘텐츠 리포지토리에 애플리케이션 추가 링크 복사링크가 클립보드에 복사되었습니다!
관리 콘솔을 사용하여 콘텐츠 리포지토리에 애플리케이션을 추가할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- JBoss EAP에서 사용자를 생성했습니다.
프로세스
관리 콘솔에 로그인합니다.
기본적으로 관리 콘솔은
http://localhost:9990에서 사용할 수 있습니다.- Content Repository 에서 Add 버튼을 클릭합니다.
- 배포를 업로드하거나 관리되지 않는 배포를 추가하여 애플리케이션을 추가하도록 선택합니다.
프롬프트에 따라 애플리케이션을 배포합니다.
배포를 활성화하기 전에 서버 그룹에 배포해야 합니다.
6.2.2.2. 관리 콘솔을 사용하여 서버 그룹에 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
관리 콘솔을 사용하여 서버 그룹에 애플리케이션을 배포할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- JBoss EAP에서 사용자를 생성했습니다.
- 콘텐츠 리포지토리에 애플리케이션을 추가했습니다.
프로세스
관리 콘솔에 로그인합니다.
기본적으로 관리 콘솔은
http://localhost:9990에서 사용할 수 있습니다.- Content Repository 에서 배포를 선택하고 Deploy 버튼을 클릭합니다.
- 이 배포를 배포해야 하는 하나 이상의 서버 그룹을 선택합니다.
- 선택적으로 옵션을 선택하여 선택한 서버 그룹에서 배포를 활성화합니다.
6.2.2.3. 관리 콘솔을 사용하여 서버 그룹에서 애플리케이션 배포 취소 링크 복사링크가 클립보드에 복사되었습니다!
관리 콘솔을 사용하여 서버 그룹에서 애플리케이션 배포를 취소할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- JBoss EAP에서 사용자를 생성했습니다.
프로세스
- 서버 그룹에서 적절한 서버 그룹을 선택합니다.
- 원하는 배포를 선택하고 배포 취소 버튼을 클릭합니다.
콘텐츠 리포지토리의 배포에 대한 배포 취소 버튼을 선택하여 한 번에 여러 서버 그룹에서 배포를 취소 할 수도 있습니다.
6.2.2.4. 관리 콘솔을 사용하여 관리형 도메인에서 애플리케이션 제거 링크 복사링크가 클립보드에 복사되었습니다!
관리 콘솔을 사용하여 관리형 도메인에서 애플리케이션을 제거할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- JBoss EAP에서 사용자를 생성했습니다.
프로세스
- 배포가 여전히 서버 그룹에 배포된 경우 배포 배포를 취소해야 합니다.
- Content Repository 에서 배포를 선택하고 Remove 버튼을 클릭합니다.
그러면 콘텐츠 리포지토리에서 배포가 제거됩니다.
6.2.2.5. 관리 콘솔을 사용하여 관리형 도메인에서 애플리케이션 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
관리 콘솔을 사용하여 관리형 도메인에서 애플리케이션을 비활성화할 수 있습니다. 애플리케이션을 비활성화하면 서버에서 배포가 취소되지만 콘텐츠 리포지토리에서 제거되지는 않습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- JBoss EAP에서 사용자를 생성했습니다.
프로세스
- 서버 그룹에서 적절한 서버 그룹을 선택합니다.
- 원하는 배포를 선택하고 Disable 버튼을 클릭합니다.
이렇게 하면 배포 배포가 취소되지만 콘텐츠 리포지토리에서 제거되지는 않습니다.
6.2.2.6. 관리 콘솔을 사용하여 관리형 도메인에서 애플리케이션 교체 링크 복사링크가 클립보드에 복사되었습니다!
관리 콘솔을 사용하여 애플리케이션 배포를 관리형 도메인의 최신 버전으로 교체할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- JBoss EAP에서 사용자를 생성했습니다.
프로세스
- Content Repository 에서 배포를 선택하고 Replace 버튼을 클릭합니다.
- 원본과 동일한 이름이 있어야 하는 배포의 새 버전을 선택하고 교체 를 클릭합니다.
이 명령은 원래 버전의 배포를 취소 및 제거한 다음 새 버전을 배포합니다.
6.3. 배포 스캐너를 사용한 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
배포 스캐너는 애플리케이션이 배포되도록 배포 디렉터리를 모니터링합니다. 기본적으로 배포 스캐너는 변경 사항에 대해 5초마다 EAP_HOME/standalone/deployments/ 디렉터리를 검사합니다. 마커 파일은 배포 상태를 표시하고 배포 취소 또는 재배포와 같은 배포에 대해 작업을 트리거하는 데 사용됩니다.
프로덕션 환경에서 애플리케이션 배포에 관리 콘솔 또는 관리 CLI를 사용하는 것이 좋지만 개발자의 편의를 위해 배포 스캐너를 사용하여 배포하는 것이 좋습니다. 이를 통해 사용자는 빠른 개발 사이클에 적합한 방식으로 애플리케이션을 빌드하고 테스트할 수 있습니다. 또한 배포 스캐너를 다른 배포 방법과 함께 사용해서는 안 됩니다.
배포 스캐너는 JBoss EAP를 독립 실행형 서버로 실행하는 경우에만 사용할 수 있습니다.
6.3.1. 배포 스캐너를 사용하는 독립 실행형 서버의 애플리케이션 배포 관리 링크 복사링크가 클립보드에 복사되었습니다!
XML, zipped 및 내용의 자동 배포를 허용하거나 허용하지 않도록 배포 스캐너를 구성할 수 있습니다. 자동 배포를 비활성화한 경우 배포 작업을 트리거하려면 마커 파일을 수동으로 생성해야 합니다. 사용 가능한 마커 파일 유형 및 용도에 대한 자세한 내용은 Deployment Scanner Marker Files 섹션을 참조하십시오.
기본적으로 XML 및 zipped 콘텐츠에 대한 자동 배포가 활성화됩니다. 각 콘텐츠 유형에 대한 자동 배포 구성에 대한 자세한 내용은 배포 스캐너 구성을 참조하십시오.
배포 스캐너를 사용하여 배포하는 것은 개발자 편의를 위해 제공되며 프로덕션 환경에서 사용하는 것은 권장되지 않습니다. 또한 다른 배포 방법과 함께 사용해서는 안 됩니다.
애플리케이션 배포
콘텐츠를 배포 폴더에 복사합니다.
cp /path/to/test-application.war EAP_HOME/standalone/deployments/
$ cp /path/to/test-application.war EAP_HOME/standalone/deployments/
자동 배포가 활성화되면 이 파일이 자동으로 선택되고 배포되고 .deployed 마커 파일이 생성됩니다. 자동 배포가 활성화되지 않은 경우 배포를 트리거하려면 .dodeploy 마커 파일을 수동으로 추가해야 합니다.
touch EAP_HOME/standalone/deployments/test-application.war.dodeploy
$ touch EAP_HOME/standalone/deployments/test-application.war.dodeploy
애플리케이션 배포 취소
.deployed 마커 파일을 제거하여 배포 취소를 트리거합니다.
rm EAP_HOME/standalone/deployments/test-application.war.deployed
$ rm EAP_HOME/standalone/deployments/test-application.war.deployed
자동 배포가 활성화된 경우 test-application.war 파일을 제거하여 배포 취소를 트리거할 수도 있습니다. 이는 불합리한 배포에는 적용되지 않습니다.
애플리케이션 재배포
.dodeploy 마커 파일을 생성하여 재배포를 시작합니다.
touch EAP_HOME/standalone/deployments/test-application.war.dodeploy
$ touch EAP_HOME/standalone/deployments/test-application.war.dodeploy
6.3.2. 배포 스캐너 구성 링크 복사링크가 클립보드에 복사되었습니다!
배포 스캐너는 관리 콘솔 또는 관리 CLI를 사용하여 구성할 수 있습니다. 검사 간격, 배포 폴더 위치, 특정 애플리케이션 파일 유형의 자동 배포와 같은 배포 스캐너의 동작을 구성할 수 있습니다. 배포 스캐너를 완전히 비활성화할 수도 있습니다.
사용 가능한 모든 배포 스캐너 속성에 대한 자세한 내용은 Deployment Scanner Attributes 섹션을 참조하십시오.
아래 관리 CLI 명령을 사용하여 기본 배포 스캐너를 구성합니다.
배포 스캐너 비활성화
/subsystem=deployment-scanner/scanner=default:write-attribute(name=scan-enabled,value=false)
/subsystem=deployment-scanner/scanner=default:write-attribute(name=scan-enabled,value=false)
이렇게 하면 기본 배포 스캐너가 비활성화됩니다.
검사 간격 변경
/subsystem=deployment-scanner/scanner=default:write-attribute(name=scan-interval,value=10000)
/subsystem=deployment-scanner/scanner=default:write-attribute(name=scan-interval,value=10000)
이렇게 하면 검사 간격 시간이 5000 밀리초(five 초)에서 10000 밀리초(10초)로 업데이트됩니다.
배포 폴더 변경
/subsystem=deployment-scanner/scanner=default:write-attribute(name=path,value=/path/to/deployments)
/subsystem=deployment-scanner/scanner=default:write-attribute(name=path,value=/path/to/deployments)
이렇게 하면 배포 폴더의 위치가 EAP_HOME/standalone/deployments 의 기본 위치에서 /path/to /deployments 로 변경됩니다.
relative-to 특성이 지정되지 않는 한 경로 값은 절대 경로로 취급되며 이 경우 해당 경로를 기준으로 합니다.
Exploded 콘텐츠의 자동 배포 활성화
/subsystem=deployment-scanner/scanner=default:write-attribute(name=auto-deploy-exploded,value=true)
/subsystem=deployment-scanner/scanner=default:write-attribute(name=auto-deploy-exploded,value=true)
이를 통해 의심 스러운 콘텐츠를 자동으로 배포할 수 있으며 이는 기본적으로 비활성화되어 있습니다.
Zipped 콘텐츠의 자동 배포 비활성화
/subsystem=deployment-scanner/scanner=default:write-attribute(name=auto-deploy-zipped,value=false)
/subsystem=deployment-scanner/scanner=default:write-attribute(name=auto-deploy-zipped,value=false)
이렇게 하면 기본적으로 활성화되어 있는 zipped 콘텐츠의 자동 배포가 비활성화됩니다.
XML 콘텐츠의 자동 배포 비활성화
/subsystem=deployment-scanner/scanner=default:write-attribute(name=auto-deploy-xml,value=false)
/subsystem=deployment-scanner/scanner=default:write-attribute(name=auto-deploy-xml,value=false)
이렇게 하면 기본적으로 활성화되어 있는 XML 콘텐츠의 자동 배포가 비활성화됩니다.
6.3.3. 사용자 정의 배포 스캐너 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 새 배포 스캐너를 추가하거나 관리 콘솔의 구성 탭에서 Deployment Scanners 하위 시스템으로 이동하여 추가할 수 있습니다. 그러면 배포를 스캔할 새 디렉터리가 정의됩니다. 기본 배포 스캐너는 EAP_HOME/standalone/deployments 를 모니터링합니다. 기존 배포 스캐너 구성에 대한 자세한 내용은 배포 스캐너 구성을 참조하십시오.
다음 관리 CLI 명령은 배포에 대해 5초마다 EAP_HOME/standalone/new_deployment_dir 을 확인하는 새 배포 스캐너를 추가합니다.
/subsystem=deployment-scanner/scanner=new-scanner:add(path=new_deployment_dir,relative-to=jboss.server.base.dir,scan-interval=5000)
/subsystem=deployment-scanner/scanner=new-scanner:add(path=new_deployment_dir,relative-to=jboss.server.base.dir,scan-interval=5000)
지정된 디렉터리가 이미 존재하거나 이 명령이 오류와 함께 실패합니다.
새 배포 스캐너가 정의되고 지정된 디렉터리가 배포에 대해 모니터링됩니다.
6.4. Maven을 사용하여 애플리케이션 배포 관리 링크 복사링크가 클립보드에 복사되었습니다!
Apache Maven을 사용하여 애플리케이션을 배포하면 JBoss EAP에 대한 배포를 기존 개발 워크플로에 쉽게 통합할 수 있습니다.
Maven을 사용하여 애플리케이션 서버에 애플리케이션을 배포하고 배포 취소할 수 있는 간단한 작업을 제공하는 WildFly Maven 플러그인 을 사용하여 JBoss EAP에 애플리케이션을 배포할 수 있습니다.
6.4.1. Maven을 사용하여 독립 실행형 서버에서 애플리케이션 배포 관리 링크 복사링크가 클립보드에 복사되었습니다!
WildFly Maven 플러그인을 사용하여 독립 실행형 서버로 실행되는 JBoss EAP에 애플리케이션을 배포하고 배포 취소할 수 있습니다.
6.4.1.1. Maven을 사용하여 독립 실행형 서버에 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
다음 지침에서는 Maven을 사용하여 JBoss EAP helloworld 빠른 시작을 독립 실행형 서버에 배포하는 방법을 보여줍니다.
JBoss EAP 빠른 시작에 대한 자세한 내용은 JBoss EAP 시작하기 가이드 의 빠른 시작 예제 사용을 참조하십시오.
프로세스
Maven
pom.xml파일에서 WildFly Maven 플러그인을 초기화합니다. 이는 이미 JBoss EAP 빠른 시작pom.xml파일에 구성되어 있어야 합니다.<plugin> <groupId>org.wildfly.plugins</groupId> <artifactId>wildfly-maven-plugin</artifactId> <version>${version.wildfly.maven.plugin}</version> </plugin><plugin> <groupId>org.wildfly.plugins</groupId> <artifactId>wildfly-maven-plugin</artifactId> <version>${version.wildfly.maven.plugin}</version> </plugin>Copy to Clipboard Copied! Toggle word wrap Toggle overflow helloworld빠른 시작 디렉터리에서 다음 Maven 명령을 실행합니다.mvn clean install wildfly:deploy
$ mvn clean install wildfly:deployCopy to Clipboard Copied! Toggle word wrap Toggle overflow 배포할 Maven 명령을 실행한 후 터미널 창에는 배포 성공을 나타내는 다음 출력이 표시됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
활성 서버 인스턴스의 서버 로그를 확인하여 배포를 확인할 수도 있습니다.
WFLYSRV0027: Starting deployment of "helloworld.war" (runtime-name: "helloworld.war") WFLYUT0021: Registered web context: /helloworld WFLYSRV0010: Deployed "helloworld.war" (runtime-name : "helloworld.war")
WFLYSRV0027: Starting deployment of "helloworld.war" (runtime-name: "helloworld.war") WFLYUT0021: Registered web context: /helloworld WFLYSRV0010: Deployed "helloworld.war" (runtime-name : "helloworld.war")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.4.1.2. Maven을 사용하여 독립 실행형 서버에서 애플리케이션 배포 취소 링크 복사링크가 클립보드에 복사되었습니다!
다음 지침에서는 Maven을 사용하여 JBoss EAP helloworld 빠른 시작을 독립 실행형 서버에 배포하는 방법을 보여줍니다.
사전 요구 사항
-
Maven
pom.xml파일에 WildFly Maven 플러그인을 초기화했습니다.
프로세스
helloworld빠른 시작 디렉터리에서 다음 Maven 명령을 실행합니다.mvn wildfly:undeploy
$ mvn wildfly:undeployCopy to Clipboard Copied! Toggle word wrap Toggle overflow Maven 명령을 배포 취소에 실행한 후 터미널 창에 배포 취소를 나타내는 다음 출력이 표시됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
배포 취소는 활성 서버 인스턴스의 서버 로그를 확인하여 확인할 수도 있습니다.
WFLYUT0022: Unregistered web context: /helloworld WFLYSRV0028: Stopped deployment helloworld.war (runtime-name: helloworld.war) in 27ms WFLYSRV0009: Undeployed "helloworld.war" (runtime-name: "helloworld.war")
WFLYUT0022: Unregistered web context: /helloworld WFLYSRV0028: Stopped deployment helloworld.war (runtime-name: helloworld.war) in 27ms WFLYSRV0009: Undeployed "helloworld.war" (runtime-name: "helloworld.war")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.4.2. Maven을 사용하여 관리형 도메인에서 애플리케이션 배포 관리 링크 복사링크가 클립보드에 복사되었습니다!
WildFly Maven 플러그인을 사용하여 관리형 도메인으로 실행되는 JBoss EAP에 애플리케이션을 배포하고 배포 취소할 수 있습니다.
6.4.2.1. Maven을 사용하여 애플리케이션을 관리형 도메인에 배포 링크 복사링크가 클립보드에 복사되었습니다!
다음 지침은 Maven을 사용하여 관리형 도메인에 JBoss EAP helloworld 빠른 시작을 배포하는 방법을 보여줍니다.
JBoss EAP 빠른 시작에 대한 자세한 내용은 JBoss EAP 시작하기 가이드 의 빠른 시작 예제 사용을 참조하십시오.
프로세스
애플리케이션을 Maven
pom.xml파일에 배포해야 하는 서버 그룹을 지정합니다.pom.xml의 다음 구성은 WildFly Maven 플러그인을 초기화하고main-server-group을 애플리케이션을 배포해야 하는 서버 그룹으로 지정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow helloworld빠른 시작 디렉터리에서 다음 Maven 명령을 실행합니다.mvn clean install wildfly:deploy
$ mvn clean install wildfly:deployCopy to Clipboard Copied! Toggle word wrap Toggle overflow 배포할 Maven 명령을 실행한 후 터미널 창에는 배포 성공을 나타내는 다음 출력이 표시됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 검증
활성 서버 인스턴스의 서버 로그를 확인하여 배포를 확인할 수도 있습니다.
WFLYSRV0027: Starting deployment of "helloworld.war" (runtime-name: "helloworld.war") WFLYUT0021: Registered web context: /helloworld WFLYSRV0010: Deployed "helloworld.war" (runtime-name : "helloworld.war")
WFLYSRV0027: Starting deployment of "helloworld.war" (runtime-name: "helloworld.war") WFLYUT0021: Registered web context: /helloworld WFLYSRV0010: Deployed "helloworld.war" (runtime-name : "helloworld.war")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.4.2.2. Maven을 사용하여 관리형 도메인에서 애플리케이션 배포 취소 링크 복사링크가 클립보드에 복사되었습니다!
다음 지침은 Maven을 사용하여 관리형 도메인에 JBoss EAP helloworld 빠른 시작을 배포하는 방법을 보여줍니다.
사전 요구 사항
- WildFly Maven 플러그인을 초기화했습니다.
프로세스
helloworld빠른 시작 디렉터리에서 다음 Maven 명령을 실행합니다.mvn wildfly:undeploy
$ mvn wildfly:undeployCopy to Clipboard Copied! Toggle word wrap Toggle overflow Maven 명령을 배포 취소에 실행한 후 터미널 창에 배포 취소를 나타내는 다음 출력이 표시됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
- 배포 취소는 활성 서버 인스턴스의 서버 로그를 확인하여 확인할 수도 있습니다.
WFLYUT0022: Unregistered web context: /helloworld WFLYSRV0028: Stopped deployment helloworld.war (runtime-name: helloworld.war) in 106ms WFLYSRV0009: Undeployed "helloworld.war" (runtime-name: "helloworld.war")
WFLYUT0022: Unregistered web context: /helloworld
WFLYSRV0028: Stopped deployment helloworld.war (runtime-name: helloworld.war) in 106ms
WFLYSRV0009: Undeployed "helloworld.war" (runtime-name: "helloworld.war")
6.5. HTTP API를 사용하여 애플리케이션 배포 관리 링크 복사링크가 클립보드에 복사되었습니다!
애플리케이션은 curl 명령과 함께 HTTP API를 사용하여 JBoss EAP에 배포할 수 있습니다. HTTP API 사용에 대한 자세한 내용은 HTTP API 섹션을 참조하십시오.
6.5.1. HTTP API를 사용하는 독립 실행형 서버에서 애플리케이션 배포 관리 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 HTTP API는 http://HOST:PORT/management 에서 액세스할 수 있습니다(예: http://localhost:9990/management ).
애플리케이션 배포
curl --digest -L -D - http://HOST:PORT/management --header "Content-Type: application/json" -u USER:PASSWORD -d '{"operation" : "composite", "address" : [], "steps" : [{"operation" : "add", "address" : {"deployment" : "test-application.war"}, "content" : [{"url" : "file:/path/to/test-application.war"}]},{"operation" : "deploy", "address" : {"deployment" : "test-application.war"}}],"json.pretty":1}'
$ curl --digest -L -D - http://HOST:PORT/management --header "Content-Type: application/json" -u USER:PASSWORD -d '{"operation" : "composite", "address" : [], "steps" : [{"operation" : "add", "address" : {"deployment" : "test-application.war"}, "content" : [{"url" : "file:/path/to/test-application.war"}]},{"operation" : "deploy", "address" : {"deployment" : "test-application.war"}}],"json.pretty":1}'
애플리케이션 배포 취소
curl --digest -L -D - http://HOST:PORT/management --header "Content-Type: application/json" -u USER:PASSWORD -d '{"operation" : "composite", "address" : [], "steps" : [{"operation" : "undeploy", "address" : {"deployment" : "test-application.war"}},{"operation" : "remove", "address" : {"deployment" : "test-application.war"}}],"json.pretty":1}'
$ curl --digest -L -D - http://HOST:PORT/management --header "Content-Type: application/json" -u USER:PASSWORD -d '{"operation" : "composite", "address" : [], "steps" : [{"operation" : "undeploy", "address" : {"deployment" : "test-application.war"}},{"operation" : "remove", "address" : {"deployment" : "test-application.war"}}],"json.pretty":1}'
JSON 요청을 프로그래밍 방식으로 생성하는 방법에 대한 자세한 내용은 Red Hat Knowledgebase 문서를 참조하십시오.
6.5.2. HTTP API를 사용한 관리형 도메인의 애플리케이션 배포 관리 링크 복사링크가 클립보드에 복사되었습니다!
HTTP API를 사용하여 관리형 도메인에 애플리케이션을 배포하고 배포를 취소할 수 있습니다.
6.5.2.1. HTTP API를 사용하여 관리형 도메인에 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 HTTP API는 http://HOST:PORT/management 에서 액세스할 수 있습니다(예: http://localhost:9990/management ).
프로세스
배포를 콘텐츠 리포지토리에 추가합니다.
curl --digest -L -D - http://<HOST>:<PORT>/management --header "Content-Type: application/json" -u <USER>:<PASSWORD> -d '{"operation" : "add", "address" : {"deployment" : "test-application.war"}, "content" : [{"url" : "file:</path/to>/test-application.war"}],"json.pretty":1}'$ curl --digest -L -D - http://<HOST>:<PORT>/management --header "Content-Type: application/json" -u <USER>:<PASSWORD> -d '{"operation" : "add", "address" : {"deployment" : "test-application.war"}, "content" : [{"url" : "file:</path/to>/test-application.war"}],"json.pretty":1}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 원하는 서버 그룹에 배포를 추가합니다.
curl --digest -L -D - http://<HOST>:<PORT>/management --header "Content-Type: application/json" -u <USER>:<PASSWORD> -d '{"operation" : "add", "address" : {"server-group" : "main-server-group","deployment":"test-application.war"},"json.pretty":1}'$ curl --digest -L -D - http://<HOST>:<PORT>/management --header "Content-Type: application/json" -u <USER>:<PASSWORD> -d '{"operation" : "add", "address" : {"server-group" : "main-server-group","deployment":"test-application.war"},"json.pretty":1}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 그룹에 애플리케이션을 배포합니다.
curl --digest -L -D - http://<HOST>:<PORT>/management --header "Content-Type: application/json" -u <USER>:<PASSWORD> -d '{"operation" : "deploy", "address" : {"server-group" : "main-server-group","deployment":"test-application.war"},"json.pretty":1}'$ curl --digest -L -D - http://<HOST>:<PORT>/management --header "Content-Type: application/json" -u <USER>:<PASSWORD> -d '{"operation" : "deploy", "address" : {"server-group" : "main-server-group","deployment":"test-application.war"},"json.pretty":1}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.2.2. HTTP API를 사용하여 관리형 도메인에서 애플리케이션 배포 취소 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 HTTP API는 http://HOST:PORT/management 에서 액세스할 수 있습니다(예: http://localhost:9990/management ).
프로세스
할당된 모든 서버 그룹에서 배포를 제거합니다.
curl --digest -L -D - http://<HOST>:<PORT>/management --header "Content-Type: application/json" -u <USER>:<PASSWORD> -d '{"operation" : "remove", "address" : {"server-group" : "main-server-group","deployment":"test-application.war"},"json.pretty":1}'$ curl --digest -L -D - http://<HOST>:<PORT>/management --header "Content-Type: application/json" -u <USER>:<PASSWORD> -d '{"operation" : "remove", "address" : {"server-group" : "main-server-group","deployment":"test-application.war"},"json.pretty":1}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 콘텐츠 리포지토리에서 배포를 제거합니다.
curl --digest -L -D - http://<HOST>:<PORT>/management --header "Content-Type: application/json" -u <USER>:<PASSWORD> -d '{"operation" : "remove", "address" : {"deployment" : "test-application.war"}, "json.pretty":1}'$ curl --digest -L -D - http://<HOST>:<PORT>/management --header "Content-Type: application/json" -u <USER>:<PASSWORD> -d '{"operation" : "remove", "address" : {"deployment" : "test-application.war"}, "json.pretty":1}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.6. 배포 동작 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
6.6.1. 배포 콘텐츠의 사용자 정의 디렉터리 링크 복사링크가 클립보드에 복사되었습니다!
배포된 콘텐츠를 저장할 JBoss EAP의 사용자 지정 위치를 정의할 수 있습니다.
독립 실행형 서버에 대한 사용자 지정 디렉터리 정의
기본적으로 독립 실행형 서버에 배포된 콘텐츠는 EAP_HOME/standalone/data/content 디렉터리에 저장됩니다. 이 위치는 서버를 시작할 때 -Djboss.server.deploy.dir 인수를 전달하여 변경할 수 있습니다.
EAP_HOME/bin/standalone.sh -Djboss.server.deploy.dir=/path/to/new_deployed_content
$ EAP_HOME/bin/standalone.sh -Djboss.server.deploy.dir=/path/to/new_deployed_content
선택한 위치는 JBoss EAP 인스턴스 간에 고유해야 합니다.
jboss.server.deploy.dir 속성은 관리 콘솔 또는 관리 CLI를 사용하여 배포된 콘텐츠를 저장하는 데 사용할 디렉터리를 지정합니다. 배포 스캐너에서 모니터링할 사용자 정의 배포 디렉터리를 정의하려면 배포 스캐너 구성 을 참조하십시오.
관리형 도메인에 대한 사용자 정의 디렉터리 정의
기본적으로 관리형 도메인에 배포된 콘텐츠는 EAP_HOME/domain/data/content 디렉터리에 저장됩니다. 이 위치는 도메인을 시작할 때 -Djboss.domain.deployment.dir 인수를 전달하여 변경할 수 있습니다.
EAP_HOME/bin/domain.sh -Djboss.domain.deployment.dir=/path/to/new_deployed_content
$ EAP_HOME/bin/domain.sh -Djboss.domain.deployment.dir=/path/to/new_deployed_content
선택한 위치는 JBoss EAP 인스턴스 간에 고유해야 합니다.
6.6.2. 배포 순서 제어 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 서버 시작 시 배포 순서에 대한 세분화된 제어를 제공합니다. 다시 시작한 후 주문의 지속성과 함께 여러 EAR 파일에 있는 애플리케이션 배포 엄격한 순서를 지정할 수 있습니다.
jboss-all.xml 배포 설명자를 사용하여 최상위 배포 간에 종속성을 선언할 수 있습니다.
예를 들어 먼저 배포되는 framework.ear 에 따라 app.ear 가 있는 경우 아래 표시된 대로 app.ear/META-INF/jboss-all.xml 파일을 생성할 수 있습니다.
<jboss xmlns="urn:jboss:1.0">
<jboss-deployment-dependencies xmlns="urn:jboss:deployment-dependencies:1.0">
<dependency name="framework.ear" />
</jboss-deployment-dependencies>
</jboss>
<jboss xmlns="urn:jboss:1.0">
<jboss-deployment-dependencies xmlns="urn:jboss:deployment-dependencies:1.0">
<dependency name="framework.ear" />
</jboss-deployment-dependencies>
</jboss>
jboss-all.xml 파일에서 배포의 런타임 이름을 종속성 이름으로 사용할 수 있습니다.
이렇게 하면 framework.ear 가 app.ear 앞에 배포됩니다.
app.ear 에 jboss-all.xml 파일을 생성하고 framework.ear 를 배포하지 않으면 서버는 app.ear 를 배포하려고 시도하여 실패합니다.
6.6.3. 배포 콘텐츠 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
6.6.3.1. 배포 오버레이 정보 링크 복사링크가 클립보드에 복사되었습니다!
배포 오버레이 는 배포 아카이브의 콘텐츠를 물리적으로 수정하지 않고 기존 배포에 콘텐츠를 오버레이하는 데 사용할 수 있습니다. 아카이브를 다시 빌드하지 않고도 배포 설명자, 라이브러리 JAR 파일, 클래스, Jakarta 서버 페이지 및 기타 파일을 런타임 시 재정의할 수 있습니다.
이 기능은 다양한 구성 또는 설정이 필요한 다양한 환경에 맞게 배포를 조정해야 하는 경우에 유용할 수 있습니다. 예를 들어 애플리케이션 라이프사이클을 개발, 테스트, 스테이징, 프로덕션으로 이동하는 경우 배포 설명자를 교체하거나, 정적 웹 리소스를 수정하여 애플리케이션 브랜딩을 변경하거나, JAR 라이브러리를 대상 환경에 따라 다른 버전으로 교체할 수 있습니다. 또한 구성을 변경해야 하지만 정책 또는 보안 제한으로 인해 아카이브를 수정하거나 크래킹할 수 없는 설치에도 유용합니다.
배포 오버레이를 정의할 때 배포 아카이브의 파일을 대체할 파일 시스템에서 파일을 지정합니다. 배포 오버레이의 영향을 받는 배포도 지정해야 합니다. 변경 사항을 적용하려면 영향을 받는 배포를 재배포해야 합니다.
매개 변수
다음 매개변수 중 하나를 사용하여 배포 오버레이를 구성할 수 있습니다.
-
name: 배포 오버레이의 이름입니다. -
Content: 파일 시스템의 파일을 대체하는 아카이브의 파일에 매핑하는 쉼표로 구분된 목록입니다. 각 항목의 형식은ARCHIVE_PATH=FILESYSTEM_PATH입니다. -
deployments: 이 오버레이가 연결된 배포를 쉼표로 구분한 목록입니다. -
redeploy-affected: 영향을 받는 모든 배포를 다시 배포합니다.
전체 사용량 세부 정보를 보려면 deployment-overlay --help 를 실행합니다.
6.6.3.2. 배포 오버레이 정의 링크 복사링크가 클립보드에 복사되었습니다!
배포 아카이브의 내용을 물리적으로 수정하지 않고 기존 배포에 콘텐츠를 오버레이하도록 배포 오버레이를 정의할 수 있습니다.
프로세스
deployment-overlay addmanagement CLI 명령을 사용하여 배포 오버레이를 추가합니다.deployment-overlay add --name=new-deployment-overlay --content=WEB-INF/web.xml=/path/to/other/web.xml --deployments=test-application.war --redeploy-affected
deployment-overlay add --name=new-deployment-overlay --content=WEB-INF/web.xml=/path/to/other/web.xml --deployments=test-application.war --redeploy-affectedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고관리형 도메인에서
--server-groups를 사용하여 적용 가능한 서버 그룹을 지정하거나--all-server-groups를 사용하여 모든 서버 그룹을 지정합니다.- 배포 오버레이를 생성한 후 기존 오버레이에 콘텐츠를 추가하거나 오버레이를 배포에 연결하거나 오버레이를 제거할 수 있습니다.
선택 사항: 오버레이 구성을 지정하여 <
overlay> 요소를 사용하여 HTML, 이미지 또는 동영상과 같은 정적 웹 리소스가 포함된 외부 디렉터리에 연결할 수 있습니다.&
lt;overlay> 요소는 JAR 오버레이 절차와 유사하게 웹 애플리케이션의 정적 파일을 오버레이하는 정적 파일을 지정합니다. 이 요소는 애플리케이션 파일jboss-web.xml에 있습니다. 이 요소 구성을 사용하면 애플리케이션을 다시 패키징할 필요가 없습니다.다음 예제에서는 <
overlay> 요소의 시스템 속성 대체를 보여줍니다. 여기서{example.path.to.overlay}는/PATH/TO/STATIC/WEB/CONTENT위치를 정의합니다.예:
jboss-web.xml파일의 <overlay> 요소Copy to Clipboard Copied! Toggle word wrap Toggle overflow jboss-descriptor-property-replacement가true로 설정된 경우 설명자 속성의 기본값인 <overlay> 요소에서 시스템 속성을 지정할 수 있습니다.jboss-descriptor-property-replacement를 구성하려면 다음 관리 CLI 명령을 사용합니다./subsystem=ee:write-attribute(name=jboss-descriptor-property-replacement,value=true)
/subsystem=ee:write-attribute(name=jboss-descriptor-property-replacement,value=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 JBoss EAP 구성의
ee하위 시스템에 다음 XML 콘텐츠를 추가합니다.<subsystem xmlns="urn:jboss:domain:ee:4.0"> <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement> </subsystem><subsystem xmlns="urn:jboss:domain:ee:4.0"> <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement> </subsystem>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고&
lt;overlay> 요소는 EAP 프로젝트에 이미 존재하는 배포 파일을 재정의하지 않습니다. 여러<overlay> 요소에 동일한 파일이 포함된 경우 우선순위 순서는 애플리케이션jboss-web.xml파일에서 오버레이 요소의 순서에 따라 결정됩니다.
6.6.4. 롤아웃 계획 사용 링크 복사링크가 클립보드에 복사되었습니다!
관리형 도메인에서 도메인 또는 호스트 수준 리소스를 대상으로 하는 작업은 여러 서버에 영향을 미칠 수 있습니다. 이러한 작업에는 작업이 서버에 적용되는 시퀀스를 자세히 설명하는 롤아웃 계획과 일부 서버에서 성공적으로 실행되지 않으면 작업을 되돌릴 수 있는지 여부를 자세히 설명하는 정책이 포함될 수 있습니다. 롤아웃 계획을 지정하지 않으면 기본 롤아웃 계획이 사용됩니다.
6.6.4.1. 롤아웃 계획의 예 링크 복사링크가 클립보드에 복사되었습니다!
다음은 5개의 서버 그룹을 포함하는 롤아웃 계획의 예입니다. 작업은 서버 그룹에 직렬로, 시리즈 내 또는 동시에 동시 그룹에 적용할 수 있습니다. 자세한 내용은 롤아웃 계획 구문을 참조하십시오.
위의 예제를 살펴보면 도메인의 서버에 작업을 적용하는 것은 세 단계로 수행됩니다. 서버 그룹에 대한 정책이 서버 그룹 전체에서 작업 롤백을 트리거하는 경우 다른 모든 서버 그룹도 롤백됩니다.
- 서버 그룹 group-A 및 group-B 는 작업을 동시에 적용합니다. 이 작업은 group-A 의 서버에 직렬로 적용되지만 group-B 의 모든 서버는 동시에 작업을 처리합니다. 그룹 A 에 있는 서버의 20% 이상이 작업을 적용하지 못하면 해당 그룹 전체에서 롤백됩니다. group-B 의 서버가 작업을 적용하지 않으면 해당 그룹에서 롤백됩니다.
- group-A 및 group-B 의 모든 서버가 완료되면 이 작업이 group-C 의 서버에 적용됩니다. 이러한 서버는 작업을 동시에 처리합니다. group-C 의 서버가 두 개 이상 적용되지 않으면 해당 그룹에서 작업을 롤백합니다.
- group-C 의 모든 서버가 완료되면 서버 그룹 group-D 및 group-E 가 작업을 동시에 적용합니다. 이 작업은 group-D 의 서버에 직렬로 적용되지만 group-E 의 모든 서버는 동시에 작업을 처리합니다. group-D 에 있는 서버의 20% 이상이 작업을 적용하지 못하면 해당 그룹 전체에서 롤백됩니다. group-E 의 서버가 작업을 적용하지 못하면 해당 그룹에서 롤백됩니다.
6.6.4.2. 롤아웃 계획 구문 링크 복사링크가 클립보드에 복사되었습니다!
다음 방법 중 하나로 롤아웃 계획을 지정할 수 있습니다.
-
deploy명령 작업 헤더에서 롤아웃 계획을 정의합니다. 자세한 내용은 저장된 롤아웃 계획을 사용하여 애플리케이션 배포를 참조하십시오. -
rollout-plan명령을 사용하여 롤아웃 계획을 저장한 다음배포명령 작업 헤더에서 계획 이름을 참조합니다. 자세한 내용은 저장된 롤아웃 계획을 사용하여 애플리케이션 배포를 참조하십시오.
각 메서드에는 다른 초기 명령이 있지만 두 방법 모두 롤아웃 작업 헤더를 사용하여 롤아웃 계획을 정의합니다. 이 명령은 다음 구문을 사용합니다.
rollout (id=PLAN_NAME | SERVER_GROUP_LIST) [rollback-across-groups]
rollout (id=PLAN_NAME | SERVER_GROUP_LIST) [rollback-across-groups]
-
PLAN_NAME은rollout-plan명령을 사용하여 저장된 롤아웃 계획의 이름입니다. SERVER_GROUP_LIST는 서버 그룹 목록입니다. 쉼표(,)를 사용하여 여러 서버 그룹을 분리하여 각 서버 그룹에서 순차적으로 작업을 수행해야 함을 나타냅니다. 캐럿(^) 구분자를 사용하여 각 서버 그룹에서 동시에 작업을 수행해야 함을 나타냅니다.각 서버 그룹에 대해 다음 정책 중 하나를 설정합니다. 쉼표를 사용하여 여러 정책을 구분합니다.
-
rolling-to-servers:true로 설정된 경우 그룹의 각 서버에 작업을 적용하는 부울입니다. 값이false이거나 지정하지 않으면 작업이 그룹의 서버에 동시에 적용됩니다. -
max-failed-servers: 그룹의 모든 서버에서 작업을 되돌리기 전에 작업을 적용하지 못할 수 있는 최대 서버 수를 사용하는 정수입니다. 지정하지 않는 경우 기본값은0입니다. 즉, 서버의 실패가 그룹 전체에서 롤백을 트리거합니다. max-failure-percentage: 그룹의 모든 서버에서 되돌리기 전에 작업을 적용하지 못할 수 있는 그룹의 총 서버 수의 최대 백분율을 나타내는0에서100사이의 정수입니다. 지정하지 않는 경우 기본값은0입니다. 즉, 서버의 실패가 그룹 전체에서 롤백을 트리거합니다.참고max-failed-servers및max-failure-percentage가 0이 아닌 값으로 설정된 경우max-failure-percentage가 우선합니다.
-
-
rollback-across-groups: 한 서버 그룹의 모든 서버에서 작업을 롤백해야 하는지 여부를 나타내는 부울입니다. 기본값은false입니다.
6.6.4.3. 롤아웃 계획을 사용하여 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
롤아웃 계획의 전체 세부 정보를 헤더 인수에 전달하여 배포 명령에 직접 제공할 수 있습니다. 형식에 대한 자세한 내용은 롤아웃 계획 구문 을 참조하십시오.
다음 관리 CLI 명령은 직렬 배포에 대해 rolling-to-servers=true 를 지정하는 배포 계획을 사용하여 애플리케이션을 main-server-group 서버 그룹에 배포합니다.
deploy /path/to/test-application.war --server-groups=main-server-group --headers={rollout main-server-group(rolling-to-servers=true)}
deploy /path/to/test-application.war --server-groups=main-server-group --headers={rollout main-server-group(rolling-to-servers=true)}
6.6.4.4. 저장된 롤아웃 계획을 사용하여 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
롤아웃 계획이 복잡할 수 있으므로 롤아웃 계획의 세부 정보를 저장할 수 있습니다. 이를 통해 매번 롤아웃 계획의 전체 세부 정보가 필요하지 않고 롤아웃 계획 이름을 사용할 때 참조할 수 있습니다.
프로세스
rollout-plan관리 CLI 명령을 사용하여 롤아웃 계획을 저장합니다. 형식에 대한 자세한 내용은 롤아웃 계획 구문 을 참조하십시오.rollout-plan add --name=my-rollout-plan --content={rollout main-server-group(rolling-to-servers=false,max-failed-servers=1),other-server-group(rolling-to-servers=true,max-failure-percentage=20) rollback-across-groups=true}rollout-plan add --name=my-rollout-plan --content={rollout main-server-group(rolling-to-servers=false,max-failed-servers=1),other-server-group(rolling-to-servers=true,max-failure-percentage=20) rollback-across-groups=true}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이렇게 하면 다음 배포 계획이 생성됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 애플리케이션을 배포할 때 저장된 롤아웃 계획 이름을 지정합니다.
다음 관리 CLI 명령은
my-rollout-plan저장된 롤아웃 계획을 사용하여 모든 서버 그룹에 애플리케이션을 배포합니다.deploy /path/to/test-application.war --all-server-groups --headers={rollout id=my-rollout-plan}deploy /path/to/test-application.war --all-server-groups --headers={rollout id=my-rollout-plan}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.6.4.5. 저장된 롤아웃 계획 제거 링크 복사링크가 클립보드에 복사되었습니다!
제거할 롤아웃 계획의 이름을 지정하여 rollout-plan 관리 CLI 명령을 사용하여 저장된 롤아웃 계획을 제거할 수 있습니다.
rollout-plan remove --name=my-rollout-plan
rollout-plan remove --name=my-rollout-plan
6.6.4.6. 기본 롤아웃 계획 링크 복사링크가 클립보드에 복사되었습니다!
여러 서버에 영향을 미치는 모든 작업은 롤아웃 계획을 사용하여 실행됩니다. 작업 요청에 롤아웃 계획을 지정하지 않으면 기본 롤아웃 계획이 생성됩니다. 계획에는 다음과 같은 특징이 있습니다.
- 하나의 고급 단계만 있을 것입니다. 작업의 영향을 받는 모든 서버 그룹에는 작업이 동시에 적용됩니다.
- 각 서버 그룹 내에서 작업은 모든 서버에 동시에 적용됩니다.
- 서버 그룹의 모든 서버에서 실패하면 그룹 전체에서 롤백이 발생합니다.
- 서버 그룹이 실패하면 다른 모든 서버 그룹이 롤백됩니다.
6.7. 기존 배포 관리 링크 복사링크가 클립보드에 복사되었습니다!
관리 인터페이스를 사용하여 모호한 배포를 관리할 수 있습니다. 이를 통해 새 버전의 애플리케이션을 배포하지 않고도 부끄러운 애플리케이션의 내용을 변경할 수 있습니다.
JavaScript 및 CSS 파일과 같은 배포의 정적 파일에 대한 업데이트는 즉시 적용됩니다. Java 클래스와 같은 다른 파일을 변경하려면 변경 사항을 적용하려면 애플리케이션을 다시 배포해야 할 수 있습니다.
빈 배포로 시작하거나 기존 아카이브 배포로 시작한 다음 콘텐츠를 추가하거나 제거할 수 있습니다.
배포 콘텐츠 보기를 참조하여 배포의 파일을 검색하거나 파일의 내용을 읽습니다.
Empty Exploded Deployment 만들기
필요에 따라 콘텐츠를 나중에 추가할 수 있는 빈 빈 배포를 생성할 수 있습니다. 다음 관리 CLI 명령을 사용하여 빈 배포 생성.
/deployment=DEPLOYMENT_NAME.war:add(content=[{empty=true}])
/deployment=DEPLOYMENT_NAME.war:add(content=[{empty=true}])
empty=true 옵션은 빈 배포를 생성하려는지 확인하는 데 필요합니다.
기존 아카이브 배포
콘텐츠를 업데이트할 수 있도록 기존 아카이브 배포가 손상될 수 있습니다. 배포가 비활성화되기 전에 비활성화해야 합니다. 배포가 취소하려면 다음 관리 CLI 명령을 사용합니다.
/deployment=ARCHIVE_DEPLOYMENT_NAME.ear:explode
/deployment=ARCHIVE_DEPLOYMENT_NAME.ear:explode
이제 이 배포에서 콘텐츠를 추가하거나 제거할 수 있습니다.
관리 콘솔에서 기존 아카이브 배포도 가능합니다. Deployments 탭에서 배포를 선택하고 Expl Cryostat 드롭다운 옵션을 선택합니다.
Exploded 배포에 콘텐츠 추가
배포에 콘텐츠를 추가하려면 추가 콘텐츠 관리 CLI 작업을 사용합니다. 콘텐츠를 추가해야 하는 배포 위치에 경로를 제공하고 업로드할 콘텐츠를 제공합니다. 업로드할 콘텐츠는 JBoss EAP 콘텐츠 리포지토리에 이미 존재하는 콘텐츠의 로컬 파일 스트림, URL, 해시 또는 컨텐츠의 바이트 배열로 제공될 수 있습니다. 다음 관리 CLI 명령은 input-stream-index 옵션을 사용하여 로컬 파일의 내용을 배포에 업로드합니다.
/deployment=DEPLOYMENT_NAME.war:add-content(content=[{target-path=/path/to/FILE_IN_DEPLOYMENT, input-stream-index=/path/to/LOCAL_FILE_TO_UPLOAD}]
/deployment=DEPLOYMENT_NAME.war:add-content(content=[{target-path=/path/to/FILE_IN_DEPLOYMENT, input-stream-index=/path/to/LOCAL_FILE_TO_UPLOAD}]
추가 콘텐츠 작업을 사용하여 배포에 콘텐츠를 추가하면 기본적으로 배포 콘텐츠를 덮어씁니다. 덮어쓰기 옵션을 false 로 설정하여 이 동작을 변경할 수 있습니다.
Exploded 배포에서 콘텐츠 제거
배포에서 콘텐츠를 제거하려면 remove-content 관리 CLI 작업을 사용하고 제거할 배포의 콘텐츠 경로를 제공합니다.
/deployment=DEPLOYMENT_NAME.war:remove-content(paths=[/path/to/FILE_1, /path/to/FILE_2])
/deployment=DEPLOYMENT_NAME.war:remove-content(paths=[/path/to/FILE_1, /path/to/FILE_2])
6.8. 배포 콘텐츠 보기 링크 복사링크가 클립보드에 복사되었습니다!
관리 배포에서 파일에 대한 정보를 찾아보고 JBoss EAP 관리 인터페이스를 사용하여 파일의 내용을 읽을 수 있습니다.
6.8.1. 배포에서 파일 검색 링크 복사링크가 클립보드에 복사되었습니다!
검색 콘텐츠 작업을 사용하여 관리 배포에서 파일 및 디렉터리를 확인합니다. 전체 배포 구조를 반환하거나 path 인수를 사용하여 특정 디렉터리의 경로를 제공하는 인수를 제공하지 않습니다.
Deployments 탭으로 이동하여 배포를 선택하고 드롭다운에서 View 를 선택하여 관리 콘솔에서 배포 콘텐츠를 탐색할 수도 있습니다.
/deployment=helloworld.war:browse-content(path=META-INF/)
/deployment=helloworld.war:browse-content(path=META-INF/)
그러면 helloworld.war 배포의 META-INF/ 디렉터리에 파일 및 디렉터리가 표시됩니다.
browse-content 작업에 다음 인수를 지정할 수도 있습니다.
- archive
- 아카이브 파일만 반환할 지 여부입니다.
- 깊이
- 반환할 파일의 깊이를 지정합니다.
6.8.2. 배포 콘텐츠 읽기 링크 복사링크가 클립보드에 복사되었습니다!
read-content 작업을 사용하여 관리 배포에서 파일의 내용을 읽을 수 있습니다. 전체 배포를 반환하거나 path 인수를 사용하여 특정 파일의 경로를 제공하는 인수를 제공하지 않습니다. 예를 들면 다음과 같습니다.
/deployment=helloworld.war:read-content(path=META-INF/MANIFEST.MF)
/deployment=helloworld.war:read-content(path=META-INF/MANIFEST.MF)
그러면 관리 CLI에 표시 하거나 파일 시스템에 저장할 수 있는 파일 스트림이 반환됩니다.
6.8.2.1. 파일의 콘텐츠 표시 링크 복사링크가 클립보드에 복사되었습니다!
attachment display 명령을 사용하여 MANIFEST.MF 파일의 내용을 읽습니다.
attachment display --operation=/deployment=helloworld.war:read-content(path=META-INF/MANIFEST.MF)
attachment display --operation=/deployment=helloworld.war:read-content(path=META-INF/MANIFEST.MF)
helloworld.war 배포에서 관리 CLI로 MANIFEST.MF 파일의 내용이 표시됩니다.
6.8.2.2. 파일의 콘텐츠 저장 링크 복사링크가 클립보드에 복사되었습니다!
attachment save 명령을 사용하여 MANIFEST.MF 파일의 내용을 파일 시스템에 저장합니다.
attachment save --operation=/deployment=helloworld.war:read-content(path=META-INF/MANIFEST.MF) --file=/path/to/MANIFEST.MF
attachment save --operation=/deployment=helloworld.war:read-content(path=META-INF/MANIFEST.MF) --file=/path/to/MANIFEST.MF
이렇게 하면 MANIFEST.MF 파일이 helloworld.war 배포의 경로/MANIFEST.MF 의 파일 시스템에 저장됩니다. --file 인수를 사용하여 파일 경로를 지정하지 않으면 파일의 고유 첨부 ID를 사용하여 이름이 지정되고 관리 CLI의 작업 디렉터리에 저장됩니다. 기본적으로 EAP_HOME/bin/ 입니다.
7장. JBoss EAP 관리형 도메인 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리형 도메인 운영 모드를 사용하면 단일 제어 지점에서 여러 JBoss EAP 인스턴스를 관리할 수 있습니다.
중앙 집중식으로 관리되는 JBoss EAP 서버 컬렉션은 도메인의 멤버라고 합니다. 도메인의 모든 JBoss EAP 인스턴스는 공통 관리 정책을 공유합니다.
도메인은 호스트당 하나의 도메인 컨트롤러, 하나 이상의 호스트 컨트롤러 및 0개 이상의 서버 그룹으로 구성됩니다.
- 도메인 컨트롤러
- 도메인 컨트롤러는 도메인이 제어되는 중앙 지점입니다. 이를 통해 각 서버가 도메인의 관리 정책에 따라 구성됩니다. 도메인 컨트롤러도 호스트 컨트롤러입니다.
- 호스트 컨트롤러
- 호스트 컨트롤러는 호스트에서 실행 중인 애플리케이션 서버 인스턴스의 라이프사이클을 제어하고 도메인 컨트롤러가 이를 관리하는 데 도움이 되는 도메인 컨트롤러와 상호 작용하는 물리적 또는 가상 호스트입니다. 각 호스트에는 여러 서버 그룹이 포함될 수 있습니다.
- 서버 그룹
- 서버 그룹은 JBoss EAP가 설치되어 있고 하나로 관리 및 구성된 서버 인스턴스 집합입니다. 도메인 컨트롤러는 서버 그룹에 배포된 애플리케이션의 구성을 관리합니다. 결과적으로 서버 그룹의 각 서버는 동일한 구성 및 배포를 공유합니다.
호스트 컨트롤러는 특정 물리적 호스트 또는 가상 호스트에 연결됩니다. 다른 구성을 사용하는 경우 동일한 하드웨어에서 여러 호스트 컨트롤러를 실행하여 포트 및 기타 리소스가 충돌하지 않도록 할 수 있습니다. 동일한 물리적 시스템의 동일한 JBoss EAP 인스턴스 내에서 도메인 컨트롤러, 단일 호스트 컨트롤러 및 여러 서버를 실행할 수 있습니다.
7.1. 관리형 도메인에서 도메인 컨트롤러의 역할 링크 복사링크가 클립보드에 복사되었습니다!
도메인 컨트롤러는 도메인의 중앙 관리 지점 역할을 하는 JBoss EAP 서버 인스턴스입니다. 하나의 호스트 컨트롤러 인스턴스가 도메인 컨트롤러로 작동하도록 구성되어 있습니다.
도메인 컨트롤러의 주요 책임은 다음과 같습니다.
- 도메인의 중앙 관리 정책을 유지 관리합니다.
- 모든 호스트 컨트롤러가 현재 콘텐츠를 알고 있는지 확인합니다.
- 실행 중인 모든 JBoss EAP 서버 인스턴스가 이 정책에 따라 구성되었는지 확인하는 호스트 컨트롤러를 지원합니다.
기본적으로 중앙 관리 정책은 EAP_HOME/domain/configuration/domain.xml 파일에 저장됩니다. 이 파일은 도메인 컨트롤러로 실행되도록 설정된 호스트 컨트롤러의 디렉터리에 필요합니다.
domain.xml 파일에는 도메인의 서버에서 사용할 수 있는 프로필 구성이 포함되어 있습니다. 프로필에는 해당 프로필에서 사용할 수 있는 다양한 하위 시스템의 세부 설정이 포함되어 있습니다. 도메인 구성에는 소켓 그룹 정의 및 서버 그룹 정의도 포함됩니다. 프로필에 대한 자세한 내용은 프로필 정보를 참조하십시오. ???
7.2. 관리형 도메인에서 호스트 컨트롤러의 역할 링크 복사링크가 클립보드에 복사되었습니다!
호스트 컨트롤러의 주요 책임은 서버 관리입니다. 도메인 관리 작업을 위임하고 호스트에서 실행되는 개별 애플리케이션 서버 프로세스를 시작하고 중지하는 역할을 합니다.
도메인 컨트롤러와 상호 작용하여 서버와 도메인 컨트롤러 간의 통신을 관리할 수 있습니다. 도메인의 여러 호스트 컨트롤러는 단일 도메인 컨트롤러와만 상호 작용할 수 있습니다. 따라서 단일 도메인 모드에서 실행되는 모든 호스트 컨트롤러 및 서버 인스턴스에는 단일 도메인 컨트롤러가 있으며 동일한 도메인에 속해야 합니다.
기본적으로 각 호스트 컨트롤러는 호스트 파일 시스템의 추출된 JBoss EAP 설치 파일에 있는EAP_HOME/domain/configuration/host.xml 파일에서 해당 구성을 읽습니다. host.xml 파일에는 특정 호스트와 관련된 다음 구성 정보가 포함되어 있습니다.
- 이 설치에서 실행할 서버 인스턴스의 이름입니다.
-
로컬 물리적 설치와 관련된 구성입니다. 예를 들어
domain.xml에 선언된 이름이 지정된 인터페이스 정의는host.xml의 실제 시스템별 IP 주소에 매핑될 수 있습니다. domain.xml의 추상 경로 이름은host.xml의 실제 파일 시스템 경로에 매핑할 수 있습니다. 다음 구성 중 하나입니다.
- 호스트 컨트롤러가 도메인 컨트롤러에 연결하여 자체적으로 등록하고 도메인 구성에 액세스하는 방법.
- 원격 도메인 컨트롤러를 찾아서 연결하는 방법.
- 호스트 컨트롤러가 도메인 컨트롤러 역할을 하는지 여부
7.3. 관리형 도메인에서 프로세스 컨트롤러의 역할 링크 복사링크가 클립보드에 복사되었습니다!
프로세스 컨트롤러는 호스트 컨트롤러 프로세스를 생성하고 라이프사이클을 모니터링하는 작은 경량 프로세스입니다. 호스트 컨트롤러가 충돌하면 프로세스 컨트롤러가 다시 시작됩니다. 또한 호스트 컨트롤러에서 대상으로 하는 서버 프로세스를 시작합니다. 그러나 충돌하는 서버 프로세스를 자동으로 재시작하지는 않습니다.
프로세스 컨트롤러는 EAP_HOME/domain/log/process-controller.log 파일에 기록합니다. PROCESS_CONTROLLER_JAVA_OPTS 변수를 사용하여 EAP_HOME/bin/domain.conf 파일에서 프로세스 컨트롤러에 대한 JVM 옵션을 설정할 수 있습니다.
7.4. 관리형 도메인의 서버 그룹 정보 링크 복사링크가 클립보드에 복사되었습니다!
서버 그룹은 하나로 관리 및 구성된 서버 인스턴스의 컬렉션입니다. 관리형 도메인에서 모든 애플리케이션 서버 인스턴스는 유일한 멤버인 경우에도 서버 그룹에 속합니다. 그룹의 서버 인스턴스는 동일한 프로필 구성과 배포된 콘텐츠를 공유합니다.
도메인 컨트롤러와 호스트 컨트롤러는 도메인에 있는 모든 서버 그룹의 모든 서버 인스턴스에 표준 구성을 적용합니다.
도메인은 여러 서버 그룹으로 구성될 수 있습니다. 다른 서버 그룹은 다른 프로필 및 배포를 사용하여 구성할 수 있습니다. 예를 들어, 도메인은 다양한 서비스를 제공하는 다양한 서버 계층으로 구성할 수 있습니다.
다른 서버 그룹에도 동일한 프로필 및 배포가 있을 수 있습니다. 예를 들어 애플리케이션이 하나의 서버 그룹에서 업그레이드된 다음 두 번째 서버 그룹에서 업데이트되어 완전한 서비스 중단을 방지할 수 있습니다.
7.5. 관리형 도메인의 서버 정보 링크 복사링크가 클립보드에 복사되었습니다!
서버는 애플리케이션 서버 인스턴스를 나타냅니다. 관리형 도메인에서 모든 서버 인스턴스는 서버 그룹의 멤버입니다. 호스트 컨트롤러는 자체 JVM(Java Virtual Machine) 프로세스에서 각 서버 인스턴스를 시작합니다. 자세한 내용은 관리형 도메인의 서버 구성을 참조하십시오.
7.7. 관리형 도메인 구성 링크 복사링크가 클립보드에 복사되었습니다!
7.7.1. JBoss EAP를 관리형 도메인으로 시작 링크 복사링크가 클립보드에 복사되었습니다!
도메인 및 호스트 컨트롤러는 JBoss EAP와 함께 제공된 domain.sh 또는 domain.batch 스크립트 를 사용하여 시작할 수 있습니다. 사용 가능한 모든 시작 스크립트 인수 및 용도의 전체 목록은 --help 인수를 사용하거나 Server 런타임 인수 및 스위치 섹션을 참조하십시오.
도메인 컨트롤러는 도메인의 모든 서버 그룹에 있는 보조 서버보다 먼저 시작해야 합니다. 먼저 도메인 컨트롤러를 시작한 다음 도메인에서 연결된 다른 호스트 컨트롤러를 시작합니다.
사전 요구 사항
JBoss EAP가 설치되어 있어야 합니다.
자세한 내용은 Red Hat JBoss Enterprise Application Platform 설치 방법을 참조하십시오.
프로세스
전용 도메인 컨트롤러에 대해 사전 구성된
host-primary.xml구성 파일을 사용하여 도메인 컨트롤러를 시작합니다.EAP_HOME/bin/domain.sh --host-config=host-primary.xml
$ EAP_HOME/bin/domain.sh --host-config=host-primary.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보조 호스트 컨트롤러에 대해 사전 구성된
host-secondary.xml구성 파일을 사용하여 호스트 컨트롤러를 시작합니다.EAP_HOME/bin/domain.sh --host-config=host-secondary.xml
$ EAP_HOME/bin/domain.sh --host-config=host-secondary.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
도메인 설정에 따라 도메인 컨트롤러와 충돌하지 않고 추가 구성을 연결해야 합니다. 다음 예제 도메인 설정도 참조하십시오.
7.7.2. 도메인 컨트롤러 구성 링크 복사링크가 클립보드에 복사되었습니다!
도메인에 하나의 호스트를 도메인 컨트롤러로 구성해야 합니다.
RPM 설치 방법을 사용하여 JBoss EAP를 설치할 때 동일한 시스템에서 여러 도메인 또는 호스트 컨트롤러를 구성하는 것은 지원되지 않습니다.
프로세스
<domain
-controller> 선언에 <구성합니다. <local/> 요소를 추가하여 호스트를 도메인 컨트롤러로;domain-controller> 요소에 다른 콘텐츠가 포함되어 있지 않아야 합니다.<domain-controller> <local/> </domain-controller>
<domain-controller> <local/> </domain-controller>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 도메인의 다른 호스트에서 액세스할 수 있어야 하는 관리 인터페이스를 노출합니다. HTTP 인터페이스는 표준 관리 인터페이스입니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
샘플 최소 도메인 컨트롤러 구성 파일인 EAP_HOME/domain/configuration/host-primary.xml 에는 이러한 구성 설정이 포함되어 있습니다.
7.7.3. 호스트 컨트롤러 구성 링크 복사링크가 클립보드에 복사되었습니다!
호스트 컨트롤러가 도메인에 자신을 등록할 수 있도록 도메인 컨트롤러에 연결하도록 호스트 컨트롤러를 구성해야 합니다.
RPM 설치 방법을 사용하여 JBoss EAP를 설치할 때 동일한 시스템에서 여러 도메인 또는 호스트 컨트롤러를 구성하는 것은 지원되지 않습니다.
프로세스
구성의
<domain-controller> 요소를 사용하여 도메인 컨트롤러에 대한 연결을 구성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
샘플 최소 호스트 컨트롤러 구성 파일인 EAP_HOME/domain/configuration/host-secondary.xml 에는 도메인 컨트롤러에 연결하는 구성 설정이 포함되어 있습니다. 구성은 호스트 컨트롤러를 시작할 때 jboss.domain.primary.address 속성을 제공한다고 가정합니다.
EAP_HOME/bin/domain.sh --host-config=host-secondary.xml -Djboss.domain.primary.address=<ip_address>
$ EAP_HOME/bin/domain.sh --host-config=host-secondary.xml -Djboss.domain.primary.address=<ip_address>
도메인 설정에 따라 도메인 컨트롤러에서 인증할 수 있도록 호스트 컨트롤러에 대한 인증을 제공해야 할 수도 있습니다. 보안 값으로 관리 사용자를 생성하고 해당 값으로 호스트 컨트롤러 구성을 업데이트하는 방법에 대한 자세한 내용은 두 머신에 관리형 도메인 설정을 참조하십시오.
7.7.4. 관리형 도메인의 호스트 이름 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리형 도메인에서 실행 중인 모든 호스트에는 고유한 호스트 이름이 있어야 합니다. 여러 호스트에서 동일한 호스트 구성 파일을 쉽게 관리하고 사용할 수 있도록 서버는 호스트 이름을 결정하기 위해 다음 우선 순위를 사용합니다.
-
설정된 경우
host.xml구성 파일의 host 요소 name 속성입니다. -
jboss.host.name시스템 속성의 값입니다. -
jboss.qualified.host시스템 속성의 첫 번째 마침표(. ) 문자 앞의 값 또는 최종 마침표(.name.) 문자가 없는 경우 전체 값입니다. -
POSIX 기반 운영 체제의
HOSTNAME환경 변수, Microsoft Windows의COMPUTERNAME환경 변수 또는 최종 마침표(.) 문자가 없는 경우 전체 값 앞에 있는 마침표(.) 문자 앞에 있는 값입니다.
호스트 컨트롤러의 이름은 관련 구성 파일의 상단에 있는 host 요소에 구성됩니다. 예를 들면 다음과 같습니다.
host.xml
<host xmlns="urn:jboss:domain:default:20.0" name="host1">
<host xmlns="urn:jboss:domain:default:20.0" name="host1">
7.7.5. 관리형 도메인에서 호스트 이름 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 호스트 이름을 업데이트하려면 다음 절차를 사용하십시오.
사전 요구 사항
- JBoss EAP는 관리형 도메인으로 실행되고 있습니다.
프로세스
관리 CLI를 시작하여 도메인 컨트롤러에 연결합니다.
EAP_HOME/bin/jboss-cli.sh --connect --controller=<domain_controller_ip_address>
$ EAP_HOME/bin/jboss-cli.sh --connect --controller=<domain_controller_ip_address>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 새 호스트 이름을 설정합니다.
/host=<existing_host_name>:write-attribute(name=name,value=<new_host_name>)
/host=<existing_host_name>:write-attribute(name=name,value=<new_host_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이렇게 하면 다음과 같이
host-secondary.xml파일의 호스트 name 속성이 수정됩니다.<host name="<new_host_name>" xmlns="urn:jboss:domain:default:20.0">
<host name="<new_host_name>" xmlns="urn:jboss:domain:default:20.0">Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 적용하려면 호스트 컨트롤러를 다시 로드합니다.
reload --host=<existing_host_name>
reload --host=<existing_host_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
호스트 컨트롤러에 구성 파일에 이름이 설정되지 않은 경우 런타임 시 호스트 이름을 전달할 수도 있습니다.
EAP_HOME/bin/domain.sh --host-config=host-secondary.xml -Djboss.host.name=<host_name>
$ EAP_HOME/bin/domain.sh --host-config=host-secondary.xml -Djboss.host.name=<host_name>
7.8. 서버 그룹 구성 링크 복사링크가 클립보드에 복사되었습니다!
서버 그룹은 관리 CLI를 사용하거나 관리 콘솔 런타임 탭에서 구성할 수 있습니다.
다음은 서버 그룹 정의의 예입니다.
서버 그룹 CLI 명령
서버 그룹 추가
/server-group=<server_group_name>:add(profile=<profile_name>,socket-binding-group=<socket_binding_group_name>)
/server-group=<server_group_name>:add(profile=<profile_name>,socket-binding-group=<socket_binding_group_name>)
서버 그룹 업데이트
/server-group=<server_group_name>:write-attribute(name=<attribute_name>,value=<value>)
/server-group=<server_group_name>:write-attribute(name=<attribute_name>,value=<value>)
서버 그룹 제거
/server-group=<server_group_name>:remove
/server-group=<server_group_name>:remove
7.9. 관리형 도메인의 서버 구성 링크 복사링크가 클립보드에 복사되었습니다!
서버는 관리 CLI 또는 관리 콘솔 런타임 탭에서 구성할 수 있습니다.
기본 host.xml 구성 파일은 세 개의 서버를 정의합니다.
- 1
server-one이라는 서버 인스턴스는main-server-group과 연결되며 해당 서버 그룹에서 지정한 하위 시스템 구성 및 소켓 바인딩을 상속합니다.- 2
server-two라는 서버 인스턴스는main-server-group과도 연결되지만server-one에서 사용하는 포트 값과 충돌하지 않도록 소켓 바인딩port-offset값도 정의합니다.- 3
server-three라는 서버 인스턴스는other-server-group과 연결되며 해당 그룹의 구성을 사용합니다. 또한port-offset값을 정의하고auto-start를false로 설정하여 호스트 컨트롤러가 시작될 때 시작되지 않도록 합니다.
서버 구성 CLI 명령
서버 추가
/host=<host_name>/server-config=<server_name>:add(group=<server_group_name>)
/host=<host_name>/server-config=<server_name>:add(group=<server_group_name>)
서버 업데이트
/host=<host_name>/server-config=<server_name>:write-attribute(name=<attribute_name>,value=<value>)
/host=<host_name>/server-config=<server_name>:write-attribute(name=<attribute_name>,value=<value>)
서버 제거
/host=<host_name>/server-config=<server_name>:remove
/host=<host_name>/server-config=<server_name>:remove
7.10. 관리형 도메인의 서버 작업 링크 복사링크가 클립보드에 복사되었습니다!
런타임 탭으로 이동한 후 적절한 호스트 또는 서버 그룹을 선택하여 관리 콘솔에서 서버 시작, 중지 및 다시 로드와 같은 서버에서 작업을 수행할 수 있습니다.
서버 시작
특정 호스트에서 단일 서버를 시작할 수 있습니다.
/host=<host_name>/server=<server_name>:start
/host=<host_name>/server=<server_name>:start
지정된 서버 그룹의 모든 서버를 시작할 수 있습니다.
/server-group=<server_group_name>:start-servers
/server-group=<server_group_name>:start-servers
서버 중지
특정 호스트에서 단일 서버를 중지할 수 있습니다.
/host=<host_name>/server=<server_name>:stop
/host=<host_name>/server=<server_name>:stop
지정된 서버 그룹의 모든 서버를 중지할 수 있습니다.
/server-group=<server_group_name>:stop-servers
/server-group=<server_group_name>:stop-servers
서버 다시 로드
특정 호스트에서 단일 서버를 다시 로드할 수 있습니다.
/host=<host_name>/server=<server_name>:reload
/host=<host_name>/server=<server_name>:reload
지정된 서버 그룹의 모든 서버를 다시 로드할 수 있습니다.
/server-group=<server_group_name>:reload-servers
/server-group=<server_group_name>:reload-servers
서버 종료
지정된 서버 그룹의 모든 서버 프로세스를 종료할 수 있습니다.
/server-group=<server_group_name>:kill-servers
/server-group=<server_group_name>:kill-servers
7.11. 도메인 컨트롤러 검색 및 페일오버 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리형 도메인을 설정할 때 도메인 컨트롤러에 연결하는 데 필요한 정보를 사용하여 각 호스트 컨트롤러를 구성해야 합니다. JBoss EAP에서 각 호스트 컨트롤러는 도메인 컨트롤러를 찾기 위한 여러 옵션으로 구성할 수 있습니다. 호스트 컨트롤러는 성공할 때까지 옵션 목록을 반복합니다.
기본 도메인 컨트롤러에 문제가 있는 경우 백업 호스트 컨트롤러를 도메인 컨트롤러로 승격할 수 있습니다. 이렇게 하면 호스트 컨트롤러가 승격되면 새 도메인 컨트롤러로 자동으로 페일오버할 수 있습니다. 자세한 내용은 도메인 컨트롤러 역할을 할 호스트 컨트롤러 승격 을 참조하십시오.
7.11.1. 도메인 검색 옵션 링크 복사링크가 클립보드에 복사되었습니다!
다음은 도메인 컨트롤러를 찾기 위한 여러 옵션으로 호스트 컨트롤러를 구성하는 방법의 예입니다.
예: 여러 도메인 컨트롤러 옵션이 있는 호스트 컨트롤러
정적 검색 옵션에는 다음과 같은 필수 속성이 포함됩니다.
- name
- 이 도메인 컨트롤러 검색 옵션의 이름입니다.
- host
- 원격 도메인 컨트롤러의 호스트 이름입니다.
- port
- 원격 도메인 컨트롤러의 포트입니다.
위의 예에서 첫 번째 검색 옵션은 성공할 것으로 예상되는 옵션입니다. 두 번째는 장애 조치(failover) 상황에서 사용할 수 있습니다.
7.11.2. 캐시된 도메인 구성이 있는 호스트 컨트롤러 링크 복사링크가 클립보드에 복사되었습니다!
호스트 컨트롤러는 --cached-dc 옵션을 사용하여 도메인 컨트롤러에 연결하지 않고 시작할 수 있지만 호스트 컨트롤러는 이전에 도메인 컨트롤러에서 로컬로 캐시해야 합니다. 이 --cached-dc 옵션을 사용하여 호스트 컨트롤러를 시작하면 도메인 컨트롤러에서 호스트 컨트롤러의 도메인 구성이 캐시됩니다.
예
EAP_HOME/bin/domain.sh --host-config=host-secondary.xml --cached-dc
$ EAP_HOME/bin/domain.sh --host-config=host-secondary.xml --cached-dc
이렇게 하면 도메인 컨트롤러 연결 없이 현재 서버를 일시적으로 관리하는 데 필요한 정보가 포함된 EAP_HOME/domain/configuration/ 디렉터리에 domain.cached-remote.xml 파일이 생성됩니다.
기본적으로 --cached-dc 옵션을 사용하면 이 호스트 컨트롤러에서 사용하는 구성만 캐시합니다. 즉, 전체 도메인의 도메인 컨트롤러로 승격할 수 없습니다. 호스트 컨트롤러가 도메인 컨트롤러 역할을 할 수 있도록 전체 도메인 구성을 캐싱하는 방법에 대한 정보는 도메인 컨트롤러로 작동하도록 호스트 컨트롤러 승격 을 참조하십시오.
--cached-dc 로 이 호스트 컨트롤러를 시작할 때 도메인 컨트롤러를 사용할 수 없는 경우 호스트 컨트롤러는 domain.cached-remote.xml 파일에 저장된 캐시된 구성을 사용하기 시작합니다. 이 파일이 존재하거나 호스트 컨트롤러가 시작되지 않아야 합니다.
이 상태에서 호스트 컨트롤러는 도메인 구성을 수정할 수 없지만 서버를 시작하고 배포를 관리할 수 있습니다.
캐시된 구성으로 시작한 후 호스트 컨트롤러는 도메인 컨트롤러에 다시 연결을 시도합니다. 도메인 컨트롤러를 사용할 수 있게 되면 호스트 컨트롤러가 자동으로 다시 연결되고 도메인 구성을 동기화합니다. 일부 구성 변경 사항을 적용하려면 호스트 컨트롤러를 다시 로드해야 할 수 있습니다. 이 경우 호스트 컨트롤러에 경고가 기록됩니다.
7.11.3. 도메인 컨트롤러로 작동하도록 호스트 컨트롤러 승격 링크 복사링크가 클립보드에 복사되었습니다!
기본 도메인 컨트롤러에서 문제가 발생하면 호스트 컨트롤러가 도메인 컨트롤러로 작동하도록 승격할 수 있습니다. 호스트 컨트롤러는 먼저 도메인 컨트롤러에서 도메인 구성을 승격하기 전에 로컬로 캐시해야 합니다.
프로세스
도메인 컨트롤러가 될 수 있는 모든 호스트 컨트롤러에
--backup옵션을 사용합니다.EAP_HOME/bin/domain.sh --host-config=host-secondary.xml --backup
$ EAP_HOME/bin/domain.sh --host-config=host-secondary.xml --backupCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이렇게 하면 전체 도메인 구성의 사본이 포함된
EAP_HOME/domain/configuration/디렉터리에domain.cached-remote.xml파일이 생성됩니다. 이 구성은 호스트 컨트롤러가 도메인 컨트롤러 역할을 수행하도록 재구성되는 경우 사용됩니다.참고ignore-unused-configuration속성은 특정 호스트에 대해 캐시할 구성의 양을 결정하는 데 사용됩니다.true값은 이 호스트 컨트롤러와 관련된 구성만 캐시되므로 도메인 컨트롤러로 대체할 수 없습니다. 값이false이면 전체 도메인 구성이 캐시됩니다.backup인수는 기본적으로 이 속성을false로 설정하여 전체 도메인을 캐시합니다. 그러나host.xml파일에서 이 속성을 설정하면 해당 값이 사용됩니다.--cached-dc옵션을 사용하여 도메인 구성 복사본을 생성할 수도 있지만host.xml에서ignore-unused-configuration을false로 설정하여 전체 도메인을 캐시해야 합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트 컨트롤러를 도메인 컨트롤러로 승격합니다.
- 원래 도메인 컨트롤러가 중지되었는지 확인합니다.
- 관리 CLI를 사용하여 새 도메인 컨트롤러가 되도록 호스트 컨트롤러에 연결합니다.
다음 명령을 실행하여 새 도메인 컨트롤러 역할을 할 호스트 컨트롤러를 구성합니다.
/host=backup:write-attribute(name=domain-controller.local, value={})/host=backup:write-attribute(name=domain-controller.local, value={})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 호스트 컨트롤러를 다시 로드합니다.
reload --host=<host_name>
reload --host=<host_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 이 호스트 컨트롤러가 도메인 컨트롤러 역할을 합니다.
7.12. 단일 시스템에서 관리형 도메인 설정 링크 복사링크가 클립보드에 복사되었습니다!
jboss.domain.base.dir 속성을 사용하여 단일 시스템에서 여러 호스트 컨트롤러를 실행할 수 있습니다.
단일 시스템에서 두 개 이상의 JBoss EAP 호스트 컨트롤러를 시스템 서비스로 구성하는 것은 지원되지 않습니다.
프로세스
도메인 컨트롤러의
EAP_HOME/domain디렉터리를 복사합니다.cp -r EAP_HOME/domain <path_to>/domain1
$ cp -r EAP_HOME/domain <path_to>/domain1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트 컨트롤러의
EAP_HOME/domain디렉터리를 복사합니다.cp -r EAP_HOME/domain <path_to>/host1
$ cp -r EAP_HOME/domain <path_to>/host1Copy to Clipboard Copied! Toggle word wrap Toggle overflow <
path_to> /domain1을 사용하여 도메인컨트롤러를 시작합니다.EAP_HOME/bin/domain.sh --host-config=host-primary.xml -Djboss.domain.base.dir=<path_to>/domain1
$ EAP_HOME/bin/domain.sh --host-config=host-primary.xml -Djboss.domain.base.dir=<path_to>/domain1Copy to Clipboard Copied! Toggle word wrap Toggle overflow <
path_to> /host1을 사용하여 호스트컨트롤러를 시작합니다.EAP_HOME/bin/domain.sh --host-config=host-secondary.xml -Djboss.domain.base.dir=<path_to>/host1 -Djboss.domain.primary.address=<ip_adress> -Djboss.management.http.port=<port>
$ EAP_HOME/bin/domain.sh --host-config=host-secondary.xml -Djboss.domain.base.dir=<path_to>/host1 -Djboss.domain.primary.address=<ip_adress> -Djboss.management.http.port=<port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고호스트 컨트롤러를 시작할 때
jboss.domain.primary.address속성을 사용하여 도메인 컨트롤러의 주소를 지정해야 합니다.또한 이 호스트 컨트롤러는 도메인 컨트롤러와 동일한 시스템에서 실행되므로 도메인 컨트롤러의 관리 인터페이스와 충돌하지 않도록 관리 인터페이스를 변경해야 합니다. 이 명령은
jboss.management.http.port속성을 설정합니다.
이러한 방식으로 시작된 각 인스턴스는 기본 설치 디렉터리의 나머지 리소스(예: EAP_HOME/modules/ )를 공유하지만 jboss.domain.base.dir 에서 지정하는 디렉터리의 도메인 구성을 사용합니다.
7.13. 두 시스템에서 관리형 도메인 설정 링크 복사링크가 클립보드에 복사되었습니다!
두 시스템에서 관리형 도메인을 생성할 수 있습니다. 여기서 한 시스템은 도메인 컨트롤러이고 다른 시스템은 호스트입니다. 자세한 내용은 관리형 도메인에서 도메인 컨트롤러의 역할을 참조하십시오.
-
<IP1> = 도메인 컨트롤러의 IP 주소 (머신 1) -
<IP2> = 호스트의 IP 주소 (머신 2)
이 예제를 실행하도록 방화벽을 구성해야 할 수도 있습니다.
프로세스
시스템 1에서
도메인 컨트롤러에서 호스트를 인증할 수 있도록 관리 사용자를 추가합니다.
add-user.sh스크립트를 사용하여 호스트 컨트롤러HOST_NAME에 대한 관리 사용자를 추가합니다.도메인 컨트롤러를 시작합니다.
전용 도메인 컨트롤러에 사전 구성된
host-primary.xml구성 파일을 지정합니다. 또한jboss.bind.address.management속성을 설정하여 도메인 컨트롤러를 다른 시스템에 볼 수 있도록 합니다.EAP_HOME/bin/domain.sh --host-config=host-primary.xml -Djboss.bind.address.management=<IP1>
$ EAP_HOME/bin/domain.sh --host-config=host-primary.xml -Djboss.bind.address.management=<IP1>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
머신 2에서
다음과 같이 호스트 구성을 업데이트합니다.
elytron하위 시스템에 다음 구성을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요이 예에서는 일반 텍스트 암호 "MGMT_USER_PASSWORD"를 사용합니다. 프로덕션 환경에서는 보안을 강화하기 위해 일반 텍스트 암호를 사용하는 대신 인증 정보 저장소에 대한 참조를 사용하거나 암호화된 표현식을 사용합니다. 자세한 내용은 JBoss EAP에서 인증 정보 보안 스토리지를 참조하십시오.
도메인 컨트롤러에 인증 컨텍스트를 추가합니다.
<domain-controller> <remote authentication-context="secondary-hc-auth-context"> ... </domain-controller>
<domain-controller> <remote authentication-context="secondary-hc-auth-context"> ... </domain-controller>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
호스트 컨트롤러를 시작합니다.
보조 호스트 컨트롤러에 사전 구성된
host-secondary.xml구성 파일을 지정합니다. 또한jboss.domain.primary.address속성을 설정하여 도메인 컨트롤러에 연결하고jboss.bind.address속성을 설정하여 호스트 컨트롤러 바인딩 주소를 설정합니다.EAP_HOME/bin/domain.sh --host-config=host-secondary.xml -Djboss.domain.primary.address=<IP1> -Djboss.bind.address=<IP2>
$ EAP_HOME/bin/domain.sh --host-config=host-secondary.xml -Djboss.domain.primary.address=<IP1> -Djboss.bind.address=<IP2>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 시작 시 --controller 매개변수로 도메인 컨트롤러 주소를 지정하여 관리 CLI에서 도메인을 관리할 수 있습니다.
EAP_HOME/bin/jboss-cli.sh --connect --controller=<IP1>
$ EAP_HOME/bin/jboss-cli.sh --connect --controller=<IP1>
또는 http:// <IP1> :9990에서 관리 콘솔에서 도메인을 관리할 수 있습니다.
7.14. JBoss EAP 8.0 도메인 컨트롤러를 구성하여 JBoss EAP 7.4 인스턴스 관리 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 8.0 도메인 컨트롤러는 호스트와 서버가 JBoss EAP 7.4 이상을 실행하는 경우 JBoss EAP 7.4 이상을 실행하는 호스트 및 서버를 관리할 수 있습니다.
7.14.1. JBoss EAP 8.0 도메인 컨트롤러에 JBoss EAP 7.4 구성 추가 링크 복사링크가 클립보드에 복사되었습니다!
도메인 컨트롤러가 JBoss EAP 7.4 서버를 관리할 수 있도록 하려면 JBoss EAP 8.0 도메인 구성에 JBoss EAP 7.4 구성 세부 정보를 제공해야 합니다. JBoss EAP 7.4 프로필, 소켓 바인딩 그룹 및 서버 그룹을 JBoss EAP 8.0 domain.xml 구성 파일에 복사하여 이 작업을 수행할 수 있습니다.
JBoss EAP 7.4 구성에 기존 이름이 충돌하는 경우 리소스의 이름을 변경해야 합니다. 또한 적절한 동작을 보장하기 위해 추가 조정 도 있습니다.
다음 절차에서는 JBoss EAP 7.4 기본 프로필, standard-sockets 소켓 바인딩 그룹 및 main-server-group 서버 그룹을 사용합니다.
프로세스
-
JBoss EAP 8.0
domain.xml구성 파일을 편집합니다. 편집하기 전에 이 파일을 백업하는 것이 좋습니다. 해당 JBoss EAP 7.4 프로필을 JBoss EAP 8.0
domain.xml파일에 복사합니다.이 절차에서는 JBoss EAP 7.4
기본프로필이 복사되고 이름이 Cryostat74-default로변경되었다고 가정합니다.JBoss EAP 7.4
domain.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 프로필에서 사용하는 필요한 확장 기능을 추가합니다.
JBoss EAP 7.4 프로필이 JBoss EAP 8.0에 더 이상 존재하지 않는 하위 시스템을 사용하는 경우 JBoss EAP 도메인 구성에 적절한 확장 기능을 추가해야 합니다.
JBoss EAP 8.0
domain.xml<extensions> ... <extension module="org.jboss.as.jsr77"/> <extension module="org.jboss.as.security"/> <extensions>
<extensions> ... <extension module="org.jboss.as.jsr77"/> <extension module="org.jboss.as.security"/> <extensions>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 해당 JBoss EAP 7.4 소켓 바인딩 그룹을 JBoss EAP 8.0
domain.xml파일에 복사합니다.이 절차에서는 JBoss EAP 7.4
standard-sockets소켓 바인딩 그룹이 복사되고 이름이74-standard-sockets로 변경되었다고 가정합니다.JBoss EAP 8.0
domain.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 해당 JBoss EAP 7.4 서버 그룹을 JBoss EAP 8.0
domain.xml파일에 복사합니다.이 절차에서는 JBoss EAP 7.4
main-server-group서버 그룹이 복사되고 이름이74-main-server-group으로 변경되었다고 가정합니다. JBoss EAP 7.4 프로필, Cryostat74-default 및 JBoss EAP 7.4 소켓 바인딩 그룹, Cryostat74-standard-sockets를 사용하려면 이 서버 그룹을 업데이트해야 합니다.JBoss EAP 8.0
domain.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.14.2. JBoss EAP 7.4 버전 프로필의 동작 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 버전과 원하는 동작에 따라 JBoss EAP 7.4 인스턴스에서 사용하는 프로필에 대한 추가 업데이트가 필요합니다. 기존 JBoss EAP 7.4 인스턴스에서 사용하는 하위 시스템 및 구성에 따라 추가 변경이 필요할 수 있습니다. 다음 절차에서는 JBoss EAP 7.4 프로필이 Cryostat 74-default 라고 가정합니다.
프로세스
- JBoss EAP 8.0 도메인 컨트롤러를 시작하고 관리 CLI를 시작하여 다음 업데이트를 수행합니다.
CDI 1.0 동작을 설정합니다.
이는 JBoss EAP 8.0에서 사용된 이후 CDI 버전의 동작과 달리 JBoss EAP 7.4 서버에 대한 CDI 1.0 동작을 원하는 경우에만 필요합니다. CDI 1.0 동작을 원하는 경우
weld하위 시스템을 다음과 같이 업데이트합니다.JBoss EAP 8.0 도메인 컨트롤러 CLI
/profile=eap74-default/subsystem=weld:write-attribute(name=require-bean-descriptor,value=true) /profile=eap74-default/subsystem=weld:write-attribute(name=non-portable-mode,value=true)
/profile=eap74-default/subsystem=weld:write-attribute(name=require-bean-descriptor,value=true) /profile=eap74-default/subsystem=weld:write-attribute(name=non-portable-mode,value=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.14.3. JBoss EAP 7.4 서버의 서버 그룹 설정 링크 복사링크가 클립보드에 복사되었습니다!
서버 그룹의 이름을 변경한 경우 JBoss EAP 7.4 호스트 구성을 업데이트하여 JBoss EAP 8.0 구성에 지정된 새 서버 그룹을 사용해야 합니다. 이 예에서는 JBoss EAP 8.0 domain.xml 구성 파일에 지정된 Cryostat 74-main-server-group 서버 그룹을 사용합니다.
프로세스
호스트 구성을 업데이트합니다.
JBoss EAP 7.4 host-secondary.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
호스트는 호스트가 실행 중인 것보다 최신 버전의 JBoss EAP에 도입된 기능 또는 구성 설정을 사용할 수 없습니다.
7.14.4. JBoss EAP 7.4 인스턴스가 JBoss EAP 8.0 서버 업데이트를 수신하지 못하도록 합니다. 링크 복사링크가 클립보드에 복사되었습니다!
관리형 도메인의 도메인 컨트롤러는 구성 업데이트를 호스트 컨트롤러에 전달합니다. host-exclude 구성을 사용하여 특정 버전에서 숨겨야 하는 리소스를 지정해야 합니다. JBoss EAP 7.4 버전에 대해 적절한 사전 구성된 host-exclude 옵션을 선택합니다: EAP74.
host-exclude 구성의 active-server-groups 속성은 특정 버전에서 사용하는 서버 그룹 목록을 지정합니다. 이러한 서버 그룹과 관련 프로필, 소켓 바인딩 그룹 및 배포 리소스는 이 버전의 호스트에서 사용할 수 있지만 다른 모든 파일은 이러한 호스트에서 숨겨집니다.
이 예에서는 버전이 JBoss EAP 7.4이고 JBoss EAP 7.4 서버 그룹 Cryostat 74-main-server-group 을 활성 서버 그룹으로 추가한다고 가정합니다.
JBoss EAP 8.0 도메인 컨트롤러 CLI
/host-exclude=EAP74:write-attribute(name=active-server-groups,value=[eap74-main-server-group])
/host-exclude=EAP74:write-attribute(name=active-server-groups,value=[eap74-main-server-group])
필요한 경우 active-socket-binding-groups 특성을 사용하여 서버에서 사용하는 추가 소켓 바인딩 그룹을 지정할 수 있습니다. 이는 active-server-groups 에 지정된 서버 그룹과 연결되지 않은 소켓 바인딩 그룹에만 필요합니다.
7.15. JBoss EAP 프로필 관리 링크 복사링크가 클립보드에 복사되었습니다!
7.15.1. 프로필 정보 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 서버에서 사용할 수 있는 하위 시스템을 구성하는 방법으로 프로필을 사용합니다. 프로필은 각 하위 시스템의 특정 구성과 함께 사용 가능한 하위 시스템의 컬렉션으로 구성됩니다. 하위 시스템 수가 많은 프로필로 인해 많은 기능이 있는 서버가 생성됩니다. 집중된 하위 시스템 세트가 있는 프로필은 기능이 줄어들지만 풋프린트가 작아집니다.
JBoss EAP에는 대부분의 사용 사례를 충족해야 하는 사전 정의된 5개의 프로필이 포함되어 있습니다.
- default
-
로깅,보안,데이터소스,infinispan,webservices,ee, Cryostat3및트랜잭션등과 같이 일반적으로 사용되는 하위 시스템을 포함합니다. - ha
-
고가용성을 위해
jgroups및modcluster하위 시스템을 추가하여 default 프로필에 제공된 하위 시스템을 포함합니다. - full
-
messaging-activemq및iiop-openjdk하위 시스템을 추가하여 default 프로필에 제공된 하위 시스템을 포함합니다. - full-ha
-
고가용성을 위해
jgroups및modcluster하위 시스템을 추가하여 full 프로필에 제공된 하위 시스템을 포함합니다. - 로드 밸런서
- 다른 JBoss EAP 인스턴스의 부하를 분산하기 위해 기본 제공 mod_cluster 프런트 엔드 로드 밸런서를 사용하는 데 필요한 최소 하위 시스템을 포함합니다.
7.15.2. 프로필 복제 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP를 사용하면 기존 프로필을 복제하여 관리형 도메인에 새 프로필을 생성할 수 있습니다. 그러면 원래 프로필의 구성 및 하위 시스템의 사본이 생성됩니다.
프로세스
복제에 원하는 프로필에서
clone작업을 사용하여 프로필을 복제합니다./profile=full-ha:clone(to_profile=<cloned_profile>)
/profile=full-ha:clone(to_profile=<cloned_profile>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
원하는 프로필을 복제하고 복제를 클릭하여 관리 콘솔에서 프로필을 복제할 수도 있습니다.
7.15.3. 관리형 도메인의 계층적 프로필 링크 복사링크가 클립보드에 복사되었습니다!
관리형 도메인에서 프로필 계층 구조를 생성할 수 있습니다. 이를 통해 다른 프로필이 상속할 수 있는 공통 확장이 포함된 기본 프로필을 만들 수 있습니다.
관리형 도메인은 domain.xml 에서 여러 프로필을 정의합니다. 여러 프로필이 특정 하위 시스템에 대해 동일한 구성을 사용하는 경우 다른 프로필 대신 한 곳에서 구성할 수 있습니다. 상위 프로필의 값은 재정의할 수 없습니다.
또한 각 프로필은 자급자여야 합니다. 요소 또는 하위 시스템을 참조하는 경우 해당 요소가 참조되는 프로필에 정의해야 합니다.
프로필은 list-add 작업을 사용하고 포함할 프로필을 제공하여 관리 CLI를 사용하여 계층 구조에 다른 프로필을 포함할 수 있습니다.
/profile=new-profile:list-add(name=includes, value=<profile_name>)
/profile=new-profile:list-add(name=includes, value=<profile_name>)
8장. JVM 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
독립 실행형 JBoss EAP 서버에 대한 JVM(Java Virtual Machine) 설정을 구성하거나 관리형 도메인에서 JBoss EAP 서버를 구성할 수 있습니다.
독립 실행형 JBoss EAP 서버 인스턴스의 경우 서버 시작 프로세스는 시작 시 JVM 설정을 JBoss EAP 서버에 전달합니다. JBoss EAP를 시작하기 전에 명령줄에서 또는 관리 콘솔의 Configuration 아래의 System Properties 페이지를 사용하여 선언할 수 있습니다.
관리형 도메인에서 JVM 설정은 host.xml 및 domain.xml 구성 파일에 선언되며 호스트, 서버 그룹 또는 서버 수준에서 구성할 수 있습니다.
독립 실행형 서버를 시작하는 초기 단계 또는 관리형 도메인 호스트 컨트롤러의 초기 단계에서 JVM 자체 또는 JBoss EAP 모듈(예: 로깅 관리자)에서 JAVA_OPTS 에서 시스템 속성을 구성합니다.
8.1. 독립 실행형 서버에 대한 JVM 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
서버를 시작하기 전에 JAVA_OPTS 환경 변수를 설정하여 런타임 시 독립 실행형 JBoss EAP 서버 인스턴스에 대한 JVM(Java Virtual Machine) 설정을 정의할 수 있습니다. 또는 standalone.conf 또는 standalone. batch 구성 파일에 JVM 설정을 추가하고 시스템 속성을 설정할 수도 있습니다. 여러 방법을 사용하여 시스템 속성을 설정하는 경우 JBoss EAP 구성 파일의 standalone*.xml 의 값은 다른 값을 재정의합니다.
프로세스
JAVA_OPTS환경 변수를 설정합니다.Linux
export JAVA_OPTS="-Xmx1024M"
$ export JAVA_OPTS="-Xmx1024M"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Microsoft Windows
set JAVA_OPTS="Xmx1024M"
set JAVA_OPTS="Xmx1024M"Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
또는 JVM에 전달할 옵션 예제가 포함된
EAP_HOME/bin폴더에서파일 또는 Windows Server의 standalone.conf.batch에 JVM 설정을 추가할 수 있습니다.standalone.conf JAVA_OPTS환경 변수를 설정하는 것 외에도 다음 대체 방법 중 하나를 사용하여 시스템 속성을 설정할 수 있습니다.다음 명령을 실행합니다.
EAP_HOME/bin/standalone.sh -Dmyproperty=value
$ EAP_HOME/bin/standalone.sh -Dmyproperty=valueCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
JBoss EAP 구성 파일인
standalone*.xml을 편집합니다.
여러 방법을 사용하여 시스템 속성을 설정하는 경우 JBoss EAP 구성 파일의 standalone*.xml 의 값은 다른 값을 재정의합니다. 이로 인해 JBoss EAP 시작 문제가 발생할 수 있습니다. 예를 들어 JAVA_OPTS 환경 변수와 JBoss EAP 구성 파일에 정의된 시스템 설정이 있는 경우 JBoss EAP 구성의 값은 JAVA_OPTS 의 값을 재정의합니다.
8.2. 관리형 도메인에 대한 JVM 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 관리형 도메인에서 여러 수준에서 JVM 설정을 정의할 수 있습니다. 특정 호스트에서 사용자 지정 JVM 설정을 정의한 다음 해당 설정을 서버 그룹 또는 개별 서버 인스턴스에 적용할 수 있습니다.
기본적으로 서버 그룹과 개별 서버는 상위에서 JVM 설정을 상속하지만 각 수준에서 JVM 설정을 재정의하도록 선택할 수 있습니다.
domain.conf 또는 Windows Server의 JVM 설정은 해당 호스트 컨트롤러에서 제어하는 개별 JBoss EAP 서버 인스턴스가 아닌 JBoss EAP 호스트 컨트롤러의 Java 프로세스에 적용됩니다.
8.2.1. 호스트 컨트롤러에서 JVM 설정 정의 링크 복사링크가 클립보드에 복사되었습니다!
호스트 컨트롤러에서 JVM(Java Virtual Machine) 설정을 정의하고 해당 설정을 서버 그룹 또는 개별 서버에 적용할 수 있습니다. JBoss EAP에는 기본 JVM 설정이 제공되지만 다음 절차에서는 일부 사용자 지정 JVM 설정 및 옵션을 사용하여 production_jvm 이라는 새 JVM 설정을 생성하는 방법을 보여줍니다. 이러한 설정은 host.xml 의 <jvm > 태그 내에 저장됩니다.
사전 요구 사항
- JBoss EAP는 관리형 도메인으로 실행되고 있습니다.
프로세스
관리 CLI를 사용하여 JVM 설정을 정의합니다.
구문
/host=<HOST_NAME>/jvm=<SETTING_NAME>:add(heap-size=<HEAP_SIZE>, max-heap-size=<MAX_HEAP_SIZE>, max-permgen-size=<MAX_PERMANENT_GENERATION_SIZED>, stack-size=<STACK_SIZE>, jvm-options=["<JVM_OPTIONS>"])
/host=<HOST_NAME>/jvm=<SETTING_NAME>:add(heap-size=<HEAP_SIZE>, max-heap-size=<MAX_HEAP_SIZE>, max-permgen-size=<MAX_PERMANENT_GENERATION_SIZED>, stack-size=<STACK_SIZE>, jvm-options=["<JVM_OPTIONS>"])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
/host=exampleHost1/jvm=production_jvm:add(heap-size=2048m, max-heap-size=2048m, max-permgen-size=512m, stack-size=1024k, jvm-options=["-XX:-UseParallelGC"])
/host=exampleHost1/jvm=production_jvm:add(heap-size=2048m, max-heap-size=2048m, max-permgen-size=512m, stack-size=1024k, jvm-options=["-XX:-UseParallelGC"])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용 가능한 모든 옵션에 대한 설명은 관리형 도메인 JVM 구성 특성을 참조하십시오.
관리 콘솔을 사용하여 JVM 설정을 정의합니다.
- 관리 콘솔에서 런타임 → 호스트로 이동합니다.
- 호스트를 선택하고 View 를 클릭합니다.
- JVM 탭을 선택하여 설정을 정의합니다.
8.2.2. 서버 그룹에 JVM 설정 적용 링크 복사링크가 클립보드에 복사되었습니다!
서버 그룹을 생성할 때 그룹의 모든 서버에서 사용할 JVM 구성을 지정할 수 있습니다. 서버 그룹에 대한 이러한 설정은 domain.xml 에 저장됩니다.
사전 요구 사항
- JBoss EAP는 관리형 도메인으로 실행되고 있습니다.
호스트 컨트롤러에 대한 JVM 설정이 정의되어 있습니다.
자세한 내용은 호스트 컨트롤러에서 JVM 설정 정의를 참조하십시오.
프로세스
관리 CLI를 사용하여 서버 그룹에 JVM 설정 적용.
production_jvmJVM 설정을 사용하는 서버 그룹 이름exampleGroupA를 생성합니다./server-group=exampleGroupA:add(profile=default,socket-binding-group=standard-sockets) /server-group=exampleGroupA/jvm=production_jvm:add
/server-group=exampleGroupA:add(profile=default,socket-binding-group=standard-sockets) /server-group=exampleGroupA/jvm=production_jvm:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 그룹 수준에서 특정 JVM 설정을 덮어쓸 수도 있습니다. 예를 들어 다른 힙 크기를 설정하려면 다음 명령을 사용합니다.
/server-group=exampleGroupA/jvm=production_jvm:write-attribute(name=heap-size,value="1024m")
/server-group=exampleGroupA/jvm=production_jvm:write-attribute(name=heap-size,value="1024m")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 위의 명령을 적용하면 서버 그룹
groupA는 재정의된 값이1024m인 힙 크기를 제외하고production_jvm의 JVM 설정을 상속합니다.관리 콘솔을 사용하여 서버 그룹에 JVM 설정 적용.
- 런타임 → 서버 그룹으로 이동합니다.
- 서버 그룹을 선택하고 보기를 클릭합니다.
- JVM 탭을 선택하여 설정을 적용합니다.
8.2.3. 서버 그룹의 개별 서버에 JVM 설정 적용 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 개별 JBoss EAP 서버 인스턴스는 해당 서버 그룹의 JVM 설정을 상속합니다. 그러나 호스트 컨트롤러의 다른 전체 JVM 설정 정의로 상속된 설정을 재정의하거나 특정 JVM 설정을 재정의하도록 선택할 수 있습니다. 개별 서버에 대한 이러한 설정은 host.xml 에 저장됩니다.
사전 요구 사항
- JBoss EAP는 관리형 도메인으로 실행되고 있습니다.
서버 그룹에 JVM 설정을 적용했습니다.
자세한 내용은 서버 그룹에 JVM 설정 적용을 참조하십시오.
프로세스
관리 CLI를 사용하여 개별 서버에 JVM 설정 적용.
서버 그룹 절차에 JVM 설정 적용의 JVM 정의를 재정의하고
server-one 의 JVM 설정을기본JVM 정의로 설정합니다./host=exampleHost1/server-config=server-one/jvm=default:add
/host=exampleHost1/server-config=server-one/jvm=default:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 또한 서버 그룹과 유사하게 서버 수준에서 특정 JVM 설정을 재정의할 수 있습니다. 예를 들어 다른 힙 크기를 설정하려면 다음 명령을 사용합니다.
/host=exampleHost1/server-config=server-one/jvm=default:write-attribute(name=heap-size,value="1024m")
/host=exampleHost1/server-config=server-one/jvm=default:write-attribute(name=heap-size,value="1024m")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리 콘솔을 사용하여 개별 서버에 JVM 설정 적용.
- 런타임 → 호스트로 이동합니다.
- 호스트를 선택하고 서버에서 View 를 클릭합니다.
- 설정을 적용하려면 JVM 탭을 선택합니다.
8.3. 관리 콘솔에서 JVM 리소스 상태 보기 링크 복사링크가 클립보드에 복사되었습니다!
관리 콘솔에서 독립 실행형 또는 관리형 도메인 서버의 힙 및 스레드 사용과 같은 JVM 리소스의 상태를 볼 수 있습니다. 통계가 실시간으로 표시되지 않지만 새로 고침을 클릭하여 JVM 리소스에 대한 최신 개요를 제공할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
독립 실행형 JBoss EAP 서버의 JVM 상태를 확인합니다.
- 런타임 탭으로 이동하여 서버를 선택한 다음 상태를 선택합니다.
관리형 도메인에서 JBoss EAP 서버의 JVM 상태를 확인합니다.
- 런타임 → 호스트로 이동하여 호스트와 서버를 선택한 다음 상태를 선택합니다.
다음 힙 사용 정보가 표시됩니다.
- Max
- 메모리 관리에 사용할 수 있는 최대 메모리 양입니다.
- 사용됨
- 사용된 메모리 양입니다.
- 커밋됨
- Java Virtual Machine에서 사용할 메모리 양입니다.
JVM 가동 시간 및 스레드 사용과 같은 기타 정보도 사용할 수 있습니다.
JVM 성능 최적화에 대한 자세한 내용은 JBoss EAP 성능 튜닝 가이드의 JVM 튜닝을 참조하십시오.
9장. 메일 하위 시스템 링크 복사링크가 클립보드에 복사되었습니다!
이 장에서는 이메일 기능을 JBoss EAP 애플리케이션에 통합하는 데 중요한 메일 하위 시스템에 중점을 둡니다. 이 섹션에서는 메일 서버 설정을 구성하고, 조직의 특정 요구 사항을 충족하기 위해 전송 프로토콜을 사용자 정의하며, 암호 관리를 위한 인증 정보 저장소를 사용하여 보안을 강화하기 위한 자세한 절차를 제공합니다.
사전 요구 사항
- JBoss EAP 8.0을 설치했습니다.
9.1. 메일 하위 시스템 구성 링크 복사링크가 클립보드에 복사되었습니다!
메일 하위 시스템을 사용하면 JBoss EAP에서 메일 세션을 구성한 다음 JNDI를 사용하여 해당 세션을 애플리케이션에 삽입할 수 있습니다. 또한 @DefinitionSessionDefinition 및 @Definition 와 같은 Jakarta EE 주석을 사용하여 구성 프로세스를 간소화할 수 있습니다.
SessionDefinition s
사전 요구 사항
- JBoss EAP가 설치되어 실행 중입니다.
- SMTP 서버에 대한 네트워크 액세스 권한이 있어야 합니다.
프로세스
다음 CLI 명령을 사용하여 SMTP 서버 및 아웃바운드 소켓 바인딩을 구성합니다. 예를 들면 다음과 같습니다.
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-smtp:add(host=localhost, port=25)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-smtp:add(host=localhost, port=25)Copy to Clipboard Copied! Toggle word wrap Toggle overflow /subsystem=mail/mail-session=mySession:add(jndi-name=java:jboss/mail/MySession)
/subsystem=mail/mail-session=mySession:add(jndi-name=java:jboss/mail/MySession)Copy to Clipboard Copied! Toggle word wrap Toggle overflow /subsystem=mail/mail-session=mySession/server=smtp:add(outbound-socket-binding-ref=my-smtp, username=user, password=pass, tls=true)
/subsystem=mail/mail-session=mySession/server=smtp:add(outbound-socket-binding-ref=my-smtp, username=user, password=pass, tls=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 애플리케이션 내에서 구성된 메일 세션을 호출합니다.
@Resource(lookup="java:jboss/mail/MySession") private Session session;
@Resource(lookup="java:jboss/mail/MySession") private Session session;Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2. 사용자 정의 전송 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP에서 SMTP, POP3 또는 Cryostat와 같은 표준 메일 서버를 구성하는 경우 여러 속성을 정의해야 하며, 가장 중요한 것은 outbound-socket-binding-ref 속성입니다. 이 속성은 메일 세션을 특정 호스트 및 포트에 연결합니다. 그러나 설정이 로드 밸런싱을 위해 여러 호스트가 필요한 경우 표준 Jakarta mail 구성이 여러 호스트를 지원하지 않기 때문에 짧아질 수 있습니다. 이러한 경우 관리 CLI를 통해 사용자 정의 메일 전송을 설정해야 합니다. 이러한 사용자 지정 전송을 사용하면 보다 유연한 구성이 가능하며 outbound-socket-binding-ref 속성이 필요하지 않습니다.
사전 요구 사항
- JBoss EAP가 설치되어 실행 중입니다.
프로세스
새 메일 세션을 추가하고 JNDI 이름을 지정합니다.
/subsystem=mail/mail-session=mySession:add(jndi-name=java:jboss/mail/MySession)
/subsystem=mail/mail-session=mySession:add(jndi-name=java:jboss/mail/MySession)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 아웃바운드 소켓 바인딩을 추가하고 호스트 및 포트를 지정합니다.
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-smtp-binding:add(host=localhost, port=25)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-smtp-binding:add(host=localhost, port=25)Copy to Clipboard Copied! Toggle word wrap Toggle overflow SMTP 서버를 추가하고 아웃바운드 소켓 바인딩, 사용자 이름 및 암호를 지정합니다.
/subsystem=mail/mail-session=mySession/server=smtp:add(outbound-socket-binding-ref=my-smtp-binding, username=user, password=pass, tls=true)
/subsystem=mail/mail-session=mySession/server=smtp:add(outbound-socket-binding-ref=my-smtp-binding, username=user, password=pass, tls=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
유사한 단계를 사용하여 POP3 또는 Cryostat 서버를 구성할 수 있습니다.
POP3 서버
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-pop3-binding:add(host=localhost, port=110) /subsystem=mail/mail-session=mySession/server=pop3:add(outbound-socket-binding-ref=my-pop3-binding, username=user, password=pass)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-pop3-binding:add(host=localhost, port=110)
/subsystem=mail/mail-session=mySession/server=pop3:add(outbound-socket-binding-ref=my-pop3-binding, username=user, password=pass)
Cryostat 서버
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-imap-binding:add(host=localhost, port=143) /subsystem=mail/mail-session=mySession/server=imap:add(outbound-socket-binding-ref=my-imap-binding, username=user, password=pass)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-imap-binding:add(host=localhost, port=143)
/subsystem=mail/mail-session=mySession/server=imap:add(outbound-socket-binding-ref=my-imap-binding, username=user, password=pass)
사용자 지정 서버를 사용하려면 아웃바운드 소켓 바인딩 없이 사용자 지정 메일 서버를 만듭니다. 사용자 정의 메일 서버의 속성 정의에 호스트 정보를 지정할 수 있습니다. 예를 들면 다음과 같습니다.
/subsystem=mail/mail-session=mySession/custom=myCustomServer:add(username=user,password=pass, properties={"host" => "myhost", "my-property" =>"value"})
/subsystem=mail/mail-session=mySession/custom=myCustomServer:add(username=user,password=pass, properties={"host" => "myhost", "my-property" =>"value"})
사용자 지정 프로토콜을 정의하는 경우 마침표(.)를 포함하는 모든 속성 이름은 정규화된 이름으로 간주되며 직접 전달됩니다. my-property 와 같은 다른 형식은 mail.server-name.my-property 형식으로 변환됩니다.
다음 XML은 사용자 지정 서버를 포함하는 메일 구성의 예입니다.
9.3. 암호에 인증 정보 저장소 사용 링크 복사링크가 클립보드에 복사되었습니다!
일반 텍스트 암호를 사용하는 것 외에도 자격 증명 저장소를 사용하여 JBoss EAP 메일 하위 시스템에서 보안을 강화할 수 있습니다. elytron 하위 시스템을 사용하면 자격 증명 저장소를 생성하고 관리하여 암호를 안전하게 저장하고 액세스할 수 있습니다. 이러한 인증 정보 저장소를 설정하고 사용하는 방법에 대한 자세한 단계는 서버 보안 구성 방법의 인증 정보 저장소 섹션을 참조하십시오.
사전 요구 사항
- JBoss EAP가 설치되어 실행 중입니다.
관리 CLI를 사용하여 암호에 인증 정보 저장소를 사용합니다.
/subsystem=mail/mail-session=mySession/server=smtp:add(outbound-socket-binding-ref=my-smtp-binding, username=user, credential-reference={store=exampleCS, alias=mail-session-pw}, tls=true)
/subsystem=mail/mail-session=mySession/server=smtp:add(outbound-socket-binding-ref=my-smtp-binding, username=user, credential-reference={store=exampleCS, alias=mail-session-pw}, tls=true)
다음은 일반 텍스트 암호를 사용하는 credentials-reference 특성을 지정하는 방법의 예입니다.
credential-reference={clear-text="MASK-Ewcyuqd/nP9;A1B2C3D4;351"}
credential-reference={clear-text="MASK-Ewcyuqd/nP9;A1B2C3D4;351"}
관리 콘솔을 사용하여 암호에 인증 정보 저장소를 사용합니다.
- 관리 콘솔에 액세스합니다. 자세한 내용은 관리 콘솔 을 참조하십시오.
- Configuration → Cryostats → mail 로 이동합니다.
- 적절한 메일 세션을 선택하고 보기를 클릭합니다.
- Server 를 선택하고 적절한 메일 세션 서버를 선택합니다. 인증 정보 참조 탭에서 인증 정보 참조를 구성하고 특성 탭에서 다른 특성을 편집할 수 있습니다.
10장. JBoss EAP로 로깅 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 내부 사용과 배포된 애플리케이션에 모두 구성 가능한 로깅 기능을 제공합니다. 로깅 하위 시스템은 JBoss LogManager를 기반으로 하며 JBoss Logging 외에도 여러 타사 애플리케이션 로깅 프레임워크를 지원합니다.
10.1. JBoss EAP의 로깅 메커니즘 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 서버 환경 모니터링, 문제 해결 및 관리를 지원하는 다양한 로깅 메커니즘을 제공합니다. 이러한 메커니즘을 이해하면 JBoss EAP 설정을 유지 관리하고 디버깅하는 데 도움이 됩니다.
10.1.1. JBoss EAP에서 서버 로깅 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP에서 서버 로깅은 주로 server.log 파일을 통해 관리되며 모든 로그 항목이 기록됩니다.
이 로그 파일의 위치는 작동 모드에 따라 다릅니다.
-
독립 실행형 서버:
EAP_HOME/standalone/log/server.log -
Managed domain:
EAP_HOME/domain/servers/SERVER_NAME/log/server.log
이 파일은 일반적으로 서버 로그라고 합니다.
10.1.2. JBoss EAP에서 부팅 로깅 링크 복사링크가 클립보드에 복사되었습니다!
부팅 중에 JBoss EAP는 Java 환경과 각 서비스의 시작에 대한 정보를 기록합니다. 이 로그는 문제 해결에 유용하며 기본적으로 서버 로그에 기록됩니다.
부트업 로깅 로깅은 JBoss EAP 로깅 하위 시스템이 시작될 때까지 사용되는 파일에 구성됩니다.
logging.properties
파일 위치는 작동 모드에 따라 다릅니다.
-
독립 실행형 서버:
EAP_HOME/standalone/configuration/logging.properties 관리형 도메인: 도메인 컨트롤러와 각 서버 모두에 대해
logging.properties파일이 있습니다.-
도메인 컨트롤러:
EAP_HOME/domain/configuration/logging.properties Server:
EAP_HOME/domain/servers/SERVER_NAME/data/logging.properties주의필요한 경우가 아니면
logging.properties파일을 직접 편집하지 마십시오. 특정 사용 사례가 있는 경우 변경하기 전에 Red Hat 고객 포털 을 참조하십시오.시작 시
logging.properties파일에 대한 수동 수정 사항을 덮어씁니다.
-
도메인 컨트롤러:
10.1.2.1. 부팅 오류 보기 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 문제를 해결할 때 부팅 오류를 확인하는 것이 중요한 단계입니다. 이 정보를 사용하여 오류를 진단하고 해결할 수 있습니다. 필요한 경우 부팅 오류 문제 해결에 도움이 되도록 지원 케이스를 작성하십시오.
다음과 같은 방법으로 부팅 오류를 볼 수 있습니다.
-
server.log파일에서 부팅 오류 검토 - 관리 CLI 명령을 사용하여 부팅 오류 읽기
각 방법은 요구 사항에 따라 고유한 이점이 있습니다.
10.1.2.1.1. server.log 파일에서 부팅 오류 검토 링크 복사링크가 클립보드에 복사되었습니다!
server.log 파일을 열어 부팅 중에 발생한 오류를 볼 수 있습니다.
이 방법은 관련 정보와 함께 오류 메시지를 제공하여 오류의 원인을 이해하는 데 도움이 됩니다. 오류 메시지를 일반 텍스트 형식으로 표시합니다.
사전 요구 사항
- JBoss EAP 서버의 파일 시스템에 액세스할 수 있습니다.
-
검토를 위해
server.log파일에 액세스할 수 있습니다.
프로세스
-
파일 뷰어에서
server.log파일을 엽니다. - 파일의 끝으로 이동합니다.
-
최신 부팅 순서의 시작을 나타내는
WFLYSRV0049메시지 식별자가 뒤로 검색됩니다. 해당 시점부터
ERROR인스턴스의 로그를 검색합니다. 각 인스턴스에는 오류에 대한 설명이 포함되어 있으며 관련 모듈을 나열합니다.다음은
server.log로그 파일의 오류 설명 예입니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.1.2.1.2. 관리 CLI 명령을 사용하여 부팅 오류 읽기 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 문제를 해결할 때 read-boot-errors 관리 CLI 명령을 사용하여 부팅 중에 보고된 오류를 볼 수 있습니다.
이 방법은 서버의 파일 시스템에 액세스할 수 없으므로 스크립팅을 통해 원격 모니터링 및 오류 검사를 활성화합니다. 관리 CLI 명령을 사용하면 부팅 오류를 식별하고 해결할 수 있습니다. 예를 들어 여러 JBoss EAP 인스턴스를 시작하고 부팅 오류를 확인하는 스크립트를 작성할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
관리 CLI를 시작합니다.
<EAP_HOME>/bin/jboss-cli.sh
$ <EAP_HOME>/bin/jboss-cli.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 관리 CLI 명령을 실행합니다.
/core-service=management:read-boot-errors
/core-service=management:read-boot-errorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력을 검토하여 부팅 중에 발생한 오류 목록을 확인합니다.
- 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.1.3. JBoss EAP의 가비지 컬렉션 로깅 링크 복사링크가 클립보드에 복사되었습니다!
가비지 컬렉션 로깅은 모든 가비지 컬렉션 활동을 일반 텍스트 로그 파일로 기록합니다. 이러한 로그는 진단 목적에 유용합니다.
가비지 컬렉션 로그는 EAP_HOME/standalone/log/gc.log.DIGIT.current 에 있습니다. 각 로그 파일은 3MB로 제한되며 최대 5개의 파일이 순환됩니다.
문제 해결에 도움이 되고 오버헤드가 최소화되므로 가비지 컬렉션 로깅이 활성화된 상태로 유지하는 것이 좋습니다. 그러나 서버를 시작하기 전에 GC_LOG 변수를 false 로 설정하여 독립 실행형 서버에 대해 비활성화할 수 있습니다. 예를 들면 다음과 같습니다.
export GC_LOG=false EAP_HOME/bin/standalone.sh
$ export GC_LOG=false
$ EAP_HOME/bin/standalone.sh
10.1.4. JBoss EAP의 기본 로그 파일 위치 링크 복사링크가 클립보드에 복사되었습니다!
다음 로그 파일은 기본 로깅 구성을 기반으로 생성됩니다. 이러한 구성은 정기 로그 처리기를 사용하여 서버 로그 파일을 작성합니다.
| 로그 파일 | 설명 |
|---|---|
|
| 시작 메시지를 포함하여 서버 로그 메시지를 포함합니다. |
|
| 가비지 컬렉션 세부 정보를 포함합니다. |
| 로그 파일 | 설명 |
|---|---|
|
| 호스트 컨트롤러 시작과 관련된 로그 메시지를 포함합니다. |
|
| 프로세스 컨트롤러 시작과 관련된 로그 메시지를 포함합니다. |
|
| 시작 메시지를 포함하여 이름이 지정된 서버에 대한 로그 메시지를 포함합니다. |
10.1.5. JBoss EAP에서 서버의 기본 로케일 설정 링크 복사링크가 클립보드에 복사되었습니다!
JVM 속성을 시작 구성 파일로 설정하여 JBoss EAP의 기본 로케일을 구성할 수 있습니다. 시작 구성 파일은 독립 실행형 서버의 경우 EAP_HOME/bin/standalone.conf 이거나 관리형 도메인의 EAP_HOME/bin/domain.conf 입니다.
Windows 서버의 경우 JBoss EAP 시작 구성 파일은 standalone.conf.extension 및 .
domain.conf.extension 입니다
국제화 및 지역화된 로그 메시지는 이 기본 로케일을 사용합니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 서버 모드의 시작 구성 파일에 액세스할 수 있습니다.
프로세스
user. language를JAVA_OPTS변수에 추가하여 설정합니다. 예를 들어 로케일을 프랑스어로 설정하려면 시작 구성 파일에 다음 행을 추가합니다.JAVA_OPTS="$JAVA_OPTS -Duser.language=fr"
JAVA_OPTS="$JAVA_OPTS -Duser.language=fr"Copy to Clipboard Copied! Toggle word wrap Toggle overflow user. Cryostat 및
및 국가 설정. 예를 들어 로케일을 브라질 포르투갈어로 설정하려면 다음 행을 추가합니다.user.country속성을 추가하여 언어JAVA_OPTS="$JAVA_OPTS -Duser.language=pt -Duser.country=BR"
JAVA_OPTS="$JAVA_OPTS -Duser.language=pt -Duser.country=BR"Copy to Clipboard Copied! Toggle word wrap Toggle overflow o'rg.jboss.logging.locale' 속성을 사용하여 서버 로케일을 설정하여 로그 메시지에 대해 다른 로케일을 지정합니다. 이렇게 하면 로깅의 기본 로케일이 재정의됩니다. 예를 들어 서버 로케일을 브라질 포르투갈어로 설정하려면 다음 행을 추가합니다.
JAVA_OPTS="$JAVA_OPTS -Dorg.jboss.logging.locale=pt-BR"
JAVA_OPTS="$JAVA_OPTS -Dorg.jboss.logging.locale=pt-BR"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 속성은 JBoss Logging 및 해당 종속 항목을 사용하는 로그 메시지에만 영향을 미칩니다. 자카르타 Server Cryostat와 같은 기타 종속 항목은 재정의된 로케일을 가져올 수 없습니다.
참고시스템 기본값과 다른 로케일로 JBoss EAP를 시작하려면 독립 실행형 모드에서
EAP_HOME/bin/standalone.conf를 편집하거나 관리형 도메인 모드의 경우EAP_HOME/bin/domain.conf를 편집합니다.org.jboss.logging.locale속성을 사용하여 BCP 47 형식으로 로케일을 설정합니다.
10.2. 로그 파일 보기 링크 복사링크가 클립보드에 복사되었습니다!
서버 및 애플리케이션 로그를 보는 것은 오류, 성능 문제 및 기타 문제를 진단하는 데 중요합니다.
다음 방법을 사용하여 로그를 볼 수 있습니다.
로그 액세스 및 관리와 관련하여 다음 주요 포인트를 고려하십시오.
-
로그는 서버의
jboss.server.log.dir속성으로 지정된 디렉터리에 있어야 합니다. - 로그는 파일, 주기적 회전, 크기 회전 또는 주기적인 크기 회전 로그 처리기로 정의됩니다.
- RBAC(역할 기반 액세스 제어)는 사용자가 관리 콘솔 또는 CLI에서 액세스할 수 있는 로그만 볼 수 있도록 제한합니다.
10.2.1. 관리 콘솔에서 로그 보기 링크 복사링크가 클립보드에 복사되었습니다!
로그 액세스를 위한 그래픽 인터페이스를 제공하는 JBoss EAP 관리 콘솔에서 로그를 직접 볼 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 콘솔에 액세스할 수 있습니다.
프로세스
- 관리 콘솔에 로그인합니다.
- 런타임 탭을 선택하고 적절한 서버를 선택합니다.
- 로그 파일을 선택하고 목록에서 로그 파일을 선택합니다.
보기를 클릭하여 로그 콘텐츠를 열고 검색하거나 드롭다운에서 다운로드를 선택하여 로그 파일을 로컬 파일 시스템에 저장합니다.
주의관리 콘솔 로그 뷰어는 매우 큰 로그 파일을 위해 설계되지 않았습니다(예: 100MB 이상). 15MB보다 큰 로그 파일을 열려고 하면 확인 프롬프트가 표시됩니다. 관리 콘솔에서 매우 큰 파일을 열면 브라우저가 충돌할 수 있습니다. 대용량 로그 파일을 다운로드하여 텍스트 편집기에서 여는 것이 좋습니다.
10.2.2. 관리 CLI에서 로그 보기 링크 복사링크가 클립보드에 복사되었습니다!
read-log-file 명령을 사용하여 관리 CLI에서 로그 파일 내용을 읽을 수 있습니다. 기본적으로 지정된 로그 파일의 마지막 10 행이 표시됩니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
다음 명령을 사용하여 로그 파일의 내용을 읽습니다.
/subsystem=logging/log-file=LOG_FILE_NAME:read-log-file
/subsystem=logging/log-file=LOG_FILE_NAME:read-log-fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고관리형 도메인에서 이 명령 앞에
/host=HOST_NAME/server=SERVER_NAME.다음 매개변수를 사용하여 로그 출력을 사용자 지정합니다.
- encoding: 파일을 읽는 데 사용되는 문자 인코딩을 지정합니다.
-
lines: 파일에서 읽을 행 수를 설정합니다. 값
-1은 모든 로그 행을 읽습니다. 기본값은10입니다. -
skip: 읽기 전에 건너뛸 행 수를 지정합니다. 기본값은
0입니다. -
tail: 파일의 끝에서 읽을지 여부를 설정합니다. 기본값은
true입니다.
예를 들어 다음 관리 CLI 명령은 server.log 로그 파일의 상단에서 처음 5 행을 읽습니다.
/subsystem=logging/log-file=server.log:read-log-file(lines=5,tail=false)
/subsystem=logging/log-file=server.log:read-log-file(lines=5,tail=false)
이렇게 하면 다음 출력이 생성됩니다.
10.3. 로깅 하위 시스템 구성 개요 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 로깅 하위 시스템은 구성에 로그 카테고리 및 로그 처리기를 사용합니다. 로그 카테고리는 캡처할 메시지를 지정하는 반면 로그 처리기는 디스크에 작성하거나 콘솔에 전송하는 등 이러한 메시지를 처리하는 방법을 정의합니다.
애플리케이션 로깅 프로필을 사용하면 기본 로깅 설정과 별도로 배포 또는 여러 배포에 할당할 수 있는 고유하게 이름이 지정된 로깅 구성을 만들 수 있습니다. 로깅 프로파일 구성은 기본 로깅 하위 시스템의 구성과 거의 동일합니다.
10.3.1. 루트 로거 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 루트 로거는 로거에서 캡처하지 않는 지정된 로그 수준 이상에서 모든 로그 메시지를 캡처합니다. 그러나 정의된 로거에 use-parent-handlers 가 true로 설정되어 있고 처리기도 정의된 경우 정의된 로거와 루트 로거를 사용하여 메시지를 처리합니다.
기본적으로 루트 로거는 콘솔과 server.log 파일에 쓰는 주기적인 로그 처리기를 사용합니다. 이 파일은 일반적으로 서버 로그라고 합니다.
10.3.2. JBoss EAP의 로그 카테고리 링크 복사링크가 클립보드에 복사되었습니다!
로그 카테고리는 캡처할 로그 메시지 세트와 해당 메시지를 처리할 하나 이상의 로그 처리기를 정의합니다.
로그 메시지는 지정된 원본 및 로그 수준에 따라 결정됩니다. 모든 문자열 값을 지정할 수 있습니다. 그러나 패키지 이름 또는 클래스 이름을 사용하는 것이 좋습니다. 로거 이름은 점 표기법을 사용하여 지정됩니다(예: Logger.getLogger("example.logger.name"). 로그 관리자는 이름의 각 섹션을 처리하고 일치하는 구성을 확인합니다. find 및 use-parent-handlers 가 false로 설정되면 프로세스가 중지됩니다. 구성이 정의되지 않았거나 use-parent-handlers 가 true로 설정된 경우 기본적으로 로그 관리자는 "example.logger"와 같은 상위 이름을 계속 확인합니다. 로거 구성은 패키지 또는 클래스 이름이 아닌 로거 생성 방법에 따라 다릅니다.
로그 카테고리는 일반적으로 Java 패키지 및 클래스 이름을 기반으로 하지만 Logger.getLogger(LOGGER_NAME) 메서드에서 지정하는 모든 이름일 수 있습니다.
로거에 처리기가 할당될 수 있습니다. use-parent-handlers 가 false 로 설정된 경우 로거에서 loggable로 결정하더라도 더 높은 수준의 로거가 메시지를 처리하지 않습니다. 예를 들어 로거 이름이 org.jboss.as.logging 이고 use-parent-handlers=false 로 구성된 경우 org.jboss.as 로거를 확인하지 않습니다.
10.3.3. JBoss EAP의 로그 처리기 링크 복사링크가 클립보드에 복사되었습니다!
로그 처리기는 캡처된 로그 메시지가 기록되는 방식을 정의하고 항목의 대상 및 형식을 지정합니다. 각 유형이 다양한 요구 사항에 맞는 고유한 용도로 제공되므로 다양한 유형의 로그 처리기를 이해하는 것이 중요합니다.
활성화하려면 로그 처리기를 하나 이상의 로거에 추가해야 합니다.
10.3.3.1. 로그 처리기 유형 링크 복사링크가 클립보드에 복사되었습니다!
로그 처리기는 로그 항목이 처리 및 저장되는 방법을 결정하는 여러 유형으로 분류됩니다. 각 유형에는 다양한 로깅 요구 사항을 충족하는 고유한 기능이 있습니다.
-
콘솔: 호스트 운영 체제의 표준 아웃,
stdout또는 표준 오류,stderr, stream에 로그 메시지를 작성합니다. 이러한 메시지는 JBoss EAP가 명령줄 프롬프트에서 실행되면 표시됩니다. 콘솔 로그 처리기의 메시지는 표준 출력 또는 표준 오류 스트림을 캡처하도록 운영 체제를 구성하지 않는 한 저장되지 않습니다. - 파일: 지정된 파일에 로그 메시지를 작성합니다.
- periodic: 지정된 기간이 경과할 때까지 이름이 지정된 파일에 로그 메시지를 작성합니다. 그 후 파일의 이름이 타임스탬프로 변경되고 처리기는 원래 이름으로 새로 생성된 로그 파일에 계속 씁니다.
- size: 파일이 지정된 크기에 도달할 때까지 이름이 지정된 파일에 로그 메시지를 씁니다. 파일이 해당 크기에 도달하면 숫자 접미사로 이름이 변경되고 처리기는 원래 이름을 사용하여 새로 생성된 로그 파일에 계속 씁니다. 각 크기 로그 처리기는 이러한 방식으로 유지할 최대 파일 수를 지정해야 합니다.
- periodic Size: 파일이 지정된 크기에 도달하거나 지정된 기간이 만료될 때까지 이름이 지정된 파일에 로그 메시지를 작성합니다. 그러면 처리기에서 파일의 이름을 바꾸고 새로 생성된 로그 파일에 원래 이름으로 계속 씁니다. 이 처리기는 periodic 및 size 로그 처리기의 기능을 결합합니다.
- syslog: 원격 로깅 서버로 메시지를 보냅니다. 이를 통해 여러 애플리케이션에서 구문 분석을 위해 로그 메시지를 동일한 서버로 보낼 수 있습니다.
- 소켓: 소켓 을 통해 로그 메시지를 원격 로깅 서버로 보냅니다. TCP 또는 UDP 소켓을 사용할 수 있습니다.
-
Custom: 새로운 유형의 로그 처리기를 구성할 수 있습니다. 사용자 지정 처리기는
java.util.logging.Handler를 확장하고 모듈에 포함하는 Java 클래스로 구현해야 합니다. Log4J appender를 사용자 지정 로그 처리기로 사용할 수도 있습니다. - 하나 이상의 다른 로그 처리기에 대한 비동기 동작을 제공합니다. 이 기능은 네트워크 파일 시스템에 로그 파일 쓰기와 같이 대기 시간이 길거나 성능 문제가 발생할 수 있는 로그 처리기에 유용합니다.
10.3.4. JBoss EAP에서 지원되는 로그 수준 링크 복사링크가 클립보드에 복사되었습니다!
로그 수준은 로그 메시지의 특성 및 심각도를 나타내는 열거된 값입니다. 개발자는 선택한 로깅 프레임워크의 적절한 방법을 사용하여 메시지를 전송하여 로그 메시지의 수준을 지정할 수 있습니다.
JBoss EAP는 지원되는 애플리케이션 로깅 프레임워크에서 사용하는 모든 로그 수준을 지원합니다. 가장 일반적으로 사용되는 로그 수준은 TRACE,DEBUG,INFO,WARN,ERROR 및 FATAL 입니다.
로그 수준은 로그 카테고리 및 핸들러에서 처리하는 메시지를 제한하는 데 도움이 됩니다. 각 로그 수준에는 다른 로그 수준을 기준으로 순서를 나타내는 숫자 값이 할당됩니다. 로그 카테고리 및 핸들러에는 로그 수준이 할당되고 해당 수준 이상의 로그 메시지만 처리합니다. 예를 들어 WARN 수준이 있는 로그 처리기는 ,WARN ERROR 및 FATAL 에 메시지를 기록합니다.
| 로그 수준 | 현재의 | 설명 |
|---|---|---|
| ALL | Integer.MIN_VALUE | 모든 로그 메시지를 제공합니다. |
| BESTST | 300 | - |
| FINER | 400 | - |
| TRACE | 400 |
|
| DEBUG | 500 |
|
| OK | 500 | - |
| CONFIG | 700 | - |
| INFO | 800 |
|
| WARN | 900 |
|
| 경고 | 900 | - |
| 오류 | 1000 |
|
| 심각 | 1000 | - |
| FATAL | 1100 |
|
| OFF | Integer.MAX_VALUE | 로그 메시지를 표시하지 않습니다. |
ALL 은 가장 낮은 로그 수준이며 모든 로그 수준의 메시지를 포함합니다. 이는 가장 많은 로깅을 제공합니다.
FATAL 은 가장 높은 로그 수준이며 해당 수준의 메시지만 포함합니다. 이는 최소 로깅 양을 제공합니다.
10.3.5. JBoss EAP의 로그 형식 생성 링크 복사링크가 클립보드에 복사되었습니다!
로그 형식 LimitRange는 로그 메시지를 포맷하는 데 사용됩니다. named-formatter 특성을 사용하여 로깅 처리기에 포맷터를 할당할 수 있습니다.
10.3.5.1. 로그 포맷의 유형 링크 복사링크가 클립보드에 복사되었습니다!
로그 포맷터는 로그 항목의 포맷 방법을 결정하는 여러 유형으로 분류됩니다.
로깅 하위 시스템에는 다음 네 가지 유형의 포맷이 포함됩니다.
-
pattern formatter: 일반 텍스트로 로그 메시지를 포맷합니다.
formatter를 로그 처리기의named-formatter속성으로 사용하는 것 외에도 먼저 포맷터 리소스를 생성할 필요 없이 포맷터 속성으로 사용할 수도 있습니다. - JSON formatter: JSON으로 로그 메시지를 포맷합니다.
- XML formatter: XML로 로그 메시지를 포맷합니다.
-
사용자 지정 포맷터: 처리기와 함께 사용됩니다. 대부분의 로그 레코드는 Cryostat 형식으로 포맷됩니다. 포맷터는 적절한 포맷을 위해
org.jboss.logmanager.ExtLogRecord#getFormattedMessage()를 호출해야 할 수 있습니다.
10.3.6. JBoss EAP에서 로깅을 위한 필터 표현식 링크 복사링크가 클립보드에 복사되었습니다!
filter-spec 특성을 사용하여 구성된 필터 표현식은 다양한 기준에 따라 로그 메시지를 기록합니다. 필터는 포맷되지 않은 원시 메시지에 적용됩니다. 로거 또는 처리기에 필터를 추가할 수 있지만 로거 필터는 처리기에 배치된 필터보다 우선합니다.
루트 로거에 대해 지정된 필터 사양 은 다른 로거에 상속되지 않습니다. 대신 처리기당 필터 사양 을 지정해야 합니다.
다음 표에서는 로깅에 사용 가능한 필터 표현식을 설명합니다.
| 필터 표현식 | 설명 |
|---|---|
| accept | 모든 로그 메시지를 수락합니다. |
| deny | 모든 로그 메시지를 거부합니다. |
| not[filter 표현식] | 단일 필터 표현식의 반전된 값을 반환합니다. 예를 들면 다음과 같습니다.
|
| all[filter expression] | 쉼표로 구분된 필터 표현식 목록에서 연결된 값을 반환합니다. 예를 들면 다음과 같습니다.
|
| any[filter expression] | 쉼표로 구분된 필터 표현식 목록에서 하나의 값을 반환합니다. 예를 들면 다음과 같습니다.
|
| levelChange[level] | 지정된 수준으로 로그 레코드를 업데이트합니다. 예를 들면 다음과 같습니다.
|
| levels[levels] | 쉼표로 구분된 수준 목록에 나열된 수준으로 로그 메시지를 필터링합니다. 예를 들면 다음과 같습니다.
|
| levelRange[minLevel,maxLevel] |
지정된 수준 범위 내에서 로그 메시지를 필터링합니다.
|
| match["pattern"] | 제공된 정규식을 사용하여 로그 메시지를 필터링합니다. 예를 들면 다음과 같습니다.
|
| 대체 ["pattern","replacement value"] | 패턴(first argument)에 대한 첫 번째 일치 항목을 대체 텍스트(두 번째 인수)로 바꿉니다. 예를 들면 다음과 같습니다.
|
| all["pattern","replacement value"]를 대체합니다. | 패턴(first argument)의 모든 일치 항목을 대체 텍스트(두 번째 인수)로 바꿉니다. 예를 들면 다음과 같습니다.
|
관리 CLI를 사용하여 필터 표현식을 구성할 때 필터 텍스트에서 쉼표와 인용 표시를 이스케이프하여 값이 문자열로 올바르게 처리되도록 합니다. 쉼표와 따옴표 앞에 백슬래시(\)를 사용하고 전체 표현식을 따옴표로 래핑해야 합니다. 다음은 적절하게 이스케이프하는 예제입니다 All("WFLY","YLFW").
/subsystem=logging/console-handler=CONSOLE:write-attribute(name=filter-spec, value="substituteAll(\"WFLY\"\,\"YLFW\")")
/subsystem=logging/console-handler=CONSOLE:write-attribute(name=filter-spec, value="substituteAll(\"WFLY\"\,\"YLFW\")")
10.3.7. JBoss EAP의 암시적 로깅 종속성 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 JBoss EAP 로깅 하위 시스템은 암시적 로깅 API 종속 항목을 배포에 추가합니다. 기본적으로 true 로 설정된 add-logging-api-dependencies 특성을 사용하여 이러한 암시적 종속성이 배포에 추가되는지 여부를 관리할 수 있습니다.
이러한 종속성이 추가되지 않도록 하려면 관리 CLI를 사용하여 add-logging-api-dependencies 특성을 false 로 설정합니다.
/subsystem=logging:write-attribute(name=add-logging-api-dependencies, value=false)
/subsystem=logging:write-attribute(name=add-logging-api-dependencies, value=false)
10.4. 로그 카테고리 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 JBoss EAP에서 로그 카테고리를 구성할 수 있습니다. 또는 구성 > Logging > Configuration , View 를 클릭하고 Categories 를 선택하여 관리 콘솔을 통해 구성할 수 있습니다.
다음 작업을 수행하여 로그 카테고리를 구성할 수 있습니다.
로깅 프로필에 대해 이 로그 카테고리를 구성하는 경우 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 /subsystem=logging/ 으로 명령을 시작합니다.
또한 관리형 도메인에서 실행 중인 경우 명령 앞에 /profile=PROFILE_NAME.
10.4.1. 관리 CLI를 사용하여 로그 카테고리 추가 및 구성 링크 복사링크가 클립보드에 복사되었습니다!
로그 카테고리 이름은 일반적으로 origin의 Java 패키지입니다. 그러나 로거는 요구 사항에 따라 모든 문자열 이름을 사용할 수 있습니다. 자세한 내용은 Java 로깅 API 설명서 를 참조하십시오. 해당 패키지의 클래스의 메시지는 로그 수준과 같은 다른 설정을 충족하는 경우 캡처됩니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
다음 명령을 사용하여 로그 카테고리를 추가합니다.
/subsystem=logging/logger=LOG_CATEGORY:add
/subsystem=logging/logger=LOG_CATEGORY:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 요구 사항에 따라 다음 로그 카테고리 특성 중 하나 이상을 설정할 수 있습니다.
다음 명령을 사용하여 로그 카테고리의 로그 수준을 설정합니다.
/subsystem=logging/logger=LOG_CATEGORY:write-attribute(name=level,value=LEVEL)
/subsystem=logging/logger=LOG_CATEGORY:write-attribute(name=level,value=LEVEL)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본값은
ALL입니다.다음 명령을 사용하여 이 카테고리에서 루트 로거의 로그 처리기를 사용할지 여부를 설정합니다.
/subsystem=logging/logger=LOG_CATEGORY:write-attribute(name=use-parent-handlers,value=USE_PARENT_HANDLERS)
/subsystem=logging/logger=LOG_CATEGORY:write-attribute(name=use-parent-handlers,value=USE_PARENT_HANDLERS)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로 로그 카테고리는 자체 외에도 루트 로거의 처리기를 사용합니다.
use-parent-handlers속성을false로 설정하여 로그 카테고리에서 할당된 핸들러만 사용하는지 확인합니다.다음 명령을 사용하여 필터 표현식을 설정합니다.
/subsystem=logging/logger=LOG_CATEGORY:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)
/subsystem=logging/logger=LOG_CATEGORY:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로그 카테고리에 대한 로그 메시지를 필터링할 표현식을 지정합니다. 쉼표와 따옴표를 이스케이프하고 표현식을 따옴표로 묶습니다. 예를 들어
FILTER_EXPRESSION변수를"not(match(\"WFLY\")"로 교체하여 필터 표현식을not(match("WFLY"))로 설정합니다.
다음 단계
10.4.2. 로그 처리기 할당 및 로그 카테고리 관리 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP의 로그 처리기는 로그 카테고리에 대해 로그 메시지를 처리하고 기록하는 방법을 제어합니다. 애플리케이션 요구 사항에 대한 로깅 동작을 사용자 지정하기 위해 로그 처리기를 특정 로그 카테고리에 할당합니다. 로깅 구성을 구성하고 효율적으로 유지하여 더 이상 필요하지 않은 경우 로그 카테고리를 제거할 수도 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
다음 명령을 사용하여 로그 카테고리에 로그 처리기를 할당합니다.
/subsystem=logging/logger=LOG_CATEGORY:add-handler(name=LOG_HANDLER_NAME)
/subsystem=logging/logger=LOG_CATEGORY:add-handler(name=LOG_HANDLER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우 다음 명령에서
remove작업을 사용하여 로그 카테고리를 제거할 수 있습니다./subsystem=logging/logger=LOG_CATEGORY:remove
/subsystem=logging/logger=LOG_CATEGORY:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고로깅 구성에 더 이상 필요하지 않은 경우 로그 카테고리를 제거할 수 있습니다.
10.5. 로그 처리기 구성 링크 복사링크가 클립보드에 복사되었습니다!
로그 처리기는 캡처된 로그 메시지가 기록되는 방식을 정의합니다.
특정 로그 처리기를 구성하려면 적절한 섹션을 참조하십시오.
10.5.1. 콘솔 로그 처리기 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 JBoss EAP에서 콘솔 로그 처리기를 구성할 수 있습니다. 또는 Configuration > Cryostats > Logging > Configuration, View 를 클릭하고 Handler > Console Handler 를 선택하여 관리 콘솔을 통해 구성할 수 있습니다.
다음 작업을 수행하여 콘솔 로그 처리기를 구성할 수 있습니다.
- 새 콘솔 로그 처리기 추가
- 콘솔 로그 처리기 설정 구성
- 로거에 콘솔 로그 처리기 할당
로깅 프로필에 대해 이 로그 처리기를 구성하는 경우 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 /subsystem=logging/ 으로 명령을 시작합니다.
또한 관리형 도메인에서 실행 중인 경우 명령 앞에 /profile=PROFILE_NAME.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
다음 명령을 사용하여 콘솔 로그 처리기를 추가합니다.
/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:add
/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 요구 사항에 따라 다음 콘솔 로그 처리기 특성 중 하나 이상을 설정할 수 있습니다.
다음 명령을 사용하여 처리기의 로그 수준을 설정합니다.
/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=level,value=LEVEL)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본값은
ALL입니다.다음 명령을 사용하여 처리기의 대상을 설정합니다.
/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=target,value=TARGET)
/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=target,value=TARGET)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 대상은
System.out,System.err또는console일 수 있습니다. 기본값은System.out입니다.다음 명령을 사용하여 처리기의 인코딩(예:
utf-8)을 설정합니다./subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)
/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 처리기의 formatter 문자열을 설정합니다.
/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)
/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어 기본 형식 문자열은
%d{HH:mm:ss,SSS} %-5p [%t] (%t) %s%e%n입니다.FORMAT값을 따옴표로 묶습니다.참고저장된 포맷터를 참조하려면
named-formatter속성을 사용합니다.다음 명령을 사용하여 자동 플러시를 설정합니다.
/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)
/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 쓰기 후 자동으로 플러시할지 여부를 지정합니다. 기본값은
true입니다.다음 명령을 사용하여 필터 표현식을 설정합니다.
/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)
/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 처리기에 대한 로그 메시지를 필터링할 표현식을 지정합니다. 쉼표와 따옴표를 이스케이프하고 표현식을 따옴표로 묶습니다. 예를 들어
FILTER_EXPRESSION변수를"not(match(\"WFLY\")"로 교체하여not(match("WFLY"))의 필터 표현식을 만듭니다.
다음 명령을 사용하여 콘솔 로그 처리기를 로거에 할당합니다.
/subsystem=logging/root-logger=ROOT:add-handler(name=CONSOLE_HANDLER_NAME)
/subsystem=logging/root-logger=ROOT:add-handler(name=CONSOLE_HANDLER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로그 처리기를 활성화하려면 콘솔 로그 처리기를 루트 로거 또는 기타 로거에 할당할 수 있습니다.
필요한 경우 다음 명령에서
remove작업을 사용하여 로그 처리기를 제거할 수 있습니다./subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:remove
/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고로깅 구성에 더 이상 필요하지 않은 경우 로그 처리기를 제거할 수 있습니다. 그러나 현재 로거 또는 async 로그 처리기에 할당된 경우 로그 처리기를 제거할 수 없습니다.
다음 단계
10.5.2. 파일 로그 처리기 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 JBoss EAP에서 파일 로그 처리기를 구성할 수 있습니다. 또는 Configuration > Cryostats > Logging > Configuration, View 를 클릭하고 Handler > File Handler 를 선택하여 관리 콘솔을 통해 구성할 수 있습니다.
다음 작업을 수행하여 파일 로그 처리기를 구성할 수 있습니다.
- 새 파일 로그 처리기 추가
- 파일 로그 처리기 설정 구성
- 로거에 파일 로그 처리기 할당
로깅 프로필에 대해 이 로그 처리기를 구성하는 경우 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 /subsystem=logging/ 으로 명령을 시작합니다.
또한 관리형 도메인에서 실행 중인 경우 명령 앞에 /profile=PROFILE_NAME.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
다음 명령을 사용하여 파일 로그 처리기를 추가합니다.
/subsystem=logging/file-handler=FILE_HANDLER_NAME:add(file={path=FILE_PATH,relative-to=RELATIVE_TO_PATH})/subsystem=logging/file-handler=FILE_HANDLER_NAME:add(file={path=FILE_PATH,relative-to=RELATIVE_TO_PATH})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고파일 로그 처리기를 추가할 때 경로 및
relative-to속성으로 구성된file속성을 사용하여 파일경로를지정합니다.경로속성을 사용하여 파일 이름(예:my-log.log)을 포함하여 로그 파일 경로를 설정합니다. 선택적으로relative-to특성을 사용하여 경로가jboss.server.log.dir과 같은 이름이 지정된 경로와 상대적임을 나타냅니다.요구 사항에 따라 다음 파일 로그 처리기 특성 중 하나 이상을 설정할 수 있습니다.
다음 명령을 사용하여 처리기의 로그 수준을 설정합니다.
/subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
/subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=level,value=LEVEL)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본값은
ALL입니다.다음 명령을 사용하여 처리기의 추가 동작을 설정합니다.
/subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=append,value=APPEND)
/subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=append,value=APPEND)Copy to Clipboard Copied! Toggle word wrap Toggle overflow append속성을false로 설정하여 서버를 다시 시작할 때 파일을 덮어씁니다. 기본적으로 JBoss EAP는 서버를 다시 시작할 때 동일한 파일에 로그 메시지를 추가합니다.다음 명령을 사용하여 처리기의 인코딩(예:
utf-8)을 설정합니다./subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)
/subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 처리기의 formatter 문자열을 설정합니다.
/subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)
/subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어 기본 형식 문자열은
%d{HH:mm:ss,SSS} %-5p [%t] (%t) %s%e%n입니다.FORMAT값을 따옴표로 묶습니다.참고저장된 포맷터를 참조하려면
named-formatter속성을 사용합니다.다음 명령을 사용하여 자동 플러시를 설정합니다.
/subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)
/subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 쓰기 후 자동으로 플러시할지 여부를 지정합니다. 기본값은
true입니다.다음 명령을 사용하여 필터 표현식을 설정합니다.
/subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)
/subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 처리기에 대한 로그 메시지를 필터링할 표현식을 지정합니다. 쉼표와 따옴표를 이스케이프하고 표현식을 따옴표로 묶습니다. 예를 들어
FILTER_EXPRESSION변수를"not(match(\"WFLY\")"로 교체하여not(match("WFLY"))의 필터 표현식을 만듭니다.
다음 명령을 사용하여 파일 로그 처리기를 로거에 할당합니다.
/subsystem=logging/root-logger=ROOT:add-handler(name=FILE_HANDLER_NAME)
/subsystem=logging/root-logger=ROOT:add-handler(name=FILE_HANDLER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로그 처리기를 활성화하려면 파일 로그 처리기를 루트 로거 또는 기타 로거에 할당할 수 있습니다.
다음 명령을 사용하여
CATEGORY라는 특정 로거에 파일 로그 처리기를 할당합니다./subsystem=logging/logger=CATEGORY:add-handler(name=FILE_HANDLER_NAME)
/subsystem=logging/logger=CATEGORY:add-handler(name=FILE_HANDLER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow CATEGORY를 파일 로그 처리기를 할당할 로거 이름으로 교체합니다.필요한 경우 다음 명령에서
remove작업을 사용하여 로그 처리기를 제거할 수 있습니다./subsystem=logging/file-handler=FILE_HANDLER_NAME:remove
/subsystem=logging/file-handler=FILE_HANDLER_NAME:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고로깅 구성에 더 이상 필요하지 않은 경우 로그 처리기를 제거할 수 있습니다. 그러나 현재 로거 또는 async 로그 처리기에 할당된 경우 로그 처리기를 제거할 수 없습니다.
10.5.3. 주기적 회전 로그 처리기 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 JBoss EAP에서 주기적인 회전 로그 처리기를 구성할 수 있습니다. 또는 Configuration > Cryostats > Logging > Configuration, View 를 클릭하고 Handler > Periodic Handler 를 선택하여 관리 콘솔을 통해 구성할 수 있습니다.
다음 작업을 수행하여 주기적 회전 로그 처리기를 구성할 수 있습니다.
- 주기적인 회전 로그 처리기 추가
- 주기적인 회전 로그 처리기 설정 구성
- 주기적으로 로그 처리기를 로거에 할당
로깅 프로필에 대해 이 로그 처리기를 구성하는 경우 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 /subsystem=logging/ 으로 명령을 시작합니다.
또한 관리형 도메인에서 실행 중인 경우 명령 앞에 /profile=PROFILE_NAME.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
다음 명령을 사용하여 주기적인 회전 로그 처리기를 추가합니다.
/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:add(file={path=FILE_PATH,relative-to=RELATIVE_TO_PATH},suffix=SUFFIX)/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:add(file={path=FILE_PATH,relative-to=RELATIVE_TO_PATH},suffix=SUFFIX)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고주기적인 회전 로그 처리기를 추가할 때 경로 및
relative-to속성으로 구성된file속성을 사용하여 파일경로를지정합니다.경로속성을 사용하여 파일 이름(예:my-log.log)을 포함하여 로그 파일 경로를 설정합니다. 선택적으로relative-to특성을 사용하여 경로가jboss.server.log.dir과 같은 이름이 지정된 경로와 상대적임을 나타냅니다.접미사 특성을 사용하여 순환된 로그의
접미사를 설정해야 합니다. 접미사는.yyyy-MM-dd-HH와 같이java.text.SimpleDateFormat에서 이해할 수 있는 형식을 따라야 합니다. 순환 기간은 이 접미사에 따라 자동으로 계산됩니다.요구 사항에 따라 다음 주기적 회전 로그 처리기 특성 중 하나 이상을 설정할 수 있습니다.
다음 명령을 사용하여 처리기의 로그 수준을 설정합니다.
/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=level,value=LEVEL)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본값은
ALL입니다.다음 명령을 사용하여 처리기의 추가 동작을 설정합니다.
/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=append,value=APPEND)
/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=append,value=APPEND)Copy to Clipboard Copied! Toggle word wrap Toggle overflow append속성을false로 설정하여 서버를 다시 시작할 때 파일을 덮어씁니다. 기본적으로 JBoss EAP는 서버를 다시 시작할 때 동일한 파일에 로그 메시지를 추가합니다.다음 명령을 사용하여 처리기의 인코딩(예:
utf-8)을 설정합니다./subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)
/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 처리기의 formatter 문자열을 설정합니다.
/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)
/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어 기본 형식 문자열은
%d{HH:mm:ss,SSS} %-5p [%t] (%t) %s%e%n입니다.FORMAT값을 따옴표로 묶습니다.참고저장된 포맷터를 참조하려면
named-formatter속성을 사용합니다.다음 명령을 사용하여 자동 플러시를 설정합니다.
/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)
/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 쓰기 후 자동으로 플러시할지 여부를 지정합니다. 기본값은
true입니다.다음 명령을 사용하여 필터 표현식을 설정합니다.
/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)
/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 처리기에 대한 로그 메시지를 필터링할 표현식을 지정합니다. 쉼표와 따옴표를 이스케이프하고 표현식을 따옴표로 묶습니다. 예를 들어
FILTER_EXPRESSION변수를"not(match(\"WFLY\")"로 교체하여not(match("WFLY"))의 필터 표현식을 만듭니다.
다음 명령을 사용하여 주기적으로 로그 처리기를 로거에 할당합니다.
/subsystem=logging/root-logger=ROOT:add-handler(name=PERIODIC_HANDLER_NAME)
/subsystem=logging/root-logger=ROOT:add-handler(name=PERIODIC_HANDLER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로그 처리기를 활성화하려면 주기적인 회전 로그 처리기를 루트 로거 또는 기타 로거에 할당할 수 있습니다.
필요한 경우 다음 명령에서
remove작업을 사용하여 로그 처리기를 제거할 수 있습니다./subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:remove
/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고로깅 구성에 더 이상 필요하지 않은 경우 로그 처리기를 제거할 수 있습니다. 그러나 현재 로거 또는 async 로그 처리기에 할당된 경우 로그 처리기를 제거할 수 없습니다.
다음 단계
10.5.4. 크기 회전 로그 처리기 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 JBoss EAP에서 크기 로그 처리기를 구성할 수 있습니다. 또는 Configuration > Cryostats > Logging > Configuration, View 를 클릭하고 Handler > Size Handler 를 선택하여 관리 콘솔을 통해 구성할 수 있습니다.
다음 작업을 수행하여 크기 로그 처리기를 구성할 수 있습니다.
- 새 크기 로그 처리기 추가
- 크기 로그 처리기 설정 구성
- 로거에 크기 로그 처리기 할당
로깅 프로필에 대해 이 로그 처리기를 구성하는 경우 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 /subsystem=logging/ 으로 명령을 시작합니다.
또한 관리형 도메인에서 실행 중인 경우 명령 앞에 /profile=PROFILE_NAME.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
다음 명령을 사용하여 크기 로그 처리기를 추가합니다.
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:add(file={path=FILE_PATH,relative-to=RELATIVE_TO_PATH})/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:add(file={path=FILE_PATH,relative-to=RELATIVE_TO_PATH})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고크기 로그 처리기를 추가할 때 경로 및
relative-to속성으로 구성된file특성을 사용하여 파일경로를지정합니다.경로속성을 사용하여 파일 이름(예:my-log.log)을 포함하여 로그 파일 경로를 설정합니다. 선택적으로relative-to특성을 사용하여 경로가jboss.server.log.dir과 같은 이름이 지정된 경로와 상대적임을 나타냅니다.요구 사항에 따라 다음 크기 로그 처리기 특성 중 하나 이상을 설정할 수 있습니다.
다음 명령을 사용하여 처리기의 로그 수준을 설정합니다.
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=level,value=LEVEL)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본값은
ALL입니다.다음 명령을 사용하여 순환된 로그의 접미사를 설정합니다.
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=suffix, value=SUFFIX)
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=suffix, value=SUFFIX)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고지정된 경우 접미사는
.yyyy-MM-dd-HH와 같이java.text.SimpleDateFormat에서 이해할 수 있는 형식을 따라야 합니다.size-rotating-file-handler의 접미사는 선택 사항입니다. 파일이 순환된 시기가 아니라 순환 기간 자체를 나타냅니다.다음 명령을 사용하여 처리기의 인코딩(예:
utf-8)을 설정합니다./subsystem=logging/size-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)
/subsystem=logging/size-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 회전 크기를 설정합니다.
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=rotate-size, value=ROTATE_SIZE)
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=rotate-size, value=ROTATE_SIZE)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 회전하기 전에 최대 파일 크기를 설정합니다. 기본값은 2MB의 경우
2m입니다.다음 명령을 사용하여 유지할 최대 백업 로그 수를 설정합니다.
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=max-backup-index, value=MAX_BACKUPS)
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=max-backup-index, value=MAX_BACKUPS)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 유지할 백업 수를 지정합니다. 기본값은
1입니다.참고교체는 접미사가 아닌 크기 제한에 따라 수행됩니다. 접미사가 정의되면 순환된 파일에 추가되지만 해당 파일은 삭제되지 않습니다. 크기 제한에 도달하는 파일만 순환 중에 삭제됩니다.
다음 명령을 사용하여 부팅 시 로그를 회전할지 여부를 설정합니다.
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=rotate-on-boot, value=ROTATE_ON_BOOT)
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=rotate-on-boot, value=ROTATE_ON_BOOT)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로 서버를 다시 시작할 때 새 로그 파일이 생성되지 않습니다. 서버를 다시 시작할 때 로그를 교체하려면
true로 설정합니다.다음 명령을 사용하여 처리기의 추가 동작을 설정합니다.
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=append,value=APPEND)
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=append,value=APPEND)Copy to Clipboard Copied! Toggle word wrap Toggle overflow append속성을false로 설정하여 서버를 다시 시작할 때 파일을 덮어씁니다. 기본적으로 JBoss EAP는 서버를 다시 시작할 때 동일한 파일에 로그 메시지를 추가합니다.다음 명령을 사용하여 처리기의 인코딩(예:
utf-8)을 설정합니다./subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 처리기의 formatter 문자열을 설정합니다.
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어 기본 형식 문자열은
%d{HH:mm:ss,SSS} %-5p [%t] (%t) %s%e%n입니다.FORMAT값을 따옴표로 묶습니다.참고저장된 포맷터를 참조하려면
named-formatter속성을 사용합니다.다음 명령을 사용하여 자동 플러시를 설정합니다.
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 쓰기 후 자동으로 플러시할지 여부를 지정합니다. 기본값은
true입니다.다음 명령을 사용하여 필터 표현식을 설정합니다.
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 처리기에 대한 로그 메시지를 필터링할 표현식을 지정합니다. 쉼표와 따옴표를 이스케이프하고 표현식을 따옴표로 묶습니다. 예를 들어
FILTER_EXPRESSION변수를"not(match(\"WFLY\")"로 교체하여not(match("WFLY"))의 필터 표현식을 만듭니다.
다음 명령을 사용하여 크기 로그 처리기를 로거에 할당합니다.
/subsystem=logging/root-logger=ROOT:add-handler(name=SIZE_HANDLER_NAME)
/subsystem=logging/root-logger=ROOT:add-handler(name=SIZE_HANDLER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로그 처리기를 활성화하려면 루트 로거 또는 기타 로거에 크기 로그 처리기를 할당할 수 있습니다.
필요한 경우 다음 명령에서
remove작업을 사용하여 로그 처리기를 제거할 수 있습니다./subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:remove
/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고로깅 구성에 더 이상 필요하지 않은 경우 로그 처리기를 제거할 수 있습니다. 그러나 현재 로거 또는 async 로그 처리기에 할당된 경우 로그 처리기를 제거할 수 없습니다.
다음 단계
10.5.5. 주기적인 크기 회전 로그 처리기 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 JBoss EAP에서 주기적인 크기 회전 로그 처리기를 구성할 수 있습니다. 또는 Configuration > Cryostats > Logging > Configuration, View 를 클릭하고 Handler > Periodic Size Handler 로 이동하여 관리 콘솔을 통해 구성할 수 있습니다.
다음 작업을 수행하여 주기적인 크기 로그 처리기를 구성할 수 있습니다.
- 주기적인 크기 로그 처리기 추가
- 주기적인 크기 로그 처리기 설정 구성
- 주기적인 크기 로그 처리기를 로거에 할당
로깅 프로필에 대해 이 로그 처리기를 구성하는 경우 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 /subsystem=logging/ 으로 명령을 시작합니다.
또한 관리형 도메인에서 실행 중인 경우 명령 앞에 /profile=PROFILE_NAME.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
다음 명령을 사용하여 주기적인 크기 로그 처리기를 추가합니다.
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:add(file={path=FILE_PATH,relative-to=RELATIVE_TO_PATH},suffix=SUFFIX)/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:add(file={path=FILE_PATH,relative-to=RELATIVE_TO_PATH},suffix=SUFFIX)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고주기적인 크기 로그 처리기를 추가할 때 경로 및
relative-to속성으로 구성된file속성을 사용하여 파일경로를지정합니다.경로속성을 사용하여 파일 이름(예:my-log.log)을 포함하여 로그 파일 경로를 설정합니다. 선택적으로relative-to특성을 사용하여 경로가jboss.server.log.dir과 같은 이름이 지정된 경로와 상대적임을 나타냅니다.접미사 특성을 사용하여 순환된 로그의
접미사를 설정해야 합니다. 접미사는.yyyy-MM-dd-HH와 같이java.text.SimpleDateFormat에서 이해할 수 있는 형식을 따라야 합니다. 순환 기간은 이 접미사에 따라 자동으로 계산됩니다.필요에 따라 다음 주기 크기 로그 처리기 특성 중 하나 이상을 설정할 수 있습니다.
다음 명령을 사용하여 처리기의 로그 수준을 설정합니다.
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=level,value=LEVEL)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본값은
ALL입니다.다음 명령을 사용하여 회전 크기를 설정합니다.
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=rotate-size, value=ROTATE_SIZE)
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=rotate-size, value=ROTATE_SIZE)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 회전하기 전에 최대 파일 크기를 설정합니다. 기본값은 2MB의 경우
2m입니다.다음 명령을 사용하여 유지할 최대 백업 로그 수를 설정합니다.
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=max-backup-index, value=MAX_BACKUPS)
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=max-backup-index, value=MAX_BACKUPS)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 유지할 백업 수를 지정합니다. 기본값은
1입니다.참고접미사로 순환하면 순환된 파일이 삭제되지 않습니다. 순환 시 크기 제한에 도달하는 파일만 순환 중에 삭제됩니다.
다음 명령을 사용하여 부팅 시 로그를 회전할지 여부를 설정합니다.
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=rotate-on-boot, value=ROTATE_ON_BOOT)
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=rotate-on-boot, value=ROTATE_ON_BOOT)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로 서버를 다시 시작할 때 새 로그 파일이 생성되지 않습니다. 서버를 다시 시작할 때 로그를 교체하려면
true로 설정합니다.다음 명령을 사용하여 처리기의 추가 동작을 설정합니다.
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=append,value=APPEND)
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=append,value=APPEND)Copy to Clipboard Copied! Toggle word wrap Toggle overflow append속성을false로 설정하여 서버를 다시 시작할 때 파일을 덮어씁니다. 기본적으로 JBoss EAP는 서버를 다시 시작할 때 동일한 파일에 로그 메시지를 추가합니다.다음 명령을 사용하여 처리기의 인코딩(예:
utf-8)을 설정합니다./subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 처리기의 formatter 문자열을 설정합니다.
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어 기본 형식 문자열은
%d{HH:mm:ss,SSS} %-5p [%t] (%t) %s%e%n입니다.FORMAT값을 따옴표로 묶습니다.참고저장된 포맷터를 참조하려면
named-formatter속성을 사용합니다.다음 명령을 사용하여 자동 플러시를 설정합니다.
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 쓰기 후 자동으로 플러시할지 여부를 지정합니다. 기본값은
true입니다.다음 명령을 사용하여 필터 표현식을 설정합니다.
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 처리기에 대한 로그 메시지를 필터링할 표현식을 지정합니다. 쉼표와 따옴표를 이스케이프하고 표현식을 따옴표로 묶습니다. 예를 들어
FILTER_EXPRESSION변수를"not(match(\"WFLY\")"로 교체하여not(match("WFLY"))의 필터 표현식을 만듭니다.
다음 명령을 사용하여 주기적인 크기 로그 처리기를 로거에 할당합니다.
/subsystem=logging/root-logger=ROOT:add-handler(name=PERIODIC_SIZE_HANDLER_NAME)
/subsystem=logging/root-logger=ROOT:add-handler(name=PERIODIC_SIZE_HANDLER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로그 처리기를 활성화하려면 주기적인 크기 로그 처리기를 루트 로거 또는 기타 로거에 할당할 수 있습니다.
필요한 경우 다음 명령에서
remove작업을 사용하여 로그 처리기를 제거할 수 있습니다./subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:remove
/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고로깅 구성에 더 이상 필요하지 않은 경우 로그 처리기를 제거할 수 있습니다. 그러나 현재 로거 또는 async 로그 처리기에 할당된 경우 로그 처리기를 제거할 수 없습니다.
다음 단계
10.5.6. syslog 처리기 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 JBoss EAP에서 syslog 처리기를 구성할 수 있습니다. 이 처리기는 RFC-3164 또는 RFC-5424 중 하나인 Syslog 프로토콜을 지원하는 원격 로깅 서버로 메시지를 보냅니다. 또는 Configuration > Cryostats > Logging > Configuration, View 를 클릭하고 Handler > Syslog Handler 를 선택하여 관리 콘솔을 통해 구성할 수 있습니다.
다음 작업을 수행하여 syslog 처리기를 구성할 수 있습니다.
- 새 syslog 처리기 추가
- syslog 처리기 설정 구성
- 로거에 syslog 처리기 할당
로깅 프로필에 대해 이 로그 처리기를 구성하는 경우 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 /subsystem=logging/ 으로 명령을 시작합니다.
또한 관리형 도메인에서 실행 중인 경우 명령 앞에 /profile=PROFILE_NAME.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
다음 명령을 사용하여 syslog 처리기를 추가합니다.
/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:add
/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 요구 사항에 따라 다음 syslog 처리기 속성 중 하나 이상을 설정할 수 있습니다.
다음 명령을 사용하여 처리기의 로그 수준을 설정합니다.
/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=level,value=LEVEL)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본값은
ALL입니다.다음 명령을 사용하여 로깅할 애플리케이션 이름을 설정합니다.
/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=app-name,value=APP_NAME)
/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=app-name,value=APP_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 애플리케이션 이름은
java입니다.다음 명령을 사용하여 syslog 서버의 주소를 설정합니다.
/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=server-address,value=SERVER_ADDRESS)
/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=server-address,value=SERVER_ADDRESS)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 주소는
localhost입니다.다음 명령을 사용하여 syslog 서버의 포트를 설정합니다.
/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=port,value=PORT)
/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=port,value=PORT)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 포트는
514입니다.다음 명령을 사용하여 RFC 사양에 따라 syslog 형식을 설정합니다.
/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=syslog-format,value=SYSLOG_FORMAT)
/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=syslog-format,value=SYSLOG_FORMAT)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 형식은
RFC5424입니다.다음 명령을 사용하여 syslog 페이로드 메시지를 포맷하려면
named-formatter속성을 지정합니다./subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=named-formatter, value=FORMATTER_NAME)
/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=named-formatter, value=FORMATTER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 명령을 사용하여 syslog 처리기를 로거에 할당합니다.
/subsystem=logging/root-logger=ROOT:add-handler(name=SYSLOG_HANDLER_NAME)
/subsystem=logging/root-logger=ROOT:add-handler(name=SYSLOG_HANDLER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로그 처리기를 활성화하려면 syslog 처리기를 루트 로거 또는 기타 로거에 할당할 수 있습니다.
필요한 경우 다음 명령에서
remove작업을 사용하여 로그 처리기를 제거할 수 있습니다./subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:remove
/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고로깅 구성에 더 이상 필요하지 않은 경우 로그 처리기를 제거할 수 있습니다. 그러나 현재 로거 또는 async 로그 처리기에 할당된 경우 로그 처리기를 제거할 수 없습니다.
다음 단계
10.5.7. 소켓 로그 처리기 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 JBoss EAP에서 소켓 로그 처리기를 구성할 수 있습니다. 처리기는 TCP 또는 UDP 소켓을 통해 메시지를 보냅니다. 또는 Configuration > Cryostats > Logging > Configuration, View 를 클릭하고 Handler > Socket Handler 를 선택하여 관리 콘솔을 통해 구성할 수 있습니다.
서버가 관리자 전용 모드에서 시작되면 로그 메시지를 삭제합니다.
다음 작업을 수행하여 소켓 로그 처리기를 구성할 수 있습니다.
- 소켓 바인딩 추가
- 로그 포맷터 추가
- 소켓 로그 처리기 추가
- 설정 구성
- 소켓 로그 처리기를 로거에 할당
로깅 프로필에 대해 이 로그 처리기를 구성하는 경우 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 /subsystem=logging/ 으로 명령을 시작합니다.
또한 관리형 도메인에서 실행 중인 경우 명령 앞에 /profile=PROFILE_NAME.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
다음 명령을 사용하여 소켓 바인딩을 추가합니다.
/socket-binding-group=SOCKET_BINDING_GROUP/remote-destination-outbound-socket-binding=SOCKET_BINDING_NAME:add(host=HOST, port=PORT)
/socket-binding-group=SOCKET_BINDING_GROUP/remote-destination-outbound-socket-binding=SOCKET_BINDING_NAME:add(host=HOST, port=PORT)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고사용할 소켓 바인딩으로
remote-destination-outbound-socket-binding또는local-destination-outbound-socket-binding을 정의할 수 있습니다. ???다음 명령을 사용하여 JSON 포맷터와 같이 사용할 로그 포맷터를 추가합니다.
/subsystem=logging/json-formatter=FORMATTER:add
/subsystem=logging/json-formatter=FORMATTER:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 사용할 소켓 바인딩 및 포맷터를 지정하여 소켓 로그 처리기를 추가합니다.
/subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:add(outbound-socket-binding-ref=SOCKET_BINDING_NAME,named-formatter=FORMATTER)
/subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:add(outbound-socket-binding-ref=SOCKET_BINDING_NAME,named-formatter=FORMATTER)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 요구 사항에 따라 다음 소켓 로그 처리기 특성 중 하나 이상을 설정할 수 있습니다.
다음 명령을 사용하여 프로토콜을 설정합니다.
/subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:write-attribute(name=protocol,value=PROTOCOL)
/subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:write-attribute(name=protocol,value=PROTOCOL)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 프로토콜은
TCP입니다.다음 명령을 사용하여 처리기의 로그 수준을 설정합니다.
/subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
/subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:write-attribute(name=level,value=LEVEL)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본값은
ALL입니다.참고서버를 시작하는 동안 소켓 로그 처리기에서 처리하는 로그 메시지는 소켓 바인딩이 구성되고
로깅하위 시스템이 초기화될 때까지 큐에 추가됩니다.TRACE또는DEBUG와 같이 로그 수준을 낮게 설정하면 시작 중에 메모리 사용량이 크게 증가할 수 있습니다.다음 명령을 사용하여 처리기의 인코딩(예:
utf-8)을 설정합니다./subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)
/subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 자동 플러시를 설정합니다.
/subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)
/subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 쓰기 후 자동으로 플러시할지 여부를 지정합니다. 기본값은
true입니다.다음 명령을 사용하여 필터 표현식을 설정합니다.
/subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)
/subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 처리기에 대한 로그 메시지를 필터링할 표현식을 지정합니다. 쉼표와 따옴표를 이스케이프하고 표현식을 따옴표로 묶습니다. 예를 들어
FILTER_EXPRESSION변수를"not(match(\"WFLY\")"로 교체하여not(match("WFLY"))의 필터 표현식을 만듭니다.
다음 명령을 사용하여 소켓 로그 처리기를 로거에 할당합니다.
/subsystem=logging/root-logger=ROOT:add-handler(name=SOCKET_HANDLER_NAME)
/subsystem=logging/root-logger=ROOT:add-handler(name=SOCKET_HANDLER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로그 처리기를 활성화하려면 소켓 로그 처리기를 루트 로거 또는 기타 로거에 할당할 수 있습니다.
필요한 경우 다음 명령과 함께
remove작업을 사용하여 소켓 로그 처리기를 제거할 수 있습니다./subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:remove
/subsystem=logging/socket-handler=SOCKET_HANDLER_NAME:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고로깅 구성에 더 이상 필요하지 않은 경우 로그 처리기를 제거할 수 있습니다. 그러나 현재 로거 또는 async 로그 처리기에 할당된 경우 로그 처리기를 제거할 수 없습니다.
다음 단계
10.5.7.1. SSL/TLS를 통해 소켓 로그 메시지 전송 링크 복사링크가 클립보드에 복사되었습니다!
SSL_TCP 프로토콜을 사용하여 소켓을 통해 로그 메시지를 보내도록 소켓 로그 처리기를 설정할 수 있습니다. 이 설정은 키 저장소, 신뢰 관리자 및 클라이언트 SSL 컨텍스트를 포함하여 elytron 하위 시스템에서 주요 구성 요소를 구성해야 합니다. 이 구성을 사용하면 JSON 포맷터로 포맷된 메시지를 사용하여 지정된 소켓을 통해 루트 로거에서 로그 메시지를 안전하게 전송할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
다음 단계를 수행하여 Elytron 설정을 구성합니다.
다음 명령을 사용하여 키 저장소를 추가합니다.
/subsystem=elytron/key-store=log-server-ks:add(path=/path/to/keystore.jks, type=JKS, credential-reference={clear-text=mypassword})/subsystem=elytron/key-store=log-server-ks:add(path=/path/to/keystore.jks, type=JKS, credential-reference={clear-text=mypassword})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 신뢰 관리자를 추가합니다.
/subsystem=elytron/trust-manager=log-server-tm:add(key-store=log-server-ks)
/subsystem=elytron/trust-manager=log-server-tm:add(key-store=log-server-ks)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 클라이언트 SSL 컨텍스트를 추가합니다.
/subsystem=elytron/client-ssl-context=log-server-context:add(trust-manager=log-server-tm, protocols=["TLSv1.2"])
/subsystem=elytron/client-ssl-context=log-server-context:add(trust-manager=log-server-tm, protocols=["TLSv1.2"])Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 명령을 사용하여 소켓 바인딩을 추가합니다.
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=log-server:add(host=localhost, port=4560)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=log-server:add(host=localhost, port=4560)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 JSON 포맷터를 추가합니다.
/subsystem=logging/json-formatter=json:add
/subsystem=logging/json-formatter=json:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 소켓 로그 처리기를 추가합니다.
/subsystem=logging/socket-handler=log-server-handler:add(named-formatter=json, level=INFO, outbound-socket-binding-ref=log-server, protocol=SSL_TCP, ssl-context=log-server-context)
/subsystem=logging/socket-handler=log-server-handler:add(named-formatter=json, level=INFO, outbound-socket-binding-ref=log-server, protocol=SSL_TCP, ssl-context=log-server-context)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 로그 처리기를 루트 로거에 할당합니다.
/subsystem=logging/root-logger=ROOT:add-handler(name=log-server-handler)
/subsystem=logging/root-logger=ROOT:add-handler(name=log-server-handler)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.5.8. 사용자 정의 로그 처리기 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 JBoss EAP에서 사용자 지정 로그 처리기를 구성할 수 있습니다. 또는 Configuration > Cryostats > Logging > Configuration, View 를 클릭하고 Handler > Custom Handler 를 선택하여 관리 콘솔을 통해 구성할 수 있습니다.
다음 작업을 수행하여 사용자 정의 로그 처리기를 구성할 수 있습니다.
- 새 사용자 정의 로그 처리기 추가
- 사용자 정의 로그 처리기 설정 구성
- 로거에 사용자 정의 로그 처리기 할당
로깅 프로필에 대해 이 로그 처리기를 구성하는 경우 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 /subsystem=logging/ 으로 명령을 시작합니다.
또한 관리형 도메인에서 실행 중인 경우 명령 앞에 /profile=PROFILE_NAME.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
다음 명령을 사용하여 사용자 정의 로그 처리기를 추가합니다.
/subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:add(class=CLASS_NAME,module=MODULE_NAME)
/subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:add(class=CLASS_NAME,module=MODULE_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고사용자 지정 로그 처리기를 추가할 때 처리기의 Java 클래스와 이를 포함하는 JBoss EAP 모듈을 지정합니다. 클래스는
java.util.logging.Handler를 확장해야 합니다.사용자 지정 로거 가 포함된 모듈을 생성 했는지 확인합니다. 그렇지 않으면 이 명령이 실패합니다.
요구 사항에 따라 다음 사용자 정의 로그 처리기 특성 중 하나 이상을 설정할 수 있습니다.
다음 명령을 사용하여 처리기의 로그 수준을 설정합니다.
/subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
/subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:write-attribute(name=level,value=LEVEL)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본값은
ALL입니다.다음 명령을 사용하여 로그 처리기의 속성을 설정합니다.
/subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:write-attribute(name=properties.PROPERTY_NAME,value=PROPERTY_VALUE)
/subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:write-attribute(name=properties.PROPERTY_NAME,value=PROPERTY_VALUE)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 속성은 setter 방법을 사용하여 액세스할 수 있어야 합니다.
다음 명령을 사용하여 처리기의 인코딩(예:
utf-8)을 설정합니다./subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)
/subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 처리기의 formatter 문자열을 설정합니다.
/subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)
/subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어 기본 형식 문자열은
%d{HH:mm:ss,SSS} %-5p [%t] (%t) %s%e%n입니다.FORMAT값을 따옴표로 묶습니다.참고저장된 포맷터를 참조하려면
named-formatter속성을 사용합니다.다음 명령을 사용하여 필터 표현식을 설정합니다.
/subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)
/subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 처리기에 대한 로그 메시지를 필터링할 표현식을 지정합니다. 쉼표와 따옴표를 이스케이프하고 표현식을 따옴표로 묶습니다. 예를 들어
FILTER_EXPRESSION변수를"not(match(\"WFLY\")"로 교체하여not(match("WFLY"))의 필터 표현식을 만듭니다.
다음 명령을 사용하여 사용자 정의 로그 처리기를 로거에 할당합니다.
/subsystem=logging/root-logger=ROOT:add-handler(name=CUSTOM_HANDLER_NAME)
/subsystem=logging/root-logger=ROOT:add-handler(name=CUSTOM_HANDLER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로그 처리기를 활성화하려면 루트 로거 또는 기타 로거에 핸들러를 할당할 수 있습니다.
다음 명령을 사용하여 사용자 정의 로그 처리기를
CATEGORY라는 특정 로거에 할당합니다./subsystem=logging/logger=CATEGORY:add-handler(name=CUSTOM_HANDLER_NAME)
/subsystem=logging/logger=CATEGORY:add-handler(name=CUSTOM_HANDLER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow CATEGORY를 사용자 정의 로그 처리기를 할당하려는 로거 이름으로 교체합니다.필요한 경우 다음 명령과 함께
remove작업을 사용하여 사용자 정의 로그 처리기를 제거할 수 있습니다./subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:remove
/subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고로깅 구성에 더 이상 필요하지 않은 경우 로그 처리기를 제거할 수 있습니다. 그러나 현재 로거 또는 async 로그 처리기에 할당된 경우 로그 처리기를 제거할 수 없습니다.
다음 단계
10.5.9. 비동기 로그 처리기 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 JBoss EAP에서 async 로그 처리기를 구성할 수 있습니다. 또는 구성 > Logging > Configuration , View 를 클릭하고 Handler > Async Handler 로 이동하여 관리 콘솔을 통해 구성할 수 있습니다.
다음 작업을 수행하여 async 로그 처리기를 구성할 수 있습니다.
- 새 async 로그 처리기 추가
- async 로그 처리기에 하위 핸들러 추가
- async 로그 처리기 설정 구성
- 로거에 async 로그 처리기 할당
로깅 프로필에 대해 이 로그 처리기를 구성하는 경우 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 /subsystem=logging/ 으로 명령을 시작합니다.
또한 관리형 도메인에서 실행 중인 경우 명령 앞에 /profile=PROFILE_NAME.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
다음 명령을 사용하여 async 로그 처리기를 추가합니다.
/subsystem=logging/async-handler=ASYNC_HANDLER_NAME:add(queue-length=QUEUE_LENGTH)
/subsystem=logging/async-handler=ASYNC_HANDLER_NAME:add(queue-length=QUEUE_LENGTH)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고비동기 로그 처리기를 추가할 때 언제든지 큐에 보관할 수 있는 최대 로그 요청 수인 큐 길이를 지정합니다.
다음 명령을 사용하여 하위 핸들러를 추가합니다.
/subsystem=logging/async-handler=ASYNC_HANDLER_NAME:add-handler(name=HANDLER_NAME)
/subsystem=logging/async-handler=ASYNC_HANDLER_NAME:add-handler(name=HANDLER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이 비동기 로그 처리기의 하위 핸들러로 하나 이상의 처리기를 추가할 수 있습니다. 처리기가 구성에 이미 있어야 합니다. 그렇지 않으면 이 명령이 실패합니다.
요구 사항에 따라 다음 async 로그 처리기 특성 중 하나 이상을 설정할 수 있습니다.
다음 명령을 사용하여 처리기의 로그 수준을 설정합니다.
/subsystem=logging/async-handler=ASYNC_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
/subsystem=logging/async-handler=ASYNC_HANDLER_NAME:write-attribute(name=level,value=LEVEL)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본값은
ALL입니다.다음 명령을 사용하여 오버플로 작업을 설정합니다.
/subsystem=logging/async-handler=ASYNC_HANDLER_NAME:write-attribute(name=overflow-action,value=OVERFLOW_ACTION)
/subsystem=logging/async-handler=ASYNC_HANDLER_NAME:write-attribute(name=overflow-action,value=OVERFLOW_ACTION)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본값은
BLOCK입니다. 즉, 큐가 가득 차면 스레드가 차단됩니다. 이 값을DISCARD로 변경할 수 있습니다. 즉, 전체 대기열의 경우 새 메시지를 수용하기 위해 가장 오래된 로그 메시지가 삭제됩니다.다음 명령을 사용하여 필터 표현식을 설정합니다.
/subsystem=logging/async-handler=ASYNC_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)
/subsystem=logging/async-handler=ASYNC_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 처리기에 대한 로그 메시지를 필터링할 표현식을 지정합니다. 쉼표와 따옴표를 이스케이프하고 표현식을 따옴표로 묶습니다. 예를 들어
FILTER_EXPRESSION변수를"not(match(\"WFLY\")"로 교체하여not(match("WFLY"))의 필터 표현식을 만듭니다.
다음 명령을 사용하여 async 로그 처리기를 로거에 할당합니다.
/subsystem=logging/root-logger=ROOT:add-handler(name=ASYNC_HANDLER_NAME)
/subsystem=logging/root-logger=ROOT:add-handler(name=ASYNC_HANDLER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로그 처리기를 활성화하려면 async 로그 처리기를 루트 로거 또는 기타 로거에 할당할 수 있습니다.
필요한 경우 다음 명령과 함께
remove작업을 사용하여 async 로그 처리기를 제거할 수 있습니다./subsystem=logging/async-handler=ASYNC_HANDLER_NAME:remove
/subsystem=logging/async-handler=ASYNC_HANDLER_NAME:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고로깅 구성에 더 이상 필요하지 않은 경우 로그 처리기를 제거할 수 있습니다. 그러나 현재 로거에 할당된 경우 로그 처리기를 제거할 수 없습니다.
10.6. 루트 로거 구성 링크 복사링크가 클립보드에 복사되었습니다!
루트 로거는 로그 카테고리에서 캡처하지 않는 서버로 전송되는 지정된 로그 수준 이상의 모든 로그 메시지를 캡처합니다.
관리 CLI를 사용하여 JBoss EAP에서 루트 로거를 구성할 수 있습니다. 또는 Configuration > Cryostats > Logging > Configuration, View 를 클릭하고 Root Logger 를 선택하여 관리 콘솔을 통해 구성할 수 있습니다.
로깅 프로필에 대해 이 로그 처리기를 구성하는 경우 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 /subsystem=logging/ 으로 명령을 시작합니다.
또한 관리형 도메인에서 실행 중인 경우 명령 앞에 /profile=PROFILE_NAME.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
다음 명령을 사용하여 로그 처리기를 루트 로거에 할당합니다.
/subsystem=logging/root-logger=ROOT:add-handler(name=LOG_HANDLER_NAME)
/subsystem=logging/root-logger=ROOT:add-handler(name=LOG_HANDLER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우 다음 명령을 사용하여 root 처리기를 제거할 수 있습니다.
/subsystem=logging/root-logger=ROOT:remove-handler(name=LOG_HANDLER_NAME)
/subsystem=logging/root-logger=ROOT:remove-handler(name=LOG_HANDLER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고로깅 구성에 더 이상 필요하지 않은 경우 로그 처리기를 제거할 수 있습니다.
다음 명령을 사용하여 처리기의 로그 수준을 설정합니다.
/subsystem=logging/root-logger=ROOT:write-attribute(name=level,value=LEVEL)
/subsystem=logging/root-logger=ROOT:write-attribute(name=level,value=LEVEL)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.7. 로그 형식ter 구성 링크 복사링크가 클립보드에 복사되었습니다!
로그 포맷터는 처리기의 로그 메시지 모양을 정의합니다.
로깅 하위 시스템을 사용하면 다음과 같은 유형의 로그 포맷을 구성할 수 있습니다.
10.7.1. 패턴 포맷터 구성 링크 복사링크가 클립보드에 복사되었습니다!
로그 처리기에서 로그 메시지를 포맷하는 데 사용할 이름이 지정된 패턴 포맷터를 생성할 수 있습니다.
관리 CLI를 사용하여 JBoss EAP에서 패턴 포맷터를 구성할 수 있습니다. 또는 Configuration > Cryostats > Logging > Configuration, View 를 클릭하고 Formatter를 선택한 다음 Pattern Formatter 옵션을 선택하여 관리 콘솔을 통해 구성할 수 있습니다.
로깅 프로필에 대해 이 로그 포맷터를 구성하는 경우 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 /subsystem=logging/ 으로 명령을 시작합니다.
또한 관리형 도메인에서 실행 중인 경우 명령 앞에 /profile=PROFILE_NAME.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
다음 명령을 사용하여 패턴 포맷터를 생성합니다.
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:add(pattern=PATTERN)
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:add(pattern=PATTERN)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 패턴 포맷터를 정의할 때 로그 메시지를 포맷하는 패턴 문자열을 제공합니다. 예를 들어 기본 구성에서는 서버 로그 메시지에 다음과 같은 로그 포맷터 문자열을 사용합니다.
%d{yyy-MM-dd HH:mm:ss,SSS} %-5p [%t] (%t) %s%e%e%e%n.예
2016-03-18 15:49:32,075 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
2016-03-18 15:49:32,075 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 패턴 포맷터의 색상 맵을 설정합니다.
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:write-attribute(name=color-map,value="LEVEL:COLOR,LEVEL:COLOR")
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:write-attribute(name=color-map,value="LEVEL:COLOR,LEVEL:COLOR")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다른 로그 수준에 색상을 할당할 색상 맵을 정의합니다. 형식은 쉼표로 구분된
LEVEL:COLOR목록입니다.-
유효한 수준: finer ,
finer, finer ,config,trace,debug,info,warning,warn,error,fatal,severe -
유효한 색상: ,
녹색,빨간색,노란색,파란색,cyan,흰색,광고색 ,굵은색녹색, Valblue , lightblue , lightblue, wideyellow, wideyelagenta , lightcyan , lightcyan.
-
유효한 수준: finer ,
10.7.2. JSON 로그 포맷터 구성 링크 복사링크가 클립보드에 복사되었습니다!
JSON 로그 포맷터를 생성하여 JSON에서 로그 메시지를 포맷할 수 있습니다.
관리 CLI를 사용하여 JBoss EAP에서 JSON 로그 포맷터를 구성할 수 있습니다. 또는 Configuration > Cryostats > Logging > Configuration, View 를 클릭하고 Formatter를 선택한 다음 JSON Formatter 옵션을 선택하여 관리 콘솔을 통해 구성할 수 있습니다.
로깅 프로필에 대해 이 로그 포맷터를 구성하는 경우 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 /subsystem=logging/ 으로 명령을 시작합니다.
또한 관리형 도메인에서 실행 중인 경우 명령 앞에 /profile=PROFILE_NAME.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
JSON 로그 포맷터를 추가합니다.
예
/subsystem=logging/json-formatter=JSON_FORMATTER_NAME:add(pretty-print=true, exception-output-type=formatted)
/subsystem=logging/json-formatter=JSON_FORMATTER_NAME:add(pretty-print=true, exception-output-type=formatted)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예상 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 Logstash JSON 로그 포맷터를 추가합니다.
/subsystem=logging/json-formatter=logstash:add(exception-output-type=formatted, key-overrides=[timestamp="@timestamp"], meta-data=[@version=1])
/subsystem=logging/json-formatter=logstash:add(exception-output-type=formatted, key-overrides=[timestamp="@timestamp"], meta-data=[@version=1])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고JSON 로그 포맷터 출력 키를 수정하고 정적 메타데이터를 추가할 수 있습니다. JSON 로그 포맷터의 기본 목적은 JSON에서 로그 메시지를 포맷하는 것입니다. Logstash는 이 JSON 출력을 사용하고
@timestamp및@version필드를 검색합니다. 다음 예제에서는 Logstash에 대한 메시지를 포맷하는 JSON 로그 포맷터를 생성합니다.다음과 같이 JSON 포맷터 속성을 사용할 수 있습니다.
-
key-overrides속성은 정의된 키의 이름을 재정의합니다. -
exception-output-type속성을 포맷으로 설정하여 예외를 오브젝트로 포맷합니다. -
exception-output-type특성을자세히설정하여 예외 스택 추적을 포함합니다. -
예외를 오브젝트로
포맷하고포맷으로 설정하여 스택 추적을 포함합니다.exception-output-type을 세부 및 -
meta-data특성을 사용하여 레코드를 기록하기 위해 메타데이터를 추가합니다.
-
10.7.3. XML 로그 포맷터 구성 링크 복사링크가 클립보드에 복사되었습니다!
XML 로그 포맷터를 만들어 XML로 로그 메시지를 포맷할 수 있습니다.
관리 CLI를 사용하여 JBoss EAP에서 XML 로그 포맷터를 구성할 수 있습니다. 또는 Configuration → Cryostats → Logging → Configuration , View 를 클릭하고 Formatter를 선택한 다음 XML Formatter 옵션을 선택하여 관리 콘솔을 통해 구성할 수 있습니다.
로깅 프로필에 대해 이 로그 포맷터를 구성하는 경우 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 /subsystem=logging/ 으로 명령을 시작합니다.
또한 관리형 도메인에서 실행 중인 경우 명령 앞에 /profile=PROFILE_NAME.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
XML 로그 포맷터를 추가합니다.
예
/subsystem=logging/xml-formatter=XML_FORMATTER_NAME:add(pretty-print=true, exception-output-type=detailed-and-formatted)
/subsystem=logging/xml-formatter=XML_FORMATTER_NAME:add(pretty-print=true, exception-output-type=detailed-and-formatted)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예상 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 키 덮어쓰기 XML 로그 포맷터를 추가합니다.
/subsystem=logging/xml-formatter=XML_FORMATTER_NAME:add(pretty-print=true, print-namespace=true, namespace-uri="urn:custom:1.0", key-overrides={message=msg, record=logRecord, timestamp=date}, print-details=true)/subsystem=logging/xml-formatter=XML_FORMATTER_NAME:add(pretty-print=true, print-namespace=true, namespace-uri="urn:custom:1.0", key-overrides={message=msg, record=logRecord, timestamp=date}, print-details=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같이 XML 포맷터 속성을 사용할 수 있습니다.
-
key-overrides속성은 정의된 키의 이름을 재정의합니다. -
exception-output-type속성을 포맷으로 설정하여 예외를 오브젝트로 포맷합니다. -
exception-output-type특성을자세히설정하여 예외 스택 추적을 포함합니다. -
예외를 오브젝트로
포맷하고포맷으로 설정하여 스택 추적을 포함합니다.exception-output-type을 세부 및 -
meta-data특성을 사용하여 레코드를 기록하기 위해 메타데이터를 추가합니다.
-
10.7.4. 사용자 정의 로그 포맷터 구성 링크 복사링크가 클립보드에 복사되었습니다!
로그 처리기에서 로그 메시지를 포맷하는 데 사용할 사용자 지정 로그 포맷터를 생성할 수 있습니다.
관리 CLI를 사용하여 JBoss EAP에서 사용자 지정 로그 포맷터를 구성할 수 있습니다. 또는 Configuration > Cryostats > Logging > Configuration, View 를 클릭하고 Formatter를 선택한 다음 Custom Formatter 옵션을 선택하여 관리 콘솔을 통해 구성할 수 있습니다.
로깅 프로필에 대해 이 로그 포맷터를 구성하는 경우 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 /subsystem=logging/ 으로 명령을 시작합니다.
또한 관리형 도메인에서 실행 중인 경우 명령 앞에 /profile=PROFILE_NAME.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
다음 명령을 사용하여 사용자 정의 로그 포맷터를 추가합니다.
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:add(class=CLASS_NAME, module=MODULE_NAME)
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:add(class=CLASS_NAME, module=MODULE_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고사용자 지정 로그 포맷터를 추가할 때 포맷터의 Java 클래스와 이를 포함하는 JBoss EAP 모듈을 지정합니다. 이 클래스는
java.util.logging.Formatter를 확장해야 합니다. 사용자 지정 로거 가 포함된 모듈을 생성 했는지 확인합니다. 그렇지 않으면 이 명령이 실패합니다.다음 명령을 사용하여 로그 포맷터의 속성을 설정합니다.
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:write-attribute(name=properties.PROPERTY_NAME,value=PROPERTY_VALUE)
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:write-attribute(name=properties.PROPERTY_NAME,value=PROPERTY_VALUE)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 속성은 setter 방법을 사용하여 액세스할 수 있어야 합니다.
다음 명령을 사용하여 사용자 지정 포맷터를 로그 처리기에 할당합니다.
/subsystem=logging/periodic-rotating-file-handler=FILE_HANDLER_NAME:write-attribute(name=named-formatter, value=CUSTOM_FORMATTER_NAME)
/subsystem=logging/periodic-rotating-file-handler=FILE_HANDLER_NAME:write-attribute(name=named-formatter, value=CUSTOM_FORMATTER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 주기적인 회전 파일 처리기에서 사용할 사용자 지정 포맷터를 할당합니다.
다음 예제에서는 사용자 지정 XML 포맷터를 구성합니다. org.jboss 클래스를 사용하여 콘솔 로그 처리기에 할당합니다.
.logmanager 모듈에 제공된 java.util.logging.19Formatter
예
/subsystem=logging/custom-formatter=custom-xml-formatter:add(class=java.util.logging.XMLFormatter, module=java.logging) /subsystem=logging/console-handler=CONSOLE:write-attribute(name=named-formatter, value=custom-xml-formatter)
/subsystem=logging/custom-formatter=custom-xml-formatter:add(class=java.util.logging.XMLFormatter, module=java.logging)
/subsystem=logging/console-handler=CONSOLE:write-attribute(name=named-formatter, value=custom-xml-formatter)
예상 출력
10.8. JBoss EAP에서 애플리케이션 로깅 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 로깅 하위 시스템 또는 배포 별로 애플리케이션의 로깅 을 구성할 수 있습니다. 로깅 하위 시스템은 중앙 집중식 관리를 제공하지만 배포별 로깅은 각 애플리케이션과 관련된 사용자 지정 구성을 활성화합니다.
10.8.1. 배포별 로깅 구성 링크 복사링크가 클립보드에 복사되었습니다!
배포별 로깅을 통해 개발자는 사전에 애플리케이션에 대한 로깅을 구성할 수 있습니다. 애플리케이션이 배포되면 정의된 구성에 따라 로깅이 시작됩니다. 이 구성을 통해 생성된 로그 파일에는 애플리케이션의 동작에 대한 정보만 포함됩니다.
배포별 로깅을 사용하는 경우 애플리케이션에서 로깅 하위 시스템 구성을 사용하지 않습니다. 대신 애플리케이션의 배포 파일에 정의된 로깅 구성을 사용합니다. 각 애플리케이션에는 글로벌 구성과 관계없이 사용자 지정 로깅 설정이 있을 수 있습니다.
이 접근 방식에는 시스템 전체 로깅에 비해 장단점이 있습니다. 이점은 JBoss EAP 관리자가 서버 로깅 이외의 로깅을 구성할 필요가 없다는 것입니다. 단점은 배포별 로깅 구성이 서버 시작 시에만 읽혀 있으며 런타임 시 변경할 수 없다는 것입니다.
10.8.1.1. 배포별 로깅 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
use-deployment-logging-config 속성을 설정하거나 로깅 하위 시스템을 제외하여 JBoss EAP에서 배포별 로깅을 비활성화할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
다음 방법 중 하나를 사용하여 배포별 로깅을 비활성화합니다.
use-deployment-logging-config속성을false로 설정합니다./subsystem=logging:write-attribute(name=use-deployment-logging-config,value=false)
/subsystem=logging:write-attribute(name=use-deployment-logging-config,value=false)Copy to Clipboard Copied! Toggle word wrap Toggle overflow use-deployment-logging-config속성은 배포별 로깅을 스캔할지 여부를 제어합니다. 기본값은true입니다. 배포별 로깅을 비활성화하려면false로 설정합니다.-
jboss-deployment-structure.xml파일을 사용하여로깅하위 시스템을 제외합니다.
10.8.2. 애플리케이션 로깅 프로필 링크 복사링크가 클립보드에 복사되었습니다!
로깅 프로필은 배포된 애플리케이션에 할당할 수 있는 독립적인 로깅 구성 세트입니다. 일반 로깅 하위 시스템과 마찬가지로 로깅 프로필은 처리기, 카테고리, 형식화, 루트 로거를 정의할 수 있습니다. 그러나 다른 프로필 또는 주요 로깅 하위 시스템의 구성을 참조할 수 없습니다. 로깅 프로필의 설계는 더 쉬운 구성을 위해 로깅 하위 시스템과 유사합니다.
로깅 프로필을 사용하면 관리자가 다른 구성에 영향을 주지 않고 하나 이상의 애플리케이션에 고유한 로깅 구성을 생성할 수 있습니다. 각 프로필은 서버 구성에 정의되어 있으므로 영향을 받는 애플리케이션을 다시 배포하지 않고도 로깅 설정을 변경할 수 있습니다.
각 로깅 프로필에는 다음이 포함될 수 있습니다.
- 고유한 이름입니다. 이 값은 필수입니다.
- 원하는 수의 로그 처리기입니다.
- 임의의 수의 로그 범주입니다.
- 하나의 루트 로거까지.
- 로그 형식 LimitRange.
애플리케이션은 Logging-Profile 속성을 설정하여 MANIFEST.MF 파일에서 사용할 로깅 프로필을 지정할 수 있습니다.
10.8.2.1. 로깅 프로필 구성 링크 복사링크가 클립보드에 복사되었습니다!
로그 처리기, 카테고리 및 루트 로거를 사용하여 로깅 프로필을 구성할 수 있습니다. 로깅 프로필 구성에서는 다음과 같은 차이점을 제외하고 로깅 하위 시스템을 구성하는 것과 동일한 구문을 사용합니다.
-
루트 구성 경로는
/subsystem=logging/logging-profile=NAME입니다. - 로깅 프로필에는 다른 로깅 프로필이 포함될 수 없습니다.
로깅하위 시스템에는 로깅 프로필에 사용할 수 없는 다음 속성이 포함됩니다.-
add-logging-api-dependencies -
use-deployment-logging-config
-
관리 CLI를 사용하여 JBoss EAP에서 로깅 프로필을 구성할 수 있습니다. 또는 Configuration > Cryostats > Logging > Logging Profiles 로 이동하여 관리 콘솔을 통해 구성할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
다음 명령을 사용하여 로깅 프로필을 생성합니다.
/subsystem=logging/logging-profile=PROFILE_NAME:add
/subsystem=logging/logging-profile=PROFILE_NAME:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 파일 처리기를 추가합니다.
/subsystem=logging/logging-profile=PROFILE_NAME/file-handler=FILE_HANDLER_NAME:add(file={path=>"LOG_NAME.log", "relative-to"=>"jboss.server.log.dir"})/subsystem=logging/logging-profile=PROFILE_NAME/file-handler=FILE_HANDLER_NAME:add(file={path=>"LOG_NAME.log", "relative-to"=>"jboss.server.log.dir"})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 파일 처리기의 로깅 수준을 설정합니다.
/subsystem=logging/logging-profile=PROFILE_NAME/file-handler=FILE_HANDLER_NAME:write-attribute(name="level", value="DEBUG")
/subsystem=logging/logging-profile=PROFILE_NAME/file-handler=FILE_HANDLER_NAME:write-attribute(name="level", value="DEBUG")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 로거 이름을 생성합니다.
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add(level=TRACE)
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add(level=TRACE)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 파일 처리기를 카테고리에 할당합니다.
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add-handler(name="FILE_HANDLER_NAME")
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add-handler(name="FILE_HANDLER_NAME")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
그런 다음 MANIFEST.MF 파일의 애플리케이션에서 사용할 로깅 프로필을 설정할 수 있습니다.
10.8.2.2. 애플리케이션 로깅 프로필 구성 예 링크 복사링크가 클립보드에 복사되었습니다!
이 예에서는 로깅 프로필 및 이를 사용하는 애플리케이션의 구성을 보여줍니다. 여기에는 관리 CLI 명령, 결과 XML 및 애플리케이션의 MANIFEST.MF 파일이 포함됩니다.
예제 logging 프로파일에는 다음과 같은 특징이 있습니다.
-
이름은
accounts-app-profile입니다. -
로그 카테고리는
com.company.accounts. Cryostats입니다. -
로그 수준은
TRACE입니다. -
로그 처리기는 Cryostat
-trace.log 파일을사용하는 파일 처리기입니다.
관리 CLI 세션
XML 구성
애플리케이션 MANIFEST.MF 파일
Manifest-Version: 1.0 Logging-Profile: accounts-app-profile
Manifest-Version: 1.0
Logging-Profile: accounts-app-profile
10.8.3. 배포 로깅 구성 보기 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 JBoss EAP에서 배포의 로깅 구성을 볼 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
다음 명령을 사용하여 특정 배포의 로깅 구성을 검색합니다.
/deployment=DEPLOYMENT_NAME/subsystem=logging/configuration=CONFIG:read-resource
/deployment=DEPLOYMENT_NAME/subsystem=logging/configuration=CONFIG:read-resourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow CONFIG값은 다음 중 하나일 수 있습니다.-
Default: 배포에서로깅 하위 시스템을 사용하는 경우 로깅하위 시스템 구성이 출력됩니다. -
profile-PROFILE_NAME: 배포에서 로깅 하위 시스템에 정의된 로깅 프로필을 사용하는 경우 로깅 프로필 구성이 출력됩니다. -
사용 중인 구성 파일의 경로입니다(예:
myear.ear/META-INF/logging.properties).
-
특정 로깅 프로필에 대한 구성을 표시하려면 다음 명령을 실행합니다.
/deployment=mydeployment.war/subsystem=logging/configuration=profile-MYPROFILE:read-resource(recursive=true,include-runtime=true)
/deployment=mydeployment.war/subsystem=logging/configuration=profile-MYPROFILE:read-resource(recursive=true,include-runtime=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 지정된 배포에서 사용하는
MYPROFILE로깅 프로필의 구성을 검색합니다.예상 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 재귀
읽기-리소스작업을 수행하여 전체 로깅 구성 및 배포에 대한 기타 정보를 검색할 수도 있습니다./deployment=DEPLOYMENT_NAME/subsystem=logging:read-resource(include-runtime=true, recursive=true)
/deployment=DEPLOYMENT_NAME/subsystem=logging:read-resource(include-runtime=true, recursive=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.9. 로깅 하위 시스템 성능 관리 링크 복사링크가 클립보드에 복사되었습니다!
로깅 하위 시스템의 성능을 최적화하고 모니터링하여 효율적인 로깅 및 리소스 관리를 보장할 수 있습니다. 정기적인 모니터링은 잠재적인 문제가 성능에 영향을 미치기 전에 식별하는 데 도움이 됩니다.
11장. 데이터 소스 관리 링크 복사링크가 클립보드에 복사되었습니다!
11.1. JBoss EAP 데이터 소스 정보 링크 복사링크가 클립보드에 복사되었습니다!
JDBC 정보
JDBC API는 Java 애플리케이션에서 데이터베이스에 액세스하는 방법을 정의하는 표준입니다. 애플리케이션은 JDBC 드라이버를 참조하는 데이터 소스를 구성합니다. 그런 다음 데이터베이스 대신 드라이버에 대해 애플리케이션 코드를 작성할 수 있습니다. 드라이버는 코드를 데이터베이스 언어로 변환합니다. 즉, 올바른 드라이버가 설치된 경우 지원되는 모든 데이터베이스와 애플리케이션을 사용할 수 있습니다.
자세한 내용은 JDBC 사양을 참조하십시오.
지원되는 데이터베이스
JBoss EAP 8.0에서 지원하는 JDBC 호환 데이터베이스 목록은 JBoss EAP 8.0 지원 구성 을 참조하십시오.
데이터 소스 유형
일반적인 두 가지 유형의 리소스는 데이터 소스 및 XA 데이터 소스라고 합니다.
- 비 XA 데이터 소스
- 트랜잭션을 사용하지 않는 애플리케이션 또는 단일 데이터베이스가 있는 트랜잭션을 사용하는 애플리케이션에 사용됩니다.
- XA 데이터 소스
- 여러 데이터베이스 또는 기타 XA 리소스를 하나의 XA 트랜잭션의 일부로 사용하는 애플리케이션에서 사용합니다. XA 데이터 소스에는 추가 오버헤드가 발생합니다.
JBoss EAP 관리 인터페이스를 사용하여 데이터 소스를 생성할 때 사용할 데이터 소스 유형을 지정합니다.
ExampleDS 데이터 소스
JBoss EAP에는 데이터 소스 정의 방법을 설명하기 위해 제공되는 데이터 소스 구성 예 ExampleDS 가 포함되어 있습니다. 이 데이터 소스는 개발자에게 애플리케이션을 빠르게 빌드하는 기능을 제공하는 경량의 관계형 데이터베이스 관리 시스템인 H2 데이터베이스를 사용합니다.
프로덕션 환경에서는 ExampleDS 데이터 소스와 H2 데이터베이스를 사용해서는 안 됩니다. 이는 애플리케이션 테스트 및 빌드에 필요한 모든 표준을 지원하는 매우 작고 자체 포함된 데이터 소스이지만 프로덕션 환경에서 사용하기에 충분히 강력하거나 확장 가능한 것은 아닙니다.
11.2. JDBC 드라이버 링크 복사링크가 클립보드에 복사되었습니다!
애플리케이션에서 사용할 데이터 소스를 JBoss EAP에 정의하기 전에 먼저 적절한 JDBC 드라이버를 설치해야 합니다.
11.2.1. JDBC 드라이버를 코어 모듈로 설치 링크 복사링크가 클립보드에 복사되었습니다!
JDBC 드라이버를 코어 모듈로 설치하려면 먼저 JDBC 드라이버를 코어 모듈로 추가한 다음 데이터 소스 하위 시스템에 JDBC 드라이버를 등록해야 합니다.
11.2.1.1. JDBC 드라이버를 코어 모듈로 추가 링크 복사링크가 클립보드에 복사되었습니다!
다음 단계를 사용하여 관리 CLI를 사용하여 JDBC 드라이버를 코어 모듈로 설치할 수 있습니다.
JDBC 드라이버를 다운로드합니다.
데이터베이스 벤더에서 적절한 JDBC 드라이버를 다운로드합니다. 공통 데이터베이스의 JDBC 드라이버에 대한 표준 다운로드 위치는 JDBC 드라이버 다운로드 위치를 참조하십시오.
JDBC 드라이버 JAR 파일이 ZIP 또는 TAR 아카이브에 포함된 경우 아카이브를 추출해야 합니다.
- JBoss EAP 서버를 시작합니다.
관리 CLI를 시작합니다.
EAP_HOME/bin/jboss-cli.sh
$ EAP_HOME/bin/jboss-cli.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모듈 추가관리 CLI 명령을 사용하여 새 코어 모듈을 추가합니다.[disconnected /] module add --name=MODULE_NAME --resources=PATH_TO_JDBC_JAR --dependencies=DEPENDENCIES
[disconnected /] module add --name=MODULE_NAME --resources=PATH_TO_JDBC_JAR --dependencies=DEPENDENCIESCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
다음 명령은 MySQL JDBC 드라이버 모듈을 추가합니다.
[disconnected /] module add --name=com.mysql --resources=/path/to/mysql-connector-j-8.0.33.jar --dependencies=jakarta.transaction.api,java.se,wildflyee.api,java.xml,java.xml.crypto,jdk.xml.dom
[disconnected /] module add --name=com.mysql --resources=/path/to/mysql-connector-j-8.0.33.jar --dependencies=jakarta.transaction.api,java.se,wildflyee.api,java.xml,java.xml.crypto,jdk.xml.domCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
관리 CLI를 시작하고 단일 단계에서 새 코어 모듈을 추가하려면 다음 명령을 사용합니다.
EAP_HOME/bin/jboss-cli.sh --command="module add --name=MODULE_NAME --resources=PATH_TO_JDBC_JAR --dependencies=DEPENDENCIES"
$ EAP_HOME/bin/jboss-cli.sh --command="module add --name=MODULE_NAME --resources=PATH_TO_JDBC_JAR --dependencies=DEPENDENCIES"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
이 명령을 사용하여 모듈을 추가 및 제거하는 방법에 대한 자세한 내용은
module --help를 실행합니다.
다음으로 애플리케이션 데이터 소스에서 참조하려면 JDBC 드라이버로 등록해야 합니다.
11.2.1.2. JDBC 드라이버 등록 링크 복사링크가 클립보드에 복사되었습니다!
드라이버 를 코어 모듈로 설치한 후 다음 관리 CLI 명령을 사용하여 JDBC 드라이버로 등록해야 합니다. 관리형 도메인에서 실행하는 경우 이 명령 앞에 /profile=PROFILE_NAME 이어야 합니다.
/subsystem=datasources/jdbc-driver=DRIVER_NAME:add(driver-name=DRIVER_NAME,driver-module-name=MODULE_NAME,driver-xa-datasource-class-name=XA_DATASOURCE_CLASS_NAME, driver-class-name=DRIVER_CLASS_NAME)
/subsystem=datasources/jdbc-driver=DRIVER_NAME:add(driver-name=DRIVER_NAME,driver-module-name=MODULE_NAME,driver-xa-datasource-class-name=XA_DATASOURCE_CLASS_NAME, driver-class-name=DRIVER_CLASS_NAME)
driver-class-name 매개변수는 JDBC 드라이버에서 /META-INF/services/java.sql.Driver 파일에서 두 개 이상의 클래스를 정의하는 경우에만 필요합니다.
예를 들어 MySQL 5.1.36 JDBC 드라이버 JAR의 /META-INF/services/java.sql.Driver 파일은 다음 두 개의 클래스를 정의합니다.
- com.mysql.cj.jdbc.Driver
- com.mysql.fabric.jdbc.FabricMySQLDriver
이 경우 driver-class-name=com.mysql.cj.jdbc.Driver 를 전달합니다.
예를 들어 다음 명령은 MySQL JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql,driver-xa-datasource-class-name=com.mysql.cj.jdbc.MysqlXADataSource, driver-class-name=com.mysql.cj.jdbc.Driver)
/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql,driver-xa-datasource-class-name=com.mysql.cj.jdbc.MysqlXADataSource, driver-class-name=com.mysql.cj.jdbc.Driver)
이제 애플리케이션 데이터 소스에서 JDBC 드라이버를 참조할 수 있습니다.
11.2.2. JAR 배포로 JDBC 드라이버 설치 링크 복사링크가 클립보드에 복사되었습니다!
JDBC 드라이버는 관리 CLI 또는 관리 콘솔을 사용하여 JAR 배포로 설치할 수 있습니다. 드라이버가 JDBC 4를 준수하는 한 배포 시 JDBC 드라이버로 자동 인식 및 설치됩니다.
다음 단계에서는 관리 CLI를 사용하여 JDBC 드라이버를 설치하는 방법을 설명합니다.
JDBC 드라이버에 권장되는 설치 방법은 코어 모듈로 설치하는 것입니다.
JDBC 드라이버를 다운로드합니다.
데이터베이스 벤더에서 적절한 JDBC 드라이버를 다운로드합니다. 공통 데이터베이스의 JDBC 드라이버에 대한 표준 다운로드 위치는 JDBC 드라이버 다운로드 위치를 참조하십시오.
JDBC 드라이버 JAR 파일이 ZIP 또는 TAR 아카이브에 포함된 경우 아카이브를 추출해야 합니다.
- JDBC 드라이버가 JDBC 4와 호환되지 않는 경우 JDBC 드라이버 JAR를 JDBC 4 호환으로 업데이트하는 단계를 참조하십시오.
JAR을 JBoss EAP에 배포합니다.
deploy PATH_TO_JDBC_JAR
deploy PATH_TO_JDBC_JARCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고관리형 도메인에서 적절한 서버 그룹을 지정합니다.
예를 들어 다음 명령은 MySQL JDBC 드라이버를 배포합니다.
deploy /path/to/mysql-connector-j-8.0.33.jar
deploy /path/to/mysql-connector-j-8.0.33.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터 소스를 정의할 때 사용할 배포된 드라이버 이름을 표시하는 JBoss EAP 서버 로그에 메시지가 표시됩니다.
WFLYJCA0018: Started Driver service with driver-name = mysql-connector-j-8.0.33.jar
WFLYJCA0018: Started Driver service with driver-name = mysql-connector-j-8.0.33.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 애플리케이션 데이터 소스에서 JDBC 드라이버를 참조할 수 있습니다.
JDBC 드라이버 JAR을 JDBC 4 호환으로 업데이트
JDBC 드라이버 JAR이 JDBC 4와 호환되지 않는 경우 다음 단계를 사용하여 배포할 수 있습니다.
- 비어 있는 임시 디렉토리를 만듭니다.
-
META-INF하위 디렉터리를 만듭니다. -
META-INF/services하위 디렉터리를 만듭니다. META-INF/services/java.sql.Driver파일을 생성하고 한 행을 추가하여 JDBC 드라이버의 정규화된 클래스 이름을 표시합니다.예를 들어, MySQL JDBC 드라이버에 대한 아래 행이 추가됩니다.
com.mysql.cj.jdbc.Driver
com.mysql.cj.jdbc.DriverCopy to Clipboard Copied! Toggle word wrap Toggle overflow JAR 명령줄 툴을 사용하여 이 새 파일을 JAR에 추가합니다.
jar \-uf jdbc-driver.jar META-INF/services/java.sql.Driver
jar \-uf jdbc-driver.jar META-INF/services/java.sql.DriverCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.2.3. JDBC 드라이버 다운로드 위치 링크 복사링크가 클립보드에 복사되었습니다!
다음 표는 JBoss EAP와 함께 사용되는 공통 데이터베이스의 JDBC 드라이버에 대한 표준 다운로드 위치를 제공합니다.
이러한 링크는 Red Hat에서 제어하거나 적극적으로 모니터링하지 않는 타사 웹 사이트를 가리킵니다. 데이터베이스에 대한 최신 드라이버의 경우 데이터베이스 공급 업체의 문서 및 웹 사이트를 확인하십시오.
| vendor | 위치 다운로드 |
|---|---|
| MySQL | |
| PostgreSQL | |
| Oracle | http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html |
| IBM | |
| Sybase | jConnect JDBC 드라이버는 SAP ASE 설치를 위한 SDK의 일부입니다. 현재 이 드라이버에 대한 별도의 다운로드 사이트는 자체적으로 없습니다. |
| Microsoft |
11.2.4. 벤더별 클래스에 액세스 링크 복사링크가 클립보드에 복사되었습니다!
경우에 따라 애플리케이션에서 JDBC API의 일부가 아닌 벤더별 기능을 사용해야 합니다. 이러한 경우 해당 애플리케이션에 종속성을 선언하여 벤더별 API에 액세스할 수 있습니다.
이것은 고급 사용법입니다. JDBC API에서 찾을 수 없는 기능이 필요한 애플리케이션만 이 절차를 구현해야 합니다.
이 프로세스는 재인증 메커니즘을 사용하고 벤더별 클래스에 액세스하는 경우 필요합니다.
MANIFEST.MF 파일 또는 jboss-deployment-structure.xml 파일을 사용하여 애플리케이션에 대한 종속성을 정의할 수 있습니다.
아직 수행하지 않은 경우 JDBC 드라이버를 코어 모듈로 설치합니다.
MANIFEST.MF 파일 사용
-
애플리케이션의
META-INF/MANIFEST.MF파일을 편집합니다. Dependencies행을 추가하고 모듈 이름을 지정합니다.예를 들어 아래 줄은
com.mysql모듈을 종속성으로 선언합니다.Dependencies: com.mysql
Dependencies: com.mysqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
jboss-deployment-structure.xml 파일 사용
-
애플리케이션의
META-INF/또는 article-INF/ 폴더에이라는 파일을 생성합니다.jboss-deployment-structure.xml dependencies요소를 사용하여 모듈을 지정합니다.예를 들어 다음 예제
jboss-deployment-structure.xml파일은com.mysql모듈을 종속성으로 선언합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
아래 예제 코드는 MySQL API에 액세스합니다.
벤더별 API 지침을 따르십시오. 연결이 CryostatJacamar 컨테이너에 의해 제어되기 때문입니다.
11.3. 데이터 소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
데이터 소스는 관리 콘솔 또는 관리 CLI를 사용하여 생성할 수 있습니다.
JBoss EAP 8.0을 사용하면 활성화된 속성과 같은 데이터 소스 속성 값에 표현식을 사용할 수 있습니다.
11.3.1. XA 데이터 소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI 또는 관리 콘솔을 사용하여 XA 이외의 데이터 소스를 생성할 수 있습니다.
관리 콘솔을 사용하여 XA 데이터 소스 정의
독립 실행형 또는 도메인 모드에서 데이터 소스로 이동합니다.
독립 실행형 모드에서 다음 탐색을 사용합니다.
구성 → Cryo stat → 데이터 소스 및 드라이버 → 데이터 소스
도메인 모드에서 다음 탐색을 사용합니다.
구성 → 프로필 → 전체 → 데이터 소스 및 드라이버 → 데이터 소스
- Add (+) 버튼을 클릭하고 Add Datasource 를 선택합니다.
- 데이터 소스 추가 마법사를 열고 데이터 소스 유형을 선택하고 다음을 클릭합니다. 이렇게 하면 데이터베이스에 대한 템플릿이 생성됩니다. 마법사의 다음 페이지는 선택한 데이터 소스에 고유한 값으로 미리 채워집니다. 이렇게 하면 데이터 소스 생성 프로세스가 쉬워집니다.
- 데이터 소스 생성 프로세스를 완료하기 전에 테스트 연결 페이지에서 연결을 테스트할 수 있습니다.
- 세부 정보를 검토하고 완료 를 클릭하여 데이터 소스를 생성합니다.
관리 CLI를 사용하여 XA 데이터 소스 정의
비 XA 데이터 소스는 data-source add management CLI 명령을 사용하여 정의할 수 있습니다.
- 아직 수행하지 않은 경우 적절한 JDBC 드라이버를 코어 모듈로 설치 및 등록합니다.
적절한 인수 값을 지정하여
data-source add명령을 사용하여 데이터 소스를 정의합니다.data-source add --name=DATASOURCE_NAME --jndi-name=JNDI_NAME --driver-name=DRIVER_NAME --connection-url=CONNECTION_URL --user-name=USER_NAME --password=PASSWORD
data-source add --name=DATASOURCE_NAME --jndi-name=JNDI_NAME --driver-name=DRIVER_NAME --connection-url=CONNECTION_URL --user-name=USER_NAME --password=PASSWORDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고관리형 도메인에서
--profile=PROFILE_NAME인수를 지정해야 합니다.이러한 매개변수 값에 대한 팁은 아래의 데이터 소스 매개변수 섹션을 참조하십시오.
자세한 예제는 지원되는 데이터베이스에 대한 데이터 소스 구성 예제 를 참조하십시오.
데이터 소스 매개변수
- jndi-name
-
데이터 소스에 대한 JNDI 이름은
java:/또는java:jboss/로 시작해야 합니다. 예:java:jboss/datasources/ExampleDS. - driver-name
드라이버 이름 값은 JDBC 드라이버가 코어 모듈 또는 JAR 배포로 설치되었는지에 따라 달라집니다.
- 코어 모듈의 경우 드라이버 이름 값은 등록 시 JDBC 드라이버에 지정된 이름이 됩니다.
JAR 배포의 경우
/META-INF/services/java.sql.Driver파일에 나열된 클래스가 하나뿐인 경우 드라이버 이름은 JAR의 이름입니다. 여러 클래스가 나열된 경우 값은JAR_NAME+ "_" +DRIVER_CLASS_NAME+ "_" +MAJOR_VERSION+ "_" +MINOR_VERSION(예:mysql-connector-java-5.1.36-bin.jar_com.mysql.jdbc.Driver_5_1)입니다.JDBC JAR이 배포될 때 JBoss EAP 서버 로그에 나열된 드라이버 이름도 확인할 수 있습니다.
WFLYJCA0018: Started Driver service with driver-name = mysql-connector-java-5.1.36-bin.jar_com.mysql.cj.jdbc.Driver_5_1
WFLYJCA0018: Started Driver service with driver-name = mysql-connector-java-5.1.36-bin.jar_com.mysql.cj.jdbc.Driver_5_1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- connection-url
- 지원되는 데이터베이스에 대한 연결 URL 형식에 대한 자세한 내용은 데이터 소스 연결 URL 목록을 참조하십시오.
사용 가능한 모든 데이터 소스 속성의 전체 목록은 데이터 소스 속성 섹션을 참조하십시오.
- user-name
- 새 데이터 소스 연결을 생성할 때 사용할 사용자 이름입니다.
- 암호
- 새 데이터 소스 연결을 생성할 때 사용할 암호입니다.
11.3.2. XA 데이터 소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI 또는 관리 콘솔을 사용하여 XA 데이터 소스를 생성할 수 있습니다.
관리 콘솔을 사용하여 XA 데이터 소스 정의
독립 실행형 또는 도메인 모드에서 데이터 소스로 이동합니다.
독립 실행형 모드에서 다음 탐색을 사용합니다.
구성 → Cryo stat → 데이터 소스 및 드라이버 → 데이터 소스
도메인 모드에서 다음 탐색을 사용합니다.
구성 → 프로필 → 전체 → 데이터 소스 및 드라이버 → 데이터 소스
- 추가(+) 버튼을 클릭하고 XA 데이터 소스 추가 를 선택합니다.
- XA 데이터 소스 추가 마법사를 열어 데이터 소스 유형을 선택하고 Next 를 클릭합니다. 이렇게 하면 데이터베이스에 대한 템플릿이 생성됩니다. 마법사의 다음 페이지는 선택한 데이터 소스에 고유한 값으로 미리 채워집니다. 이렇게 하면 데이터 소스 생성 프로세스가 쉬워집니다.
- 데이터 소스 생성 프로세스를 완료하기 전에 테스트 연결 페이지에서 연결을 테스트할 수 있습니다.
- 세부 정보를 검토하고 완료 를 클릭하여 데이터 소스를 생성합니다.
관리 CLI를 사용하여 XA 데이터 소스 정의
XA 데이터 소스는 xa-data-source add management CLI 명령을 사용하여 정의할 수 있습니다.
관리형 도메인에서 사용할 프로필을 지정해야 합니다. 관리 CLI 명령의 형식에 따라 명령 앞에 /profile=PROFILE_NAME 또는 --profile=PROFILE_NAME 인수를 전달합니다.
- 아직 수행하지 않은 경우 적절한 JDBC 드라이버를 코어 모듈로 설치 및 등록합니다.
적절한 인수 값을 지정하여
xa-data-source add명령을 사용하여 데이터 소스를 정의합니다.xa-data-source add --name=XA_DATASOURCE_NAME --jndi-name=JNDI_NAME --driver-name=DRIVER_NAME --xa-datasource-class=XA_DATASOURCE_CLASS --xa-datasource-properties={"ServerName"=>"HOST_NAME","DatabaseName"=>"DATABASE_NAME"}xa-data-source add --name=XA_DATASOURCE_NAME --jndi-name=JNDI_NAME --driver-name=DRIVER_NAME --xa-datasource-class=XA_DATASOURCE_CLASS --xa-datasource-properties={"ServerName"=>"HOST_NAME","DatabaseName"=>"DATABASE_NAME"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 매개변수 값에 대한 팁은 아래의 데이터 소스 매개변수 섹션을 참조하십시오.
XA 데이터 소스 속성을 설정합니다.
XA 데이터 소스를 정의할 때 하나 이상의 XA 데이터 소스 속성이 필요하거나 이전 단계에서 데이터 소스를 추가할 때 오류가 발생합니다. XA 데이터 소스를 정의할 때 설정되지 않은 속성은 나중에 개별적으로 설정할 수 있습니다.
서버 이름을 설정합니다.
/subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME/xa-datasource-properties=ServerName:add(value=HOST_NAME)
/subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME/xa-datasource-properties=ServerName:add(value=HOST_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터베이스 이름을 설정합니다.
/subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME/xa-datasource-properties=DatabaseName:add(value=DATABASE_NAME)
/subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME/xa-datasource-properties=DatabaseName:add(value=DATABASE_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
자세한 예제는 지원되는 데이터베이스에 대한 데이터 소스 구성 예제 를 참조하십시오.
데이터 소스 매개변수
- jndi-name
-
데이터 소스에 대한 JNDI 이름은
java:/또는java:jboss/로 시작해야 합니다. 예:java:jboss/datasources/ExampleDS. - driver-name
드라이버 이름 값은 JDBC 드라이버가 코어 모듈 또는 JAR 배포로 설치되었는지에 따라 달라집니다.
- 코어 모듈의 경우 드라이버 이름 값은 등록 시 JDBC 드라이버에 지정된 이름이 됩니다.
JAR 배포의 경우
/META-INF/services/java.sql.Driver파일에 나열된 클래스가 하나뿐인 경우 드라이버 이름은 JAR의 이름입니다. 여러 클래스가 나열된 경우 값은JAR_NAME+ "_" +DRIVER_CLASS_NAME+ "_" +MAJOR_VERSION+ "_" +MINOR_VERSION, 예를 들어mysql-connector-java-5.1.36-bin.jar_com.mysql.jdbc.Driver_5_1입니다.JDBC JAR이 배포될 때 JBoss EAP 서버 로그에 나열된 드라이버 이름도 확인할 수 있습니다.
WFLYJCA0018: Started Driver service with driver-name = mysql-connector-java-5.1.36-bin.jar_com.mysql.cj.jdbc.Driver_5_1
WFLYJCA0018: Started Driver service with driver-name = mysql-connector-java-5.1.36-bin.jar_com.mysql.cj.jdbc.Driver_5_1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- XA-datasource-class
-
jakarta.sql.XADataSource클래스의 JDBC 드라이버 구현에 대한 XA 데이터 소스 클래스를 지정합니다. - XA-datasource-properties
- XA 데이터 소스를 정의할 때 하나 이상의 XA 데이터 소스 속성이 필요하거나 추가하려고 할 때 오류가 발생합니다. 또한 XA 데이터 소스를 정의한 후 XA 데이터 소스에 속성을 추가할 수도 있습니다.
사용 가능한 모든 데이터 소스 속성의 전체 목록은 데이터 소스 속성 섹션을 참조하십시오.
11.4. 데이터 소스 수정 링크 복사링크가 클립보드에 복사되었습니다!
데이터 소스 설정은 관리 콘솔 또는 관리 CLI를 사용하여 구성할 수 있습니다.
JBoss EAP 8.0을 사용하면 활성화된 속성과 같은 데이터 소스 속성 값에 표현식을 사용할 수 있습니다.
11.4.1. XA 데이터 소스 수정 링크 복사링크가 클립보드에 복사되었습니다!
비 XA 데이터 소스 설정은 data-source management CLI 명령을 사용하여 업데이트할 수 있습니다. 독립형 또는 도메인 모드에서 관리 콘솔에서 데이터 소스 속성을 업데이트할 수도 있습니다.
- 독립 실행형 모드에서 구성 → Cryostat → 데이터 소스 → 드라이버 → 데이터 소스로 이동합니다.
- 도메인 모드에서 구성 → 프로필 → 전체 → 데이터 소스 → 데이터 소스로 이동합니다.
XA 데이터 소스가 Jakarta 트랜잭션과 통합될 수 있습니다. 데이터 소스를 Jakarta 트랜잭션과 통합하려면 jta 매개변수가 true 로 설정되어 있는지 확인합니다.
데이터 소스에 대한 설정 업데이트 예
데이터 소스 설정은 다음 관리 CLI 명령을 사용하여 업데이트할 수 있습니다.
data-source --name=DATASOURCE_NAME --ATTRIBUTE_NAME=ATTRIBUTE_VALUE
data-source --name=DATASOURCE_NAME --ATTRIBUTE_NAME=ATTRIBUTE_VALUE
관리형 도메인에서 --profile=PROFILE_NAME 인수를 지정해야 합니다.
변경 사항을 적용하려면 서버 다시 로드가 필요할 수 있습니다.
11.4.2. XA 데이터 소스 수정 링크 복사링크가 클립보드에 복사되었습니다!
XA 데이터 소스 설정은 xa-data-source management CLI 명령을 사용하여 업데이트할 수 있습니다. 독립형 또는 도메인 모드에서 관리 콘솔에서 데이터 소스 속성을 업데이트할 수도 있습니다.
- 독립 실행형 모드에서 구성 → Cryostat → 데이터 소스 → 드라이버 → 데이터 소스로 이동합니다.
- 도메인 모드에서 구성 → 프로필 → 전체 → 데이터 소스 → 데이터 소스로 이동합니다.
XA 데이터 소스 업데이트 예
다음 관리 CLI 명령을 사용하여 XA 데이터 소스 설정을 업데이트할 수 있습니다.
xa-data-source --name=XA_DATASOURCE_NAME --ATTRIBUTE_NAME=ATTRIBUTE_VALUE
xa-data-source --name=XA_DATASOURCE_NAME --ATTRIBUTE_NAME=ATTRIBUTE_VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고관리형 도메인에서
--profile=PROFILE_NAME인수를 지정해야 합니다.
XA 데이터 소스 속성 추가 예
다음 관리 CLI 명령을 사용하여 XA 데이터 소스 속성을 추가할 수 있습니다.
/subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME/xa-datasource-properties=PROPERTY:add(value=VALUE)
/subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME/xa-datasource-properties=PROPERTY:add(value=VALUE)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고관리형 도메인에서 이 명령 앞에
/profile=PROFILE_NAME이 있어야 합니다.
변경 사항을 적용하려면 서버 다시 로드가 필요할 수 있습니다.
11.5. 데이터 소스 제거 링크 복사링크가 클립보드에 복사되었습니다!
데이터 소스는 관리 콘솔 또는 관리 CLI를 사용하여 제거할 수 있습니다.
11.5.1. XA 데이터 소스 제거 링크 복사링크가 클립보드에 복사되었습니다!
비 XA 데이터 소스는 data-source remove management CLI 명령을 사용하여 제거할 수 있습니다. 독립형 또는 도메인 모드에서 관리 콘솔을 사용하여 데이터 소스를 제거할 수도 있습니다.
- 독립 실행형 모드에서 구성 → Cryostat → 데이터 소스 → 드라이버 → 데이터 소스로 이동합니다.
- 도메인 모드에서 구성 → 프로필 → 전체 → 데이터 소스 → 데이터 소스로 이동합니다.
다음 명령을 사용하여 XA 이외의 데이터 소스를 제거합니다.
data-source remove --name=DATASOURCE_NAME
data-source remove --name=DATASOURCE_NAME
관리형 도메인에서 --profile=PROFILE_NAME 인수를 지정해야 합니다.
데이터 소스를 제거한 후 서버를 다시 로드해야 합니다.
11.5.2. XA 데이터 소스 제거 링크 복사링크가 클립보드에 복사되었습니다!
xa-data-source remove management CLI 명령을 사용하여 XA 데이터 소스를 제거할 수 있습니다. 독립형 또는 도메인 모드에서 관리 콘솔을 사용하여 데이터 소스를 제거할 수도 있습니다.
- 독립 실행형 모드에서 구성 → Cryostat → 데이터 소스 → 드라이버 → 데이터 소스로 이동합니다.
- 도메인 모드에서 구성 → 프로필 → 전체 → 데이터 소스 → 데이터 소스로 이동합니다.
다음 명령을 사용하여 XA 데이터 소스를 제거합니다.
xa-data-source remove --name=XA_DATASOURCE_NAME
xa-data-source remove --name=XA_DATASOURCE_NAME
관리형 도메인에서 --profile=PROFILE_NAME 인수를 지정해야 합니다.
XA 데이터 소스를 제거한 후 서버를 다시 로드해야 합니다.
11.6. 데이터 소스 연결 테스트 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI 또는 관리 콘솔을 사용하여 데이터 소스 연결을 테스트하여 설정이 올바른지 확인할 수 있습니다.
관리 CLI를 사용하여 데이터 소스 연결 테스트
다음 관리 CLI 명령을 사용하여 데이터 소스의 연결을 테스트할 수 있습니다.
/subsystem=datasources/data-source=DATASOURCE_NAME:test-connection-in-pool
/subsystem=datasources/data-source=DATASOURCE_NAME:test-connection-in-pool
관리형 도메인에서 이 명령 앞에 /host=HOST_NAME/server=SERVER_NAME 이어야 합니다. XA 데이터 소스를 테스트하는 경우 data-source=DATASOURCE_NAME 을 xa-data-source=XA_DATASOURCE_NAME 로 바꿉니다.
관리 콘솔을 사용하여 데이터 소스 연결 테스트
관리 콘솔에서 데이터 소스 추가 마법사를 사용하는 경우 데이터 소스를 생성하기 전에 연결을 테스트할 수 있습니다. 마법사의 연결 테스트 화면에서 연결 테스트 버튼을 클릭합니다.
데이터 소스가 추가되면 다음 절차를 사용하여 연결을 테스트할 수 있습니다.
- 독립 실행형 모드 또는 구성 → 프로필 → 전체 → 데이터 소스 → 도메인 모드에서 데이터 소스 → 데이터 소스 → 데이터 소스로 이동합니다.
- 데이터 소스를 선택합니다.
- 드롭다운 목록에서 테스트 연결을 선택합니다.
11.7. 데이터 소스 연결 플러시 링크 복사링크가 클립보드에 복사되었습니다!
다음 관리 CLI 명령을 사용하여 데이터 소스 연결을 플러시할 수 있습니다.
관리형 도메인에서 이러한 명령 앞에 /host=HOST_NAME/server=SERVER_NAME 이어야 합니다.
풀의 모든 연결을 플러시합니다.
/subsystem=datasources/data-source=DATASOURCE_NAME:flush-all-connection-in-pool
/subsystem=datasources/data-source=DATASOURCE_NAME:flush-all-connection-in-poolCopy to Clipboard Copied! Toggle word wrap Toggle overflow 풀의 모든 연결을 정상적으로 플러시합니다.
/subsystem=datasources/data-source=DATASOURCE_NAME:flush-gracefully-connection-in-pool
/subsystem=datasources/data-source=DATASOURCE_NAME:flush-gracefully-connection-in-poolCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서버는 연결이 유휴 상태가 될 때까지 기다린 후 플러시합니다.
풀의 모든 유휴 연결을 플러시합니다.
/subsystem=datasources/data-source=DATASOURCE_NAME:flush-idle-connection-in-pool
/subsystem=datasources/data-source=DATASOURCE_NAME:flush-idle-connection-in-poolCopy to Clipboard Copied! Toggle word wrap Toggle overflow 풀에서 유효하지 않은 모든 연결을 플러시합니다.
/subsystem=datasources/data-source=DATASOURCE_NAME:flush-invalid-connection-in-pool
/subsystem=datasources/data-source=DATASOURCE_NAME:flush-invalid-connection-in-poolCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서버는 데이터베이스 연결 유효성 검사에서 설명하는
valid-connection-checker-class-name또는check-valid-connection-sql검증 메커니즘에 의해 유효하지 않은 연결 (예:)을 플러시합니다.
관리 콘솔을 사용하여 연결을 플러시할 수도 있습니다. 런타임 탭에서 서버를 선택하고 데이터 소스 를 선택하고 데이터 소스를 선택한 다음, 드롭다운을 사용하여 적절한 작업을 선택합니다.
11.8. XA 데이터 소스 복구 링크 복사링크가 클립보드에 복사되었습니다!
XA 데이터 소스는 트랜잭션 관리자가 조정하고 여러 리소스를 단일 트랜잭션에 확장할 수 있는 XA 글로벌 트랜잭션에 참여할 수 있는 데이터 소스입니다. 참가자 중 하나가 변경 사항을 커밋하지 못하면 다른 참가자가 트랜잭션을 중단하고 트랜잭션이 발생하기 전과 같이 상태를 복원합니다. 이는 일관성을 유지하고 잠재적인 데이터 손실 또는 손상을 방지하기 위한 것입니다.
XA 복구는 트랜잭션의 영향을 받는 모든 리소스가 업데이트되거나 롤백되도록 하는 프로세스로, 리소스 또는 트랜잭션 참가자가 충돌하거나 사용할 수 없게 되는 경우에도 마찬가지입니다. XA 복구는 사용자 개입없이 수행됩니다.
각 XA 리소스에는 구성과 관련된 복구 모듈이 있어야 합니다. 복구 모듈은 복구가 수행될 때 실행되는 코드입니다. JBoss EAP는 JDBC XA 리소스의 복구 모듈을 자동으로 등록합니다. 사용자 지정 복구 코드를 구현하려는 경우 XA 데이터 소스에 사용자 지정 모듈을 등록할 수 있습니다. 복구 모듈은 com.arjuna.ats.jta.recovery.XAResourceRecovery 클래스를 확장해야합니다.
11.8.1. XA 복구 구성 링크 복사링크가 클립보드에 복사되었습니다!
대부분의 JDBC 리소스의 경우 복구 모듈은 해당 리소스와 자동으로 연결됩니다. 이러한 경우 복구 모듈이 리소스에 연결하여 복구를 수행할 수 있는 옵션만 구성해야 합니다.
다음 표에서는 XA 복구와 관련된 XA 데이터 소스 매개변수를 설명합니다. 이러한 각 구성 속성은 데이터 소스를 생성하는 동안 또는 이후에 설정할 수 있습니다. 관리 콘솔 또는 관리 CLI를 사용하여 설정할 수 있습니다. XA 데이터 소스 구성에 대한 자세한 내용은 XA 데이터 소스 수정 을 참조하십시오.
| 속성 | 설명 |
|---|---|
| recovery-username | 복구를 위해 리소스에 연결하는 데 사용할 사용자 이름입니다. 지정하지 않으면 데이터 소스 보안 설정이 사용됩니다. |
| recovery-password | 복구를 위해 리소스에 연결하는 데 사용할 암호입니다. 지정하지 않으면 데이터 소스 보안 설정이 사용됩니다. |
| recovery-security-domain | 복구를 위해 리소스에 연결하는 데 사용할 보안 도메인입니다. |
| recovery-plugin-class-name |
사용자 지정 복구 모듈을 사용해야 하는 경우 이 속성을 모듈의 정규화된 클래스 이름으로 설정합니다. 모듈은 |
| recovery-plugin-properties |
속성을 설정해야 하는 사용자 지정 복구 모듈을 사용하는 경우 이 속성을 속성의 쉼표로 구분된 |
XA 복구 비활성화
여러 XA 데이터 소스가 동일한 물리적 데이터베이스에 연결하는 경우 일반적으로 XA 복구는 해당 데이터 중 하나에 대해서만 구성해야 합니다.
다음 관리 CLI 명령을 사용하여 XA 데이터 소스에 대한 복구를 비활성화합니다.
/subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME:write-attribute(name=no-recovery,value=true)
/subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME:write-attribute(name=no-recovery,value=true)
11.8.2. 벤더별 XA 복구 링크 복사링크가 클립보드에 복사되었습니다!
벤더별 구성
일부 데이터베이스에는 JBoss EAP 트랜잭션 관리자가 관리하는 XA 트랜잭션을 결합하기 위해 특정 구성이 필요합니다. 자세한 내용 및 최신 정보는 데이터베이스 공급 업체의 설명서를 참조하십시오.
- MySQL
- 특별한 구성이 필요하지 않습니다. 자세한 내용은 MySQL 설명서를 참조하십시오.
자동화된 XA 복구의 경우 MySQL 8 이상에는 특별한 구성이 필요합니다. 자세한 내용은 JBoss EAP 8.0 지원 구성 을 참조하십시오.
- PostgreSQL 및 Postgres Plus Advanced Server
-
PostgreSQL이 XA 트랜잭션을 처리할 수 있으려면 구성 매개변수
max_prepared_Cryostats를0보다 크고max_connections보다 크거나 같은 값으로 변경합니다. - Oracle
Oracle 사용자
USER가 복구에 필요한 테이블에 액세스할 수 있는지 확인합니다.GRANT SELECT ON sys.dba_pending_transactions TO USER; GRANT SELECT ON sys.pending_trans$ TO USER; GRANT SELECT ON sys.dba_2pc_pending TO USER; GRANT EXECUTE ON sys.dbms_xa TO USER;
GRANT SELECT ON sys.dba_pending_transactions TO USER; GRANT SELECT ON sys.pending_trans$ TO USER; GRANT SELECT ON sys.dba_2pc_pending TO USER; GRANT EXECUTE ON sys.dbms_xa TO USER;Copy to Clipboard Copied! Toggle word wrap Toggle overflow Oracle 사용자에게 적절한 권한이 없는 경우 다음과 같은 오류가 표시될 수 있습니다.
WARN [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.recovery.xarecovery1] Local XARecoveryModule.xaRecovery got XA exception jakarta.transaction.xa.XAException, XAException.XAER_RMERR
WARN [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.recovery.xarecovery1] Local XARecoveryModule.xaRecovery got XA exception jakarta.transaction.xa.XAException, XAException.XAER_RMERRCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Microsoft SQL Server
- 자세한 내용은 XA 트랜잭션 이해 를 포함하여 Microsoft SQL Server 설명서를 참조하십시오.
- IBM DB2
- 특별한 구성이 필요하지 않습니다. 자세한 내용은 IBM DB2 설명서를 참조하십시오.
- Sybase
Sybase는 데이터베이스에서 XA 트랜잭션을 활성화할 것으로 예상합니다. 올바른 데이터베이스 구성이 없으면 XA 트랜잭션이 작동하지 않습니다.
enable xact 조정매개변수는 Adaptive Server 트랜잭션 조정 서비스를 활성화하거나 비활성화합니다. 이 매개변수가 활성화되면 Adaptive Server는 원격 Adaptive Server 데이터 커밋 또는 원래 트랜잭션으로 롤백되도록 합니다.트랜잭션 조정을 활성화하려면 다음을 사용합니다.
sp_configure 'enable xact coordination', 1
sp_configure 'enable xact coordination', 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - MariaDB
- 특별한 구성이 필요하지 않습니다. 자세한 내용은 MariaDB 설명서를 참조하십시오.
확인된 문제
XA 트랜잭션 처리와 관련된 알려진 문제는 JBoss EAP 8.0에서 지원되는 특정 데이터베이스 및 JDBC 드라이버 버전에 대한 것입니다. 지원되는 데이터베이스에 대한 최신 정보는 JBoss EAP 8.0 지원 구성을 참조하십시오.
- MySQL
- MySQL은 XA 트랜잭션을 완전히 처리할 수 없습니다. 클라이언트가 MySQL과 연결이 끊어지면 이러한 트랜잭션에 대한 모든 정보가 손실됩니다. 자세한 내용은 이 MySQL 버그 를 참조하십시오. 이 문제는 MySQL 5.7에서 해결되었습니다.
- PostgreSQL 및 Postgres Plus Advanced Server
JDBC 드라이버는 2단계 커밋 단계 (2PC)의 커밋 단계에서 네트워크 오류가 발생하면
XAER_RMERRXAException 오류 코드를 반환합니다. 이 오류는 복구할 수 없는 치명적인 이벤트를 트랜잭션 관리자에게 신호하지만 트랜잭션은 데이터베이스 측의무결 상태에 남아 있으며 네트워크 연결이 다시 설정된 후 쉽게 수정할 수 있습니다. 올바른 반환 코드는XAER_RMFAIL또는XAER_RETRY여야 합니다. 잘못된 오류 코드로 인해 트랜잭션이 JBoss EAP 측의Heuristic상태로 남아 있으며 수동 개입이 필요한 데이터베이스에 잠금을 유지합니다. 자세한 내용은 이 PostgreSQL 버그 를 참조하십시오.1단계 커밋 최적화가 사용될 때 연결 오류가 발생하는 경우 JDBC 드라이버는
XAER_RMERR을 반환하지만XAER_RMFAIL오류 코드를 반환해야 합니다. 이 경우 데이터베이스는 1단계 커밋 중에 데이터를 커밋하고 해당 시점에 연결이 중단되면 트랜잭션이 롤백되었음을 알릴 수 있습니다.Postgres Plus JDBC 드라이버는 Postgres Plus Server에 존재하는 모든 준비된 트랜잭션에 대한 XID를 반환하므로 XID가 속한 데이터베이스를 확인할 수 없습니다. JBoss EAP에서 동일한 데이터베이스에 대해 두 개 이상의 데이터 소스를 정의하는 경우 잘못된 계정에서 트랜잭션 복구 시도가 실행될 수 있으므로 복구에 실패합니다.
- Oracle
JDBC 드라이버는 Recovery Manager가 일부 사용자 자격 증명으로 구성된 데이터 소스를 사용하여 복구를 호출할 때 데이터베이스 인스턴스의 모든 사용자에게 속하는 XID를 반환합니다. JDBC 드라이버는
ORA-24774 예외를 throw합니다. 다른 사용자에게 속하는 XID를 복구하려고 하므로 지정된 트랜잭션으로 전환할 수 없습니다.이 문제의 해결 방법은 복구 데이터 소스 구성에 사용되는 자격 증명이 사용자에게
FORCE ANY TRANSACTION권한을 부여하는 것입니다. 권한 구성에 대한 자세한 내용은 작업 내 트랜잭션 수동 덮어쓰기를 참조하십시오.- Microsoft SQL Server
JDBC 드라이버는 2단계 커밋 단계 (2PC)의 커밋 단계에서 네트워크 오류가 발생하면
XAER_RMERRXAException 오류 코드를 반환합니다. 이 오류는 복구할 수 없는 치명적인 이벤트를 트랜잭션 관리자에게 신호하지만 트랜잭션은 데이터베이스 측의무결 상태에 남아 있으며 네트워크 연결이 다시 설정된 후 쉽게 수정할 수 있습니다. 올바른 반환 코드는XAER_RMFAIL또는XAER_RETRY여야 합니다. 잘못된 오류 코드로 인해 트랜잭션이 JBoss EAP 측의Heuristic상태로 남아 있으며 수동 개입이 필요한 데이터베이스에 잠금을 유지합니다. 자세한 내용은 이 Microsoft SQL Server 문제 보고서를 참조하십시오.1단계 커밋 최적화가 사용될 때 연결 오류가 발생하는 경우 JDBC 드라이버는
XAER_RMERR을 반환하지만XAER_RMFAIL오류 코드를 반환해야 합니다. 이 경우 데이터베이스는 1단계 커밋 중에 데이터를 커밋하고 해당 시점에 연결이 중단되면 트랜잭션이 롤백되었음을 알릴 수 있습니다.- IBM DB2
-
1단계 커밋 중에 연결 오류가 발생하면 JDBC 드라이버는
XAER_RETRY를 반환하지만XAER_RMFAIL오류 코드를 반환해야 합니다. 이 경우 데이터베이스는 1단계 커밋 중에 데이터를 커밋하고 해당 시점에 연결이 중단되면 트랜잭션이 롤백되었음을 알릴 수 있습니다. - Sybase
JDBC 드라이버는 2단계 커밋 단계 (2PC)의 커밋 단계에서 네트워크 오류가 발생하면
XAER_RMERRXAException 오류 코드를 반환합니다. 이 오류는 복구할 수 없는 치명적인 이벤트를 트랜잭션 관리자에게 신호하지만 트랜잭션은 데이터베이스 측의무결 상태에 남아 있으며 네트워크 연결이 다시 설정된 후 쉽게 수정할 수 있습니다. 올바른 반환 코드는XAER_RMFAIL또는XAER_RETRY여야 합니다. 잘못된 오류 코드로 인해 트랜잭션이 JBoss EAP 측의Heuristic상태로 남아 있으며 수동 개입이 필요한 데이터베이스에 잠금을 유지합니다.1단계 커밋 최적화가 사용될 때 연결 오류가 발생하는 경우 JDBC 드라이버는
XAER_RMERR을 반환하지만XAER_RMFAIL오류 코드를 반환해야 합니다. 이 경우 데이터베이스는 1단계 커밋 중에 데이터를 커밋하고 해당 시점에 연결이 중단되면 트랜잭션이 롤백되었음을 알릴 수 있습니다.Sybase 트랜잭션 분기가 준비 상태에 있기 전에 Sybase 15.7 또는 16 데이터베이스에 삽입된 XA 트랜잭션이 실패하면 XA 트랜잭션을 반복하고 동일한 기본 키로 동일한 레코드를 삽입하면
com.sybase.jdbc4.jdbc.jdbc.jdbc.jdbc.jdbc.SybSQLException: 복제된 키를 삽입해야합니다. 이 예외는 원래 완료되지 않은 Sybase 트랜잭션 분기가 롤백될 때까지 발생합니다.- MariaDB
- MariaDB는 XA 트랜잭션을 완전히 처리할 수 없습니다. 클라이언트가 MariaDB와 연결이 끊어지면 이러한 트랜잭션에 대한 모든 정보가 손실됩니다.
- MariaDB Galera Cluster
- XA 트랜잭션은 MariaDB Galera 클러스터에서 지원되지 않습니다.
11.9. 데이터베이스 연결 유효성 검사 링크 복사링크가 클립보드에 복사되었습니다!
데이터베이스 유지 관리, 네트워크 문제 또는 기타 중단 이벤트로 인해 JBoss EAP가 데이터베이스에 대한 연결이 끊어질 수 있습니다. 이러한 상황에서 복구하기 위해 데이터 소스에 대한 데이터베이스 연결 유효성 검사를 활성화할 수 있습니다.
데이터베이스 연결 유효성 검사를 구성하려면 유효성 검사가 발생할 때 정의할 유효성 검사 타이밍 방법, 유효성 검사 수행 방법을 결정하는 유효성 검사 메커니즘 및 예외 처리 방법을 정의하는 예외 정렬기를 지정합니다.To configure database connection validation, you specify the validation timing method to define when the validation occurs, the validation mechanism to determine how the validation is performed, and the exception sorter to define how exceptions are handled.
검증 타이밍 방법 중 하나를 선택합니다.
- validate-on-match
validate-on-match방법이true로 설정되면 다음 단계에서 지정된 검증 메커니즘을 사용하여 연결 풀에서 확인될 때마다 데이터베이스 연결의 유효성을 검사합니다.연결이 유효하지 않은 경우 로그에 경고가 기록되고 풀의 다음 연결이 검색됩니다. 이 프로세스는 유효한 연결이 발견될 때까지 계속됩니다. 풀의 모든 연결을 순환하지 않으려면
use-fast-fail옵션을 사용할 수 있습니다. 풀에 유효한 연결이 없으면 새 연결이 생성됩니다. 연결 생성에 실패하면 요청하는 애플리케이션에 예외가 반환됩니다.- background-validation
background-validation방법이true로 설정되면 사용하기 전에 백그라운드 스레드에서 정기적으로 연결을 검증합니다. 검증 빈도는background-validation-millis속성으로 지정됩니다.background-validation-millis의 기본값은0이며 이는 비활성화되어 있음을 의미합니다.background-validation-millis속성의 값을 결정할 때 다음을 고려하십시오.-
이 값은
idle-timeout-minutes설정과 동일한 값으로 설정해서는 안 됩니다. - 값이 낮아지면 풀이 더 자주 검증되고 풀에서 유효하지 않은 연결이 더 빨리 제거됩니다.
- 더 낮은 값은 더 많은 데이터베이스 리소스를 사용합니다. 값이 클수록 연결 유효성 검사 검사가 줄어들고 데이터베이스 리소스를 더 적게 사용하지만 중단된 연결은 더 오랜 시간 동안 탐지되지 않습니다.
-
이 값은
참고이러한 검증 방법은 다음 예와 같이 함께 사용할 수 없습니다.
-
validate-on-match가true로 설정된 경우background-validation를false로 설정해야 합니다. -
background-validation가true로 설정된 경우validate-on-match를false로 설정해야 합니다.
이러한 유효성 검사 방법에 대한 비교 매트릭스는 유효성 검사 타이밍 방법 비교 를 참조하십시오.
검증 메커니즘 중 하나를 선택합니다.
- valid-connection-checker-class-name
valid-connection-checker-class-name을 사용하는 것이 선호되는 검증 메커니즘입니다. 이는 사용 중인 특정 데이터베이스에 대한 연결의 유효성을 검사하는 데 사용되는 연결 검사 클래스를 지정합니다. JBoss EAP는 다음과 같은 연결 검사기를 제공합니다.-
org.jboss.jca.adapters.jdbc.extensions.db2.DB2ValidConnectionChecker -
org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker -
org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLReplicationValidConnectionChecker -
org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker -
org.jboss.jca.adapters.jdbc.extensions.novendor.JDBC4ValidConnectionChecker -
org.jboss.jca.adapters.jdbc.extensions.novendor.NullValidConnectionChecker -
org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker -
org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker -
org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseValidConnectionChecker
-
- check-valid-connection-sql
check-valid-connection-sql을 사용하여 연결 유효성을 검사하는 데 사용할 SQL 문을 제공합니다.다음은 Oracle 연결의 유효성을 검사하는 데 사용할 수 있는 예제 SQL 문입니다.
select 1 from dual
select 1 from dualCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음은 MySQL 또는 PostgreSQL 연결의 유효성을 검사하는 데 사용할 수 있는 예제 SQL 문입니다.
select 1
select 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
예외 분류 클래스 이름을 설정합니다.
예외가 치명적으로 표시되면 연결이 트랜잭션에 참여하더라도 즉시 연결이 닫힙니다. 예외 정렬 클래스 옵션을 사용하여 치명적인 연결 예외 후에 적절하게 감지 및 정리합니다. 데이터 소스 유형에 적합한 JBoss EAP 예외 분류기를 선택합니다.
-
org.jboss.jca.adapters.jdbc.extensions.db2.DB2ExceptionSorter -
org.jboss.jca.adapters.jdbc.extensions.informix.InformixExceptionSorter -
org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLExceptionSorter -
org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter -
org.jboss.jca.adapters.jdbc.extensions.novendor.NullExceptionSorter -
org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter -
org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter -
org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseExceptionSorter
-
11.10. 데이터 소스 보안 링크 복사링크가 클립보드에 복사되었습니다!
데이터 소스 보안은 데이터 소스 연결에 대한 암호를 암호화하거나 모호하게 하는 것을 나타냅니다. 이러한 암호는 구성 파일의 일반 텍스트로 저장할 수 있지만 이는 보안 위험을 나타냅니다.
데이터 소스 보안에 사용할 수 있는 몇 가지 방법이 있습니다. 각각에 대한 예는 아래에 포함되어 있습니다.
보안 도메인을 사용하여 데이터 소스 보안
보안 도메인을 사용하여 데이터 소스를 보호하려면 다음 단계를 사용합니다.
새 보안 도메인을 생성합니다.
/subsystem=security/security-domain=DsRealm:add(cache-type=default) /subsystem=security/security-domain=DsRealm/authentication=classic:add(login-modules=[{code=ConfiguredIdentity,flag=required,module-options={userName=sa, principal=sa, password=sa}}])/subsystem=security/security-domain=DsRealm:add(cache-type=default) /subsystem=security/security-domain=DsRealm/authentication=classic:add(login-modules=[{code=ConfiguredIdentity,flag=required,module-options={userName=sa, principal=sa, password=sa}}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터 소스에 대한 보안 도메인이 정의됩니다. 다음 XML 추출은 CLI 명령을 호출한 결과입니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 데이터 소스를 추가합니다.
data-source add --name=securityDs --jndi-name=java:jboss/datasources/securityDs --connection-url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1 --driver-name=h2 --new-connection-sql="select current_user()"
data-source add --name=securityDs --jndi-name=java:jboss/datasources/securityDs --connection-url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1 --driver-name=h2 --new-connection-sql="select current_user()"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터 소스에 보안 도메인을 설정합니다.
data-source --name=securityDs --security-domain=DsRealm
data-source --name=securityDs --security-domain=DsRealmCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 적용하려면 서버를 다시 로드합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
여러 데이터 소스가 있는 보안 도메인을 사용하는 경우 보안 도메인에서 캐싱을 비활성화합니다. 이 작업은 cache-type 속성의 값을 none 으로 설정하거나 속성을 완전히 제거하여 수행할 수 있지만 캐싱이 필요한 경우 각 데이터 소스에 대해 별도의 보안 도메인을 사용합니다.
다음 XML 추출은 DsRealm 으로 보안된 데이터 소스를 보여줍니다.
보안 도메인 사용에 대한 자세한 내용은 Identity Management 구성 방법을 참조하십시오.
암호 자격 증명 모음을 사용하여 데이터 소스 보안
다음 단계를 사용하여 암호 자격 증명 모음을 사용하여 데이터 소스를 보호합니다.
ExampleDS 데이터 소스에 대한 암호 자격 증명 모음을 설정합니다.
data-source --name=ExampleDS --password=${VAULT::ds_ExampleDS::password::N2NhZDYzOTMtNWE0OS00ZGQ0LWE4MmEtMWNlMDMyNDdmNmI2TElORV9CUkVBS3ZhdWx0}data-source --name=ExampleDS --password=${VAULT::ds_ExampleDS::password::N2NhZDYzOTMtNWE0OS00ZGQ0LWE4MmEtMWNlMDMyNDdmNmI2TElORV9CUkVBS3ZhdWx0}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드하여 변경 사항을 구현합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 XML 보안 요소가 암호 자격 증명 모음으로 보안된 ExampleDS 데이터 소스에 추가됩니다.
<security>
<user-name>admin</user-name>
<password>${VAULT::ds_ExampleDS::password::N2NhZDYzOTMtNWE0OS00ZGQ0LWE4MmEtMWNlMDMyNDdmNmI2TElORV9CUkVBS3ZhdWx0}</password>
</security>
<security>
<user-name>admin</user-name>
<password>${VAULT::ds_ExampleDS::password::N2NhZDYzOTMtNWE0OS00ZGQ0LWE4MmEtMWNlMDMyNDdmNmI2TElORV9CUkVBS3ZhdWx0}</password>
</security>
Password Vault 사용에 대한 자세한 내용은 JBoss EAP 서버 보안 구성 가이드의 Password Vault 섹션을 참조하십시오.
인증 정보 저장소를 사용하여 데이터 소스 보안
인증 정보 저장소를 사용하여 암호를 제공할 수도 있습니다. elytron 하위 시스템은 JBoss EAP 전체에서 암호를 안전하게 저장하고 사용할 수 있도록 자격 증명 저장소를 생성하는 기능을 제공합니다. 자격 증명 저장소 생성 및 사용에 대한 자세한 내용은 JBoss EAP 서버 보안 구성 가이드의 자격 증명 저장소 섹션에서 확인할 수 있습니다.
ExampleDS에 인증 정보 저장소 참조 추가
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=credential-reference,value={store=exampleCS, alias=example-ds-pw})
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=credential-reference,value={store=exampleCS, alias=example-ds-pw})
인증 컨텍스트를 사용하여 데이터 소스 보안
Elytron 인증 컨텍스트를 사용하여 사용자 이름과 암호를 제공할 수도 있습니다.
다음 단계를 사용하여 데이터 소스 보안에 대한 인증 컨텍스트를 구성하고 사용합니다.
암호및사용자 이름제거/subsystem=datasources/data-source=ExampleDS:undefine-attribute(name=password) /subsystem=datasources/data-source=ExampleDS:undefine-attribute(name=user-name)
/subsystem=datasources/data-source=ExampleDS:undefine-attribute(name=password) /subsystem=datasources/data-source=ExampleDS:undefine-attribute(name=user-name)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터 소스에 대해 Elytron 보안을 활성화합니다.
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=elytron-enabled,value=true) reload
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=elytron-enabled,value=true) reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 인증 정보에 대한 인증 구성을 생성합니다.인증 구성에는 데이터 소스가 연결할 때 사용할 자격 증명이 포함되어 있습니다. 다음 예제에서는 인증 정보 저장소에 대한 참조를 사용하지만 Elytron 보안 도메인을 사용할 수도 있습니다.
/subsystem=elytron/authentication-configuration=exampleAuthConfig:add(authentication-name=sa,credential-reference={clear-text=sa})/subsystem=elytron/authentication-configuration=exampleAuthConfig:add(authentication-name=sa,credential-reference={clear-text=sa})Copy to Clipboard Copied! Toggle word wrap Toggle overflow authentication-context를 생성합니다./subsystem=elytron/authentication-context=exampleAuthContext:add(match-rules=[{authentication-configuration=exampleAuthConfig}])/subsystem=elytron/authentication-context=exampleAuthContext:add(match-rules=[{authentication-configuration=exampleAuthConfig}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인증 컨텍스트를 사용하도록 데이터 소스를 업데이트합니다.
다음 예제에서는 인증 컨텍스트를 사용하도록
ExampleDS를 업데이트합니다./subsystem=datasources/data-source=ExampleDS:write-attribute(name=authentication-context,value=exampleAuthContext) reload
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=authentication-context,value=exampleAuthContext) reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고authentication-context속성이 설정되지 않고elytron-enabled속성이true로 설정된 경우 JBoss EAP는 인증에 현재 컨텍스트를 사용합니다.
Kerberos를 사용하여 데이터 소스 보안
kerberos 인증을 사용하여 데이터 소스를 보호하려면 다음 구성이 필요합니다.
- Kerberos는 데이터베이스 서버에서 구성됩니다.
- JBoss EAP 호스트 서버에는 데이터베이스 서버의 키탭 항목이 있습니다.
kerberos를 사용하여 데이터 소스를 보호하려면 다음을 수행합니다.
kerberos를 사용하도록 JBoss EAP 구성.
/system-property=java.security.krb5.conf:add(value="/path/to/krb5.conf") /system-property=sun.security.krb5.debug:add(value="false") /system-property=sun.security.spnego.debug:add(value="false")
/system-property=java.security.krb5.conf:add(value="/path/to/krb5.conf") /system-property=sun.security.krb5.debug:add(value="false") /system-property=sun.security.spnego.debug:add(value="false")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 디버깅의 경우
sun.security.krb5.debug및sun.security.spnego.debug값을true로 변경합니다. 프로덕션 환경에서는 값을false로 설정하는 것이 좋습니다.보안을 구성합니다.
레거시 보안 또는 Elytron 보안을 사용하여 데이터 소스를 보호할 수 있습니다.
레거시 보안과 함께 kerberos를 사용하려면 다음을 수행합니다.
캐시에서 만료된 티켓을 정기적으로 제거하도록 infinispan 캐시를 구성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 속성은 티켓 만료를 정의합니다.
-
Lifespan: KDC에서 새 인증서를 요청하는 간격(밀리초)입니다.lifespan속성의 값을 KDC에서 정의한 라이프사이클보다 작아야 합니다. -
max-idle: 사용되지 않는 경우 유효한 티켓을 캐시에서 제거해야 하는 간격(밀리초)입니다. -
Max-entries: 캐시에 보관해야 할 kerberos 티켓의 최대 수입니다. 값은 데이터 소스에서 구성된 연결 수에 해당합니다.
-
보안 도메인을 생성합니다.
batch /subsystem=security/security-domain=KerberosDatabase:add(cache-type=infinispan) /subsystem=security/security-domain=KerberosDatabase/authentication=classic:add /subsystem=security/security-domain=KerberosDatabase/authentication=classic/login-module="KerberosDatabase-Module":add(code="org.jboss.security.negotiation.KerberosLoginModule",module="org.jboss.security.negotiation",flag=required, module-options={ "debug" => "false", "storeKey" => "false", "useKeyTab" => "true", "keyTab" => "/path/to/eap.keytab", "principal" => "PRINCIPAL@SERVER.COM", "doNotPrompt" => "true", "refreshKrb5Config" => "true", "isInitiator" => "true", "addGSSCredential" => "true", "credentialLifetime" => "-1"}) run-batchbatch /subsystem=security/security-domain=KerberosDatabase:add(cache-type=infinispan) /subsystem=security/security-domain=KerberosDatabase/authentication=classic:add /subsystem=security/security-domain=KerberosDatabase/authentication=classic/login-module="KerberosDatabase-Module":add(code="org.jboss.security.negotiation.KerberosLoginModule",module="org.jboss.security.negotiation",flag=required, module-options={ "debug" => "false", "storeKey" => "false", "useKeyTab" => "true", "keyTab" => "/path/to/eap.keytab", "principal" => "PRINCIPAL@SERVER.COM", "doNotPrompt" => "true", "refreshKrb5Config" => "true", "isInitiator" => "true", "addGSSCredential" => "true", "credentialLifetime" => "-1"}) run-batchCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
SQL 서버에 Microsoft JDBC 드라이버를 사용하는 경우
module-options에서 속성 및 값을"wrapGSSCredential" Cryostat "true"로 추가합니다. -
디버깅의 경우
module-options의debug속성 값을true로 변경합니다.
-
SQL 서버에 Microsoft JDBC 드라이버를 사용하는 경우
Elytron과 함께 kerberos를 사용하려면 다음을 수행합니다.
Elytron에 kerberos 팩토리를 설정합니다.
/subsystem=elytron/kerberos-security-factory=krbsf:add(debug=false, principal=PRINCIPAL@SERVER.COM, path=/path/to/keytab, request-lifetime=-1, obtain-kerberos-ticket=true, server=false)
/subsystem=elytron/kerberos-security-factory=krbsf:add(debug=false, principal=PRINCIPAL@SERVER.COM, path=/path/to/keytab, request-lifetime=-1, obtain-kerberos-ticket=true, server=false)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 디버깅의 경우 속성 및 값
debug = true를 추가합니다.지원되는 속성 목록은 서버 보안 구성 가이드의 Kerberos Security Cryostat 특성 섹션을 참조하십시오.
kerberos 팩토리를 사용하도록 인증 구성을 생성합니다.
/subsystem=elytron/authentication-configuration=kerberos-conf:add(kerberos-security-factory=krbsf)
/subsystem=elytron/authentication-configuration=kerberos-conf:add(kerberos-security-factory=krbsf)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인증 컨텍스트를 생성합니다.
/subsystem=elytron/authentication-context=ds-context:add(match-rules=[{authentication-configuration=kerberos-conf}])/subsystem=elytron/authentication-context=ds-context:add(match-rules=[{authentication-configuration=kerberos-conf}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow
kerberos를 사용하여 데이터 소스를 보호합니다.
Elytron을 사용하는 경우:
인증 컨텍스트를 사용하도록 데이터 소스를 구성합니다.
/subsystem=datasources/data-source=KerberosDS:add(connection-url="URL", min-pool-size=0, max-pool-size=10, jndi-name="java:jboss/datasource/KerberosDS", driver-name=<jdbc-driver>.jar, elytron-enabled=true, authentication-context=ds-context, allow-multiple-users=false, pool-prefill=false, pool-use-strict-min=false, idle-timeout-minutes=2)
/subsystem=datasources/data-source=KerberosDS:add(connection-url="URL", min-pool-size=0, max-pool-size=10, jndi-name="java:jboss/datasource/KerberosDS", driver-name=<jdbc-driver>.jar, elytron-enabled=true, authentication-context=ds-context, allow-multiple-users=false, pool-prefill=false, pool-use-strict-min=false, idle-timeout-minutes=2)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 벤더별 연결 속성을 구성합니다.
/subsystem=datasources/data-source=KerberosDS/connection-properties=<connection-property-name>:add(value="(<kerberos-value>)")
/subsystem=datasources/data-source=KerberosDS/connection-properties=<connection-property-name>:add(value="(<kerberos-value>)")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예: Oracle 데이터베이스의 연결 속성
/subsystem=datasources/data-source=KerberosDS/connection-properties=oracle.net.authentication_services:add(value="(KERBEROS5)")
/subsystem=datasources/data-source=KerberosDS/connection-properties=oracle.net.authentication_services:add(value="(KERBEROS5)")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
kerberos 인증을 사용하는 경우 데이터 소스에 다음 속성 및 값을 사용하는 것이 좋습니다.
-
pool-prefill=false -
pool-use-strict-min=false -
idle-timeout-minutes
지원되는 속성 목록은 데이터 소스 특성을 참조하십시오.
11.11. 데이터 소스 통계 링크 복사링크가 클립보드에 복사되었습니다!
데이터 소스에 대해 통계 컬렉션이 활성화 되면 데이터 소스에 대한 런타임 통계를 볼 수 있습니다.
11.11.1. 데이터 소스 통계 활성화 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 데이터 소스 통계는 활성화되지 않습니다. 관리 CLI 또는 관리 콘솔 을 사용하여 데이터 소스 통계 컬렉션을 활성화할 수 있습니다.
11.11.1.1. 관리 CLI를 사용하여 데이터 소스 통계 활성화 링크 복사링크가 클립보드에 복사되었습니다!
다음 관리 CLI 명령을 사용하면 ExampleDS 데이터 소스에 대한 통계 컬렉션을 사용할 수 있습니다.
관리형 도메인에서 이 명령 앞에 /profile=PROFILE_NAME.
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=statistics-enabled,value=true)
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=statistics-enabled,value=true)
변경 사항을 적용하려면 서버를 다시 로드합니다.
11.11.1.2. 관리 콘솔을 사용하여 데이터 소스 통계 활성화 링크 복사링크가 클립보드에 복사되었습니다!
관리 콘솔을 사용하여 데이터 소스에 대한 통계 컬렉션을 활성화하려면 다음 단계를 사용합니다.
프로세스
독립 실행형 또는 도메인 모드에서 데이터 소스로 이동합니다.
독립 실행형 모드에서 다음 탐색을 사용합니다.
구성 → Cryo stat → 데이터 소스 및 드라이버 → 데이터 소스
도메인 모드에서 다음 탐색을 사용합니다.
구성 → 프로필 → 전체 → 데이터 소스 및 드라이버 → 데이터 소스
- 데이터 소스를 선택하고 View 를 클릭합니다.
- 특성 탭에서 편집을 클릭합니다.
- 통계 활성화 필드를 ON 으로 설정하고 저장을 클릭합니다. 변경 사항을 적용하려면 다시 로드해야 함을 나타내는 팝업이 나타납니다.
서버를 다시 로드합니다.
- 독립 실행형 서버의 경우 팝업에서 Reload 링크를 클릭하여 서버를 다시 로드합니다.
- 관리형 도메인의 경우 팝업에서 토폴로지 링크를 클릭합니다. Topology 탭에서 적절한 서버를 선택하고 Reload drop down 옵션을 선택하여 서버를 다시 로드합니다.
11.11.2. 데이터 소스 통계 보기 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI 또는 관리 콘솔 을 사용하여 데이터 소스에 대한 런타임 통계를 볼 수 있습니다.
11.11.2.1. 관리 CLI를 사용하여 데이터 소스 통계 보기 링크 복사링크가 클립보드에 복사되었습니다!
다음 관리 CLI 명령은 ExampleDS 데이터 소스에 대한 코어 풀 통계를 검색합니다.
관리형 도메인에서 이러한 명령 앞에 /host=HOST_NAME/server=SERVER_NAME.
다음 관리 CLI 명령은 ExampleDS 데이터 소스에 대한 JDBC 통계를 검색합니다.
Since statistics are runtime information, be sure to specify the `include-runtime=true` argument.
Since statistics are runtime information, be sure to specify the `include-runtime=true` argument.
사용 가능한 모든 통계에 대한 자세한 목록은 데이터 소스 통계를 참조하십시오.
11.11.2.2. 관리 콘솔을 사용하여 데이터 소스 통계 보기 링크 복사링크가 클립보드에 복사되었습니다!
관리 콘솔에서 데이터 소스 통계를 보려면 Runtime 탭에서 Datasources 하위 시스템으로 이동하여 데이터 소스를 선택한 다음 View 를 클릭합니다.
사용 가능한 모든 통계에 대한 자세한 목록은 데이터 소스 통계를 참조하십시오.
11.12. 데이터 소스 튜닝 링크 복사링크가 클립보드에 복사되었습니다!
데이터 소스 하위 시스템의 성능을 모니터링하고 최적화하는 방법에 대한 팁은 JBoss EAP의 성능 튜닝의 데이터 소스 및 리소스 어댑터 튜닝 섹션을 참조하십시오.
11.13. 용량 정책 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 데이터 소스를 포함하여 Jakarta Connectors 배포를 위한 용량 정책 정의를 지원합니다. 용량 정책은 용량 감소 및 삭제라는 풀의 물리적 연결을 생성하는 방법을 정의합니다. 기본 정책은 용량 증가에 대한 요청당 하나의 연결을 생성하고 유휴 시간 초과가 용량 감소를 위해 예약될 때 모든 연결을 제거하도록 설정됩니다.
용량 정책을 구성하려면 용량 증가 클래스, 용량 감소 클래스 또는 둘 다를 지정해야 합니다.
예: 용량 정책 정의
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=capacity-incrementer-class, value="org.jboss.jca.core.connectionmanager.pool.capacity.SizeIncrementer") /subsystem=datasources/data-source=ExampleDS:write-attribute(name=capacity-decrementer-class, value="org.jboss.jca.core.connectionmanager.pool.capacity.SizeDecrementer")
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=capacity-incrementer-class, value="org.jboss.jca.core.connectionmanager.pool.capacity.SizeIncrementer")
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=capacity-decrementer-class, value="org.jboss.jca.core.connectionmanager.pool.capacity.SizeDecrementer")
지정된 용량 증가 또는 감소 클래스에 대한 속성을 구성할 수도 있습니다.
예: 용량 정책의 속성 구성
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=capacity-incrementer-properties.size, value=2) /subsystem=datasources/data-source=ExampleDS:write-attribute(name=capacity-decrementer-properties.size, value=2)
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=capacity-incrementer-properties.size, value=2)
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=capacity-decrementer-properties.size, value=2)
MaxPoolSize incrementer 정책
Class name: org.jboss.jca.core.connectionmanager.pool.capacity.MaxPoolSizeIncrementer
MaxPoolSize incrementer 정책은 각 요청의 최대 크기로 풀을 채웁니다. 이 정책은 항상 사용 가능한 최대 연결 수를 유지하려는 경우에 유용합니다.
크기 증가 정책
Class name: org.jboss.jca.core.connectionmanager.pool.capacity.SizeIncrementer
크기 증가 정책은 각 요청에 대해 지정된 수의 연결 수로 풀을 채웁니다. 이 정책은 다음 요청에도 연결이 필요할 것으로 예상하여 요청당 추가 연결 수를 늘리려는 경우에 유용합니다.
| 이름 | 설명 |
|---|---|
| 크기 | 생성해야 하는 연결 수 |
이는 기본 증가 정책이며 크기 값이 1입니다.
워터마크 증분 정책
Class name: org.jboss.jca.core.connectionmanager.pool.capacity.WatermarkIncrementer
Watermark 증분 정책은 각 요청에 대해 지정된 연결 수로 풀을 채웁니다. 이 정책은 풀에 지정된 수의 연결을 항상 유지하려는 경우 유용합니다.
| 이름 | 설명 |
|---|---|
| 워터마크 | 연결 수에 대한 워터마크 수준입니다. |
MinPoolSize decrementer 정책
Class name: org.jboss.jca.core.connectionmanager.pool.capacity.MinPoolSizeDecrementer
MinPoolSize decrementer 정책은 풀을 각 요청의 최소 크기로 줄입니다. 이 정책은 유휴 시간 제한 요청 후 연결 수를 제한하려는 경우에 유용합니다. 풀은 FIFO (First In First Out) 방식으로 작동합니다.
크기 감소 정책
Class name: org.jboss.jca.core.connectionmanager.pool.capacity.SizeDecrementer
크기 감소 정책은 각 유휴 타임아웃 요청에 대해 지정된 연결 수만큼 풀을 줄입니다.
| 이름 | 설명 |
|---|---|
| 크기 | 삭제해야 하는 연결 수 |
이 정책은 유휴 시간 제한 요청당 추가 연결 수를 감소시키려면 시간 경과에 따라 풀 사용량이 줄어들 것으로 예상합니다.
풀은 FIFO (First In First Out) 방식으로 작동합니다.
TimedOut decrementer 정책
Class name: org.jboss.jca.core.connectionmanager.pool.capacity.TimedOutDecrementer
TimedOut decrementer 정책은 각 유휴 시간 초과 요청에 대해 풀에서 시간 초과된 모든 연결을 제거합니다. 풀은 첫 번째 In Last Out (FILO) 방식으로 작동합니다.
이 정책은 기본 감소 정책입니다.
TimedOut/FIFO 감소 정책
클래스 이름:org.jboss.jca.core.connectionmanager.pool.capacity.TimedOutFIFODecrementer
TimedOutFIFO decrementer 정책은 유휴 시간 제한 요청에 대해 풀에서 시간 초과된 모든 연결을 제거합니다. 풀은 FIFO (First In First Out) 방식으로 작동합니다.
워터마크 감소 정책
클래스 이름:org.jboss.jca.core.connectionmanager.pool.capacity.WatermarkDecrementer
Watermark decrementer 정책은 각 유휴 시간 초과 요청에 대해 지정된 연결 수로 풀을 줄입니다. 이 정책은 풀에 지정된 수의 연결을 항상 유지하려는 경우 유용합니다. 풀은 FIFO (First In First Out) 방식으로 작동합니다.
| 이름 | 설명 |
|---|---|
| 워터마크 | 연결 수에 대한 워터마크 수준입니다. |
11.14. 추적 등록 링크 복사링크가 클립보드에 복사되었습니다!
XAResource 인스턴스를 등록할 때 발생하는 오류 상황을 찾는 데 도움이 되도록 추적 목록을 기록할 수 있습니다. 추적을 활성화하면 jca 하위 시스템에서 모든 풀 작업에 대한 예외 오브젝트를 생성하여 필요한 경우 정확한 스택 추적을 생성할 수 있습니다. 그러나 성능 오버헤드가 발생합니다.
JBoss EAP 7.1부터 Enlistment tracing은 기본적으로 비활성화되어 있습니다. enlistment-trace 특성을 true 로 설정하여 관리 CLI를 사용하여 데이터 소스에 대한 등록 추적 기록을 활성화할 수 있습니다.
비 XA 데이터 소스에 대한 등록 추적 활성화
data-source --name=DATASOURCE_NAME --enlistment-trace=true
data-source --name=DATASOURCE_NAME --enlistment-trace=true
XA 데이터 소스에 대한 등록 추적 활성화
xa-data-source --name=XA_DATASOURCE_NAME --enlistment-trace=true
xa-data-source --name=XA_DATASOURCE_NAME --enlistment-trace=true
목록 추적을 활성화하면 성능에 영향을 미칠 수 있습니다.
11.15. 데이터 소스 구성 예 링크 복사링크가 클립보드에 복사되었습니다!
11.15.1. MySQL 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
이는 연결 정보, 기본 보안 및 검증 옵션이 포함된 MySQL 데이터 소스 구성의 예입니다.
예: MySQL 데이터 소스 구성
예: MySQL JDBC 드라이버 module.xml 파일
관리 CLI 명령 예
이 예제 구성은 다음 관리 CLI 명령을 사용하여 수행할 수 있습니다.
MySQL JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=com.mysql --resources=/path/to/mysql-connector-j-8.0.33.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
module add --name=com.mysql --resources=/path/to/mysql-connector-j-8.0.33.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
MySQL JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql,driver-xa-datasource-class-name=com.mysql.cj.jdbc.MysqlXADataSource, driver-class-name=com.mysql.cj.jdbc.Driver)
/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql,driver-xa-datasource-class-name=com.mysql.cj.jdbc.MysqlXADataSource, driver-class-name=com.mysql.cj.jdbc.Driver)Copy to Clipboard Copied! Toggle word wrap Toggle overflow MySQL 데이터 소스를 추가합니다.
data-source add --name=MySqlDS --jndi-name=java:jboss/MySqlDS --driver-name=mysql --connection-url=jdbc:mysql://localhost:3306/jbossdb --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter
data-source add --name=MySqlDS --jndi-name=java:jboss/MySqlDS --driver-name=mysql --connection-url=jdbc:mysql://localhost:3306/jbossdb --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorterCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.2. MySQL XA 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
다음은 XA 데이터 소스 속성, 기본 보안 및 검증 옵션을 사용한 MySQL XA 데이터 소스 구성의 예입니다.
예: MySQL XA 데이터 소스 구성
예: MySQL JDBC 드라이버 module.xml 파일
관리 CLI 명령 예
이 예제 구성은 다음 관리 CLI 명령을 사용하여 수행할 수 있습니다.
MySQL JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=com.mysql --resources=/path/to/mysql-connector-j-8.0.33.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
module add --name=com.mysql --resources=/path/to/mysql-connector-j-8.0.33.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
MySQL JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql,driver-xa-datasource-class-name=com.mysql.cj.jdbc.MysqlXADataSource, driver-class-name=com.mysql.cj.jdbc.Driver)
/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql,driver-xa-datasource-class-name=com.mysql.cj.jdbc.MysqlXADataSource, driver-class-name=com.mysql.cj.jdbc.Driver)Copy to Clipboard Copied! Toggle word wrap Toggle overflow MySQL XA 데이터 소스를 추가합니다.
xa-data-source add --name=MySqlXADS --jndi-name=java:jboss/MySqlXADS --driver-name=mysql --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter --xa-datasource-properties={"ServerName"=>"localhost","DatabaseName"=>"mysqldb"}xa-data-source add --name=MySqlXADS --jndi-name=java:jboss/MySqlXADS --driver-name=mysql --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter --xa-datasource-properties={"ServerName"=>"localhost","DatabaseName"=>"mysqldb"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.3. PostgreSQL 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
연결 정보, 기본 보안 및 검증 옵션이 포함된 PostgreSQL 데이터 소스 구성의 예입니다.
예: PostgreSQL 데이터 소스 구성
예: PostgreSQL JDBC 드라이버 module.xml 파일
위의 예에서 42.x.y 를 드라이버 버전 번호로 교체해야 합니다.
관리 CLI 명령 예
다음 CLI 명령을 사용하여 PostgreSQL JDBC 드라이버 및 PostgreSQL 데이터 소스를 JDBC API에 추가할 수 있습니다.
PostgreSQL JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=com.postgresql --resources=/path/to/postgresql-42.x.y.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
module add --name=com.postgresql --resources=/path/to/postgresql-42.x.y.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위의 예에서 42.x.y 를 드라이버 버전 번호로 교체해야 합니다.
중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
PostgreSQL JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=postgresql:add(driver-name=postgresql,driver-module-name=com.postgresql,driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource)
/subsystem=datasources/jdbc-driver=postgresql:add(driver-name=postgresql,driver-module-name=com.postgresql,driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource)Copy to Clipboard Copied! Toggle word wrap Toggle overflow PostgreSQL 데이터 소스를 추가합니다.
data-source add --name=PostgresDS --jndi-name=java:jboss/PostgresDS --driver-name=postgresql --connection-url=jdbc:postgresql://localhost:5432/postgresdb --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter
data-source add --name=PostgresDS --jndi-name=java:jboss/PostgresDS --driver-name=postgresql --connection-url=jdbc:postgresql://localhost:5432/postgresdb --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorterCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.4. PostgreSQL XA 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
다음은 XA 데이터 소스 속성, 기본 보안 및 검증 옵션을 사용한 PostgreSQL XA 데이터 소스 구성의 예입니다.
예: PostgreSQL XA 데이터 소스 구성
예: PostgreSQL JDBC 드라이버 module.xml 파일
위의 예에서 42.x.y 를 드라이버 버전 번호로 교체해야 합니다.
관리 CLI 명령 예
다음 CLI 명령을 사용하여 PostgreSQL JDBC 드라이버 및 PostgreSQL 데이터 소스를 JDBC API에 추가할 수 있습니다.
PostgreSQL JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=com.postgresql --resources=/path/to/postgresql-42.x.y.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
module add --name=com.postgresql --resources=/path/to/postgresql-42.x.y.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위의 예에서 42.x.y 를 드라이버 버전 번호로 교체해야 합니다.
중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
PostgreSQL JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=postgresql:add(driver-name=postgresql,driver-module-name=com.postgresql,driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource)
/subsystem=datasources/jdbc-driver=postgresql:add(driver-name=postgresql,driver-module-name=com.postgresql,driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource)Copy to Clipboard Copied! Toggle word wrap Toggle overflow PostgreSQL XA 데이터 소스를 추가합니다.
xa-data-source add --name=PostgresXADS --jndi-name=java:jboss/PostgresXADS --driver-name=postgresql --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter --xa-datasource-properties={"ServerName"=>"localhost","PortNumber"=>"5432","DatabaseName"=>"postgresdb"}xa-data-source add --name=PostgresXADS --jndi-name=java:jboss/PostgresXADS --driver-name=postgresql --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter --xa-datasource-properties={"ServerName"=>"localhost","PortNumber"=>"5432","DatabaseName"=>"postgresdb"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.5. Oracle 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
이는 연결 정보, 기본 보안 및 검증 옵션이 포함된 Oracle 데이터 소스 구성의 예입니다.
예: Oracle 데이터 소스 구성
예: Oracle JDBC 드라이버 module.xml 파일
관리 CLI 명령 예
이 예제 구성은 다음 관리 CLI 명령을 사용하여 수행할 수 있습니다.
Oracle JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=com.oracle --resources=/path/to/ojdbc7.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
module add --name=com.oracle --resources=/path/to/ojdbc7.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
Oracle JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=oracle:add(driver-name=oracle,driver-module-name=com.oracle,driver-xa-datasource-class-name=oracle.jdbc.xa.client.OracleXADataSource)
/subsystem=datasources/jdbc-driver=oracle:add(driver-name=oracle,driver-module-name=com.oracle,driver-xa-datasource-class-name=oracle.jdbc.xa.client.OracleXADataSource)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Oracle 데이터 소스를 추가합니다.
data-source add --name=OracleDS --jndi-name=java:jboss/OracleDS --driver-name=oracle --connection-url=jdbc:oracle:thin:@localhost:1521:XE --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter
data-source add --name=OracleDS --jndi-name=java:jboss/OracleDS --driver-name=oracle --connection-url=jdbc:oracle:thin:@localhost:1521:XE --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorterCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.6. Oracle XA 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
XA 복구가 올바르게 작동하려면 Oracle XA 데이터 소스에 액세스하는 사용자에게 다음 설정을 적용해야 합니다. value 사용자는 JBoss EAP에서 Oracle으로 연결하기 위해 정의된 사용자입니다.
-
GRANT SELECT ON sys.dba_pending_transactions TO user; -
GRANT SELECT ON sys.pending_trans$ TO user; -
GRANT SELECT ON sys.dba_2pc_pending TO 사용자; -
GRANT EXECUTE ON sys.dbms_xa TO user;
다음은 XA 데이터 소스 속성, 기본 보안 및 검증 옵션을 사용한 Oracle XA 데이터 소스 구성의 예입니다.
예: Oracle XA 데이터 소스 구성
예: Oracle JDBC 드라이버 module.xml 파일
관리 CLI 명령 예
이 예제 구성은 다음 관리 CLI 명령을 사용하여 수행할 수 있습니다.
Oracle JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=com.oracle --resources=/path/to/ojdbc7.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
module add --name=com.oracle --resources=/path/to/ojdbc7.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
Oracle JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=oracle:add(driver-name=oracle,driver-module-name=com.oracle,driver-xa-datasource-class-name=oracle.jdbc.xa.client.OracleXADataSource)
/subsystem=datasources/jdbc-driver=oracle:add(driver-name=oracle,driver-module-name=com.oracle,driver-xa-datasource-class-name=oracle.jdbc.xa.client.OracleXADataSource)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Oracle XA 데이터 소스를 추가합니다.
xa-data-source add --name=OracleXADS --jndi-name=java:jboss/OracleXADS --driver-name=oracle --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter --same-rm-override=false --xa-datasource-properties={"URL"=>"jdbc:oracle:thin:@oracleHostName:1521:orcl"}xa-data-source add --name=OracleXADS --jndi-name=java:jboss/OracleXADS --driver-name=oracle --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter --same-rm-override=false --xa-datasource-properties={"URL"=>"jdbc:oracle:thin:@oracleHostName:1521:orcl"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.7. Oracle RAC 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
이는 연결 정보, 기본 보안 및 검증 옵션이 포함된 RAC(Real Application Cluster) 데이터 소스 구성의 예입니다.
예: Oracle RAC 데이터 소스 구성
예: Oracle JDBC 드라이버 module.xml 파일
관리 CLI 명령 예
이 예제 구성을 수행하려면 다음 관리 CLI 명령을 사용합니다.
Oracle JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=com.oracle --resources=/path/to/ojdbc7.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
module add --name=com.oracle --resources=/path/to/ojdbc7.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow Oracle JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=oracle:add(driver-name=oracle,driver-module-name=com.oracle,driver-xa-datasource-class-name=oracle.jdbc.xa.client.OracleXADataSource)
/subsystem=datasources/jdbc-driver=oracle:add(driver-name=oracle,driver-module-name=com.oracle,driver-xa-datasource-class-name=oracle.jdbc.xa.client.OracleXADataSource)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Oracle RAC 데이터 소스를 추가합니다.
data-source add --name=OracleDS --jndi-name=java:jboss/OracleDS --driver-name=oracle --connection-url="jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521))" --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter
data-source add --name=OracleDS --jndi-name=java:jboss/OracleDS --driver-name=oracle --connection-url="jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521))" --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorterCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.8. Oracle RAC XA 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
다음은 XA 데이터 소스 속성, 기본 보안 및 검증 옵션을 사용한 RAC 데이터 소스 구성의 예입니다.
예: Oracle RAC XA 데이터 소스 구성
예: Oracle JDBC 드라이버 module.xml 파일
관리 CLI 명령 예
이 예제 구성을 수행하려면 다음 관리 CLI 명령을 사용합니다.
Oracle JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=com.oracle --resources=/path/to/ojdbc7.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
module add --name=com.oracle --resources=/path/to/ojdbc7.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow Oracle JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=oracle:add(driver-name=oracle,driver-module-name=com.oracle,driver-xa-datasource-class-name=oracle.jdbc.xa.client.OracleXADataSource)
/subsystem=datasources/jdbc-driver=oracle:add(driver-name=oracle,driver-module-name=com.oracle,driver-xa-datasource-class-name=oracle.jdbc.xa.client.OracleXADataSource)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Oracle RAC XA 데이터 소스를 추가합니다.
xa-data-source add --name=OracleXADS --jndi-name=java:jboss/OracleXADS --driver-name=oracle --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter --same-rm-override=false --xa-datasource-properties={"URL"=>"jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521))"}xa-data-source add --name=OracleXADS --jndi-name=java:jboss/OracleXADS --driver-name=oracle --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter --same-rm-override=false --xa-datasource-properties={"URL"=>"jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521))"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.9. Microsoft SQL 서버 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
연결 정보, 기본 보안 및 검증 옵션이 포함된 Microsoft SQL Server 데이터 소스 구성의 예입니다.
예: Microsoft SQL 서버 데이터 소스 구성
예: Microsoft SQL 서버 JDBC 드라이버 module.xml 파일
관리 CLI 명령 예
이 예제 구성은 다음 관리 CLI 명령을 사용하여 수행할 수 있습니다.
Microsoft SQL Server JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=com.microsoft --resources=/path/to/sqljdbc42.jar --dependencies=java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api,jakarta.xml.bind.api,wildflyee.api,java.se
module add --name=com.microsoft --resources=/path/to/sqljdbc42.jar --dependencies=java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api,jakarta.xml.bind.api,wildflyee.api,java.seCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
Microsoft SQL Server JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=sqlserver:add(driver-name=sqlserver,driver-module-name=com.microsoft,driver-xa-datasource-class-name=com.microsoft.sqlserver.jdbc.SQLServerXADataSource)
/subsystem=datasources/jdbc-driver=sqlserver:add(driver-name=sqlserver,driver-module-name=com.microsoft,driver-xa-datasource-class-name=com.microsoft.sqlserver.jdbc.SQLServerXADataSource)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Microsoft SQL Server 데이터 소스를 추가합니다.
data-source add --name=MSSQLDS --jndi-name=java:jboss/MSSQLDS --driver-name=sqlserver --connection-url=jdbc:sqlserver://localhost:1433;DatabaseName=MyDatabase --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLExceptionSorter
data-source add --name=MSSQLDS --jndi-name=java:jboss/MSSQLDS --driver-name=sqlserver --connection-url=jdbc:sqlserver://localhost:1433;DatabaseName=MyDatabase --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLExceptionSorterCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.10. Microsoft SQL 서버 XA 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
다음은 XA 데이터 소스 속성, 기본 보안 및 유효성 검사 옵션을 사용하는 Microsoft SQL Server XA 데이터 소스 구성의 예입니다.
예: Microsoft SQL 서버 XA 데이터 소스 구성
예: Microsoft SQL Server JDBC 드라이버 module.xml 파일
관리 CLI 명령 예
이 예제 구성은 다음 관리 CLI 명령을 사용하여 수행할 수 있습니다.
Microsoft SQL Server JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=com.microsoft --resources=/path/to/sqljdbc42.jar --dependencies=java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api,jakarta.xml.bind.api,wildflyee.api,java.se
module add --name=com.microsoft --resources=/path/to/sqljdbc42.jar --dependencies=java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api,jakarta.xml.bind.api,wildflyee.api,java.seCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
Microsoft SQL Server JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=sqlserver:add(driver-name=sqlserver,driver-module-name=com.microsoft,driver-xa-datasource-class-name=com.microsoft.sqlserver.jdbc.SQLServerXADataSource)
/subsystem=datasources/jdbc-driver=sqlserver:add(driver-name=sqlserver,driver-module-name=com.microsoft,driver-xa-datasource-class-name=com.microsoft.sqlserver.jdbc.SQLServerXADataSource)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Microsoft SQL Server XA 데이터 소스를 추가합니다.
xa-data-source add --name=MSSQLXADS --jndi-name=java:jboss/MSSQLXADS --driver-name=sqlserver --user-name=admin --password=admin --validate-on-match=true --background-validation=false --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLExceptionSorter --same-rm-override=false --xa-datasource-properties={"ServerName"=>"localhost","DatabaseName"=>"mssqldb","SelectMethod"=>"cursor"}xa-data-source add --name=MSSQLXADS --jndi-name=java:jboss/MSSQLXADS --driver-name=sqlserver --user-name=admin --password=admin --validate-on-match=true --background-validation=false --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLExceptionSorter --same-rm-override=false --xa-datasource-properties={"ServerName"=>"localhost","DatabaseName"=>"mssqldb","SelectMethod"=>"cursor"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.11. IBM DB2 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
이는 연결 정보, 기본 보안 및 검증 옵션이 포함된 IBM DB2 데이터 소스 구성의 예입니다.
예: IBM DB2 데이터 소스 구성
예: IBM DB2 JDBC 드라이버 module.xml 파일
관리 CLI 명령 예
이 예제 구성은 다음 관리 CLI 명령을 사용하여 수행할 수 있습니다.
IBM DB2 JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=com.ibm --resources=/path/to/db2jcc4.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
module add --name=com.ibm --resources=/path/to/db2jcc4.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
IBM DB2 JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=ibmdb2:add(driver-name=ibmdb2,driver-module-name=com.ibm,driver-xa-datasource-class-name=com.ibm.db2.jcc.DB2XADataSource)
/subsystem=datasources/jdbc-driver=ibmdb2:add(driver-name=ibmdb2,driver-module-name=com.ibm,driver-xa-datasource-class-name=com.ibm.db2.jcc.DB2XADataSource)Copy to Clipboard Copied! Toggle word wrap Toggle overflow IBM DB2 데이터 소스를 추가합니다.
data-source add --name=DB2DS --jndi-name=java:jboss/DB2DS --driver-name=ibmdb2 --connection-url=jdbc:db2://localhost:50000/ibmdb2db --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.db2.DB2ValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.db2.DB2ExceptionSorter --min-pool-size=0 --max-pool-size=50
data-source add --name=DB2DS --jndi-name=java:jboss/DB2DS --driver-name=ibmdb2 --connection-url=jdbc:db2://localhost:50000/ibmdb2db --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.db2.DB2ValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.db2.DB2ExceptionSorter --min-pool-size=0 --max-pool-size=50Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.12. IBM DB2 XA 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
다음은 XA 데이터 소스 속성, 기본 보안 및 검증 옵션이 포함된 IBM DB2 XA 데이터 소스 구성의 예입니다.
예: IBM DB2 XA 데이터 소스 구성
예: IBM DB2 JDBC 드라이버 module.xml 파일
관리 CLI 명령 예
이 예제 구성은 다음 관리 CLI 명령을 사용하여 수행할 수 있습니다.
IBM DB2 JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=com.ibm --resources=/path/to/db2jcc4.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
module add --name=com.ibm --resources=/path/to/db2jcc4.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
IBM DB2 JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=ibmdb2:add(driver-name=ibmdb2,driver-module-name=com.ibm,driver-xa-datasource-class-name=com.ibm.db2.jcc.DB2XADataSource)
/subsystem=datasources/jdbc-driver=ibmdb2:add(driver-name=ibmdb2,driver-module-name=com.ibm,driver-xa-datasource-class-name=com.ibm.db2.jcc.DB2XADataSource)Copy to Clipboard Copied! Toggle word wrap Toggle overflow IBM DB2 XA 데이터 소스를 추가합니다.
xa-data-source add --name=DB2XADS --jndi-name=java:jboss/DB2XADS --driver-name=ibmdb2 --user-name=admin --password=admin --validate-on-match=true --background-validation=false --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.db2.DB2ValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.db2.DB2ExceptionSorter --same-rm-override=false --recovery-plugin-class-name=org.jboss.jca.core.recovery.ConfigurableRecoveryPlugin --recovery-plugin-properties={"EnableIsValid"=>"false","IsValidOverride"=>"false","EnableClose"=>"false"} --xa-datasource-properties={"ServerName"=>"localhost","DatabaseName"=>"ibmdb2db","PortNumber"=>"50000","DriverType"=>"4"}xa-data-source add --name=DB2XADS --jndi-name=java:jboss/DB2XADS --driver-name=ibmdb2 --user-name=admin --password=admin --validate-on-match=true --background-validation=false --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.db2.DB2ValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.db2.DB2ExceptionSorter --same-rm-override=false --recovery-plugin-class-name=org.jboss.jca.core.recovery.ConfigurableRecoveryPlugin --recovery-plugin-properties={"EnableIsValid"=>"false","IsValidOverride"=>"false","EnableClose"=>"false"} --xa-datasource-properties={"ServerName"=>"localhost","DatabaseName"=>"ibmdb2db","PortNumber"=>"50000","DriverType"=>"4"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.13. Sybase 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
다음은 연결 정보, 기본 보안 및 검증 옵션이 포함된 Sybase 데이터 소스 구성의 예입니다.
예: Sybase 데이터 소스 구성
예: Sybase JDBC 드라이버 module.xml 파일
관리 CLI 명령 예
이 예제 구성은 다음 관리 CLI 명령을 사용하여 수행할 수 있습니다.
Sybase JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=com.sybase --resources=/path/to/jconn4.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
module add --name=com.sybase --resources=/path/to/jconn4.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
Sybase JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=sybase:add(driver-name=sybase,driver-module-name=com.sybase,driver-xa-datasource-class-name=com.sybase.jdbc4.jdbc.SybXADataSource)
/subsystem=datasources/jdbc-driver=sybase:add(driver-name=sybase,driver-module-name=com.sybase,driver-xa-datasource-class-name=com.sybase.jdbc4.jdbc.SybXADataSource)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Sybase 데이터 소스를 추가합니다.
data-source add --name=SybaseDB --jndi-name=java:jboss/SybaseDB --driver-name=sybase --connection-url=jdbc:sybase:Tds:localhost:5000/DATABASE?JCONNECT_VERSION=6 --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseExceptionSorter
data-source add --name=SybaseDB --jndi-name=java:jboss/SybaseDB --driver-name=sybase --connection-url=jdbc:sybase:Tds:localhost:5000/DATABASE?JCONNECT_VERSION=6 --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseExceptionSorterCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.14. Sybase XA 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
다음은 XA 데이터 소스 속성, 기본 보안 및 검증 옵션을 사용한 Sybase XA 데이터 소스 구성의 예입니다.
예: Sybase XA 데이터 소스 구성
예: Sybase JDBC 드라이버 module.xml 파일
관리 CLI 명령 예
이 예제 구성은 다음 관리 CLI 명령을 사용하여 수행할 수 있습니다.
Sybase JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=com.sybase --resources=/path/to/jconn4.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
module add --name=com.sybase --resources=/path/to/jconn4.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
Sybase JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=sybase:add(driver-name=sybase,driver-module-name=com.sybase,driver-xa-datasource-class-name=com.sybase.jdbc4.jdbc.SybXADataSource)
/subsystem=datasources/jdbc-driver=sybase:add(driver-name=sybase,driver-module-name=com.sybase,driver-xa-datasource-class-name=com.sybase.jdbc4.jdbc.SybXADataSource)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Sybase XA 데이터 소스를 추가합니다.
xa-data-source add --name=SybaseXADS --jndi-name=java:jboss/SybaseXADS --driver-name=sybase --user-name=admin --password=admin --validate-on-match=true --background-validation=false --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseExceptionSorter --same-rm-override=false --xa-datasource-properties={"ServerName"=>"localhost","DatabaseName"=>"mydatabase","PortNumber"=>"4100","NetworkProtocol"=>"Tds"}xa-data-source add --name=SybaseXADS --jndi-name=java:jboss/SybaseXADS --driver-name=sybase --user-name=admin --password=admin --validate-on-match=true --background-validation=false --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseExceptionSorter --same-rm-override=false --xa-datasource-properties={"ServerName"=>"localhost","DatabaseName"=>"mydatabase","PortNumber"=>"4100","NetworkProtocol"=>"Tds"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.15. MariaDB 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
다음은 연결 정보, 기본 보안 및 검증 옵션이 포함된 MariaDB 데이터 소스 구성의 예입니다.
예: MariaDB 데이터 소스 구성
예: MariaDB JDBC 드라이버 module.xml 파일
관리 CLI 명령 예
이 예제 구성은 다음 관리 CLI 명령을 사용하여 수행할 수 있습니다.
MariaDB JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=org.mariadb --resources=/path/to/mariadb-java-client-3.3.0.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api,org.slf4j
module add --name=org.mariadb --resources=/path/to/mariadb-java-client-3.3.0.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api,org.slf4jCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
MariaDB JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=mariadb:add(driver-name=mariadb,driver-module-name=org.mariadb,driver-xa-datasource-class-name=org.mariadb.jdbc.MySQLDataSource, driver-class-name=org.mariadb.jdbc.Driver)
/subsystem=datasources/jdbc-driver=mariadb:add(driver-name=mariadb,driver-module-name=org.mariadb,driver-xa-datasource-class-name=org.mariadb.jdbc.MySQLDataSource, driver-class-name=org.mariadb.jdbc.Driver)Copy to Clipboard Copied! Toggle word wrap Toggle overflow MariaDB 데이터 소스를 추가합니다.
data-source add --name=MariaDBDS --jndi-name=java:jboss/MariaDBDS --driver-name=mariadb --connection-url=jdbc:mariadb://localhost:3306/jbossdb --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter
data-source add --name=MariaDBDS --jndi-name=java:jboss/MariaDBDS --driver-name=mariadb --connection-url=jdbc:mariadb://localhost:3306/jbossdb --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorterCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.16. MariaDB XA 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
다음은 XA 데이터 소스 속성, 기본 보안 및 검증 옵션을 사용한 MariaDB XA 데이터 소스 구성의 예입니다.
예: MariaDB XA 데이터 소스 구성
예: MariaDB JDBC 드라이버 module.xml 파일
관리 CLI 명령 예
이 예제 구성은 다음 관리 CLI 명령을 사용하여 수행할 수 있습니다.
MariaDB JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=org.mariadb --resources=/path/to/mariadb-java-client-3.3.0.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api,org.slf4j
module add --name=org.mariadb --resources=/path/to/mariadb-java-client-3.3.0.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api,org.slf4jCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
MariaDB JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=mariadb:add(driver-name=mariadb,driver-module-name=org.mariadb,driver-xa-datasource-class-name=org.mariadb.jdbc.MySQLDataSource, driver-class-name=org.mariadb.jdbc.Driver)
/subsystem=datasources/jdbc-driver=mariadb:add(driver-name=mariadb,driver-module-name=org.mariadb,driver-xa-datasource-class-name=org.mariadb.jdbc.MySQLDataSource, driver-class-name=org.mariadb.jdbc.Driver)Copy to Clipboard Copied! Toggle word wrap Toggle overflow MariaDB XA 데이터 소스를 추가합니다.
xa-data-source add --name=MariaDBXADS --jndi-name=java:jboss/MariaDBXADS --driver-name=mariadb --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter --xa-datasource-properties={"ServerName"=>"localhost","DatabaseName"=>"mariadbdb"}xa-data-source add --name=MariaDBXADS --jndi-name=java:jboss/MariaDBXADS --driver-name=mariadb --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter --xa-datasource-properties={"ServerName"=>"localhost","DatabaseName"=>"mariadbdb"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.15.17. MariaDB Galera Cluster 데이터 소스 예 링크 복사링크가 클립보드에 복사되었습니다!
다음은 연결 정보, 기본 보안 및 검증 옵션이 포함된 MariaDB Galera Cluster 데이터 소스 구성의 예입니다.
MariaDB Galera 클러스터는 XA 트랜잭션을 지원하지 않습니다.
예: MariaDB Galera Cluster 데이터 소스 구성
예: MariaDB JDBC 드라이버 module.xml 파일
관리 CLI 명령 예
이 예제 구성은 다음 관리 CLI 명령을 사용하여 수행할 수 있습니다.
MariaDB JDBC 드라이버를 코어 모듈로 추가합니다.
module add --name=org.mariadb --resources=/path/to/mariadb-java-client-3.3.0.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api,org.slf4j
module add --name=org.mariadb --resources=/path/to/mariadb-java-client-3.3.0.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api,org.slf4jCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요모듈관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가 및 제거해야 합니다.기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
MariaDB JDBC 드라이버를 등록합니다.
/subsystem=datasources/jdbc-driver=mariadb:add(driver-name=mariadb,driver-module-name=org.mariadb,driver-xa-datasource-class-name=org.mariadb.jdbc.MySQLDataSource, driver-class-name=org.mariadb.jdbc.Driver)
/subsystem=datasources/jdbc-driver=mariadb:add(driver-name=mariadb,driver-module-name=org.mariadb,driver-xa-datasource-class-name=org.mariadb.jdbc.MySQLDataSource, driver-class-name=org.mariadb.jdbc.Driver)Copy to Clipboard Copied! Toggle word wrap Toggle overflow MariaDB Galera Cluster 데이터 소스를 추가합니다.
data-source add --name=MariaDBGaleraClusterDS --jndi-name=java:jboss/MariaDBGaleraClusterDS --driver-name=mariadb --connection-url=jdbc:mariadb://192.168.1.1:3306,192.168.1.2:3306/jbossdb --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter
data-source add --name=MariaDBGaleraClusterDS --jndi-name=java:jboss/MariaDBGaleraClusterDS --driver-name=mariadb --connection-url=jdbc:mariadb://192.168.1.1:3306,192.168.1.2:3306/jbossdb --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorterCopy to Clipboard Copied! Toggle word wrap Toggle overflow
12장. 트랜잭션 하위 시스템 구성 링크 복사링크가 클립보드에 복사되었습니다!
12.1. 트랜잭션 하위 시스템 구성 링크 복사링크가 클립보드에 복사되었습니다!
금융 거래, 주문 관리 또는 기타 중요한 워크플로를 처리하는 엔터프라이즈 애플리케이션을 관리하는 경우 안정적인 운영 및 데이터 일관성을 보장해야 합니다. JBoss EAP의 트랜잭션 하위 시스템은 트랜잭션 관리자 ™를 완전히 제어하여 시간 초과 값을 구성하고 트랜잭션 로깅을 활성화하며 통계를 수집할 수 있습니다. 애플리케이션이 여러 시스템에서 실행되고 트랜잭션 전파가 필요한 경우 JBoss Remoting 또는 JTS 중 하나 이상을 활성화해야 합니다.
JBoss EAP는 Narayana 트랜잭션 관리자를 사용하여 트랜잭션을 효율적으로 처리합니다. Jakarta 트랜잭션, JTS 및 Web Services 트랜잭션과 같은 업계 표준 프로토콜을 지원합니다. 데이터베이스를 업데이트하거나, 메시지를 보내거나, 분산 서비스를 조정하든 트랜잭션 하위 시스템은 일관성, 안정성 및 복원력을 보장합니다.
이 링크는 JBoss EAP 7.4의 트랜잭션 관리 가이드로 안내합니다. 현재 Red Hat JBoss Enterprise Application Platform 8.0 문서를 업데이트하는 중입니다. 이 링크는 새 문서가 완료되면 업데이트됩니다.
13장. ORB 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 장에서는 JTS(Java Transaction Service)를 지원하도록 Object Request Broker(ORB)를 구성하고 JBoss EAP에서 SSL/TLS를 통해 보안 통신을 보장하는 방법을 안내합니다.
13.1. CORBA(Common Object Request Broker Architecture) 이해 링크 복사링크가 클립보드에 복사되었습니다!
CORBA(Common Object Request Broker Architecture)는 ORB(Object Request Broker)라는 구성 요소를 통해 애플리케이션 및 서비스가 서로 다른 프로그래밍 언어 및 플랫폼에서 상호 운용할 수 있도록 하는 표준입니다. JBoss EAP는 Open JDK ORB 구성 요소를 통해 ORB 인스턴스를 제공합니다.
ORB는 JTS 트랜잭션에 내부적으로 사용되며 자체 애플리케이션에서 사용할 수도 있습니다.
Object Transaction Service(OTS)는 CORBA의 일부를 구성하는 플랫폼 간 서비스입니다. OTS 사양은 오브젝트 관리 그룹에서 유지 관리합니다. JTS는 트랜잭션 관리자를 구축하기 위한 사양이며, JTS는 OTS 사양을 기반으로 설계되었습니다.
13.2. 관리 CLI 및 관리 콘솔을 사용하여 JTS의 ORB 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 JBoss EAP의 관리 CLI 및 관리 콘솔을 모두 사용하여 JTS(Java Transaction Service)용 Object Request Broker(ORB)를 구성하는 단계를 제공합니다. ORB를 구성하면 분산 환경에 대한 강력한 트랜잭션 기능이 보장됩니다.
사전 요구 사항
- JBoss EAP를 설치했습니다.
- 관리 CLI 및 관리 권한이 있는 관리 콘솔에 액세스할 수 있습니다.
독립 실행형 또는 도메인 모드에서 이 절차를 사용할 수 있습니다. 독립 실행형 모드를 사용하려면 profile=full 접두사를 사용하지 말고 standalone-full.xml 구성을 사용하십시오.
보안 인터셉터 활성화:
관리 CLI를 사용하여 다음 명령을 실행하여
보안특성을identity로 설정합니다./profile=full/subsystem=iiop-openjdk:write-attribute(name=security,value=identity)
/profile=full/subsystem=iiop-openjdk:write-attribute(name=security,value=identity)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 관리 콘솔을 사용합니다.
- 구성 탭으로 이동합니다.
- Cryo stats → IIOP(OpenJDK) → 보기를 선택합니다.
- 편집을 클릭하고 필요에 따라 속성을 수정한 다음 저장을 클릭합니다.
IIOP 하위 시스템에서 트랜잭션을 활성화합니다.
JTS에 대해 ORB를 활성화하려면 CLI를 사용하여
transactions속성을full로 설정합니다./profile=full/subsystem=iiop-openjdk:write-attribute(name=transactions,value=full)
/profile=full/subsystem=iiop-openjdk:write-attribute(name=transactions,value=full)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리 콘솔에서 다음을 수행합니다.
- Cryostats → IIOP(OpenJDK) → View 로 이동합니다.
- 편집을 클릭하고 필요에 따라 속성을 수정한 다음 저장을 클릭합니다.
트랜잭션 하위 시스템에서 JTS를 활성화합니다.
CLI를 사용하여
jts속성을true로 설정합니다./profile=full/subsystem=transactions:write-attribute(name=jts,value=true)
/profile=full/subsystem=transactions:write-attribute(name=jts,value=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리 콘솔에서 다음을 수행합니다.
- Cryostats → Transactions → View 로 이동합니다.
- 편집을 클릭하고 필요에 따라 속성을 수정한 다음 저장을 클릭합니다.
서버를 다시 시작하십시오.
간단한 다시 로드가 부족하기 때문에 JTS를 활성화하려면 전체 서버를 다시 시작해야 합니다.
검증
특성 설정을 읽고 CLI를 사용하여 구성을 확인합니다.
/profile=full/subsystem=iiop-openjdk:read-resource
/profile=full/subsystem=iiop-openjdk:read-resourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 또는 서버를 다시 시작한 후 관리 콘솔에서 업데이트된 속성을 확인합니다.
13.3. SSL/TLS를 사용하도록 IIOP 구성 링크 복사링크가 클립보드에 복사되었습니다!
클라이언트와 서버 간 보안 통신에 SSL/TLS를 사용하도록 iiop-openjdk 하위 시스템을 구성할 수 있습니다. 아래 단계에서는 IIOP 하위 시스템에 대해 SSL/TLS를 구성하는 방법을 간략하게 설명합니다.
사전 요구 사항
- JBoss EAP를 설치했습니다.
- 관리 권한이 있는 관리 CLI 또는 관리 콘솔에 액세스할 수 있습니다.
프로세스
server-ssl-context를 생성합니다./subsystem=elytron/server-ssl-context=<server-ssl-context_name>:add(key-manager=<key-manager_name>, protocols=<list_of_protocols>)
/subsystem=elytron/server-ssl-context=<server-ssl-context_name>:add(key-manager=<key-manager_name>, protocols=<list_of_protocols>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow server-ssl-context를 생성하는 작업 예제는 최신 JBoss EAP 보안 가이드: JBoss EAP 에서 SSL/TLS 구성 가이드를 참조하십시오.iiop-openjdk하위 시스템에서 SSL/TLS를 사용하려면server-ssl-context를 정의해야 합니다. JBoss EAP는 SSL/TLS 연결을 서버로 만들 때server-ssl-context에서 제공하는 구성을 사용합니다.server-ssl-context속성에 대한 자세한 내용은 JBoss EAP 가이드에서 SSL/TLS 구성에서 확인할 수 있습니다.client-ssl-context를 생성합니다. 예를 들면 다음과 같습니다./subsystem=elytron/client-ssl-context=exampleCSC:add(key-manager=applicationKM, protocols=["TLSv1.2"])
/subsystem=elytron/client-ssl-context=exampleCSC:add(key-manager=applicationKM, protocols=["TLSv1.2"])Copy to Clipboard Copied! Toggle word wrap Toggle overflow iiop-openjdk하위 시스템에서 SSL/TLS를 사용하려면client-ssl-context를 정의해야 합니다. JBoss EAP는 SSL/TLS 연결을 클라이언트로 만들 때client-ssl-context에서 제공하는 구성을 사용합니다. 클라이언트-ssl-context 사용에서클라이언트-ssl-context생성에 대한 자세한 내용은 How to Configure Server Security 가이드를 참조하십시오. https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.4/html-single/how_to_configure_server_security/#using_client_ssl_context참고이 링크는 JBoss EAP 7.4용 JBoss EAP 보안 가이드로 안내합니다. 현재 Red Hat JBoss Enterprise Application Platform 8.0 문서를 업데이트하는 중입니다. 이 링크는 새 문서가 완료되면 업데이트됩니다.
client-ssl-context및server-ssl-context를 사용하도록iiop-openjdk하위 시스템을 구성합니다.예:
client-ssl-context및server-ssl-context설정Copy to Clipboard Copied! Toggle word wrap Toggle overflow iiop-openjdk하위 시스템에서 및 에 대한 연결을 구성합니다.다음 속성을 조정하여
iiop-openjdk하위 시스템에 연결할 때 SSL/TLS 연결이 필요한지 여부를 나타낼 수 있습니다.-
iiop-openjdk하위 시스템에서 SSL에 대한 지원을 활성화하려면support-ssl을true로 설정합니다. 기본값은false입니다. -
iiop-openjdk하위 시스템의 SSL/TLS 연결이 필요한 경우client-requires-ssl을true로 설정합니다. 기본값은false입니다. -
iiop-openjdk하위 시스템에 대한 SSL/TLS 연결이 필요한 경우server-requires-ssl을true로 설정합니다. 기본값은false입니다. 이 값을true로 설정하면 SSL이 아닌 IIOP 소켓에 연결하는 시도가 차단됩니다. -
socket-binding을 조정하려면ssl-socket-binding을 원하는 바인딩으로 설정합니다. 기본값은iiop-ssl입니다.
예: IIOP에서 Required로 SSL/TLS 연결 설정
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
14장. Jakarta Connectors Management 링크 복사링크가 클립보드에 복사되었습니다!
14.1. Jakarta 커넥터 정보 링크 복사링크가 클립보드에 복사되었습니다!
Jakarta Connectors는 자카르타 EE 시스템이 외부 이기종 엔터프라이즈 정보 시스템(EIS)과 상호 작용할 수 있는 표준 아키텍처를 정의합니다. EIS의 예로는 ERP(Enterprise Resource Planning) 시스템, TP(Transaction Processing), 데이터베이스 및 메시징 시스템이 있습니다. 리소스 어댑터 는 Jakarta Connectors 아키텍처를 구현하는 구성 요소입니다.
Jakarta Connectors 1.7은 다음을 관리하기 위한 기능을 제공합니다.
- 연결
- 트랜잭션
- 보안
- 라이프 사이클
- 작업 인스턴스
- 트랜잭션 흐름
- 메시지 흐름
14.2. 리소스 어댑터 정보 링크 복사링크가 클립보드에 복사되었습니다!
리소스 어댑터는 Jakarta EE 애플리케이션과 Jakarta Connectors 사양을 사용하여 EIS(Enterprise Information System) 간에 통신을 제공하는 배포 가능한 자카르타 EE 구성 요소입니다. EIS 공급업체는 Jakarta EE 애플리케이션과 제품을 쉽게 통합할 수 있도록 리소스 어댑터가 제공되는 경우가 많습니다.
엔터프라이즈 정보 시스템은 조직 내의 다른 모든 소프트웨어 시스템이 될 수 있습니다. 예를 들면 ERP(Enterprise Resource Planning) 시스템, 데이터베이스 시스템, 이메일 서버 및 독점 메시징 시스템이 있습니다.
리소스 어댑터는 JBoss EAP에 배포할 수 있는 RAR(Resource Adapter Archive) 파일에 패키지됩니다. RAR 파일은 Enterprise Archive(EAR) 배포에 포함될 수도 있습니다.
리소스 어댑터 자체는 resource-adapters 하위 시스템 내에 정의되어 있으며, 이 하위 시스템은 CryostatJacamar 프로젝트에서 제공합니다.
14.3. jca Cryostat 구성 링크 복사링크가 클립보드에 복사되었습니다!
jca 하위 시스템은 Jakarta Connectors 컨테이너 및 리소스 어댑터 배포의 일반 설정을 제어합니다. 관리 콘솔 또는 관리 CLI를 사용하여 jca 하위 시스템을 구성할 수 있습니다.
구성할 주요 jca 하위 시스템 요소는 다음과 같습니다.
14.3.1. 관리 콘솔의 JCA 하위 시스템 설정 링크 복사링크가 클립보드에 복사되었습니다!
구성 → Cryostat → JCA 로 이동하고 보기를 클릭하여 관리 콘솔에서 jca 하위 시스템을 구성할 수 있습니다. 그런 다음 적절한 탭을 선택합니다.
설정
캐시된 연결 관리자, 아카이브 유효성 검사 및 빈 유효성 검사에 대한 설정이 포함되어 있습니다. 적절한 탭을 열고 편집 링크를 클릭하여 이러한 설정을 수정합니다.
부트스트랩 컨텍스트
구성된 부트스트랩 컨텍스트 목록을 포함합니다. 새 부트스트랩 컨텍스트 오브젝트를 추가, 제거 및 구성할 수 있습니다. 각 부트스트랩 컨텍스트는 작업 관리자를 할당해야 합니다.
WorkManager
구성된 작업 관리자 목록을 포함합니다. 새로운 작업 관리자는 여기에 구성된 해당 스레드 풀을 추가, 제거, 제거할 수 있습니다. 각 작업 관리자는 하나의 단기 실행 스레드 풀과 선택적인 장기 실행 스레드 풀을 가질 수 있습니다.
선택한 작업 관리자에서 스레드 풀 을 클릭하여 스레드 풀 속성을 구성할 수 있습니다.
14.3.2. 관리 CLI의 JCA 하위 시스템 설정 링크 복사링크가 클립보드에 복사되었습니다!
이 절차의 단계에 따라 관리 CLI를 사용하여 jca 하위 시스템을 구성할 수 있습니다.
프로세스
-
관리 CLI를 사용하여
jca하위 시스템을 구성합니다.
/subsystem=jca
/subsystem=jca
관리형 도메인에서 명령 앞에 다음을 붙여야 합니다.
/profile=PROFILE_NAME
/profile=PROFILE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 섹션의 표의 특성 이름은 관리 모델(예: 관리 CLI 사용 시)에 표시되는 대로 나열됩니다. 관리 모델의 차이가 있을 수 있으므로 EAP_HOME/docs/schema/wildfly-jca_5_0.xsd 에 있는 스키마 정의 파일을 참조하십시오.
14.3.3. 아카이브 검증 링크 복사링크가 클립보드에 복사되었습니다!
배포 단위에서 아카이브 유효성 검사를 수행할지 여부를 결정합니다. 다음 표에서는 아카이브 검증을 위해 설정할 수 있는 특성에 대해 설명합니다.
| 속성 | 기본값 | 설명 |
|---|---|---|
|
|
| 아카이브 유효성 검사가 활성화되었는지 여부를 지정합니다. |
|
|
| 아카이브 검증 오류 보고서가 배포에 실패하는지 여부를 지정합니다. |
|
|
| 아카이브 검증 경고 보고서가 배포에 실패하는지 여부를 지정합니다. |
아카이브 유효성 검사를 지정하지 않으면 존재하는 것으로 간주되며 enabled 속성은 기본적으로 true 로 설정됩니다.
배포 중 오류 메시지 예
14.3.4. Cryostat 검증 링크 복사링크가 클립보드에 복사되었습니다!
Cryostat 유효성 검사에 따라 metrics 유효성 검사가 수행되는지 여부를 결정합니다. 사양에 대한 자세한 내용은 Jakarta Cryostat Validation 사양 을 참조하십시오.
| 속성 | 기본값 | 설명 |
|---|---|---|
|
|
| Cryostat 유효성 검사가 활성화되었는지 여부를 지정합니다. |
Cryostat 유효성 검사를 지정하지 않으면 존재하는 것으로 간주되며 enabled 속성은 기본적으로 true 로 설정됩니다.
14.3.5. 작업 관리자 링크 복사링크가 클립보드에 복사되었습니다!
작업 관리자는 Jakarta Connectors 하위 시스템 내에서 작업 인스턴스를 관리합니다. 작업 관리자는 다음 두 가지 유형이 있습니다.
기본 작업 관리자
기본 작업 관리자 및 해당 스레드 풀입니다.
사용자 정의 작업 관리자
사용자 지정 작업 관리자 정의 및 해당 스레드 풀.
| 속성 | 설명 |
|---|---|
|
| 작업 관리자의 이름을 지정합니다. |
|
| 작업 관리자를 위한 Elytron 보안을 활성화합니다. |
또한 작업 관리자에는 다음과 같은 하위 요소가 있습니다.
| 하위 요소 | 설명 |
|---|---|
| short-running-threads | 표준 작업 인스턴스의 스레드 풀입니다. 각 작업 관리자에게는 하나의 단기 실행 스레드 풀이 있습니다. |
| long-running-threads |
Jakarta Connectors 1.7 Work 인스턴스의 스레드 풀은 |
다음 표에서는 작업 관리자 스레드 풀에 설정할 수 있는 특성에 대해 설명합니다.
| 속성 | 설명 |
|---|---|
| allow-core-timeout |
코어 스레드가 시간 초과될 수 있는지 여부를 결정하는 부울 설정입니다. 기본값은 |
| core-threads | 코어 스레드 풀 크기입니다. 이는 최대 스레드 풀 크기보다 크거나 같아야 합니다. |
| handoff-executor | 작업을 수락할 수 없는 경우 작업을 위임하는 executor입니다. 지정하지 않으면 수락할 수 없는 작업이 자동으로 삭제됩니다. |
| keepalive-time | 작업을 수행한 후 풀 스레드를 유지해야 하는 시간을 지정합니다. |
| max-threads | 최대 스레드 풀 크기입니다. |
| name | 스레드 풀의 이름을 지정합니다. |
| queue-length | 최대 큐 길이입니다. |
| thread-factory | 스레드 팩토리에 대한 참조입니다. |
14.3.6. 분산 작업 관리자 링크 복사링크가 클립보드에 복사되었습니다!
분산 작업 관리자는 다른 작업 관리자 인스턴스에서 작업 실행을 다시 예약할 수 있는 작업 관리자 인스턴스입니다.
다음 예제 관리 CLI 명령은 분산 작업 관리자를 구성합니다. 독립 실행형 서버의 standalone-ha.xml 또는 standalone-full-ha.xml 구성 파일과 같은 고가용성 기능을 제공하는 구성을 사용해야 합니다.
예: 분산 작업 관리자 구성
batch /subsystem=jca/distributed-workmanager=myDistWorkMgr:add(name=myDistWorkMgr) /subsystem=jca/distributed-workmanager=myDistWorkMgr/short-running-threads=myDistWorkMgr:add(queue-length=10,max-threads=10) /subsystem=jca/bootstrap-context=myCustomContext:add(name=myCustomContext,workmanager=myDistWorkMgr) run-batch
batch
/subsystem=jca/distributed-workmanager=myDistWorkMgr:add(name=myDistWorkMgr)
/subsystem=jca/distributed-workmanager=myDistWorkMgr/short-running-threads=myDistWorkMgr:add(queue-length=10,max-threads=10)
/subsystem=jca/bootstrap-context=myCustomContext:add(name=myCustomContext,workmanager=myDistWorkMgr)
run-batch
short-running-threads 요소의 이름은 distributed-workmanager 요소의 이름과 동일해야 합니다.
다음 표에서는 분산 작업 관리자를 위해 구성할 수 있는 특성에 대해 설명합니다.
| 속성 | 설명 |
|---|---|
| Elytron-enabled | 작업 관리자를 위한 Elytron 보안을 활성화합니다. |
| name | 분산 작업 관리자의 이름입니다. |
| policy | 정책은 작업 인스턴스를 재배포할 시기를 결정합니다. 허용되는 값은 다음과 같습니다.
|
| policy-options |
정책의 키/값 쌍 옵션 목록입니다. /subsystem=jca/distributed-workmanager=myDistWorkMgr:write-attribute(name=policy-options,value={watermark=3})
|
| 선택기 | 선택기는 네트워크에서 work 인스턴스를 재배포할 노드를 결정합니다. 허용되는 값은 다음과 같습니다.
|
| selector-options | 선택기의 키/값 쌍 옵션 목록입니다. |
분산 작업 관리자에는 다음과 같은 하위 요소가 있습니다.
| 하위 요소 | 설명 |
|---|---|
| long-running-threads |
|
| short-running-threads | 표준 작업 인스턴스의 스레드 풀입니다. 각 분산 작업 관리자는 짧은 실행 스레드 풀이 있어야 합니다. |
14.3.7. 부트스트랩 컨텍스트 링크 복사링크가 클립보드에 복사되었습니다!
이는 사용자 지정 부트스트랩 컨텍스트를 정의하는 데 사용됩니다. 다음 표에서는 부트스트랩 컨텍스트에 대해 설정할 수 있는 특성을 설명합니다.
| 속성 | 설명 |
|---|---|
| name | 부트스트랩 컨텍스트의 이름을 지정합니다. |
| WorkManager | 이 컨텍스트에 사용할 작업 관리자의 이름을 지정합니다. |
14.3.8. 캐시된 연결 관리자 링크 복사링크가 클립보드에 복사되었습니다!
캐시된 연결 관리자는 연결을 디버깅하고 트랜잭션에서 연결 지연을 지원하는 데 사용되며 애플리케이션에서 올바르게 사용 및 릴리스되는지 여부를 추적합니다. 다음 표에서는 캐시된 연결 관리자에 대해 설정할 수 있는 특성에 대해 설명합니다.
| 속성 | 기본값 | 설명 |
|---|---|---|
| debug | false | 연결을 명시적으로 종료하지 못한 경우 경고를 출력합니다. |
| error | false | 연결을 명시적으로 닫지 못하는 경우 예외를 throw합니다. |
| ignore-unknown-connections | false | 알 수 없는 연결이 캐시되지 않도록 지정합니다. |
| 설치 | false | 캐시된 연결 관리자 구성 및 인터셉터를 활성화하거나 비활성화합니다. |
14.3.9. 관리 CLI를 사용하여 리소스 어댑터 배포 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 리소스 어댑터를 배포합니다.
사전 요구 사항
- 관리 CLI에 액세스합니다.
프로세스
독립 실행형 서버에 리소스 어댑터를 배포합니다.
---- deploy /path/to/resource-adapter.rar ----
---- deploy /path/to/resource-adapter.rar ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리형 도메인의 모든 서버 그룹에 리소스 어댑터를 배포합니다.
---- deploy /path/to/resource-adapter.rar --all-server-groups ----
---- deploy /path/to/resource-adapter.rar --all-server-groups ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.3.10. 관리 콘솔을 사용하여 리소스 어댑터 배포 링크 복사링크가 클립보드에 복사되었습니다!
관리 콘솔을 사용하여 리소스 어댑터를 배포합니다.
사전 요구 사항
- 관리 콘솔에 액세스합니다.
프로세스
- 관리 콘솔에 로그인합니다.
- Deployments 탭으로 이동합니다.
Add (+) 버튼을 클릭합니다.
- 관리형 도메인에서 먼저 Content Repository 를 선택해야 합니다.
- Upload Deployment 옵션을 선택합니다.
- 리소스 어댑터 아카이브로 이동하여 다음을 클릭합니다.
- 업로드를 확인한 다음 완료 를 클릭합니다.
- 관리형 도메인에서 배포를 적절한 서버 그룹에 배포하고 배포를 활성화합니다.
14.3.11. 배포 스캐너를 사용하여 리소스 어댑터 배포 링크 복사링크가 클립보드에 복사되었습니다!
독립 실행형 서버에서 배포 스캐너를 사용하여 리소스 어댑터를 배포합니다.
사전 요구 사항
- 서버의 파일 시스템에 액세스합니다.
프로세스
-
독립 실행형 서버에 리소스 어댑터를 수동으로 배포하려면 리소스 어댑터 아카이브를 서버 배포 디렉터리(예:
EAP_HOME/standalone/deployments/)에 복사합니다. 이는 배포 스캐너에 의해 선택 및 배포됩니다.
이 옵션은 관리형 도메인에서 사용할 수 없습니다. 관리 콘솔 또는 관리 CLI를 사용하여 리소스 어댑터를 서버 그룹에 배포해야 합니다.
14.4. 리소스 어댑터 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리 인터페이스를 사용하여 리소스 어댑터를 구성할 수 있습니다. 다음 예제에서는 관리 CLI를 사용하여 리소스 어댑터를 구성하는 방법을 보여줍니다. 지원되는 속성 및 기타 중요한 정보는 리소스 어댑터 벤더 설명서를 참조하십시오.
14.4.1. 리소스 어댑터 구성 추가 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 리소스 어댑터 구성을 추가합니다.
사전 요구 사항
- 관리 CLI에 액세스합니다.
프로세스
리소스 어댑터 구성을 추가합니다.
/subsystem=resource-adapters/resource-adapter=eis.rar:add(archive=eis.rar, transaction-support=XATransaction)
/subsystem=resource-adapters/resource-adapter=eis.rar:add(archive=eis.rar, transaction-support=XATransaction)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.4.2. 리소스 어댑터 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
리소스 어댑터 설정은 애플리케이션 서버와 외부 시스템 간의 연결을 관리하고 통합 및 성능을 최적화하도록 구성합니다.
사전 요구 사항
- 리소스 어댑터 구성이 추가되었습니다.
- 관리 CLI에 액세스할 수 있습니다.
프로세스
config-properties구성:서버구성 속성을 추가합니다.---- /subsystem=resource-adapters/resource-adapter=eis.rar/config-properties=server:add(value=localhost) -------- /subsystem=resource-adapters/resource-adapter=eis.rar/config-properties=server:add(value=localhost) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 포트구성 속성을 추가합니다.---- /subsystem=resource-adapters/resource-adapter=eis.rar/config-properties=port:add(value=9000) -------- /subsystem=resource-adapters/resource-adapter=eis.rar/config-properties=port:add(value=9000) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
admin-objects를 구성합니다.관리자 오브젝트를 추가합니다.
---- /subsystem=resource-adapters/resource-adapter=eis.rar/admin-objects=aoName:add(class-name=com.acme.eis.ra.EISAdminObjectImpl, jndi-name=java:/eis/AcmeAdminObject) -------- /subsystem=resource-adapters/resource-adapter=eis.rar/admin-objects=aoName:add(class-name=com.acme.eis.ra.EISAdminObjectImpl, jndi-name=java:/eis/AcmeAdminObject) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow admin 오브젝트 구성 속성을 구성합니다.
---- /subsystem=resource-adapters/resource-adapter=eis.rar/admin-objects=aoName/config-properties=threshold:add(value=10) -------- /subsystem=resource-adapters/resource-adapter=eis.rar/admin-objects=aoName/config-properties=threshold:add(value=10) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
connection-definitions구성 :관리되는 연결 팩토리에 대한 연결 정의를 추가합니다.
---- /subsystem=resource-adapters/resource-adapter=eis.rar/connection-definitions=cfName:add(class-name=com.acme.eis.ra.EISManagedConnectionFactory, jndi-name=java:/eis/AcmeConnectionFactory) -------- /subsystem=resource-adapters/resource-adapter=eis.rar/connection-definitions=cfName:add(class-name=com.acme.eis.ra.EISManagedConnectionFactory, jndi-name=java:/eis/AcmeConnectionFactory) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리형 연결 팩토리 구성 속성을 구성합니다.
---- /subsystem=resource-adapters/resource-adapter=eis.rar/connection-definitions=cfName/config-properties=name:add(value=Acme Inc) -------- /subsystem=resource-adapters/resource-adapter=eis.rar/connection-definitions=cfName/config-properties=name:add(value=Acme Inc) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 등록 추적을 기록할지 여부를 구성합니다.
enlistment-trace특성을true로 설정하여 등록 추적 기록을 활성화합니다.---- /subsystem=resource-adapters/resource-adapter=eis.rar/connection-definitions=cfName:write-attribute(name=enlistment-trace,value=true) -------- /subsystem=resource-adapters/resource-adapter=eis.rar/connection-definitions=cfName:write-attribute(name=enlistment-trace,value=true) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 주의Enlistment tracing을 활성화하면 트랜잭션 등록 중에 오류를 쉽게 추적할 수 있지만 성능에 미치는 영향을 미칩니다.
14.4.3. 리소스 어댑터 활성화 링크 복사링크가 클립보드에 복사되었습니다!
리소스 어댑터를 구성한 후 활성화합니다.
사전 요구 사항
- 리소스 어댑터가 구성되어 있습니다.
- 관리 CLI에 액세스합니다.
프로세스
리소스 어댑터를 활성화합니다.
---- /subsystem=resource-adapters/resource-adapter=eis.rar:activate ----
---- /subsystem=resource-adapters/resource-adapter=eis.rar:activate ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
리소스 어댑터에 대한 용량 정책을 정의할 수도 있습니다. 자세한 내용은 용량 정책 섹션을 참조하십시오.
14.5. Elytron 하위 시스템을 사용하도록 리소스 어댑터 구성 링크 복사링크가 클립보드에 복사되었습니다!
CryostatJacamar의 리소스 어댑터에는 서버와 리소스 어댑터 간의 두 가지 유형의 통신이 포함됩니다.
- 유형 중 하나는 서버가 리소스 어댑터 연결을 여는 경우입니다. 이 기능은 연결을 열 때 리소스 어댑터에 대한 주체 및 자격 증명이 포함된 JAAS 제목을 전파해야 하는 컨테이너 관리 사인온으로 보호할 수 있습니다. 이 서명은 Elytron에 위임할 수 있습니다.
- 리소스 어댑터가 작업 관리자에게 작업을 제출하거나 동일한 JBoss EAP 인스턴스 내의 엔드포인트에 메시지를 전달할 때 보안 정보를 설정합니다. 이 메커니즘을 보안 흐름이라고 합니다.
14.5.1. Elytron을 사용하여 컨테이너 관리 사인온 링크 복사링크가 클립보드에 복사되었습니다!
Elytron을 사용하여 컨테이너 관리 인증을 얻으려면 elytron-enabled 속성을 true 로 설정해야 합니다. 이렇게 하면 리소스 어댑터에 대한 모든 연결이 Elytron에 의해 보호됩니다.
/subsystem=resource-adapters/resource-adapter=<RAR_NAME>/connection-definitions=<FACTORY_NAME>:write-attribute(name=elytron-enabled,value=true)
/subsystem=resource-adapters/resource-adapter=<RAR_NAME>/connection-definitions=<FACTORY_NAME>:write-attribute(name=elytron-enabled,value=true)
특성은 elytron-enabled resource-adapters 하위 시스템에서 true 로 설정하여 관리 CLI를 사용하여 구성할 수 있습니다. 기본적으로 이 속성은 false 로 설정됩니다.
authentication-context 속성은 사인온을 수행하는 데 사용할 Elytron 인증 컨텍스트의 이름을 정의합니다.
Elytron authentication-context 속성에는 하나 이상의 인증 구성 요소를 포함할 수 있으며, 이 요소에는 사용할 인증 정보가 포함됩니다.
속성이 설정되지 않은 경우 JBoss EAP는 연결을 여는 호출자 코드에서 사용하는 authentication-context authentication-context 인 현재 authentication-context를 사용합니다.
예: 인증 구성생성
/subsystem=elytron/authentication-configuration=exampleAuthConfig:add(authentication-name=sa,credential-reference={clear-text=sa})
/subsystem=elytron/authentication-configuration=exampleAuthConfig:add(authentication-name=sa,credential-reference={clear-text=sa})
예: 위의 구성을 사용하여 인증 컨텍스트 생성
/subsystem=elytron/authentication-context=exampleAuthContext:add(match-rules=[{authentication-configuration=exampleAuthConfig}])
/subsystem=elytron/authentication-context=exampleAuthContext:add(match-rules=[{authentication-configuration=exampleAuthConfig}])
14.5.2. Security Inflow with Elytron 링크 복사링크가 클립보드에 복사되었습니다!
Security inflow를 사용하면 리소스 어댑터가 작업 관리자에게 작업을 제출하거나 동일한 JBoss EAP 인스턴스 내의 엔드포인트에 메시지를 전달할 때 보안 정보를 설정할 수 있습니다. 이렇게 하면 Elytron을 사용하여 실행하기 전에 작업이 자체적으로 인증할 수 있습니다. 인증이 성공하면 생성된 인증 컨텍스트에서 제출된 작업이 실행됩니다. 실패하면 작업 실행이 거부됩니다.
Elytron Security inflow를 활성화하려면 리소스 어댑터의 작업 관리자를 구성할 때 wm-elytron-security-domain 속성을 설정합니다.
-
리소스 어댑터 작업 관리자가 Elytron 보안 도메인인
wm-elytron-security-domain을 사용하도록 구성된 경우 참조된 작업 관리자에게elytron-enabled특성이true로 설정되어야 합니다.
/subsystem=jca/workmanager=customWM:add(name=customWM, elytron-enabled=true)
/subsystem=jca/workmanager=customWM:add(name=customWM, elytron-enabled=true)
-
wm-elytron-security-domain대신wm-security-domain이 사용되는 경우 기존 보안 하위 시스템에서보안침입을 수행합니다.
아래 jca 하위 시스템의 구성 예제에서는 ra-with-elytron-security-domain 이라는 리소스 어댑터의 구성을 확인할 수 있습니다. 이 리소스 어댑터는 Elytron 보안 도메인의 wm-realm 을 사용하도록 작업 관리자 보안을 구성합니다.
그러면 resource-adapter 하위 시스템의 boostrap 컨텍스트를 사용하여 작업 관리자를 참조합니다.
예: 보안 도메인 구성
Work 클래스는 지정된 도메인에 Elytron의 인증에 대한 자격 증명을 제공합니다. 이를 위해 jakarta.resource.spi.work.WorkContextProvider 를 구현해야 합니다.
이 인터페이스를 사용하면 를 사용하여 작업이 실행될 컨텍스트의 일부 측면을 구성할 수 있습니다. 이러한 측면 중 하나는 보안 흐름입니다. 이를 위해 Work ContextList<WorkContext> getWorkContexts 메서드는 jakarta.resource.spi.work.SecurityContext 를 제공해야 합니다. 이 컨텍스트는 자카르타 인증에서 정의한 jakarta.security.auth.callback.Callback 오브젝트를 사용합니다.
예: 컨텍스트를 사용하여 콜백 생성
위의 예에서 ExampleWork 는 WorkContextProvider 인터페이스를 구현하여 ExampleSecurityContext 를 제공합니다. 해당 컨텍스트는 작업 실행 시 Elytron에서 인증할 보안 정보를 제공하는 데 필요한 콜백을 생성합니다.
추가 리소스
14.6. 관리형 연결 풀 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 ManagedConnectionPool 인터페이스의 세 가지 구현을 제공합니다.
-
org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedQueueManagedConnectionPool: 이는 JBoss EAP 7의 기본 연결 풀이며 최상의 성능을 제공합니다. -
org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool: 이전 JBoss EAP 버전의 기본 연결 풀입니다. -
org.jboss.jca.core.connectionmanager.pool.mcp.LeakDumperManagedConnectionPool: 이 연결 풀은 디버깅 목적으로만 사용되며 종료 시 또는 풀이 플러시될 때 발생합니다.
사전 요구 사항
- 관리 CLI에 액세스합니다.
프로세스
데이터 소스에 대한 관리형 연결 풀 구현을 설정합니다.
---- /subsystem=datasources/data-source=DATA_SOURCE:write-attribute(name=mcp,value=MCP_CLASS) ----
---- /subsystem=datasources/data-source=DATA_SOURCE:write-attribute(name=mcp,value=MCP_CLASS) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스 어댑터에 대한 관리형 연결 풀 구현을 설정합니다.
---- /subsystem=resource-adapters/resource-adapter=RESOURCE_ADAPTER/connection-definitions=CONNECTION_DEFINITION:write-attribute(name=mcp,value=MCP_CLASS) ----
---- /subsystem=resource-adapters/resource-adapter=RESOURCE_ADAPTER/connection-definitions=CONNECTION_DEFINITION:write-attribute(name=mcp,value=MCP_CLASS) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 메시징 서버에 대한 관리형 연결 풀 구현을 설정합니다.
---- /subsystem=messaging-activemq/server=SERVER/pooled-connection-factory=CONNECTION_FACTORY:write-attribute(name=managed-connection-pool,value=MCP_CLASS) ----
---- /subsystem=messaging-activemq/server=SERVER/pooled-connection-factory=CONNECTION_FACTORY:write-attribute(name=managed-connection-pool,value=MCP_CLASS) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.7. 연결 통계 보기 링크 복사링크가 클립보드에 복사되었습니다!
/deployment=NAME.rar 하위 트리에서 정의된 연결에 대한 통계를 읽습니다. 이를 통해 standalone.xml 또는 domain.xml 구성에 정의되지 않은 경우에도 RAR에 대한 통계에 액세스할 수 있습니다.
사전 요구 사항
- 관리 CLI에 액세스합니다.
프로세스
다음 명령을 실행하여 연결 통계를 읽습니다.
---- /deployment=NAME.rar/subsystem=resource-adapters/statistics=statistics/connection-definitions=java\:\/testMe:read-resource(include-runtime=true) ----
---- /deployment=NAME.rar/subsystem=resource-adapters/statistics=statistics/connection-definitions=java\:\/testMe:read-resource(include-runtime=true) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
모든 통계가 런타임 전용 정보이므로 include-runtime=true 인수를 지정해야 합니다.
14.8. 리소스 어댑터 연결 플러시 링크 복사링크가 클립보드에 복사되었습니다!
다음 관리 CLI 명령을 사용하여 리소스 어댑터 연결을 플러시할 수 있습니다.
관리형 도메인에서 이러한 명령 앞에 /host=HOST_NAME/server=SERVER_NAME/ 여야 합니다.
사전 요구 사항
- 관리 CLI에 액세스합니다.
프로세스
풀의 모든 연결을 플러시합니다.
---- /subsystem=resource-adapters/resource-adapter=RESOURCE_ADAPTER/connection-definitions=CONNECTION_DEFINITION:flush-all-connection-in-pool ----
---- /subsystem=resource-adapters/resource-adapter=RESOURCE_ADAPTER/connection-definitions=CONNECTION_DEFINITION:flush-all-connection-in-pool ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 풀의 모든 연결을 정상적으로 플러시합니다.
---- /subsystem=resource-adapters/resource-adapter=RESOURCE_ADAPTER/connection-definitions=CONNECTION_DEFINITION:flush-gracefully-connection-in-pool ----
---- /subsystem=resource-adapters/resource-adapter=RESOURCE_ADAPTER/connection-definitions=CONNECTION_DEFINITION:flush-gracefully-connection-in-pool ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow The server will wait until connections become idle before flushing them.
The server will wait until connections become idle before flushing them.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 풀의 모든 유휴 연결을 플러시합니다.
---- /subsystem=resource-adapters/resource-adapter=RESOURCE_ADAPTER/connection-definitions=CONNECTION_DEFINITION:flush-idle-connection-in-pool ----
---- /subsystem=resource-adapters/resource-adapter=RESOURCE_ADAPTER/connection-definitions=CONNECTION_DEFINITION:flush-idle-connection-in-pool ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 풀에서 유효하지 않은 모든 연결을 플러시합니다.
---- /subsystem=resource-adapters/resource-adapter=RESOURCE_ADAPTER/connection-definitions=CONNECTION_DEFINITION:flush-invalid-connection-in-pool ----
---- /subsystem=resource-adapters/resource-adapter=RESOURCE_ADAPTER/connection-definitions=CONNECTION_DEFINITION:flush-invalid-connection-in-pool ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow The server will flush all connections that it determines to be invalid.
The server will flush all connections that it determines to be invalid.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이러한 절차는 순차적이지 않습니다.
15장. JBoss EAP에서 웹 서버(Undertow) 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 장에서는 JBoss EAP에 내장된 기본 서버인 Cryostat 웹 서버 구성에 대해 중점적으로 설명합니다. 여기에서 보안 통신을 위해 SSL/TLS 활성화, 향상된 성능을 위해 HTTP/2 활용, 운영 요구 사항에 맞게 서버 설정을 미세 조정하는 방법에 대한 자세한 지침을 확인할 수 있습니다.
15.1. Cryostat 하위 시스템 개요 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 8.0에서 Cryostat 하위 시스템은 애플리케이션 서버 내의 웹 계층 역할을 합니다. 핵심 웹 서버 및 서블릿 컨테이너 기능을 제공하여 Jakarta Servlet 6.0 사양, websockets 및 HTTP 업그레이드와 같은 고급 기능을 지원합니다. 또한 Cryostat는 mod_cluster 지원을 통해 고성능 역방향 프록시 역할을 하여 웹 트래픽 처리의 확장성, 효율성 및 유연성을 향상시킵니다.
undertow 하위 시스템을 사용하면 웹 서버 및 서블릿 컨테이너 설정을 구성할 수 있습니다. Jakarta Servlet 6.0 사양 과 웹 소켓을 구현합니다. 또한 HTTP 업그레이드 및 서블릿 배포에서 고성능 비차단 처리기 사용을 지원합니다. undertow 하위 시스템에는 mod_cluster를 지원하는 고성능 역방향 프록시 역할을 할 수 있습니다.
undertow 하위 시스템 내에는 다음과 같은 5가지 기본 구성 요소가 있습니다.
- 버퍼 캐시
- 서버
- 서블릿 컨테이너
- 처리기
- 필터
JBoss EAP는 이러한 각 구성 요소에 대한 구성을 업데이트하는 기능을 제공하지만 기본 구성은 대부분의 사용 사례에 적합하며 적절한 성능 설정을 제공합니다.
기본 undertow 하위 시스템 구성
undertow 하위 시스템은 io 하위 시스템을 사용하여 XNIO 작업자 및 버퍼 풀을 제공합니다. io 하위 시스템은 별도로 구성되며 대부분의 경우 최적의 성능을 제공해야 하는 기본 구성을 제공합니다.
15.1.1. undertow 하위 시스템에서 Elytron 사용 링크 복사링크가 클립보드에 복사되었습니다!
웹 애플리케이션이 배포되면 해당 애플리케이션에 필요한 보안 도메인의 이름이 식별됩니다. 이는 배포 내에서 또는 배포에 보안 도메인이 없는 경우 undertow 하위 시스템에 정의된 대로 default-security-domain 으로 가정합니다. 기본적으로 default-security-domain 은 ApplicationDomain 입니다. 애플리케이션에 필요한 보안 도메인 이름에서 적절한 Elytron 구성으로의 매핑을 보장하기 위해 application-security-domain 리소스를 undertow 하위 시스템에 추가할 수 있습니다.
예: 매핑 추가.
/subsystem=undertow/application-security-domain=ApplicationDomain:add(security-domain=ApplicationDomain)
/subsystem=undertow/application-security-domain=ApplicationDomain:add(security-domain=ApplicationDomain)
결과가 표시되면 매핑이 성공적으로 추가됩니다.
- 이 시점에 배포를 이미 배포한 경우 애플리케이션 보안 도메인 매핑을 적용하려면 애플리케이션 서버를 다시 로드해야 합니다.
- 현재 웹 서비스-Elytron 통합에서는 웹 서비스 엔드포인트를 보호하기 위해 지정된 보안 도메인의 이름이 동일해야 하며 Elytron 보안 도메인 이름은 동일해야 합니다.
이 간단한 형식은 배포가 BASIC,CLIENT_CERT, hieradataGEST,FORM 과 같은 서블릿 사양에 정의된 표준 HTTP 메커니즘을 사용하는 경우에 적합합니다. 여기에서 인증은 ApplicationDomain 보안 도메인에 대해 수행됩니다. 이 양식은 애플리케이션에서 인증 메커니즘을 사용하지 않고 프로그래밍 방식으로 인증을 사용하거나 배포와 연결된 SecurityDomain 을 직접 가져오려는 경우에도 적합합니다.
예: 고급 매핑 양식:
/subsystem=undertow/application-security-domain=MyAppSecurity:add(http-authentication-factory=application-http-authentication)
/subsystem=undertow/application-security-domain=MyAppSecurity:add(http-authentication-factory=application-http-authentication)
결과가 표시되면 고급 매핑이 성공합니다.
이 형태의 구성에서는 보안 도메인을 참조하는 대신 http-authentication-factory 를 참조합니다. 이는 인증 메커니즘의 인스턴스를 가져오는 데 사용할 팩토리이며 보안 도메인과 연결됩니다.
사용자 정의 HTTP 인증 메커니즘을 사용하거나 주요 변환기, 인증 정보 팩토리 및 메커니즘 영역과 같은 메커니즘에 대해 추가 구성을 정의해야 하는 경우 http-authentication-factory 속성을 참조해야 합니다. 또한 서블릿 사양에 설명된 4개 이외의 메커니즘을 사용할 때 http-authentication-factory 특성을 참조하는 것이 좋습니다.
고급 매핑 형식이 사용되는 경우 다른 구성 옵션을 사용할 수 있습니다. override-deployment-config. 참조된 http-authentication-factory 는 전체 인증 메커니즘 세트를 반환할 수 있습니다. 기본적으로 이러한 항목은 애플리케이션에서 요청한 메커니즘과 일치하도록 필터링됩니다. 이 옵션이 true 로 설정된 경우 팩토리에서 제공하는 메커니즘은 애플리케이션에서 요청한 메커니즘을 재정의합니다.
application-security-domain 리소스에는 하나의 추가 옵션 enable-jacc 도 있습니다. 이 값이 true 로 설정되면 이 매핑과 일치하는 배포에 대해 Java Authorization Contract for Containers가 활성화됩니다.
15.1.1.1. 런타임 정보 링크 복사링크가 클립보드에 복사되었습니다!
application-security-domain 매핑이 사용 중인 경우 배포가 예상대로 일치하는지 확인하는 것이 유용할 수 있습니다. include-runtime=true 를 사용하여 리소스를 읽는 경우 매핑과 연결된 배포도 다음과 같이 표시됩니다.
이 출력에서 referencing-deployments 속성은 매핑을 사용하여 배포 simple-webapp.war 가 배포되었음을 보여줍니다.
15.1.2. 버퍼 캐시 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 절차에서는 정적 리소스를 캐시하여 성능을 개선하는 데 도움이 되는 JBoss EAP에서 버퍼 캐시를 구성하는 방법을 안내합니다. 다른 배포에서는 다른 캐시 크기를 사용하여 리소스 관리를 최적화할 수 있습니다. 사용된 총 공간 크기는 버퍼 크기와 영역당 버퍼 수와 최대 영역 수를 곱하여 계산할 수 있습니다. 버퍼 캐시의 기본 크기는 10MB입니다.
JBoss EAP는 기본적으로 단일 캐시를 제공합니다.
<subsystem xmlns="{UndertowSubsystemNamespace}" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other">
<buffer-cache name="default"/>
...
</subsystem>
<subsystem xmlns="{UndertowSubsystemNamespace}" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other">
<buffer-cache name="default"/>
...
</subsystem>
사전 요구 사항
- JBoss EAP가 설치되어 있고 관리 CLI에 대한 관리 액세스 권한이 있는지 확인합니다.
프로세스
기존 버퍼 캐시를 업데이트합니다.
버퍼 크기 특성을 수정합니다.
/subsystem=undertow/buffer-cache=default/:write-attribute(name=buffer-size,value=2048)
/subsystem=undertow/buffer-cache=default/:write-attribute(name=buffer-size,value=2048)Copy to Clipboard Copied! Toggle word wrap Toggle overflow reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
새 버퍼 캐시를 생성합니다.
새 버퍼 캐시를 추가합니다.
/subsystem=undertow/buffer-cache=new-buffer:add
/subsystem=undertow/buffer-cache=new-buffer:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow
버퍼 캐시를 삭제합니다.
기존 버퍼 캐시를 제거합니다.
/subsystem=undertow/buffer-cache=new-buffer:remove
/subsystem=undertow/buffer-cache=new-buffer:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
15.1.3. 바이트 버퍼 풀 구성 링크 복사링크가 클립보드에 복사되었습니다!
Cryostat 바이트 버퍼 풀은 풀링된 NIO Cryostat Buffer 인스턴스를 할당하는 데 사용됩니다. 모든 리스너에는 바이트 버퍼 풀이 있으며 각 리스너에 서로 다른 버퍼 풀과 작업자를 사용할 수 있습니다. 바이트 버퍼 풀은 서로 다른 서버 인스턴스 간에 공유할 수 있습니다.
이러한 버퍼는 IO 작업에 사용되며 버퍼 크기는 애플리케이션 성능에 큰 영향을 미칩니다. 대부분의 서버에서 이상적인 크기는 일반적으로 16k입니다.
사전 요구 사항
- JBoss EAP가 설치되어 있고 관리 CLI에 대한 관리 액세스 권한이 있는지 확인합니다.
프로세스
기존의 버퍼 풀을 업데이트합니다.
버퍼 크기 특성을 수정합니다.
/subsystem=undertow/byte-buffer-pool=myByteBufferPool:write-attribute(name=buffer-size,value=1024)
/subsystem=undertow/byte-buffer-pool=myByteBufferPool:write-attribute(name=buffer-size,value=1024)Copy to Clipboard Copied! Toggle word wrap Toggle overflow reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
새 Cryostat 버퍼 풀을 만듭니다.
새 바이트 버퍼 풀을 추가합니다.
/subsystem=undertow/byte-buffer-pool=newByteBufferPool:add
/subsystem=undertow/byte-buffer-pool=newByteBufferPool:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Cryostat 버퍼 풀을 삭제합니다.
기존 바이트 버퍼 풀을 제거합니다.
/subsystem=undertow/byte-buffer-pool=newByteBufferPool:remove
/subsystem=undertow/byte-buffer-pool=newByteBufferPool:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
- 관리 콘솔에서 버퍼 풀 설정을 확인하여 변경 사항을 확인합니다.
추가 리소스
- 바이트 버퍼 풀에 대한 자세한 속성은 Cryostat 버퍼 풀 속성 섹션을 참조하십시오.
15.1.4. undertow에서 서버 구성 이해 링크 복사링크가 클립보드에 복사되었습니다!
서버는 Cryostat의 인스턴스를 나타내며 다음과 같은 여러 요소로 구성됩니다.
-
host -
http-listener -
https-listener -
Cryostat-listener
host 요소는 가상 호스트 구성을 제공하는 반면 3개의 리스너는 해당 유형의 연결을 Cryostat 인스턴스에 제공합니다.
서버의 기본 동작은 서버가 시작되는 동안 요청을 대기열에 추가하는 것입니다. 호스트의 queue-requests-on-start 특성을 사용하여 이 기본 동작을 변경할 수 있습니다. 이 속성이 true (기본값)로 설정된 경우 서버를 시작할 때 도달하는 요청이 서버가 준비될 때까지 유지됩니다. 이 속성이 false 로 설정된 경우 서버가 완전히 시작되기 전에 도착한 요청은 기본 응답 코드로 거부됩니다.
특성 값에 관계없이 서버가 완전히 시작될 때까지 요청 처리가 시작되지 않습니다.
구성 → Cryostat → Web (Undertow) → Server 로 이동하여 서버를 선택하고, View 를 클릭하고 호스트 탭을 선택하여 관리 콘솔을 사용하여 queue-requests-on-start 속성을 구성할 수 있습니다. 관리형 도메인의 경우 구성할 프로필을 지정해야 합니다.
배포 및 서버를 완전히 분리할 수 있도록 여러 서버를 구성할 수 있습니다. 이는 다중 테넌트 환경과 같은 특정 시나리오에서 유용할 수 있습니다.
JBoss EAP는 기본적으로 서버를 제공합니다.
15.1.5. 기본 undertow 하위 시스템 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 참조는 Cryostat 하위 시스템의 기본 구성을 제공합니다.
15.1.6. 관리 CLI를 사용하여 서버 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 관리 CLI를 사용하여 Cryostat 하위 시스템에서 서버를 관리하는 방법을 설명합니다. 필요에 따라 기존 서버를 업데이트하거나 새 서버를 생성하거나 서버를 삭제할 수 있습니다.
구성 → Cryostat → Web(Undertow) → Server 로 이동하여 관리 콘솔을 사용하여 서버를 구성할 수도 있습니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
프로세스
기존 서버 업데이트
/subsystem=undertow/server=default-server:write-attribute(name=default-host,value=default-host)
/subsystem=undertow/server=default-server:write-attribute(name=default-host,value=default-host)Copy to Clipboard Copied! Toggle word wrap Toggle overflow reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 서버 만들기
/subsystem=undertow/server=new-server:add
/subsystem=undertow/server=new-server:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 삭제
/subsystem=undertow/server=new-server:remove
/subsystem=undertow/server=new-server:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
15.1.7. 액세스 로깅 링크 복사링크가 클립보드에 복사되었습니다!
정의한 각 호스트에서 액세스 로깅을 구성할 수 있습니다.
표준 액세스 로깅 및 콘솔 액세스 로깅의 두 가지 액세스 로깅 옵션을 사용할 수 있습니다.
액세스 로깅에 필요한 추가 처리는 시스템 성능에 영향을 미칠 수 있습니다.
15.1.7.1. 표준 액세스 로깅 링크 복사링크가 클립보드에 복사되었습니다!
표준 액세스 로깅은 로그 항목을 로그 파일에 작성합니다.
기본적으로 로그 파일은 standalone/log/access_log.log 디렉터리에 저장됩니다.
표준 액세스 로깅을 활성화하려면 액세스 로그 데이터를 캡처할 호스트에 access-log 설정을 추가합니다. 다음 CLI 명령은 기본 JBoss EAP 서버의 기본 호스트의 구성을 보여줍니다.
/subsystem=undertow/server=default-server/host=default-host/setting=access-log:add
/subsystem=undertow/server=default-server/host=default-host/setting=access-log:add
표준 액세스 로깅을 활성화한 후 서버를 다시 로드해야 합니다.
기본적으로 액세스 로그 레코드에는 다음 데이터가 포함됩니다.
- 원격 호스트 이름
- 원격 논리 사용자 이름(항상 -)
- 인증된 원격 사용자
- 요청의 날짜 및 시간 (Common Log Format)
- 요청의 첫 번째 줄
- 응답의 HTTP 상태 코드
- HTTP 헤더를 제외하고 전송된 바이트 수
이 데이터 세트는 공통 패턴으로 정의됩니다. 다른 패턴( combined)도 사용할 수 있습니다. 공통 패턴에 기록된 데이터 외에도 결합된 패턴에는 들어오는 헤더의 참조자 및 사용자 에이전트가 포함됩니다.
pattern 특성을 사용하여 기록된 데이터를 변경할 수 있습니다. 다음 CLI 명령은 결합된 패턴을 사용하도록 pattern 특성을 업데이트하는 방법을 보여줍니다.
/subsystem=undertow/server=default-server/host=default-host/setting=access-log:write-attribute(name=pattern,value="combined"
/subsystem=undertow/server=default-server/host=default-host/setting=access-log:write-attribute(name=pattern,value="combined"
pattern 속성을 업데이트한 후 서버를 다시 로드해야 합니다.
| 패턴 | 설명 |
|---|---|
| %a | 원격 IP 주소 |
| %A | 로컬 IP 주소 |
| %b |
HTTP 헤더를 제외하고 전송된 바이트 또는 바이트가 없는 경우 |
| %B | HTTP 헤더를 제외하고 전송된 바이트 |
| %h | 원격 호스트 이름 |
| %H | 요청 프로토콜 |
| %l |
|
| %m | 요청 방법 |
| %p | 로컬 포트 |
| %q |
쿼리 문자열 ( |
| %r | 요청의 첫 번째 줄 |
| %s | 응답의 HTTP 상태 코드 |
| %t | 날짜 및 시간, 일반적인 로그 형식의 형식 |
| %u | 인증된 원격 사용자 |
| %U | 요청된 URL 경로 |
| %v | 로컬 서버 이름 |
| %D | 요청을 처리하는 데 걸린 시간(밀리초) |
| %T | 요청을 처리하는 데 걸린 시간(초) |
| %I | 현재 요청 스레드 이름(나중에 스택 추적과 비교 가능) |
| 공통 |
|
| combined |
|
쿠키, 들어오는 헤더 및 응답 헤더 또는 세션에서 정보를 작성할 수도 있습니다. 구문은 Apache 구문 후에 모델링됩니다.
-
%{I,xxx}들어오는 헤더의 경우 -
%{O,xxx}발신 응답 헤더의 경우 -
%{C,xxx}특정 쿠키의 경우 -
%{R,xxx}여기서xxx는ServletRequest의 속성입니다. -
%{s,xxx}여기서xxx는 CryostatSession의 속성입니다.
이 로그에 추가 구성 옵션을 사용할 수 있습니다. 자세한 내용은 부록의 "access-log Attributes"를 참조하십시오.
15.1.7.2. 콘솔 액세스 로깅 링크 복사링크가 클립보드에 복사되었습니다!
콘솔 액세스 로깅은 JSON 데이터로 구성된 stdout에 데이터를 씁니다.
각 액세스 로그 레코드는 단일 데이터 행입니다. 로그 집계 시스템에서 처리하기 위해 이 데이터를 캡처할 수 있습니다.
콘솔 액세스 로깅을 구성하려면 로그 데이터를 캡처할 호스트에 console-access-log 설정을 추가합니다. 다음 CLI 명령은 기본 JBoss EAP 서버의 기본 호스트의 구성을 보여줍니다.
/subsystem=undertow/server=default-server/host=default-host/setting=console-access-log:add
/subsystem=undertow/server=default-server/host=default-host/setting=console-access-log:add
기본적으로 콘솔 액세스 로그 레코드에는 다음 데이터가 포함됩니다.
| 로그 데이터 필드 이름 | 설명 |
|---|---|
| eventSource | 요청의 이벤트 소스 |
| hostName | 요청을 처리하는 JBoss EAP 호스트 |
| bytesSent | 요청에 대한 응답으로 전송된 JBoss EAP 서버의 바이트 수 |
| dateTime | JBoss EAP 서버에서 요청을 처리한 날짜 및 시간 |
| remoteHost | 요청이 시작된 시스템의 IP 주소입니다. |
| remoteuser | 원격 요청과 연결된 사용자 이름 |
| requestLine | 요청 제출 |
| responseCode | JBoss EAP 서버에서 반환한 HTTP 응답 코드 |
기본 속성은 항상 로그 출력에 포함됩니다. attributes 속성을 사용하여 기본 로그 데이터의 레이블을 변경하고 경우에 따라 데이터 구성을 변경할 수 있습니다. attributes 속성을 사용하여 출력에 로그 데이터를 추가할 수도 있습니다.
| 로그 데이터 필드 이름 | 설명 | 형식 |
|---|---|---|
| authentication-type | 요청과 연결된 사용자를 인증하는 데 사용되는 인증 유형입니다. 기본 레이블: authenticationType 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | authentication-type{} authentication-type={key="authType"} |
| bytes-sent | HTTP 헤더를 제외하고 요청에 반환되는 바이트 수입니다. 기본 레이블: bytesSent 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | bytes-sent={} bytes-sent={key="sent-bytes"} |
| 날짜-시간 | 요청이 수신 및 처리된 날짜 및 시간입니다. 기본 레이블: dateTime 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. date-format을 사용하여 날짜 시간 레코드를 포맷하는 데 사용되는 패턴을 정의합니다. 패턴은 Java SimpleDateFormatter 패턴이어야 합니다. date-format 옵션이 정의된 경우 time-zone 옵션을 사용하여 날짜 및/또는 시간 데이터를 포맷하는 데 사용되는 시간대를 지정합니다. 이 값은 유효한 java.util.TimeZone이어야 합니다. | date-time={key="<keyname>", date-format="<date-time format>"} date-time="@timestamp", date-format="yyyy-MM-dd'T'HH:mm:sSSS"} |
| 호스트 및 포트 | 요청에서 쿼리한 호스트 및 포트입니다. Default label: hostAndPort key 옵션을 사용하여 이 속성의 레이블을 변경합니다. | host-and-port{} host-and-port={key="port-host"} |
| local-ip | 로컬 연결의 IP 주소입니다. 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. 기본 레이블: localIp 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | local-ip{} local-ip{key=”localIP”} |
| local-port | 로컬 연결의 포트입니다. Default label: localPort key 옵션을 사용하여 이 속성의 레이블을 변경합니다. | local-port{} local-port{key=”LocalPort”} |
| local-server-name | 요청을 처리하는 로컬 서버의 이름입니다. 기본 레이블: localServerName 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | local-server-name {} local-server-name {key=LocalServerName} |
| path-parameter | 요청에 포함된 하나 이상의 경로 또는 URI 매개변수입니다. names 속성은 교환 값을 확인하는 데 사용되는 쉼표로 구분된 이름 목록입니다. key-prefix 속성을 사용하여 키를 고유하게 만듭니다. key-prefix가 지정되면 출력의 각 path 매개변수 이름에 접두사가 추가됩니다. | path-parameter{names={store,section}} path-parameter{names={store,section}, key-prefix="my-"} |
| predicate | 서술자 컨텍스트의 이름입니다. names 속성은 교환 값을 확인하는 데 사용되는 쉼표로 구분된 이름 목록입니다. key-prefix 속성을 사용하여 키를 고유하게 만듭니다. key-prefix가 지정되면 출력의 각 path 매개변수 이름에 접두사가 추가됩니다. | predicate{names={store,section}} 서술자{names={store,section}, key-prefix="my-"} |
| query-parameter | 요청에 포함된 하나 또는 쿼리 매개변수입니다. names 속성은 교환 값을 확인하는 데 사용되는 쉼표로 구분된 이름 목록입니다. key-prefix 속성을 사용하여 키를 고유하게 만듭니다. key-prefix가 지정되면 출력의 각 path 매개변수 이름에 접두사가 추가됩니다. | query-parameter{names={store,section}} query-parameter{names={store,section}, key-prefix="my-"} |
| 쿼리 문자열 | 요청의 쿼리 문자열입니다. Default label: queryString key 옵션을 사용하여 이 속성의 레이블을 변경합니다. include-question-mark 속성을 사용하여 쿼리 문자열에 물음표를 포함해야 하는지 여부를 지정합니다. 기본적으로 물음표는 포함되지 않습니다. | query-string{} query-string{key=”QueryString”, include-question-mark=”true”} |
| relative-path | 요청의 상대 경로입니다. 기본 레이블: relativePath 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | relative-path{} relative-path{key=”RelativePath”} |
| remote-host | 원격 호스트 이름입니다. 기본 레이블: remoteHost 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | remote-host{} remote-host{key=”RemoteHost”} |
| remote-ip | 원격 IP 주소입니다. 기본 레이블: remoteIp 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. 난독 처리된 속성을 사용하여 출력 로그 레코드의 IP 주소를 난독화합니다. 기본값은 false입니다. | remote-ip{} remote-ip{key="RemoteIP", obfuscated="true"} |
| remote-user | 인증된 원격 사용자입니다. 기본 레이블: remoteUser 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | remote-user{} remote-user{key="RemoteUser"} |
| request-header | 요청 헤더의 이름입니다. 구조화된 데이터의 키는 헤더의 이름입니다. 값은 이름이 지정된 헤더의 값입니다. names 속성은 교환 값을 확인하는 데 사용되는 쉼표로 구분된 이름 목록입니다. key-prefix 속성을 사용하여 키를 고유하게 만듭니다. 키 접두사가 지정된 경우 로그 출력의 요청 헤더 이름에 접두사가 추가됩니다. | request-header{names={store,section}} request-header{names={store,section}, key-prefix=”my-”} |
| request-line | 요청 행입니다. 기본 레이블: requestLine 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | 요청 행{} request-line{key="Request-Line"} |
| request-method | 요청 방법입니다. 기본 레이블: requestMethod 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | request-method{} request-method{key=”RequestMethod”} |
| request-path | 요청의 상대 경로입니다. 기본 label: requestPath 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | request-path{} request-path{key="RequestPath"} |
| request-protocol | 요청에 대한 프로토콜입니다. 기본 레이블: requestProtocol 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | request-protocol{} 요청-protocol{key="RequestProtocol"} |
| request-scheme | 요청의 URI 스키마입니다. 기본 레이블: requestScheme 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | request-scheme{} request-scheme{key=”RequestScheme”} |
| request-url | 원래 요청 URI입니다. 클라이언트에서 지정한 경우 호스트 이름, 프로토콜 등을 포함합니다. Default label: requestUrl 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | request-url{} request-url{key="RequestURL"} |
| resolved-path | 해결된 경로입니다. Default Label: resolvedPath key 옵션을 사용하여 이 속성의 레이블을 변경합니다. | resolved-path{} resolved-path{key=”ResolvedPath”} |
| response-code | 응답 코드입니다. 기본 레이블: responseCode 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | response-code{} response-code{key=”ResponseCode”} |
| response-header | 응답 헤더의 이름입니다. 구조화된 데이터의 키는 헤더의 이름입니다. 값은 이름이 지정된 헤더의 값입니다. names 속성은 교환 값을 확인하는 데 사용되는 쉼표로 구분된 이름 목록입니다. key-prefix 속성을 사용하여 키를 고유하게 만듭니다. 키 접두사가 지정된 경우 로그 출력의 요청 헤더 이름에 접두사가 추가됩니다. | response-header{names={store,section}} response-header{names={store,section}, key-prefix=”my-”} |
| response-reason-phrase | 응답 코드의 텍스트 이유입니다. 기본 레이블: responseReasonPhrase 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | response-reason-phrase{} response-reason-phrase{key=”ResponseReasonPhrase”} |
| 응답 시간 | 요청을 처리하는 데 사용되는 시간입니다. 기본 레이블: responseTime 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. 기본 시간 단위는 MiLLISECONDS입니다. 사용 가능한 시간 단위는 다음과 같습니다. * NANOSECONDS *MICROSECONDS *MILLISECONDS * SECONDS | response-time{} response-time{key="ResponseTime", time-unit=SECONDS} |
| secure-exchange | 교환이 안전한지 여부를 나타냅니다. 기본 레이블: secureExchange 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | secure-exchange{} secure-exchange{key=”SecureExchange”} |
| SSL-cipher | 요청에 대한 SSL 암호입니다. 기본 레이블: sslCipher 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | SSL-cipher{} ssl-cipher{key="SSLCipher"} |
| ssl-client-cert | 요청에 대한 SSL 클라이언트 인증서입니다. 기본 레이블: sslClientCert 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | ssl-client-cert{} ssl-client-cert{key=”SSLClientCert”} |
| ssl-session-id | 요청의 SSL 세션 ID입니다. 기본 레이블: sslSessionId 키 옵션을 사용하여 이 속성의 레이블을 변경합니다. | SSL-session-id{} stored-response |
| 요청에 저장된 응답입니다. Default label: storedResponse key 옵션을 사용하여 이 속성의 레이블을 변경합니다. | stored-response{} stored-response{key="StoredResponse"} | thread-name |
| 현재 스레드의 스레드 이름입니다. Default label: threadName key 옵션을 사용하여 이 속성의 레이블을 변경합니다. | thread-name{} thread-name{key="ThreadName"} | transport-protocol |
metadata 속성을 사용하여 액세스 로그 레코드에 포함하도록 추가 임의의 데이터를 구성할 수 있습니다. metadata 속성 값은 액세스 로그 레코드에 포함할 데이터를 정의하는 키:값 쌍 집합입니다. 한 쌍의 값은 관리 모델 표현식일 수 있습니다. 관리 모델 표현식은 서버가 시작되거나 다시 로드될 때 해결됩니다. 키-값 쌍은 쉼표로 구분됩니다.
다음 CLI 명령은 추가 로그 데이터, 로그 데이터 사용자 지정 및 추가 메타데이터를 포함하여 복잡한 콘솔 로그 구성의 예를 보여줍니다.
/subsystem=undertow/server=default-server/host=default-host/setting=console-access-log:add(metadata={"@version"="1", "qualifiedHostName"=${jboss.qualified.host.name:unknown}}, attributes={bytes-sent={}, date-time={key="@timestamp", date-format="yyyy-MM-dd'T'HH:mm:ssSSS"}, remote-host={}, request-line={}, response-header={key-prefix="responseHeader", names=["Content-Type"]}, response-code={}, remote-user={}})
/subsystem=undertow/server=default-server/host=default-host/setting=console-access-log:add(metadata={"@version"="1", "qualifiedHostName"=${jboss.qualified.host.name:unknown}}, attributes={bytes-sent={}, date-time={key="@timestamp", date-format="yyyy-MM-dd'T'HH:mm:ssSSS"}, remote-host={}, request-line={}, response-header={key-prefix="responseHeader", names=["Content-Type"]}, response-code={}, remote-user={}})
결과 액세스 로그 레코드는 다음과 같은 추가 JSON 데이터와 유사합니다(참고: 아래 예제 출력은 가독성을 위해 포맷됩니다. 실제 레코드에서는 모든 데이터가 한 줄로 출력됩니다.).
다음 명령은 콘솔 액세스 로그를 활성화한 후 로그 데이터 업데이트를 보여줍니다.
/subsystem=undertow/server=default-server/host=default-host/setting=console-access-log:write-attribute(name=attributes,value={bytes-sent={}, date-time={key="@timestamp", date-format="yyyy-MM-dd'T'HH:mm:ssSSS"}, remote-host={}, request-line={}, response-header={key-prefix="responseHeader", names=["Content-Type"]}, response-code={}, remote-user={}})
/subsystem=undertow/server=default-server/host=default-host/setting=console-access-log:write-attribute(name=attributes,value={bytes-sent={}, date-time={key="@timestamp", date-format="yyyy-MM-dd'T'HH:mm:ssSSS"}, remote-host={}, request-line={}, response-header={key-prefix="responseHeader", names=["Content-Type"]}, response-code={}, remote-user={}})
다음 명령은 콘솔 액세스 로그를 활성화한 후 사용자 지정 메타데이터 업데이트를 보여줍니다.
/subsystem=undertow/server=default-server/host=default-host/setting=console-access-log:write-attribute(name=metadata,value={"@version"="1", "qualifiedHostName"=${jboss.qualified.host.name:unknown}})
/subsystem=undertow/server=default-server/host=default-host/setting=console-access-log:write-attribute(name=metadata,value={"@version"="1", "qualifiedHostName"=${jboss.qualified.host.name:unknown}})
15.2. 서블릿 컨테이너 구성 링크 복사링크가 클립보드에 복사되었습니다!
서블릿 컨테이너는 세션 관련 설정을 포함하여 모든 서블릿, JavaServer Pages, Jakarta 서버 페이지 및 WebSocket 관련 구성을 제공합니다. 대부분의 서버는 단일 서블릿 컨테이너만 필요하지만 서블릿 컨테이너를 추가하여 여러 서블릿 컨테이너를 구성할 수 있습니다. 여러 서블릿 컨테이너를 사용하면 여러 배포가 다른 가상 호스트의 동일한 컨텍스트 경로에 배포되도록 허용하는 등의 동작이 가능합니다.
서블릿 컨테이너에서 제공하는 대부분의 구성은 web.xml 파일을 사용하여 배포된 애플리케이션에 의해 개별적으로 재정의할 수 있습니다.
15.2.1. 기본 undertow 하위 시스템 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 기본적으로 서블릿 컨테이너를 제공합니다. 이 참조는 서블릿 컨테이너를 포함하여 Cryostat 하위 시스템의 기본 구성을 제공합니다.
15.2.2. 관리 CLI 및 관리 콘솔을 사용하여 서블릿 컨테이너 관리 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 관리 CLI 및 관리 콘솔을 사용하여 Cryostat 하위 시스템에서 서블릿 컨테이너를 관리하는 방법을 설명합니다. 필요에 따라 기존 서블릿 컨테이너를 업데이트하거나, 새 컨테이너를 생성하거나, 서블릿 컨테이너를 삭제할 수 있습니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 관리 콘솔에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
관리 콘솔을 사용하여 Cryostat 하위 시스템에서 서블릿 컨테이너 관리
구성 → Cryostat → Web(Undertow) → Servlet Container 로 이동하여 관리 콘솔을 사용하여 서블릿 컨테이너를 구성할 수도 있습니다.
관리 CLI를 사용하여 Cryostat 하위 시스템에서 서블릿 컨테이너 관리
다음 예제에서는 관리 CLI를 사용하여 서블릿 컨테이너를 구성하는 방법을 보여줍니다.
프로세스
- 관리 CLI에 연결합니다.
다음 명령을 실행하여 서블릿 컨테이너의 속성을 업데이트합니다.
---- /subsystem=undertow/servlet-container=default:write-attribute(name=ignore-flush,value=true) -------- /subsystem=undertow/servlet-container=default:write-attribute(name=ignore-flush,value=true) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드하여 변경 사항을 적용합니다. +
---- reload -------- reload ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
새 서블릿 컨테이너 생성
- 관리 CLI에 연결합니다.
다음 명령을 실행하여 새 서블릿 컨테이너를 생성합니다.
---- /subsystem=undertow/servlet-container=new-servlet-container:add -------- /subsystem=undertow/servlet-container=new-servlet-container:add ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드하여 변경 사항을 적용합니다.
---- reload -------- reload ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
서블릿 컨테이너 삭제
- 관리 CLI에 연결합니다.
다음 명령을 실행하여 서블릿 컨테이너를 삭제합니다.
---- /subsystem=undertow/servlet-container=new-servlet-container:remove -------- /subsystem=undertow/servlet-container=new-servlet-container:remove ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드하여 변경 사항을 적용합니다.
---- reload -------- reload ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.3. 서블릿 확장 구성 링크 복사링크가 클립보드에 복사되었습니다!
서블릿 확장을 사용하면 서블릿 배포 프로세스에 연결하고 서블릿 배포 측면을 수정할 수 있습니다. 이 기능은 배포에 인증 메커니즘을 추가하거나 서블릿 배포의 일부로 기본 Cryostat 처리기를 사용해야 하는 경우에 유용할 수 있습니다.
사용자 지정 서블릿 확장을 만들려면 io.undertow.servlet.ServletExtension 인터페이스를 구현한 다음 구현 클래스의 이름을 배포에서 META-INF/services/io.undertow.servlet.ServletExtension 파일에 추가해야 합니다. 또한 ServletExtension 구현의 컴파일된 클래스 파일을 포함해야 합니다. Cryostat는 서블릿을 배포할 때 배포 클래스 로더에서 모든 서비스를 로드한 다음 handleDeployment 메서드를 호출합니다.
배포에 대한 완전하고 변경 가능한 설명이 포함된 Cryostat DeploymentInfo 구조는 이 메서드로 전달됩니다. 이 구조를 수정하여 배포의 모든 측면을 변경할 수 있습니다.
DeploymentInfo 구조는 포함된 API에서 사용하는 구조와 동일한 구조이므로 ServletExtension 은 내장 모드에서 Cryostat를 사용할 때 보유한 것과 동일한 수준의 유연성을 갖습니다.
15.4. 처리기 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP를 사용하면 다음 두 가지 유형의 핸들러를 구성할 수 있습니다.
- 파일 처리기
- reverse-Proxy Handlers
파일 처리기 는 정적 파일을 제공합니다. 각 파일 처리기는 가상 호스트의 위치에 연결되어 있어야 합니다. 역방향 프록시 핸들러를 사용하면 JBoss EAP가 고성능 역방향 프록시 역할을 할 수 있습니다.
15.4.1. Handlers 구성에 대한 기본 undertow 하위 시스템 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 기본적으로 파일 처리기를 제공합니다. 이 참조는 Handlers에 대한 Cryostat 하위 시스템의 기본 구성을 제공합니다.
15.4.2. 관리 CLI를 사용하여 파일 처리기 관리 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 관리 CLI를 사용하여 Cryostat 하위 시스템에서 파일 핸들러를 관리하는 방법을 설명합니다. 필요에 따라 기존 파일 처리기를 업데이트하거나 새 파일을 생성하거나 파일 처리기를 삭제할 수 있습니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
프로세스
기존 파일 처리기 업데이트
- 관리 CLI에 연결합니다.
다음 명령을 실행하여 파일 처리기의 속성을 업데이트합니다.
---- /subsystem=undertow/configuration=handler/file=welcome-content:write-attribute(name=case-sensitive,value=true) ----
---- /subsystem=undertow/configuration=handler/file=welcome-content:write-attribute(name=case-sensitive,value=true) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드하여 변경 사항을 적용합니다.
---- reload ----
---- reload ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
새 파일 처리기 생성
- 관리 CLI에 연결합니다.
다음 명령을 실행하여 새 파일 핸들러를 생성합니다.
---- /subsystem=undertow/configuration=handler/file=new-file-handler:add(path="${jboss.home.dir}/welcome-content") -------- /subsystem=undertow/configuration=handler/file=new-file-handler:add(path="${jboss.home.dir}/welcome-content") ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow [WARNING] ==== If you set a file handler's `path` directly to a file instead of a directory, any `location` elements that reference that file handler must not end with a forward slash (`/`). Otherwise, the server will return a `404 - Not Found` response. ====
[WARNING] ==== If you set a file handler's `path` directly to a file instead of a directory, any `location` elements that reference that file handler must not end with a forward slash (`/`). Otherwise, the server will return a `404 - Not Found` response. ====Copy to Clipboard Copied! Toggle word wrap Toggle overflow
파일 처리기 삭제
- 관리 CLI에 연결합니다.
다음 명령을 실행하여 파일 처리기를 삭제합니다.
---- /subsystem=undertow/configuration=handler/file=new-file-handler:remove ----
---- /subsystem=undertow/configuration=handler/file=new-file-handler:remove ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드하여 변경 사항을 적용합니다.
---- reload ----
---- reload ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.5. 필터 구성 링크 복사링크가 클립보드에 복사되었습니다!
필터를 사용하면 요청의 일부 측면을 수정하고 서술자를 사용하여 필터가 실행되는 시기를 제어할 수 있습니다. 필터의 몇 가지 일반적인 사용 사례에는 헤더 설정 또는 GZIP 압축이 포함됩니다.
필터는 JBoss EAP 6에서 사용되는 글로벌 구성 요소와 기능적으로 동일합니다.
다음 유형의 필터를 정의할 수 있습니다.
- custom-filter
- 오류 페이지
- expression-filter
- gzip
- MOD-cluster
- request-limit
- response-header
- 재작성
15.5.1. 관리 CLI 및 관리 콘솔을 사용하여 파일 처리기 관리 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 관리 CLI 및 관리 콘솔을 사용하여 Cryostat 하위 시스템에서 필터를 관리하는 방법을 설명합니다. 필요에 따라 기존 필터를 업데이트하거나 새 필터를 생성하거나 필터를 삭제할 수 있습니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 관리 콘솔에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
관리 콘솔을 사용하여 파일 처리기 관리
구성 → Cryostat → Web(Undertow) → 필터로 이동하여 관리 콘솔을 사용하여 필터 를 구성할 수 있습니다.
관리 CLI를 사용하여 파일 처리기 관리
다음 절차에서는 관리 CLI를 사용하여 필터를 구성하는 방법을 보여줍니다.
프로세스
기존 필터 업데이트
- 관리 CLI에 연결합니다.
다음 명령을 실행하여 필터의 속성을 업데이트합니다.
---- /subsystem=undertow/configuration=filter/response-header=myHeader:write-attribute(name=header-value,value="JBoss-EAP") ----
---- /subsystem=undertow/configuration=filter/response-header=myHeader:write-attribute(name=header-value,value="JBoss-EAP") ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드하여 변경 사항을 적용합니다.
---- reload ----
---- reload ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
새 필터 생성
- 관리 CLI에 연결합니다.
다음 명령을 실행하여 새 필터를 생성합니다.
---- /subsystem=undertow/configuration=filter/response-header=new-response-header:add(header-name=new-response-header,header-value="My Value") ----
---- /subsystem=undertow/configuration=filter/response-header=new-response-header:add(header-name=new-response-header,header-value="My Value") ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
필터 삭제
- 관리 CLI에 연결합니다.
다음 명령을 실행하여 필터를 삭제합니다.
---- /subsystem=undertow/configuration=filter/response-header=new-response-header:remove ----
---- /subsystem=undertow/configuration=filter/response-header=new-response-header:remove ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드하여 변경 사항을 적용합니다.
---- reload ----
---- reload ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.5.1.1. buffer-request Handler 구성 링크 복사링크가 클립보드에 복사되었습니다!
클라이언트 또는 브라우저의 요청은 헤더와 본문의 두 부분으로 구성됩니다. 일반적인 상황에서 헤더와 본문은 지연 없이 JBoss EAP로 전송됩니다. 그러나 헤더가 먼저 전송된 후 몇 초 후에 본문이 전송되면 전체 요청을 보내는 데 지연이 발생합니다. 이 시나리오는 JBoss EAP에 스레드를 생성하여 전체 요청을 실행 대기 상태로 표시합니다.
헤더를 보내는 데 발생한 지연과 요청 본문은 buffer-request 처리기를 사용하여 수정할 수 있습니다. buffer-request 처리기는 작업자 스레드에 할당하기 전에 차단되지 않은 IO 스레드의 요청을 사용하려고 합니다. buffer-request 처리기가 추가되지 않으면 작업자 스레드에 대한 스레드 할당이 직접 수행됩니다. 그러나 buffer-request 처리기가 추가되면 처리기는 작업자 스레드에 할당하기 전에 IO 스레드를 사용하여 비차단 방식으로 버퍼링할 수 있는 데이터 양을 읽습니다.
다음 관리 CLI 명령을 사용하여 buffer-request 핸들러를 구성할 수 있습니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
프로세스
다음 명령을 실행하여
buffer-request핸들러를 추가합니다.---- /subsystem=undertow/configuration=filter/expression-filter=buf:add(expression="buffer-request(buffers=1)") ----
---- /subsystem=undertow/configuration=filter/expression-filter=buf:add(expression="buffer-request(buffers=1)") ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음을 실행하여 서버 및 호스트에 처리기를 연결합니다.
---- /subsystem=undertow/server=default-server/host=default-host/filter-ref=buf:add ----
---- /subsystem=undertow/server=default-server/host=default-host/filter-ref=buf:add ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버퍼 요청 크기를 계산합니다.
`Total_size = num_buffers {MultiplicationSign} buffer_size``Total_size = num_buffers {MultiplicationSign} buffer_size`Copy to Clipboard Copied! Toggle word wrap Toggle overflow Where:
Where:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Total_size는 요청이 작업자 스레드에 디스패치되기 전에 버퍼링될 데이터의 크기입니다. -
num_buffers는 처리기의buffers매개변수에 의해 설정된 버퍼 수입니다(이 예제에서는1로 설정됨). buffer_size는io하위 시스템에서 설정된 각 버퍼의 크기입니다(기본값은 요청당 16KB임).주의버퍼 요청이 매우 크거나 메모리가 부족할 수 있습니다.
-
서버를 다시 로드하여 변경 사항을 적용합니다.
---- reload ----
---- reload ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.5.1.2. SameSite 특성 이해 링크 복사링크가 클립보드에 복사되었습니다!
SameSite 특성을 사용하여 동일한 사이트 내에서 쿠키의 접근성을 정의합니다. 이 속성은 브라우저가 교차 사이트 요청으로 쿠키를 보내지 않기 때문에 사이트 간 요청 위조 공격을 방지하는 데 도움이 됩니다.
undertow 하위 시스템에서 SameSite CookieHandler를 사용하여 쿠키의 SameSite 속성을 구성할 수 있습니다. 이 구성을 사용하면 애플리케이션 코드를 변경할 필요가 없습니다.
15.5.1.3. SameSiteCookieHandler 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에서는 SameSiteCookieHandler 의 매개변수를 자세히 설명합니다.
| 매개변수 이름 | presence | 설명 |
|---|---|---|
|
| 선택 사항 |
|
|
| 선택 사항 |
|
|
| 선택 사항 |
쿠키 이름에 대한 regex 패턴을 허용합니다. 지정하지 않으면 |
|
| 선택 사항 |
클라이언트 애플리케이션이
이 기본값을 사용하고
호환되지 않는 클라이언트 문제를 방지하기 위해 이 매개변수는 |
|
| 필수 |
교차 사이트 요청 위조 공격에 대한 보안을 개선하기 위해 일부 브라우저에서는 기본 |
SameSiteCookieHandler 는 쿠키 패턴과 일치하는 쿠키 또는 > 속성을 추가합니다. cookie -pattern 이 지정되지 않은 경우 모든 쿠키에 SameSite= <specified-modecookie-pattern 은 대소문자를 구분합니다.
SameSite 속성을 구성하기 전에 다음 사항을 고려하십시오.
-
애플리케이션에
SameSite속성이 필요한지 여부 및 해당 쿠키의 보안을 유지해야 하는지 여부를 확인하려면 애플리케이션을 검토하십시오. -
모든 쿠키에서
SameSite특성 모드를None으로 설정하면 애플리케이션이 공격에 더 취약해질 수 있습니다.
15.5.1.4. 표현식 필터를 사용하여 SameSiteCookieHandler 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 절차에서는 식 필터 를 사용하여 서버에서 SameSiteCookieHandler 를 구성하는 방법을 설명합니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
프로세스
SameSiteCookieHandler:을 사용하여 새표현식 필터를 만듭니다.---- /subsystem=undertow/configuration=filter/expression-filter=addSameSiteLax:add(expression="path-prefix('/mypathprefix') -> samesite-cookie(Lax)") -------- /subsystem=undertow/configuration=filter/expression-filter=addSameSiteLax:add(expression="path-prefix('/mypathprefix') -> samesite-cookie(Lax)") ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow undertow웹 서버에서expression-filter를 활성화합니다.---- /subsystem=undertow/server=default-server/host=default-host/filter-ref=addSameSiteLax:add ----
---- /subsystem=undertow/server=default-server/host=default-host/filter-ref=addSameSiteLax:add ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.5.1.5. 구성 파일을 사용하여 SameSiteCookieHandler 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 undertow-handlers.conf 파일을 추가하여 애플리케이션에서 SameSiteCookieHandler 를 구성하는 방법을 설명합니다.
사전 요구 사항
- 애플리케이션의 소스 코드에 액세스합니다.
- 애플리케이션 파일을 수정할 수 있는 권한
프로세스
-
WAR의 article-
INF 디렉터리에파일을 추가합니다.undertow-handlers.conf undertow-handlers.conf파일에서 특정SameSiteCookieHandler매개변수를 사용하여 다음 명령을 추가합니다.---- samesite-cookie(mode=<mode>) ----
---- samesite-cookie(mode=<mode>) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow Replace `<mode>` with one of the valid values: `Strict`, `Lax`, or `None`.
Replace `<mode>` with one of the valid values: `Strict`, `Lax`, or `None`.Copy to Clipboard Copied! Toggle word wrap Toggle overflow You can also configure other `SameSiteCookieHandler` parameters, such as `cookie-pattern`, `case-sensitive`, `enable-client-checker`, or `add-secure-for-none`.
You can also configure other `SameSiteCookieHandler` parameters, such as `cookie-pattern`, `case-sensitive`, `enable-client-checker`, or `add-secure-for-none`.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 파일을 저장하고 필요한 경우 애플리케이션을 재배포합니다.
15.6. 기본 시작 웹 애플리케이션 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP에는 기본적으로 포트 8080 의 루트 컨텍스트에 표시되는 기본 welcome 애플리케이션이 포함되어 있습니다.
welcome 콘텐츠를 제공하는 Cryostat에는 기본 서버가 사전 구성되어 있습니다.
기본 Cryostat Cryostat 구성
기본 서버 default-server 에는 기본 호스트 default-host 가 구성되어 있습니다. 기본 호스트는 welcome-content 파일 처리기와 함께 < location > 요소를 사용하여 서버의 루트에 대한 요청을 처리하도록 구성되어 있습니다. welcome-content 핸들러는 경로 속성에 지정된 위치의 콘텐츠를 제공합니다.
이 기본 welcome 애플리케이션은 자체 웹 애플리케이션으로 교체할 수 있습니다. 다음 두 가지 방법 중 하나로 구성할 수 있습니다.
시작 콘텐츠를 비활성화할 수도 있습니다.
15.6.1. welcome-content 파일 핸들러 변경 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 자체 웹 애플리케이션을 가리키도록 welcome-content 파일 핸들러를 변경하는 방법을 설명합니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
프로세스
새 콘텐츠를 가리키도록 기존
welcome-content파일 핸들러의 경로를 수정합니다.---- /subsystem=undertow/configuration=handler/file=welcome-content:write-attribute(name=path,value="/path/to/your/content") ----
---- /subsystem=undertow/configuration=handler/file=welcome-content:write-attribute(name=path,value="/path/to/your/content") ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 서버의 루트에서 사용할 새 파일 핸들러를 생성할 수도 있습니다.
---- /subsystem=undertow/configuration=handler/file=NEW_FILE_HANDLER:add(path="/path/to/your/content") /subsystem=undertow/server=default-server/host=default-host/location=\/:write-attribute(name=handler,value=NEW_FILE_HANDLER) ----
---- /subsystem=undertow/configuration=handler/file=NEW_FILE_HANDLER:add(path="/path/to/your/content") /subsystem=undertow/server=default-server/host=default-host/location=\/:write-attribute(name=handler,value=NEW_FILE_HANDLER) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 적용하려면 서버를 다시 로드합니다.
---- reload ----
---- reload ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.6.2. default-web-module변경 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 default-web-module 을 변경하여 배포된 웹 애플리케이션을 서버의 루트에 매핑하는 방법을 설명합니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
프로세스
배포된 웹 애플리케이션을 서버의 루트에 매핑합니다.
---- /subsystem=undertow/server=default-server/host=default-host:write-attribute(name=default-web-module,value=your-application.war) ----
---- /subsystem=undertow/server=default-server/host=default-host:write-attribute(name=default-web-module,value=your-application.war) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 변경 사항을 적용하려면 서버를 다시 로드합니다.
---- reload ----
----
reload
----
15.6.3. 기본 시작 웹 애플리케이션 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 루트 컨텍스트의 위치 항목을 제거하여 기본 시작 웹 애플리케이션을 비활성화하는 방법을 설명합니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
프로세스
default-host의위치항목/를 제거합니다.---- /subsystem=undertow/server=default-server/host=default-host/location=\/:remove ----
---- /subsystem=undertow/server=default-server/host=default-host/location=\/:remove ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 적용하려면 서버를 다시 로드합니다.
---- reload ----
---- reload ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.7. HTTP 세션 시간 제한 구성 링크 복사링크가 클립보드에 복사되었습니다!
HTTP 세션 시간 초과는 HTTP 세션을 잘못 선언하는 데 필요한 비활성 시간을 정의합니다. 예를 들어, 사용자가 JBoss EAP에 배포된 애플리케이션에 액세스하면 HTTP 세션이 생성됩니다. 그런 다음 HTTP 세션 시간 초과 기간이 지나면 사용자가 애플리케이션에 다시 액세스하려고 하면 원래 HTTP 세션이 무효화되고 사용자가 새 HTTP 세션을 생성해야 합니다. 이로 인해 의도하지 않은 데이터가 손실되거나 사용자가 다시 인증해야 할 수 있습니다.
HTTP 세션 시간 초과는 일반적으로 애플리케이션의 web.xml 파일에 구성됩니다. 그러나 기본 HTTP 세션 시간 초과는 JBoss EAP 내에서도 지정할 수 있습니다. 애플리케이션의 web.xml 파일로 재정의하지 않는 한 서버의 시간 제한 값은 배포된 모든 애플리케이션에 적용됩니다.
server 값은 undertow 하위 시스템의 서블릿 컨테이너 섹션에 있는 속성에 지정됩니다. default-session- timeoutdefault-session-timeout 의 값은 분 단위로 지정되며 기본값은 30 입니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
프로세스
- 관리 CLI에 연결합니다.
default-session-timeout값을 설정합니다.Run the following command to set the `default-session-timeout` value to `60` minutes: ---- /subsystem=undertow/servlet-container=default:write-attribute(name=default-session-timeout, value=60) ----
Run the following command to set the `default-session-timeout` value to `60` minutes: ---- /subsystem=undertow/servlet-container=default:write-attribute(name=default-session-timeout, value=60) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 적용하려면 서버를 다시 로드합니다.
---- reload ----
---- reload ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.8. HTTP 전용 세션 관리 쿠키 구성 링크 복사링크가 클립보드에 복사되었습니다!
세션 관리 쿠키는 HTTP API 및 JavaScript와 같은 HTTP 이외의 API에서 액세스할 수 있습니다. JBoss EAP는 Set-Cookie 응답 헤더의 일부로 Cryostat Only 헤더를 클라이언트(일반적으로 브라우저)로 전송하는 기능을 제공합니다. 지원되는 브라우저에서 이 헤더를 사용하면 HTTP 이외의 API를 통해 세션 관리 쿠키 액세스를 방지할 수 있습니다. 세션 관리 쿠키를 HTTP API로만 제한하면 사이트 간 스크립팅 공격을 통해 세션 쿠키 도난 위협을 완화할 수 있습니다. 이 동작을 활성화하려면 http-only 속성을 true 로 설정해야 합니다.
Cryo statOnly 헤더를 사용하면 실제로 사이트 간 스크립팅 공격을 자체적으로 방지하는 것이 아니라 브라우저에만 알립니다. 브라우저가 이 동작을 적용하려면 CryostatOnly 를 지원해야 합니다.
http 전용 속성을 사용하면 세션 관리 쿠키에만 적용되며 다른 브라우저 쿠키에는 적용되지 않습니다.
http-only 속성은 undertow 하위 시스템의 두 위치에 설정됩니다.
- 세션 쿠키 설정으로 서블릿 컨테이너에서 다음을 수행합니다.
- 서버의 호스트 섹션에서 SSO(Single Sign-On) 속성입니다.
15.8.1. Servlet 컨테이너 세션 쿠키의 호스트 전용 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 undertow 하위 시스템에서 서블릿 컨테이너 세션 쿠키의 http 전용 속성을 구성하는 방법을 설명합니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
프로세스
세션 쿠키 설정을 서블릿 컨테이너에 추가합니다.
Run the following command:
Run the following command:Copy to Clipboard Copied! Toggle word wrap Toggle overflow ---- /subsystem=undertow/servlet-container=default/setting=session-cookie:add ----
---- /subsystem=undertow/servlet-container=default/setting=session-cookie:add ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow http-only속성을true로 설정합니다.Run the following command:
Run the following command:Copy to Clipboard Copied! Toggle word wrap Toggle overflow ---- /subsystem=undertow/servlet-container=default/setting=session-cookie:write-attribute(name=http-only,value=true) ----
---- /subsystem=undertow/servlet-container=default/setting=session-cookie:write-attribute(name=http-only,value=true) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 적용하려면 서버를 다시 로드합니다.
---- reload ----
---- reload ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.8.2. 호스트 Single Sign-On에 대한 http-only 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 undertow 하위 시스템에서 호스트 Single Sign -On에 대한 http 전용 속성을 구성하는 방법을 설명합니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
프로세스
호스트에 Single Sign-On 설정을 추가합니다.
Run the following command:
Run the following command:Copy to Clipboard Copied! Toggle word wrap Toggle overflow ---- /subsystem=undertow/server=default-server/host=default-host/setting=single-sign-on:add ----
---- /subsystem=undertow/server=default-server/host=default-host/setting=single-sign-on:add ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow http-only속성을true로 설정합니다.Run the following command:
Run the following command:Copy to Clipboard Copied! Toggle word wrap Toggle overflow ---- /subsystem=undertow/server=default-server/host=default-host/setting=single-sign-on:write-attribute(name=http-only,value=true) ----
---- /subsystem=undertow/server=default-server/host=default-host/setting=single-sign-on:write-attribute(name=http-only,value=true) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 적용하려면 서버를 다시 로드합니다.
---- reload ----
---- reload ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.9. undertow에서 HTTP/2 이해 링크 복사링크가 클립보드에 복사되었습니다!
Cryostat를 사용하면 HTTP/2 표준을 사용할 수 있으므로 헤더를 압축하고 동일한 TCP 연결을 통해 많은 스트림을 멀티플렉싱하여 대기 시간을 줄일 수 있습니다. 또한 서버가 리소스를 요청하기 전에 클라이언트에 리소스를 푸시하여 페이지 로드 속도가 빨라질 수 있는 기능도 제공합니다.
HTTP/2는 HTTP/2 표준을 지원하는 클라이언트 및 브라우저에서만 작동합니다.
대부분의 최신 브라우저는 h2c 라는 보안 TLS 연결을 통해 HTTP/2를 적용하며, 라는 일반 HTTP를 통해 HTTP/2를 지원하지 않을 수 있습니다. HTTPS를 사용하지 않고 HTTP 업그레이드와 함께 일반 HTTP만 사용하지 않고 h2 ch2c 와 함께 HTTP/2를 사용하도록 JBoss EAP를 구성할 수 있습니다. 이 경우 HTTP 리스너에서 HTTP/2를 간단히 활성화할 수 있습니다.
/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=enable-http2,value=true)
/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=enable-http2,value=true)
15.9.1. Cryostat에서 HTTP/2 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 HTTPS 리스너를 구성하여 Cryostat에서 HTTP/2를 활성화하는 방법을 설명합니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
프로세스
HTTPS 리스너에서 HTTP/2를 활성화합니다.
---- /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=enable-http2,value=true) ----
---- /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=enable-http2,value=true) ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드하여 변경 사항을 적용합니다.
---- reload ----
---- reload ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
elytron 하위 시스템에서 HTTP/2를 사용하려면 Cryostat의 https-listener 에 구성된 ssl-context 가 수정 가능으로 구성되어 있는지 확인해야 합니다. 이를 위해 적절한 server-ssl-context 의 wrap 속성을 false 로 설정하면 됩니다. 기본적으로 wrap 속성은 false 로 설정됩니다. 이는 ALPN에 대한 ssl-context 를 수정하는 데 필요합니다. 제공된 ssl-context 를 쓸 수 없는 경우 ALPN을 사용할 수 없으며 연결은 HTTP/1.1으로 대체됩니다.
15.9.2. HTTP/2 사용 시 ALPN 지원 링크 복사링크가 클립보드에 복사되었습니다!
보안 TLS 연결을 통해 HTTP/2를 사용하는 경우 ALPN(Application-Layer Protocol Negotiation) TLS 프로토콜 확장을 지원하는 TLS 스택이 필요합니다. 이 스택을 얻는 것은 설치된 JDK에 따라 다릅니다.
- Java 9부터는 ALPN이 기본적으로 지원되지만 OpenSSL 공급자의 ALPN TLS 프로토콜 확장 기능을 사용하면 Java 9 이상을 사용할 때 성능이 향상됩니다.
ALPN TLS 프로토콜 확장 지원을 받기 위해 OpenSSL을 설치하는 방법은 JBoss Core Services에서 OpenSSL 설치에서 확인할 수 있습니다. 표준 시스템 OpenSSL은 Red Hat Enterprise Linux 8에서 지원되며 추가 OpenSSL은 필요하지 않습니다.
OpenSSL이 설치되면 xref:"configure-jboss-eap-to-use-openssl_configuring-the-web-server-undertow-jboss-eap"[JBoss EAP를 사용하도록 구성].
15.9.3. HTTP/2 사용 확인 링크 복사링크가 클립보드에 복사되었습니다!
Cryostat가 HTTP/2를 사용하고 있는지 확인하려면 Cryostat에서 들어오는 헤더를 검사해야 합니다. https를 사용하여 JBoss EAP 인스턴스로 이동하고(예 : https://localhost:8443) 브라우저의 개발자 툴을 사용하여 헤더를 검사합니다. 일부 브라우저(예: Google Chrome)는 HTTP/2를 사용할 때 :path,:authority,:method 및 :scheme 과 같은 HTTP/2 의사 헤더를 표시합니다. 다른 브라우저(예: Firefox 및 Safari)는 헤더의 상태 또는 버전을 HTTP/2.0 으로 보고합니다.
15.10. RequestDumping Handler 이해 링크 복사링크가 클립보드에 복사되었습니다!
RequestDumping 처리기, io.undertow.server.handlers.RequestDumpingHandler 에서는 JBoss EAP에서 처리한 요청 및 해당 응답 오브젝트의 세부 정보를 기록합니다.
이 처리기는 디버깅에 유용할 수 있지만 중요한 정보를 기록할 수도 있습니다. 이 처리기를 활성화할 때 이 점을 유념하십시오.
RequestDumping 핸들러는 JBoss EAP 6의 RequestDumperValve 를 대체합니다.
JBoss EAP에서 직접 또는 개별 애플리케이션 내에서 서버 수준에서 RequestDumping 핸들러를 구성할 수 있습니다.
15.10.1. 서버에서 RequestDumping Handler 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 표현식 필터를 사용하여 서버 수준에서 RequestDumping 처리기를 구성하는 방법을 설명합니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
프로세스
RequestDumping처리기를 사용하여 새 표현식 필터를 생성합니다.---- /subsystem=undertow/configuration=filter/expression-filter=requestDumperExpression:add(expression="dump-request") ----
---- /subsystem=undertow/configuration=filter/expression-filter=requestDumperExpression:add(expression="dump-request") ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cryostat 웹 서버에서 표현식 필터를 활성화합니다.
---- /subsystem=undertow/server=default-server/host=default-host/filter-ref=requestDumperExpression:add ----
---- /subsystem=undertow/server=default-server/host=default-host/filter-ref=requestDumperExpression:add ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이 방식으로 RequestDumping 처리기를 표현식 필터로 활성화하면 Cryostat 웹 서버에서 처리하는 모든 요청 및 해당 응답이 기록됩니다.
15.10.1.1. 특정 URL에 대한 처리기 구성 링크 복사링크가 클립보드에 복사되었습니다!
모든 요청을 기록하는 것 외에도 표현식 필터를 사용하여 특정 URL에 대한 요청 및 해당 응답만 로깅할 수 있습니다. 이는 경로 , 경로접두사 또는 와 같은 표현식의 서술자를 사용하여 수행할 수 있습니다. 예를 들어 모든 요청을 기록하고 suffixpath -/myApplication/test 에 대한 해당 응답을 기록하려면 표현식 필터를 생성할 때 " > dump-request" 표현식을 사용할 수 있습니다. 이렇게 하면 dump-request" 표현식 대신 "path(/myApplication/test) -/myApplication/test 와 정확히 일치하는 경로가 있는 요청만 RequestDumping 처리기에 연결됩니다.
15.10.1.2. 애플리케이션 내에서 RequestDumping Handler 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 개별 애플리케이션 내에서 RequestDumping 처리기를 구성하는 방법을 설명합니다. 이렇게 하면 처리기의 범위가 해당 특정 애플리케이션으로 제한됩니다.
프로세스
-
애플리케이션에서 article
-INF/undertow-handlers.conf파일을 생성하거나 편집합니다. 이 애플리케이션의 모든 요청 및 해당 응답을 기록하려면
undertow-handlers.conf에 다음 행을 추가합니다.---- dump-request ----
---- dump-request ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 애플리케이션 내에서 특정 URL에 대한 요청 및 응답을 기록하려면 표현식의 서술자를 사용합니다.
Replace `/test` with the desired path relative to the application's context root.
Replace `/test` with the desired path relative to the application's context root.Copy to Clipboard Copied! Toggle word wrap Toggle overflow [source] ---- path(/test) -> dump-request ----
[source] ---- path(/test) -> dump-request ----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고애플리케이션의 article-
INF/undertow와 같은 서술자를 사용하는 경우 사용되는 값은 애플리케이션의 컨텍스트 루트와 관련이 있습니다.-handlers.conf .conf에 정의된 표현식에 경로 ,또는path-prefixpath-suffix예를 들어 애플리케이션의 컨텍스트 루트가
/myApplication이고 표현식path(/test) → dump-request를 사용하는 경우/myApplication/test에 요청을 기록합니다.- 필요한 경우 변경 사항을 적용하기 위해 애플리케이션을 재배포합니다.
15.11. 쿠키 보안 구성 링크 복사링크가 클립보드에 복사되었습니다!
secure-cookie 핸들러를 사용하여 서버와 클라이언트 간의 연결을 통해 생성된 쿠키의 보안을 강화할 수 있습니다. 이 경우 쿠키를 설정하는 연결이 안전한 것으로 표시되면 쿠키의 보안 특성이 true 로 설정됩니다.
리스너를 구성하거나 HTTPS를 사용하여 연결을 보호할 수 있습니다. undertow 하위 시스템에서 expression-filter 를 정의하여 secure-cookie 핸들러를 구성합니다. 자세한 내용은 필터 구성을 참조하십시오.
secure-cookie 핸들러가 사용 중인 경우 보안 연결을 통해 설정된 쿠키는 암시적으로 안전한 것으로 설정되며 비보안 연결을 통해 전송되지 않습니다.
16장. 원격 및 연결 구성 링크 복사링크가 클립보드에 복사되었습니다!
원격 하위 시스템을 구성하고 JBoss EAP 내에서 다양한 연결 유형을 관리할 수 있습니다. 여기에는 서버와 애플리케이션 간 통신이 용이하도록 엔드포인트, 커넥터 및 아웃바운드 연결 설정이 포함됩니다. JBoss EAP에서 원격 및 로컬 아웃 바운드 연결을 구성하고 추가 원격 구성 옵션을 확인하여 원격 구성을 효과적으로 관리하는 데 필요한 툴을 제공할 수 있습니다.
16.1. 하위 시스템 구성 제거 링크 복사링크가 클립보드에 복사되었습니다!
원격 하위 시스템은 해당 연결에 대한 설정과 함께 로컬 및 원격 서비스에 대한 인바운드 및 아웃바운드 연결을 구성합니다.
JBoss EAP 리모팅 하위 시스템에는 몇 가지 구성 가능한 요소가 포함되어 있습니다.
대부분의 사용 사례에서는 원격 하위 시스템을 구성할 필요가 없을 수 있습니다. 그러나 애플리케이션에서 사용자 지정 커넥터를 사용하는 경우 이를 구성해야 합니다. Jakarta Enterprise Cryostats와 같은 클라이언트 리모팅 역할을 하는 애플리케이션에는 특정 커넥터에 연결하기 위해 별도의 구성이 필요합니다.
기본 원격 하위 시스템 구성은 다음과 같습니다.
16.1.1. 원격 끝점 링크 복사링크가 클립보드에 복사되었습니다!
remoting 엔드포인트는 io 하위 시스템에서 선언하고 구성한 XNIO 작업자를 사용합니다. 이 작업자는 I/O 작업을 차단하지 않고 원격 연결 성능 및 확장성을 향상시킵니다.
16.1.2. HTTP-connector 구성 요소 링크 복사링크가 클립보드에 복사되었습니다!
http-connector 요소는 undertow 의 HTTP 업그레이드 기능을 사용하여 외부 클라이언트가 서버에 연결할 수 있도록 하는 기본 구성 요소입니다.
이 구성을 사용하면 클라이언트가 먼저 HTTP 프로토콜을 사용하여 서버와의 연결을 설정한 다음 동일한 연결을 통해 원격 프로토콜로 전환합니다. 이를 통해 클라이언트는 다른 프로토콜을 사용하여 undertow 의 기본 포트 8080 과 같은 동일한 포트를 통해 연결하여 서버의 열려 있는 포트 수를 줄일 수 있습니다.
HTTP 업그레이드를 사용하여 서버에 연결해야 하는 클라이언트는 암호화되지 않은 연결에 대해 remoting remote+http 프로토콜 또는 암호화된 연결을 위해 원격+https 프로토콜을 사용해야 합니다.
16.1.3. 아웃바운드 연결 링크 복사링크가 클립보드에 복사되었습니다!
remoting 하위 시스템의 아웃바운드 연결을 사용하면 애플리케이션이 외부 리소스와 통신할 수 있습니다.
세 가지 유형의 아웃바운드 연결을 지정할 수 있습니다.
16.2. 끝점 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP에서 remoting 엔드포인트를 구성하여 애플리케이션에 대한 연결을 설정할 수 있습니다. JBoss EAP에는 관리 CLI 명령을 사용하여 업데이트할 수 있는 기본 엔드포인트 구성이 포함되어 있습니다.
JBoss EAP 관리자 또는 개발자는 다음을 수행해야 할 수 있습니다.
- 특수 서비스 또는 환경에 대한 통신을 조정하도록 엔드포인트 설정을 구성합니다. 예를 들어 인증 및 보안 설정을 조정하여 일반 애플리케이션 트래픽과 관리 트래픽을 분리할 수 있습니다.
- 보안 또는 성능 요구 사항을 충족하도록 기존 엔드포인트 구성을 업데이트합니다. 예를 들어 인증 재시도 또는 타임아웃과 같은 설정을 조정하면 보안이 향상되고 다양한 로드에서 최적의 성능을 보장할 수 있습니다.
JBoss EAP 8.0에서 remoting 하위 시스템의 끝점 구성은 io 하위 시스템의 작업자를 사용합니다. 이 작업자는 원격 작업을 위해 스레드 풀을 관리합니다.
JBoss EAP에서 제공하는 기본 엔드포인트 구성은 다음과 같습니다.
<subsystem xmlns="urn:jboss:domain:remoting:4.0"> <endpoint worker="default"/> ... </subsystem>
<subsystem xmlns="urn:jboss:domain:remoting:4.0">
<endpoint worker="default"/>
...
</subsystem>
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
다음 명령을 사용하여 기존 끝점 구성을 업데이트합니다.
/subsystem=remoting:write-attribute(name=authentication-retries,value=2)
/subsystem=remoting:write-attribute(name=authentication-retries,value=2)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 서버를 다시 로드하여 변경 사항을 적용합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
16.3. HTTP 커넥터 구성 링크 복사링크가 클립보드에 복사되었습니다!
HTTP 업그레이드 기반 리모팅 프로토콜을 사용하여 연결을 설정하도록 JBoss EAP에서 HTTP 커넥터를 구성할 수 있습니다. JBoss EAP는 관리 CLI 명령을 사용하여 쉽게 업데이트, 생성 또는 삭제할 수 있는 기본 HTTP 커넥터 구성을 제공합니다.
JBoss EAP 관리자 또는 개발자는 다음을 수행해야 할 수 있습니다.
- HTTP 업그레이드 기반 리모팅 프로토콜을 사용하여 원격 통신을 설정하는 새 HTTP 커넥터를 만듭니다. 이를 통해 JBoss EAP 서비스에 대한 안전하고 효율적인 원격 액세스가 가능합니다.
- 기존 HTTP 커넥터를 업데이트하여 성능을 최적화하거나 보안을 강화하거나 특정 네트워크 구성과 통합됩니다. 인증 메커니즘 또는 연결 시간 초과와 같은 속성을 조정하면 안정성이 향상되고 보안 정책을 준수할 수 있습니다.
- 불필요한 HTTP 커넥터를 삭제하여 구성을 단순화하고 보안 위험을 줄입니다. 사용되지 않는 커넥터를 삭제하면 무단 액세스에 대한 노출을 최소화하여 깔끔하고 안전한 환경을 유지할 수 있습니다.
JBoss EAP에서 제공하는 기본 http-connector 구성은 다음과 같습니다.
기본적으로 이 HTTP 커넥터는 undertow 하위 시스템에서 구성된 default 라는 HTTP 리스너에 연결합니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
다음 명령을 사용하여 새 HTTP 커넥터를 생성합니다.
/subsystem=remoting/http-connector=new-connector:add(connector-ref=new-connector-ref)
/subsystem=remoting/http-connector=new-connector:add(connector-ref=new-connector-ref)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고다른 커넥터에서 아직 사용하지 않는 고유한
connector-ref를 사용해야 합니다.connector-ref는 new 또는 unused 커넥터를 가리켜야 합니다. 그렇지 않으면 사전 정의된 https 커넥터를 대신 사용하도록 선택할 수 있습니다.다음 명령을 사용하여 기존 HTTP 커넥터 구성을 업데이트합니다.
/subsystem=remoting/http-connector=new-connector:write-attribute(name=connector-ref,value=new-connector-ref)
/subsystem=remoting/http-connector=new-connector:write-attribute(name=connector-ref,value=new-connector-ref)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 서버를 다시 로드하여 변경 사항을 적용합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우 다음 명령을 사용하여 HTTP 커넥터를 삭제합니다.
/subsystem=remoting/http-connector=new-connector:remove
/subsystem=remoting/http-connector=new-connector:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
16.4. 아웃바운드 연결 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP에서 아웃바운드 연결을 구성하여 URI에 지정된 일반적인 원격 아웃바운드 연결을 설정할 수 있습니다. 이를 통해 애플리케이션이 외부 서비스와 효과적으로 통신할 수 있습니다.
관리 CLI 명령을 사용하여 구성을 업데이트, 생성 또는 삭제하여 이러한 연결을 쉽게 관리할 수 있습니다.
JBoss EAP 관리자 또는 개발자는 다음을 수행해야 할 수 있습니다.
- 새 아웃바운드 연결을 만들어 외부 서비스와의 통신을 설정합니다. 이를 통해 데이터 교환 및 원격 시스템과의 통합이 가능합니다.
- 기존 아웃바운드 연결을 업데이트하여 성능을 강화하거나 보안을 강화하거나 네트워크 구성에 맞게 조정합니다. 대상 URI와 같은 속성을 조정하면 안정성이 향상되고 시스템 요구 사항과의 호환성이 보장됩니다.
- 불필요한 아웃바운드 연결을 삭제하여 구성을 간소화하고 보안 위험을 줄입니다. 사용되지 않는 연결을 삭제하면 무단 액세스에 대한 노출을 최소화하여 깔끔하고 안전한 환경을 유지할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
다음 명령을 사용하여 새 아웃바운드 연결을 만듭니다.
/subsystem=remoting/outbound-connection=new-outbound-connection:add(uri=http://example.com)
/subsystem=remoting/outbound-connection=new-outbound-connection:add(uri=http://example.com)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 기존 아웃바운드 연결을 업데이트합니다.
/subsystem=remoting/outbound-connection=new-outbound-connection:write-attribute(name=uri,value=http://example.com)
/subsystem=remoting/outbound-connection=new-outbound-connection:write-attribute(name=uri,value=http://example.com)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우 다음 명령을 사용하여 아웃바운드 연결을 삭제합니다.
/subsystem=remoting/outbound-connection=new-outbound-connection:remove
/subsystem=remoting/outbound-connection=new-outbound-connection:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 아웃바운드 연결을 삭제한 후 변경 사항을 적용하려면 서버를 다시 로드합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
16.5. 원격 아웃바운드 연결 구성 링크 복사링크가 클립보드에 복사되었습니다!
프로토콜, 아웃바운드 소켓 바인딩, 사용자 이름 및 보안 영역을 사용하여 원격 아웃바운드 연결을 지정할 수 있습니다. 프로토콜은 원격,http-remoting 또는 https-remoting 일 수 있습니다. 관리 CLI 명령을 사용하여 구성을 업데이트, 생성 또는 삭제하여 이러한 연결을 쉽게 관리할 수 있습니다.
JBoss EAP 관리자 또는 개발자는 다음을 수행해야 할 수 있습니다.
- 새 원격 아웃바운드 연결을 만들어 외부 서비스와의 보안 통신을 활성화합니다. 이렇게 하면 애플리케이션이 지정된 프로토콜 및 인증 방법을 사용하여 원격 시스템과 상호 작용할 수 있습니다.
- 기존 원격 아웃바운드 연결을 업데이트하여 보안을 강화하거나 성능을 개선하거나 특정 네트워크 구성과 통합됩니다. 아웃바운드 소켓 바인딩 또는 인증 설정과 같은 속성을 조정하면 안정성과 보안 정책을 준수할 수 있습니다.
- 불필요한 원격 아웃바운드 연결을 삭제하여 구성을 단순화하고 보안 위험을 줄입니다. 사용되지 않는 연결을 삭제하면 무단 액세스에 대한 노출을 최소화하여 깔끔하고 안전한 환경을 유지할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
다음 명령을 사용하여 새 원격 아웃바운드 연결을 만듭니다.
/subsystem=remoting/remote-outbound-connection=new-remote-outbound-connection:add(outbound-socket-binding-ref=outbound-socket-binding)
/subsystem=remoting/remote-outbound-connection=new-remote-outbound-connection:add(outbound-socket-binding-ref=outbound-socket-binding)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이러한 명령을 실행하기 전에
outbound-socket-binding이 구성에 정의되어 있는지 확인합니다. 자세한 내용은 아웃 바운드 소켓 바인딩 을 참조하십시오.다음 명령을 사용하여 기존 원격 아웃바운드 연결을 업데이트합니다.
/subsystem=remoting/remote-outbound-connection=new-remote-outbound-connection:write-attribute(name=outbound-socket-binding-ref,value=outbound-socket-binding)
/subsystem=remoting/remote-outbound-connection=new-remote-outbound-connection:write-attribute(name=outbound-socket-binding-ref,value=outbound-socket-binding)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우 다음 명령을 사용하여 원격 아웃바운드 연결을 삭제할 수 있습니다.
/subsystem=remoting/remote-outbound-connection=new-remote-outbound-connection:remove
/subsystem=remoting/remote-outbound-connection=new-remote-outbound-connection:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
16.6. 로컬 아웃 바운드 연결 구성 링크 복사링크가 클립보드에 복사되었습니다!
아웃 바운드 소켓 바인딩만 사용하여 로컬 아웃바운드 연결을 로컬 프로토콜로 이동할 수 있습니다. 관리 CLI 명령을 사용하여 구성을 업데이트, 생성 또는 삭제하여 이러한 연결을 쉽게 관리할 수 있습니다.
JBoss EAP 관리자 또는 개발자는 다음을 수행해야 할 수 있습니다.
- 동일한 서버 인스턴스 내에서 안전하고 효율적인 통신을 가능하게 하는 새 로컬 아웃바운드 연결을 만듭니다. 이를 통해 외부 네트워킹 없이도 내부 상호 작용을 간소화할 수 있습니다.
- 기존 로컬 아웃바운드 연결을 업데이트하여 성능을 향상하거나 소켓 바인딩을 수정하거나 특정 구성에 맞게 정렬합니다. 아웃바운드 소켓 바인딩과 같은 속성을 조정하면 안정성과 호환성이 보장됩니다.
- 불필요한 로컬 아웃바운드 연결을 삭제하여 구성을 단순화하고 보안 위험을 줄입니다. 사용되지 않는 연결을 삭제하면 무단 액세스에 대한 노출을 최소화하여 깔끔하고 안전한 환경을 유지할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
다음 명령을 사용하여 새 로컬 아웃바운드 연결을 만듭니다.
/subsystem=remoting/local-outbound-connection=new-local-outbound-connection:add(outbound-socket-binding-ref=outbound-socket-binding)
/subsystem=remoting/local-outbound-connection=new-local-outbound-connection:add(outbound-socket-binding-ref=outbound-socket-binding)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이러한 명령을 실행하기 전에
outbound-socket-binding이 구성에 정의되어 있는지 확인합니다. 더 많은 정보를 위해서,다음 명령을 사용하여 기존 로컬 아웃바운드 연결을 업데이트합니다.
/subsystem=remoting/local-outbound-connection=new-local-outbound-connection:write-attribute(name=outbound-socket-binding-ref,value=outbound-socket-binding)
/subsystem=remoting/local-outbound-connection=new-local-outbound-connection:write-attribute(name=outbound-socket-binding-ref,value=outbound-socket-binding)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우 다음 명령을 사용하여 로컬 아웃 바운드 연결을 삭제할 수 있습니다.
/subsystem=remoting/local-outbound-connection=new-local-outbound-connection:remove
/subsystem=remoting/local-outbound-connection=new-local-outbound-connection:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
16.7. 추가 원격 구성 링크 복사링크가 클립보드에 복사되었습니다!
원격 하위 시스템 외부에서 구성된 여러 리모팅 요소가 있습니다.
JBoss EAP 관리자 또는 개발자는 다음을 수행해야 할 수 있습니다.
- 성능을 개선하고 원격 작업을 효율적으로 관리하도록 재배치할 IO 작업자를 구성합니다. 작업자가 IO 하위 시스템에 정의되어 있는지 확인합니다.
- 네트워크 인터페이스 설정을 수정하여 필요한 공용, 관리 또는 비보안 인터페이스에 맞게 조정하십시오. 올바른 인터페이스를 구성하면 적절한 연결이 보장됩니다.
- remoting 하위 시스템의 소켓 바인딩을 조정하여 적절한 포트를 지정하고 네트워크 및 보안 정책과의 호환성을 유지합니다.
STARTTLS를 사용하여 보안 전송을 활성화하여 원격 통신을 보호합니다. 구성이 중간자 공격과 같은 보안 위험을 방지하기 위해 보안 연결을 확인합니다.
- IO 작업자
다음 명령을 사용하여 재배치할 IO 작업자를 설정합니다. 이 명령을 실행하기 전에 작업자가 IO 하위 시스템에 정의되어 있는지 확인합니다.
/subsystem=remoting:write-attribute(name=worker, value=WORKER_NAME)
/subsystem=remoting:write-attribute(name=worker, value=WORKER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 네트워크 인터페이스
remoting하위 시스템에서 사용하는 네트워크 인터페이스는공용인터페이스입니다. 이 인터페이스는 다른 하위 시스템에서도 사용하므로 수정할 때 주의하십시오.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리형 도메인에서
공용인터페이스는host.xml파일에 호스트별로 정의됩니다.- 소켓 바인딩
-
원격하위 시스템의 기본 소켓 바인딩은 포트8080에 바인딩됩니다. - 보안 전송 구성
- 리모팅 전송은 STARTTLS를 사용하여 클라이언트가 요청하는 경우 HTTPS 또는 Secure Servlet과 같은 보안 연결을 설정합니다. 보안 및 보안되지 않은 연결에 동일한 소켓 바인딩 또는 네트워크 포트가 사용되므로 추가 서버 측 구성이 필요하지 않습니다. 클라이언트는 필요에 따라 보안 또는 비보안 전송을 요청합니다. Jakarta Enterprise Cryostats, ORB 및 Jakarta Messaging 공급자와 같은 리모팅을 사용하는 JBoss EAP 구성 요소는 기본적으로 보안 인터페이스를 요청합니다.
STARTTLS는 클라이언트가 요청하는 경우 보안 연결을 활성화하여 작동합니다. 그렇지 않으면 기본값은 비보안 연결입니다. 공격자가 클라이언트 요청을 가로채고 보안되지 않은 연결을 요청하도록 수정하는 것은 본질적으로 man-in-the-middle 익스플로잇에 취약합니다. 비보안 연결이 적절한 대체 연결이 아닌 경우 클라이언트가 보안 연결을 수신하지 못하면 적절하게 실패하도록 작성해야 합니다.
17장. IO 하위 시스템 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP에서 io 하위 시스템을 구성하여 시스템 성능을 개선하고 애플리케이션 작업을 지원할 수 있습니다. XNIO 작업자 및 버퍼 풀을 관리하면 Cryostat 및 Remoting과 같은 하위 시스템에 대해 최적의 기능을 보장할 수 있습니다. 이러한 구성 요소를 적절히 조정하면 애플리케이션에서 데이터 처리 및 응답성을 효율적으로 수행할 수 있습니다.
17.1. IO Cryostat 구성 링크 복사링크가 클립보드에 복사되었습니다!
io 하위 시스템은 Cryostat 및 Remoting과 같은 다른 하위 시스템에서 사용하는 XNIO 작업자 및 버퍼 풀 을 정의합니다.
이러한 작업자 및 버퍼 풀은 다음 CLI 명령을 사용하여 io 하위 시스템에 정의됩니다.
/subsystem=io/worker=* /subsystem=io/buffer-pool=*
/subsystem=io/worker=*
/subsystem=io/buffer-pool=*
이 구성은 io 하위 시스템의 기본 설정을 나타냅니다. io 하위 시스템의 기본 구성을 보려면 다음 CLI 명령을 실행합니다.
/subsystem=io/:read-resource(recursive=true)
/subsystem=io/:read-resource(recursive=true)
17.2. 작업자 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP에서 작업자를 구성하여 IO 작업 및 작업자 스레드를 효율적으로 관리할 수 있습니다. 작업자는 XNIO 작업자 인스턴스 역할을 하며 Java NIO API에 대한 추상화 계층을 제공하고 SSL을 지원합니다.
작업자는 IO 작업을 관리하고, 작업을 조정하며, 데이터 전송 및 수신 요청이 효율적으로 처리되도록 할 책임이 있습니다. 이러한 작업은 IO 스레드 풀에서 유지 관리되는 스레드 집합에 의해 처리됩니다.
기본적으로 JBoss EAP에는 이름이 default 인 단일 작업자가 포함되어 있습니다. 필요한 경우 추가 작업자를 정의할 수 있습니다. 두 개 이상의 작업자를 생성할 때 추가 작업자는 별도의 IO 스레드 풀이 생성되어 리소스 사용률에 영향을 미칠 수 있습니다.
작업자에 대한 스레드 크기가 지정되지 않은 경우 JBoss EAP는 사용 가능한 CPU 코어 수에 따라 기본값을 계산합니다. 구성 옵션은 다음과 같습니다.
-
io-threads: 작업자에 대해 생성할 IO 스레드 수를 지정합니다. 지정하지 않으면 기본값은cpuCount * 2로 계산됩니다. -
task-max-threads: 작업자 작업 스레드 풀에 대한 최대 스레드 수를 지정합니다. 지정하지 않으면 기본값은cpuCount * 16로 계산됩니다.
관리 CLI 명령을 통해 작업자를 관리하여 구성을 업데이트, 생성 또는 삭제할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
다음 명령을 사용하여 기존 작업자를 업데이트합니다.
/subsystem=io/worker=default:write-attribute(name=io-threads,value=10)
/subsystem=io/worker=default:write-attribute(name=io-threads,value=10)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 서버를 다시 로드하여 변경 사항을 적용합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 새 작업자를 생성합니다.
/subsystem=io/worker=newWorker:add
/subsystem=io/worker=newWorker:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우 다음 명령을 사용하여 작업자를 삭제할 수 있습니다.
/subsystem=io/worker=newWorker:remove
/subsystem=io/worker=newWorker:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 서버를 다시 로드하여 변경 사항을 적용합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
17.3. 버퍼 풀 구성 링크 복사링크가 클립보드에 복사되었습니다!
애플리케이션 성능에서 중요한 역할을 하는 풀링된 NIO 버퍼 인스턴스를 관리하도록 JBoss EAP에서 버퍼 풀을 구성할 수 있습니다. 기존 버퍼 풀을 업데이트하고, 새 풀을 만들고, 시스템 효율성을 최적화하는 데 더 이상 필요하지 않은 풀을 삭제할 수 있습니다.
IO 버퍼 풀은 더 이상 사용되지 않지만 현재 릴리스에서 기본 구성으로 유지됩니다. 버퍼 풀은 풀링된 NIO 버퍼 인스턴스입니다. 버퍼 크기를 변경하면 애플리케이션 성능에 큰 영향을 미칩니다. 대부분의 서버에서 이상적인 버퍼 크기는 일반적으로 16k입니다. 자세한 내용은 JBoss EAP 구성 가이드의 바이트 버퍼 풀 구성 섹션을 참조하십시오. 자세한 내용은 Add lightweight global buffer pool API;precate heavier API를 참조하십시오. 이 API는 이전 버퍼 풀 API의 사용 중단과 Cryostat 하위 시스템 버퍼 풀의 교체를 설명합니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
다음 명령을 사용하여 기존 버퍼 풀을 업데이트합니다.
/subsystem=io/buffer-pool=default:write-attribute(name=direct-buffers,value=true)
/subsystem=io/buffer-pool=default:write-attribute(name=direct-buffers,value=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 서버를 다시 로드하여 변경 사항을 적용합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 새 버퍼 풀을 생성합니다.
/subsystem=io/buffer-pool=newBuffer:add
/subsystem=io/buffer-pool=newBuffer:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우 다음 명령을 사용하여 버퍼 풀을 삭제할 수 있습니다.
/subsystem=io/buffer-pool=newBuffer:remove
/subsystem=io/buffer-pool=newBuffer:removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 서버를 다시 로드하여 변경 사항을 적용합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
17.4. IO 하위 시스템 성능 튜닝 링크 복사링크가 클립보드에 복사되었습니다!
io 하위 시스템의 성능을 최적화하고 모니터링하여 효율적인 리소스 관리 및 대응성을 보장할 수 있습니다. 정기적인 모니터링은 잠재적인 문제가 시스템 성능에 영향을 미치기 전에 식별하는 데 도움이 됩니다.
17.5. 작업자 구성 링크 복사링크가 클립보드에 복사되었습니다!
작업자는 XNIO 작업자 인스턴스입니다. XNIO 작업자 인스턴스는 SSL 지원뿐만 아니라 IO 및 작업자 스레드 관리와 같은 기능을 제공하는 Java NIO API의 추상화 계층입니다. 기본적으로 JBoss EAP는 default 라는 단일 작업자를 제공하지만 더 많은 작업자를 정의할 수 있습니다.
기존 작업자 업데이트
기존 작업자를 업데이트하려면 다음을 수행합니다.
/subsystem=io/worker=default:write-attribute(name=io-threads,value=10)
/subsystem=io/worker=default:write-attribute(name=io-threads,value=10)
reload
reload
새 작업자 만들기
새 작업자를 생성하려면 다음을 수행합니다.
/subsystem=io/worker=newWorker:add
/subsystem=io/worker=newWorker:add
작업자 삭제
작업자를 삭제하려면 다음을 수행합니다.
/subsystem=io/worker=newWorker:remove
/subsystem=io/worker=newWorker:remove
reload
reload
작업자 구성에 사용할 수 있는 속성의 전체 목록은 IO Cryostat 속성 섹션을 참조하십시오.
17.6. 버퍼 풀 구성 링크 복사링크가 클립보드에 복사되었습니다!
IO 버퍼 풀은 더 이상 사용되지 않지만 현재 릴리스에서 기본값으로 설정됩니다. 버퍼 풀은 풀링된 NIO 버퍼 인스턴스입니다. 버퍼 크기를 변경하면 애플리케이션 성능에 큰 영향을 미칩니다. 대부분의 서버에서 이상적인 버퍼 크기는 일반적으로 16k입니다. Cryostat 바이트 버퍼 풀 구성에 대한 자세한 내용은 JBoss EAP 구성 가이드의 Cryostat 버퍼 풀 구성 섹션을 참조하십시오.
기존 버퍼 풀 업데이트
기존 버퍼 풀을 업데이트하려면 다음을 수행합니다.
/subsystem=io/buffer-pool=default:write-attribute(name=direct-buffers,value=true)
/subsystem=io/buffer-pool=default:write-attribute(name=direct-buffers,value=true)
reload
reload
버퍼 풀 생성
새 버퍼 풀을 생성하려면 다음을 수행합니다.
/subsystem=io/buffer-pool=newBuffer:add
/subsystem=io/buffer-pool=newBuffer:add
버퍼 풀 삭제
버퍼 풀을 삭제하려면 다음을 수행합니다.
/subsystem=io/buffer-pool=newBuffer:remove
/subsystem=io/buffer-pool=newBuffer:remove
reload
reload
버퍼 풀 구성에 사용할 수 있는 속성의 전체 목록은 IO Cryostat 특성 섹션을 참조하십시오.
17.7. IO Cryostat 튜닝 링크 복사링크가 클립보드에 복사되었습니다!
io 하위 시스템에 대한 성능 모니터링 및 최적화에 대한 팁은 JBoss EAP의 성능 튜닝의 IO Cryostat 튜닝 섹션을 참조하십시오.
18장. JBoss EAP의 웹 서비스 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP를 사용하면 관리 콘솔 또는 관리 CLI를 사용하여 웹 서비스 하위 시스템을 통해 배포된 웹 서비스의 동작을 구성할 수 있습니다. 이 구성은 JAX-WS(JAX-WS) 끝점에 적용되며 웹 서비스에 대해 게시된 엔드포인트 주소, 처리기 체인 및 런타임 통계 컬렉션을 설정할 수 있습니다.
19장. Jakarta Server faces 구성 링크 복사링크가 클립보드에 복사되었습니다!
jsf 하위 시스템을 사용하면 동일한 JBoss EAP 서버 인스턴스에 여러 Jakarta Server Cryostat 구현을 설치할 수 있습니다. Jakarta Server#159s 4.0 사양 이상을 구현하는 Sun Mojarra 또는 Apache MyFaces 버전을 설치할 수 있습니다. 기능 팩은 Apache MyFaces 구현을 설치하는 데만 사용할 수 있습니다.
JBoss EAP에 포함된 자카르타 서버 구현만 완전히 지원됩니다.
19.1. 자카르타 서버 구현 설치 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 이러한 기능을 기능 팩으로 제공하는 JBoss EAP Installation Manager를 사용하여 필요한 기능만으로 서버 프로비저닝을 지원합니다.
사전 요구 사항
- JBoss EAP를 설치했습니다.
프로세스
다음 콘텐츠를 사용하여
myfaces-manifest.yaml파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 MyFaces 매니페스트를 추가합니다.
$JBOSS_HOME/bin/jboss-eap-installation-manager.sh channel add \ --channel-name=myfaces \ --manifest=myfaces-manifest.yaml \ --repositories=https://repo1.maven.org/maven2/
$JBOSS_HOME/bin/jboss-eap-installation-manager.sh channel add \ --channel-name=myfaces \ --manifest=myfaces-manifest.yaml \ --repositories=https://repo1.maven.org/maven2/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 MyFaces Maven 매니페스트를 로컬 Maven 리포지토리에 배포합니다.
mvn deploy:deploy-file -Dfile=myfaces-manifest.yaml \ -DgroupId=org.apache.myfaces.channel -DartifactId=myfaces \ -Dclassifier=manifest -Dpackaging=yaml -Dversion=4.0.2 \ -Durl=file://$HOME/.m2/repository
mvn deploy:deploy-file -Dfile=myfaces-manifest.yaml \ -DgroupId=org.apache.myfaces.channel -DartifactId=myfaces \ -Dclassifier=manifest -Dpackaging=yaml -Dversion=4.0.2 \ -Durl=file://$HOME/.m2/repositoryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 MyFaces 기능 팩을 사용하여 서버를 프로비저닝합니다.
$JBOSS_HOME/bin/jboss-eap-installation-manager.sh fp add \ --fpl=org.jboss.eap:eap-myfaces-feature-pack \ --layers=myfaces
$JBOSS_HOME/bin/jboss-eap-installation-manager.sh fp add \ --fpl=org.jboss.eap:eap-myfaces-feature-pack \ --layers=myfacesCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 서버를 시작합니다.
검증
다음 CLI 명령을 사용하여 새 Jakarta Server#159s 구현이 성공적으로 설치되었는지 확인합니다.
[standalone@localhost:9990 /] /subsystem=jsf:list-active-jsf-impls()
[standalone@localhost:9990 /] /subsystem=jsf:list-active-jsf-impls()Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.2. 기본 자카르타 서버 구현 변경 링크 복사링크가 클립보드에 복사되었습니다!
Multi-Jakarta Server Cryostats 기능에는 jsf 하위 시스템에 default-jsf-impl-slot 특성이 포함되어 있으므로 기본 Jakarta Server Cryostats 구현을 변경할 수 있습니다.
사전 요구 사항
- 여러 자카르타 서버 구현이 서버에 설치되어 있습니다.
프로세스
write-attribute명령을 사용하여default-jsf-impl-slot속성의 값을 활성 Jakarta Server Cryostats 구현 중 하나로 설정합니다./subsystem=jsf:write-attribute(name=default-jsf-impl-slot,value=JSF_IMPLEMENTATION)
/subsystem=jsf:write-attribute(name=default-jsf-impl-slot,value=JSF_IMPLEMENTATION)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cryo
stat_IMPLEMENTATION을 기본값으로 설정하려는 Jakarta 서버 구현 이름으로 교체합니다.변경 사항을 적용하려면 JBoss EAP 서버를 다시 시작하십시오.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 사용하여 사용 가능한 자카르타 서버 faces 구현을 식별합니다.
/subsystem=jsf:read-attribute(name=default-jsf-impl-slot)
/subsystem=jsf:read-attribute(name=default-jsf-impl-slot)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 예상 출력
{ "outcome" => "success", "result" => "myfaces" }{ "outcome" => "success", "result" => "myfaces" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.3. 기본이 아닌 구현을 위한 Jakarta Server faces 애플리케이션 구성 링크 복사링크가 클립보드에 복사되었습니다!
기본값 이외의 Jakarta Server facess 구현을 사용하도록 Jakarta Server Cryostats 애플리케이션을 구성하려면 org.jboss.jbossfaces.JSF_CONFIG_NAME 컨텍스트 매개변수를 web.xml 파일에 추가합니다. 이 매개변수는 애플리케이션을 배포할 때 지정된 Jakarta ServerGROUPs 구현을 적용하도록 jsf 하위 시스템에 지시합니다.
예를 들어 애플리케이션에서 MyFaces 4.0.0을 사용하려면 web.xml 파일에 다음 컨텍스트 매개변수를 포함합니다.
<context-param>
<param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name>
<param-value>myfaces-4.0.0</param-value>
</context-param>
<context-param>
<param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name>
<param-value>myfaces-4.0.0</param-value>
</context-param>
Jakarta Server faces 애플리케이션에 이 컨텍스트 매개변수가 포함되어 있지 않은 경우 'jsf' 하위 시스템은 기본 자카르타 서버 Cryostat 구현을 사용합니다.
19.4. DOCTYPE 선언을 허용하지 않음 링크 복사링크가 클립보드에 복사되었습니다!
Jakarta Server Cryostats 배포에서 DOCTYPE 선언을 허용하지 않도록 jsf 하위 시스템을 구성할 수 있습니다. 이 설정은 외부 엔터티 사용을 방지하여 보안을 향상시킵니다.
사전 요구 사항
-
관리 CLI 액세스 권한이 있어야
jsf하위 시스템을 구성합니다.
프로세스
다음 명령을 사용하여 모든 Jakarta Server Cryostat 배포에서
DOCTYPE선언을 허용하지 않습니다./subsystem=jsf:write-attribute(name=disallow-doctype-decl, value=true)
/subsystem=jsf:write-attribute(name=disallow-doctype-decl, value=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 적용하려면 JBoss EAP 서버를 다시 시작하십시오.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 Jakarta Server Cryostat 배포에 대해
DOCTYPE선언을 허용하려면 다음 구성으로 배포의 web.xml 파일에com.sun.faces.disallowDoctypeDecl컨텍스트 매개변수를 추가합니다.<context-param> <param-name>com.sun.faces.disallowDoctypeDecl</param-name> <param-value>false</param-value> </context-param><context-param> <param-name>com.sun.faces.disallowDoctypeDecl</param-name> <param-value>false</param-value> </context-param>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
20장. 배치 애플리케이션 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 8.0은 Jakarta Batch 를 지원합니다. batch-jberet 하위 시스템을 사용하여 배치 애플리케이션을 실행하고 배치 작업을 관리하는 환경을 구성할 수 있습니다.
배치 애플리케이션 개발에 대한 자세한 내용은 JBoss EAP 개발 가이드의 Jakarta Batch Application Development 를 참조하십시오.
20.1. 배치 작업 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBeret 구현을 기반으로 하는 batch-jberet 하위 시스템을 사용하여 배치 작업에 대한 설정을 구성할 수 있습니다.
기본 batch-jberet 하위 시스템 구성은 메모리 내 작업 리포지토리 및 기본 스레드 풀 설정을 정의합니다.
기본적으로 서버 일시 중단 중에 중지된 배치 작업은 서버를 다시 시작할 때 다시 시작됩니다. restart-jobs-on-resume 속성을 false 로 설정하여 대신 작업을 STOPPED 상태로 유지할 수 있습니다.
/subsystem=batch-jberet:write-attribute(name=restart-jobs-on-resume,value=false)
/subsystem=batch-jberet:write-attribute(name=restart-jobs-on-resume,value=false)
배치 작업 리포지토리 및 스레드 풀에 대한 설정을 구성할 수도 있습니다.
20.1.1. 배치 작업 리포지토리 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 관리 CLI를 사용하여 배치 작업 정보를 저장하기 위해 메모리 내 및 JDBC 작업 리포지토리를 구성하는 방법을 보여줍니다. 구성 → Cryostat → Batch(JBeret) 로 이동하여 보기를 클릭하고 왼쪽 메뉴에서 In Memory 또는 JDBC 를 선택하여 관리 콘솔을 사용하여 작업 리포지토리를 구성할 수도 있습니다.
메모리 내 작업 리포지토리 추가
메모리에 배치 작업 정보를 저장하는 작업 리포지토리를 추가할 수 있습니다.
/subsystem=batch-jberet/in-memory-job-repository=REPOSITORY_NAME:add
/subsystem=batch-jberet/in-memory-job-repository=REPOSITORY_NAME:add
JDBC 작업 리포지토리 추가
데이터베이스에 배치 작업 정보를 저장하는 작업 리포지토리를 추가할 수 있습니다. 데이터베이스에 연결하기 위한 데이터 소스의 이름을 지정해야 합니다.
/subsystem=batch-jberet/jdbc-job-repository=REPOSITORY_NAME:add(data-source=DATASOURCE)
/subsystem=batch-jberet/jdbc-job-repository=REPOSITORY_NAME:add(data-source=DATASOURCE)
데이터 소스에 대한 자세한 내용은 JBoss EAP Datasources 정보를 참조하십시오.
기본 작업 리포지토리 설정
in-memory 또는 JDBC 작업 리포지토리를 배치 애플리케이션의 기본 작업 리포지토리로 설정할 수 있습니다.
/subsystem=batch-jberet:write-attribute(name=default-job-repository,value=REPOSITORY_NAME)
/subsystem=batch-jberet:write-attribute(name=default-job-repository,value=REPOSITORY_NAME)
이 경우 서버를 다시 로드해야 합니다.
reload
reload
20.1.2. 배치 스레드 풀 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 관리 CLI를 사용하여 배치 작업에 사용할 스레드 풀 및 스레드 팩토리를 구성하는 방법을 보여줍니다. 구성 → Cryostat → Batch(JBeret) 로 이동하여 왼쪽 메뉴에서 Thread Cryostat 또는 Thread Pool 을 선택하여 관리 콘솔을 사용하여 스레드 풀 및 스레드 팩토리를 구성할 수도 있습니다.
스레드 풀 구성
스레드 풀을 추가할 때 파티션 작업이 예상대로 실행되도록 예약되므로 항상 3 보다 커야 하는 max-threads 를 지정해야 합니다.
프로세스
스레드 풀을 추가합니다.
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:add(max-threads=10)
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:add(max-threads=10)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우
keepalive-time값을 설정합니다./subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:write-attribute(name=keepalive-time,value={time=60,unit=SECONDS})/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:write-attribute(name=keepalive-time,value={time=60,unit=SECONDS})Copy to Clipboard Copied! Toggle word wrap Toggle overflow
스레드 팩토리 사용
프로세스
스레드 팩토리를 추가합니다.
/subsystem=batch-jberet/thread-factory=THREAD_FACTORY_NAME:add
/subsystem=batch-jberet/thread-factory=THREAD_FACTORY_NAME:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스레드 팩토리에 대해 원하는 특성을 구성합니다.
-
group-name- 이 스레드 팩토리에 대해 생성할 스레드 그룹의 이름입니다. -
priority- 생성된 스레드의 스레드 우선 순위입니다. thread-name-pattern- 스레드 이름을 만드는 데 사용되는 템플릿입니다. 다음 패턴을 사용할 수 있습니다.-
%%- 백분율 기호 -
%t- 요소별 스레드 시퀀스 번호 -
%G - 글로벌 스레드 시퀀스 번호 -
%F - 팩토리 순서 번호 -
%I - 스레드 ID
-
-
스레드 팩토리를 스레드 풀에 할당합니다.
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:write-attribute(name=thread-factory,value=THREAD_FACTORY_NAME)
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:write-attribute(name=thread-factory,value=THREAD_FACTORY_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 경우 서버를 다시 로드해야 합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
기본 스레드 풀 설정
다른 스레드 풀을 기본 스레드 풀로 설정할 수 있습니다.
/subsystem=batch-jberet:write-attribute(name=default-thread-pool,value=THREAD_POOL_NAME)
/subsystem=batch-jberet:write-attribute(name=default-thread-pool,value=THREAD_POOL_NAME)
이 경우 서버를 다시 로드해야 합니다.
reload
reload
스레드 풀 통계 보기
read-resource 관리 CLI 작업을 사용하여 배치 스레드 풀에 대한 런타임 정보를 볼 수 있습니다. 이 런타임 정보를 보려면 include-runtime=true 매개변수를 사용해야 합니다.
런타임 탭에서 배치 하위 시스템으로 이동하여 관리 콘솔을 사용하여 배치 스레드 풀에 대한 런타임 정보를 볼 수도 있습니다.
20.2. 배치 작업 관리 링크 복사링크가 클립보드에 복사되었습니다!
배포를 위한 batch-jberet 하위 시스템 리소스를 사용하면 배치 작업에 대한 실행 세부 정보를 시작, 중지, 다시 시작 및 볼 수 있습니다. 배치 작업은 관리 CLI 또는 관리 콘솔에서 관리할 수 있습니다.
관리 CLI에서 배치 작업 관리
배치 작업 재시작
실행 ID와 배치 작업을 다시 시작할 때 사용할 속성을 제공하여 STOPPED 또는 FAILED 상태인 작업을 다시 시작할 수 있습니다.
/deployment=DEPLOYMENT_NAME/subsystem=batch-jberet:restart-job(execution-id=EXECUTION_ID,properties={PROPERTY=VALUE})
/deployment=DEPLOYMENT_NAME/subsystem=batch-jberet:restart-job(execution-id=EXECUTION_ID,properties={PROPERTY=VALUE})
실행 ID는 작업 인스턴스의 최신 실행이어야 합니다.
배치 작업 시작
작업 XML 파일과 배치 작업을 시작할 때 사용할 모든 속성을 제공하여 배치 작업을 시작할 수 있습니다.
/deployment=DEPLOYMENT_NAME/subsystem=batch-jberet:start-job(job-xml-name=JOB_XML_NAME,properties={PROPERTY=VALUE})
/deployment=DEPLOYMENT_NAME/subsystem=batch-jberet:start-job(job-xml-name=JOB_XML_NAME,properties={PROPERTY=VALUE})
배치 작업 중지
실행 ID를 제공하여 실행 중인 배치 작업을 중지할 수 있습니다.
/deployment=DEPLOYMENT_NAME/subsystem=batch-jberet:stop-job(execution-id=EXECUTION_ID)
/deployment=DEPLOYMENT_NAME/subsystem=batch-jberet:stop-job(execution-id=EXECUTION_ID)
배치 작업 실행 세부 정보 보기
배치 작업 실행의 세부 정보를 볼 수 있습니다. 이 런타임 정보를 보려면 read-resource 작업에서 include-runtime=true 매개변수를 사용해야 합니다.
관리 콘솔에서 배치 작업 관리
관리 콘솔에서 배치 작업을 관리하려면 런타임 탭으로 이동하여 서버를 선택하고 Batch(JBeret) 를 선택한 다음 목록에서 작업을 선택합니다.
배치 작업 시작
작업을 선택하고 드롭다운에서 시작을 선택하여 배치 작업의 새 실행을 시작합니다.
20.3. 배치 작업에 대한 보안 구성 링크 복사링크가 클립보드에 복사되었습니다!
Elytron 보안 도메인을 사용하여 배치 작업을 실행하도록 batch-jberet 하위 시스템을 구성할 수 있습니다. 이를 통해 동일한 보안 ID로 배치 작업을 안전하게 중단하고 재개할 수 있습니다. 예를 들어 batch-jberet 하위 시스템을 사용하여 배치 작업을 시작하도록 보안 RESTful 엔드포인트가 생성됩니다. RESTful 엔드포인트와 batch-jberet 하위 시스템이 동일한 보안 도메인을 사용하여 보안되거나 batch-jberet 보안 도메인이 RESTful 끝점의 보안 도메인을 신뢰하는 경우 이러한 방식으로 시작된 배치 작업을 안전하게 일시 중지하고 동일한 보안 ID로 다시 시작할 수 있습니다.
다음 관리 CLI 명령을 사용하여 security-domain 속성을 업데이트하여 배치 작업에 대한 보안을 구성합니다.
/subsystem=batch-jberet:write-attribute(name=security-domain, value=ExampleDomain) reload
/subsystem=batch-jberet:write-attribute(name=security-domain, value=ExampleDomain)
reload
배치 작업에는 org.wildfly.extension.batch.jberet.deployment.BatchPermission 권한이 필요합니다. jakarta.batch.operations.JobOperator 와 일치하는 시작,중지,다시 시작, 종료 및 읽기 권한을 제공합니다. default-permission-mapper mapper는 org.wildfly.extension.jberet.deployment.BatchPermission 권한을 제공합니다.
21장. 이름 지정 하위 시스템 구성 링크 복사링크가 클립보드에 복사되었습니다!
21.1. 이름 지정 하위 시스템 정보 링크 복사링크가 클립보드에 복사되었습니다!
이름 지정 하위 시스템은 JBoss EAP에 대한 JNDI 구현을 제공합니다. 글로벌 JNDI 네임스페이스의 항목을 바인딩 하도록 이 하위 시스템을 구성할 수 있습니다. 원격 JNDI 인터페이스를 활성화하거나 비활성화하도록 구성할 수도 있습니다.
다음은 모든 요소 및 특성이 지정된 이름 지정 하위 시스템 XML 구성 예의 예입니다.
21.2. 글로벌 바인딩 구성 링크 복사링크가 클립보드에 복사되었습니다!
이름 지정 하위 시스템을 사용하면 java:global,java:jboss 또는 java 글로벌 JNDI 네임스페이스에 항목을 바인딩할 수 있지만 표준 이식 가능한 java:global 네임스페이스를 사용하는 것이 좋습니다.
글로벌 바인딩은 이름 지정 하위 시스템의 <bindings > 요소에서 구성됩니다. 다음 네 가지 유형의 바인딩이 지원됩니다.
간단한 바인딩 구성
간단한 XML 구성 요소는 기본 또는 java.net.URL 항목을 바인딩합니다.
-
name속성은 필수이며 항목의 대상 JNDI 이름을 지정합니다. -
value속성은 필수이며 항목의 값을 정의합니다. -
기본값은
java.lang.String이며 선택적type속성은 항목의 값 유형을 지정합니다.java.lang.String외에도 기본 유형 및 해당 오브젝트 래퍼 클래스(예:int또는java.lang.Integer,java.net.URL)를 지정할 수 있습니다.
다음은 간단한 바인딩을 생성하는 관리 CLI 명령의 예입니다.
/subsystem=naming/binding=java\:global\/simple-integer-binding:add(binding-type=simple, type=int, value=100)
/subsystem=naming/binding=java\:global\/simple-integer-binding:add(binding-type=simple, type=int, value=100)
결과 XML 구성
다음 명령을 사용하여 바인딩을 제거합니다.
/subsystem=naming/binding=java\:global\/simple-integer-binding:remove
/subsystem=naming/binding=java\:global\/simple-integer-binding:remove
바인딩 오브젝트 팩토리
object-factory XML 구성 요소는 jakarta.naming.spi.ObjectFactory 항목을 바인딩합니다.
-
name속성은 필수이며 항목의 대상 JNDI 이름을 지정합니다. -
class속성은 필수이며 오브젝트 팩토리의 Java 유형을 정의합니다. -
module속성은 필수이며 오브젝트 팩토리 Java 클래스를 로드할 수 있는 JBoss 모듈 ID를 지정합니다. -
선택적
환경하위 요소는 오브젝트 팩토리에 사용자 지정 환경을 제공하는 데 사용할 수 있습니다.
다음은 오브젝트 팩토리 바인딩을 생성하는 관리 CLI 명령의 예입니다.
/subsystem=naming/binding=java\:global\/foo\/bar\/factory:add(binding-type=object-factory, module=org.foo.bar, class=org.foo.bar.ObjectFactory, environment=[p1=v1, p2=v2])
/subsystem=naming/binding=java\:global\/foo\/bar\/factory:add(binding-type=object-factory, module=org.foo.bar, class=org.foo.bar.ObjectFactory, environment=[p1=v1, p2=v2])
결과 XML 구성
다음 명령을 사용하여 바인딩을 제거합니다.
/subsystem=naming/binding=java\:global\/foo\/bar\/factory:remove
/subsystem=naming/binding=java\:global\/foo\/bar\/factory:remove
외부 컨텍스트 바인딩
LDAP 컨텍스트와 같은 외부 JNDI 컨텍스트 통합은 external-context XML 구성 요소를 사용하여 수행됩니다.
-
name속성은 필수이며 항목의 대상 JNDI 이름을 지정합니다. -
class속성은 필수이며 페더레이션 컨텍스트를 생성하는 데 사용되는 Java 초기 이름 지정 컨텍스트 유형을 나타냅니다. 이러한 유형에는 단일 환경 맵 인수가 있는 생성자가 있어야 합니다. -
선택적
모듈속성은 외부 JNDI 컨텍스트에 필요한 모든 클래스를 로드할 수 있는 JBoss 모듈 ID를 지정합니다. -
기본값은
false인 선택적cache속성은 외부 컨텍스트 인스턴스를 캐시해야 하는지 여부를 나타냅니다. -
선택적
환경하위 요소를 사용하여 외부 컨텍스트를 조회하는 데 필요한 사용자 지정 환경을 제공할 수 있습니다.
다음은 외부 컨텍스트 바인딩을 생성하는 관리 CLI 명령의 예입니다.
/subsystem=naming/binding=java\:global\/federation\/ldap\/example:add(binding-type=external-context, cache=true, class=jakarta.naming.directory.InitialDirContext, module=org.jboss.as.naming, environment=[java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, java.naming.provider.url="ldap://ldap.example.com:389", java.naming.security.authentication=simple, java.naming.security.principal="uid=admin,ou=system", java.naming.security.credentials=secret])
/subsystem=naming/binding=java\:global\/federation\/ldap\/example:add(binding-type=external-context, cache=true, class=jakarta.naming.directory.InitialDirContext, module=org.jboss.as.naming, environment=[java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, java.naming.provider.url="ldap://ldap.example.com:389", java.naming.security.authentication=simple, java.naming.security.principal="uid=admin,ou=system", java.naming.security.credentials=secret])
결과 XML 구성
다음 명령을 사용하여 바인딩을 제거합니다.
/subsystem=naming/binding=java\:global\/federation\/ldap\/example:remove
/subsystem=naming/binding=java\:global\/federation\/ldap\/example:remove
lookup(Name) 메서드를 제대로 구현하지 않는 JNDI 공급자를 위한 리소스는 "jakarta.naming.InvalidNameException: only support CompoundName names" 오류가 발생할 수 있습니다.
외부 컨텍스트 환경이 다음 속성을 추가하여 대신 lookup(String) 메서드를 사용하도록 지정하여 이 문제를 해결할 수 있지만 이로 인해 성능이 저하될 수 있습니다.
<property name="org.jboss.as.naming.lookup.by.string" value="true"/>
<property name="org.jboss.as.naming.lookup.by.string" value="true"/>
검색 별칭 바인딩
lookup 요소를 사용하면 기존 항목을 추가 이름 또는 별칭에 바인딩할 수 있습니다.
-
name속성은 필수이며 항목의 대상 JNDI 이름을 지정합니다. -
lookup속성은 필수이며 소스 JNDI 이름을 나타냅니다.
다음은 기존 항목을 별칭에 바인딩하는 관리 CLI 명령의 예입니다.
/subsystem=naming/binding=java\:global\/new-alias-name:add(binding-type=lookup, lookup=java\:global\/original-name)
/subsystem=naming/binding=java\:global\/new-alias-name:add(binding-type=lookup, lookup=java\:global\/original-name)
결과 XML 구성
<lookup name="java:global/new-alias-name" lookup="java:global/original-name" />
<lookup name="java:global/new-alias-name" lookup="java:global/original-name" />
다음 명령을 사용하여 바인딩을 제거합니다.
/subsystem=naming/binding=java\:global\/c:remove
/subsystem=naming/binding=java\:global\/c:remove
21.3. JNDI 바인딩을 동적으로 변경 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 7.1에는 서버를 다시 로드하거나 다시 시작하지 않고도 JNDI 바인딩을 동적으로 변경할 수 있는 기능이 도입되었습니다. 이 기능은 버전 업데이트, 테스트 요구 사항 또는 애플리케이션 기능 업데이트로 인해 네트워크 서비스 엔드 포인트가 동적으로 재구성되는 경우에 유용할 수 있습니다.
JNDI 바인딩을 업데이트하려면 rebind 작업을 사용합니다. rebind 작업은 add 작업과 동일한 인수를 사용합니다. 이 명령은 external-context 바인딩 유형을 제외한 모든 바인딩 유형에 대해 작동합니다. 외부 컨텍스트 바인딩에는 MSC( Modular Service Container) 상태에 영향을 미치는 추가 종속성이 필요하므로 서비스를 다시 시작하지 않으면 다시 시작할 수 없습니다.
다음 명령은 Configuring Simple Bindings 예제에 정의된 JNDI 바인딩을 동적으로 변경합니다.
/subsystem=naming/binding=java\:global\/simple-integer-binding:rebind(binding-type=simple, type=int, value=200)
/subsystem=naming/binding=java\:global\/simple-integer-binding:rebind(binding-type=simple, type=int, value=200)
이름 지정 하위 시스템에서 글로벌 바인딩을 구성하는 방법에 대한 자세한 내용은 글로벌 바인딩 구성을 참조하십시오.
21.4. 원격 JNDI 인터페이스 구성 링크 복사링크가 클립보드에 복사되었습니다!
원격 JNDI 인터페이스를 사용하면 클라이언트가 원격 JBoss EAP 인스턴스에서 항목을 검색할 수 있습니다. 이 인터페이스를 비활성화하거나 활성화하도록 이름 지정 하위 시스템을 구성할 수 있습니다. 이 인터페이스는 기본적으로 활성화됩니다. 원격 JNDI 인터페이스는 < remote-naming> 요소를 사용하여 구성됩니다.
다음 관리 CLI 명령을 사용하여 원격 JNDI 인터페이스를 활성화하거나 다시 활성화합니다.
/subsystem=naming/service=remote-naming:add
/subsystem=naming/service=remote-naming:add
다음 관리 CLI 명령을 사용하여 원격 JNDI 인터페이스를 비활성화합니다.
/subsystem=naming/service=remote-naming:remove
/subsystem=naming/service=remote-naming:remove
java:jboss/exported 컨텍스트 내의 항목만 원격 JNDI를 통해 액세스할 수 있습니다.
22장. 고가용성 구성 링크 복사링크가 클립보드에 복사되었습니다!
22.1. 고가용성 소개 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 배포된 Jakarta EE 애플리케이션의 가용성을 보장하기 위해 다음과 같은 고가용성 서비스를 제공합니다.
- 로드 밸런싱
- 이를 통해 서비스는 여러 서버에 워크로드를 분배하여 많은 수의 요청을 처리할 수 있습니다. 클라이언트는 대량의 요청이 있는 경우에도 서비스에서 적시에 응답할 수 있습니다.
- 페일오버
- 이를 통해 하드웨어 또는 네트워크 오류가 발생한 경우에도 클라이언트가 서비스에 대한 중단 없이 액세스할 수 있습니다. 서비스가 실패하면 다른 클러스터 멤버가 클라이언트의 요청을 처리하여 계속 처리할 수 있습니다.
클러스터링 은 이러한 모든 기능을 포함하는 용어입니다. 클러스터 멤버는 로드 밸런싱이라고 하는 워크로드를 공유하도록 구성하고 장애 조치(failover)라고 하는 다른 클러스터 멤버의 장애 발생 시 클라이언트 처리를 선택할 수 있습니다.
독립 실행형 서버 또는 관리형 도메인 중 선택한 JBoss EAP 운영 모드는 서버 를 관리하려는 방법과 관련이 있습니다. 고가용성 서비스는 운영 모드에 관계없이 JBoss EAP에서 구성할 수 있습니다.
JBoss EAP는 다양한 구성 요소를 사용하여 다양한 수준에서 고가용성을 지원합니다. 런타임 및 애플리케이션의 일부 구성 요소는 고가용성을 수행할 수 있습니다.
- 애플리케이션 서버의 인스턴스
- 웹 애플리케이션은 JWS, Apache HTTP Server, Microsoft 14 또는 Oracle iPlanet Web Server와 함께 사용되는 경우
- 상태 저장 및 상태 비저장 세션 자카르타 Enterprise Cryostats
- SSO(Single Sign-On) 메커니즘
- HTTP 세션
- Java Message Service 서비스 및 MDB(메시지 중심 빈)
- 싱글톤 MSC 서비스
- Singleton 배포
클러스터링은 jgroups, infinispan 및 modcluster 하위 시스템에서 JBoss EAP에서 사용할 수 있습니다. ha 및 full-ha 프로필에는 이러한 시스템이 활성화되어 있습니다. JBoss EAP에서 이러한 서비스는 요청 시 시작 및 종료되지만 배포 가능 으로 구성된 애플리케이션이 서버에 배포된 경우에만 시작됩니다.
애플리케이션을 배포 가능으로 표시하는 방법은 JBoss EAP 개발 가이드를 참조하십시오.
22.2. Cryostat와 클러스터 통신 링크 복사링크가 클립보드에 복사되었습니다!
22.2.1. Cryostat 정보 링크 복사링크가 클립보드에 복사되었습니다!
Cryostat는 안정적인 메시징을 위한 툴킷이며 노드가 서로 메시지를 보낼 수 있는 클러스터를 만드는 데 사용할 수 있습니다.
jgroups 하위 시스템은 JBoss EAP에서 고가용성 서비스에 대한 그룹 통신 지원을 제공합니다. 이를 통해 이름이 지정된 채널 및 프로토콜 스택을 구성하고 채널에 대한 런타임 통계를 볼 수 있습니다. jgroups 하위 시스템은 관리형 도메인에서 ha 또는 full-ha 프로필 또는 독립 실행형 서버의 standalone-ha.xml 또는 standalone-full-ha.xml 구성 파일과 같은 고가용성 기능을 제공하는 구성을 사용할 때 사용할 수 있습니다.
JBoss EAP는 두 개의 Cryostat 스택으로 사전 구성되어 있습니다.
- udp
- 클러스터의 노드는 UDP(User Datagram Protocol) 멀티 캐스트를 사용하여 서로 통신합니다. 기본 스택입니다.
- tcp
- 클러스터의 노드는 TCP(Transmission Control Protocol)를 사용하여 서로 통신합니다.
TCP는 더 많은 오버헤드를 가지며 오류 검사, 패킷 순서 및 정체 제어 자체를 처리하기 때문에 UDP보다 느리게 간주됩니다. Cryostat는 UDP용 이러한 기능을 처리하는 반면 TCP는 자체적으로 기능을 보장합니다. 신뢰할 수 없거나 높은 혼잡 네트워크에서 Cryostat를 사용하거나 멀티 캐스트를 사용할 수 없는 경우 TCP를 선택하는 것이 좋습니다.
사전 구성된 스택을 사용하거나 시스템의 특정 요구 사항에 맞게 자체적으로 정의할 수 있습니다. 사용 가능한 프로토콜 및 속성에 대한 자세한 내용은 다음 섹션을 참조하십시오.
22.2.2. TCP를 사용하도록 기본 Cryostat 채널 전환 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 클러스터 노드는 ee Cryostat 채널에 대해 구성된 udp 프로토콜 스택을 사용하여 통신합니다.
22.2.2.1. 멀티 캐스트를 사용하여 TCP 구성 링크 복사링크가 클립보드에 복사되었습니다!
일부 네트워크는 TCP만 사용할 수 있습니다.
프로세스
다음 관리 CLI 명령을 사용하여 사전 구성된
tcp스택을 사용하도록ee채널을 전환합니다./subsystem=jgroups/channel=ee:write-attribute(name=stack,value=tcp)
/subsystem=jgroups/channel=ee:write-attribute(name=stack,value=tcp)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 기본
tcp스택은 IP 멀티 캐스트를 사용하여 초기 클러스터 멤버십을 검색하는MPING프로토콜을 사용합니다.
22.2.2.2. 멀티 캐스트 없이 TCP 구성 링크 복사링크가 클립보드에 복사되었습니다!
보안 정책에서 멀티 캐스트를 선호하거나 허용하지 않는 경우 멀티캐스트 없이 TCP를 사용하도록 기본 프로토콜 스택을 변경할 수 있습니다.
프로세스
멀티 캐스트 없이 TCP 기반 클러스터링을 구성하려면 다음 단계를 수행합니다.
ee채널을 전환하여 Cryostat 하위 시스템에서 사전 구성된tcp스택을 사용하려면 다음 명령을 실행합니다.<channel name="ee" stack="tcp" cluster="ejb"/>
<channel name="ee" stack="tcp" cluster="ejb"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터 노드의 이름을 설정합니다.
독립 실행형 구성 모드에서 다음 단계 중 하나를 수행합니다.
다음 명령을 실행합니다.
<server xmlns="urn:jboss:domain:8.0" name="node_1">
<server xmlns="urn:jboss:domain:8.0" name="node_1">Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
인스턴스를 시작할 때 시스템 속성
jboss.node.name에 고유한 이름을 지정합니다.
도메인 모드에서 클러스터 서버는 서버 태그의
host-*.xml파일에 나열됩니다. 기본 구성은 필요한 경우 편집할 수 있는 다음 서버 이름을 지정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다른 클러스터 멤버를 검색하기 위해 다음 프로토콜 중 하나를 선택합니다.
-
TCPGOSSIP: 이 프로토콜은 외부 gossip 라우터 서비스를 사용하여 클러스터 멤버를 검색합니다. 이를 위해서는 추가 프로세스의 구성 및 관리가 필요하지만 개별 EAP 인스턴스에서 서로 클러스터 멤버를 나열하지 않도록 합니다. 클러스터 멤버가 자주 변경되면 이 프로토콜이 유용합니다. 자세한 내용은 TCPPING 을 참조하십시오. -
TCPPING: 이 프로토콜은 정적 클러스터 멤버십 목록을 정의하고 각 노드가 잠재적인 모든 클러스터 멤버를 나열해야 합니다. 이 프로토콜은 클러스터 멤버 주소를 알고 자주 변경하지 않는 경우에 선호됩니다. 자세한 내용은 TCPGOSSIP 를 참조하십시오.
-
22.2.3. TCPPING 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 절차에서는 TCPPING 프로토콜을 사용하여 정적 클러스터 멤버십 목록을 정의하는 새 Cryostat 스택을 생성합니다. tcpping 스택을 생성하고 이 새 스택을 사용하도록 기본 ee 채널을 설정하는 기본 스크립트가 제공됩니다. 이 스크립트의 관리 CLI 명령은 환경에 맞게 사용자 지정해야 하며 일괄 처리로 처리됩니다.
프로세스
다음 스크립트를 텍스트 편집기에 복사하여 로컬 파일 시스템에 저장합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 정의된 프로토콜 순서가 중요합니다.
add-index값을add명령에 전달하여 특정 인덱스에 프로토콜을 삽입할 수도 있습니다. 인덱스는 0부터 시작하므로 다음 관리 CLI 명령은UNICAST3프로토콜을 7번째 프로토콜로 추가합니다./subsystem=jgroups/stack=tcpping/protocol=UNICAST3:add(add-index=6)
/subsystem=jgroups/stack=tcpping/protocol=UNICAST3:add(add-index=6)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 환경에 대한 스크립트를 수정합니다.
-
관리형 도메인에서 실행 중인 경우
/subsystem=jgroups명령 앞에/profile=PROFILE_NAME을 사용하여 업데이트할 프로필을 지정해야 합니다. 환경에 맞게 다음 속성을 조정합니다.
-
socket-bindings: 잘 알려진 것으로 간주되고 초기 멤버십을 조회하는 데 사용할 수 있는 쉼표로 구분된 호스트 및 포트 조합 목록입니다. 소켓 바인딩 정의에 대한 자세한 내용은 소켓 바인딩 구성 을 참조하십시오. -
initial_hosts:HOST[PORT]구문을 사용하여 쉼표로 구분된 호스트 및 포트 조합 목록입니다. 이 구문은 잘 알려져 있으며 초기 멤버십(예:host1[1000],host2[2000])을 조회할 수 있습니다. -
port_range: 이 속성은initial_hosts포트 범위를 지정된 값으로 확장하는 데 사용됩니다. 예를 들어initial_hosts를host1[1000],host2[2000]로 설정하고port_range를1로 설정하면initial_hosts설정이host1[1000],host1[1001],host2[2000],host2[2001]로 확장됩니다. 이 속성은initial_hosts속성에서만 작동합니다.
-
-
관리형 도메인에서 실행 중인 경우
스크립트 파일을 관리 CLI에 전달하여 스크립트를 실행합니다.
EAP_HOME/bin/jboss-cli.sh --connect --file=/path/to/SCRIPT_NAME
$ EAP_HOME/bin/jboss-cli.sh --connect --file=/path/to/SCRIPT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 TCPPING 스택을 사용할 수 있으며 TCP가 네트워크 통신에 사용됩니다.
22.2.3.1. 독립 실행형 모드에서 TCPPING 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 절차에서는 독립 실행형 모드에서 클러스터형 애플리케이션의 TCP 스택 및 노드를 구성하는 데 도움이 됩니다.
프로세스
default 스택을
udp에서 tcp 하위 시스템에서tcp로 변경합니다.<channel name="ee" stack="tcp" cluster="ejb"/>
<channel name="ee" stack="tcp" cluster="ejb"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 MPING 프로토콜 대신 TCPPING 프로토콜을 사용하도록 TCP 스택을 구성합니다. 다음 코드에서
initial_hosts속성은 클러스터 내의 모든 노드 목록과 관련이 있으며7600은 구성 및 환경에 따라 다를 수 있는 기본jgroups-tcp포트를 나타냅니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고initial_hosts에 설정된 포트 번호7600은jgroups-tcp소켓-binding 정의에 정의된 포트 번호와 동일해야 합니다. socket-binding에 port-offset 기능을 사용하는 경우initial_hosts에서 오프셋 후 동일한 값을 지정해야 합니다.Cryostat 구성 요소에서 사용하는 개인 인터페이스의 IP 주소를 설정합니다. IP 주소는
initial_hosts에 지정된 IP 주소 중 하나와 관련이 있어야 합니다.<interface name="private"> <inet-address value="${jboss.bind.address.private:192.168.1.5}"/> </interface><interface name="private"> <inet-address value="${jboss.bind.address.private:192.168.1.5}"/> </interface>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 클러스터 내의 다른 노드를 구성하려면 위의 단계를 반복합니다. 노드가 구성되면 각 노드를 시작하고 클러스터형 애플리케이션을 배포합니다.
검증
로그를 확인하여 노드가 실행 중인지 확인할 수 있습니다.
INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (thread-2,ee,node_1) ISPN000094: Received new cluster view for channel server: [node_1|1] (2) [node_1, node_2] INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (thread-2,ee,node_1) ISPN000094: Received new cluster view for channel web: [node_1|1] (2) [node_1, node_2]
INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (thread-2,ee,node_1) ISPN000094: Received new cluster view for channel server: [node_1|1] (2) [node_1, node_2] INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (thread-2,ee,node_1) ISPN000094: Received new cluster view for channel web: [node_1|1] (2) [node_1, node_2]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
22.2.3.2. 도메인 모드에서 TCPPING 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 절차에서는 도메인 모드에서 클러스터형 애플리케이션의 TCP 스택 및 노드를 구성하는 데 도움이 됩니다.
프로세스
동일한 프로필이 여러 클러스터에 사용되는 경우 system 속성 값을
initial_hosts로 설정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트 컨트롤러의 XML 구성 내에서 개인 인터페이스의 IP 주소를 설정합니다. 개인 인터페이스의 IP 주소는
initial_hosts에 나열된 IP 주소 중 하나와 관련이 있어야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
로그를 확인하여 노드가 실행 중인지 확인할 수 있습니다.
INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (thread-2,ee,node_1) ISPN000094: Received new cluster view for channel server: [node_1|1] (2) [node_1, node_2] INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (thread-2,ee,node_1) ISPN000094: Received new cluster view for channel web: [node_1|1] (2) [node_1, node_2]
INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (thread-2,ee,node_1) ISPN000094: Received new cluster view for channel server: [node_1|1] (2) [node_1, node_2] INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (thread-2,ee,node_1) ISPN000094: Received new cluster view for channel web: [node_1|1] (2) [node_1, node_2]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
22.2.4. TCPGOSSIP 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 절차에서는 TCPGOSSIP 프로토콜을 사용하여 외부 gossip 라우터를 사용하여 클러스터 멤버를 검색하는 새 Cryostat 스택을 생성합니다. tcpgossip 스택을 생성하고 이 새 스택을 사용하도록 기본 ee 채널을 설정하는 기본 스크립트가 제공됩니다. 이 스크립트의 관리 CLI 명령은 환경에 맞게 사용자 지정해야 하며 일괄 처리로 처리됩니다.
프로세스
다음 스크립트를 텍스트 편집기에 복사하여 로컬 파일 시스템에 저장합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 정의된 프로토콜 순서가 중요합니다.
add-index값을add명령에 전달하여 특정 인덱스에 프로토콜을 삽입할 수도 있습니다. 인덱스는 0부터 시작하므로 다음 관리 CLI 명령은UNICAST3프로토콜을 7번째 프로토콜로 추가합니다./subsystem=jgroups/stack=tcpgossip/protocol=UNICAST3:add(add-index=6)
/subsystem=jgroups/stack=tcpgossip/protocol=UNICAST3:add(add-index=6)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 환경에 대한 스크립트를 수정합니다.
-
관리형 도메인에서 실행 중인 경우
/subsystem=jgroups명령 앞에/profile=PROFILE_NAME을 사용하여 업데이트할 프로필을 지정해야 합니다. 환경에 맞게 다음 속성을 조정합니다.
-
socket-bindings: 잘 알려진 것으로 간주되고 초기 멤버십을 조회하는 데 사용할 수 있는 쉼표로 구분된 호스트 및 포트 조합 목록입니다. 소켓 바인딩 정의에 대한 자세한 내용은 소켓 바인딩 구성 을 참조하십시오. -
initial_hosts:HOST[PORT]구문을 사용하여 쉼표로 구분된 호스트 및 포트 조합 목록입니다. 이 구문은 잘 알려져 있으며 초기 멤버십(예:host1[1000],host2[2000])을 조회할 수 있습니다. -
port_range: 이 속성은initial_hosts포트 범위를 지정된 값으로 확장하는 데 사용됩니다. 예를 들어initial_hosts를host1[1000],host2[2000]로 설정하고port_range를1로 설정하면initial_hosts설정이host1[1000],host1[1001],host2[2000],host2[2001]로 확장됩니다. 이 속성은initial_hosts속성에서만 작동합니다. -
reconnect_interval: 연결이 끊긴 스텁이 gossip 라우터에 다시 연결하려고 시도하는 간격(밀리초)입니다. -
sock_conn_timeout: 소켓 생성의 최대 시간입니다. 기본값은1000밀리초입니다. -
sock_read_timeout: 읽기를 차단할 최대 시간(밀리초)입니다. 값이0이면 무기한 차단됩니다.
-
-
관리형 도메인에서 실행 중인 경우
스크립트 파일을 관리 CLI에 전달하여 스크립트를 실행합니다.
EAP_HOME/bin/jboss-cli.sh --connect --file=/path/to/SCRIPT_NAME
$ EAP_HOME/bin/jboss-cli.sh --connect --file=/path/to/SCRIPT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow
TCPGOSSIP 스택을 사용할 수 있으며 TCP는 네트워크 통신에 사용됩니다. 이 스택은 gossip 라우터와 함께 사용하도록 구성되어 있어 Cryostat 클러스터 멤버가 다른 클러스터 멤버를 찾을 수 있습니다.
22.2.5. JDBC_PING 구성 링크 복사링크가 클립보드에 복사되었습니다!
JDBC_PING 프로토콜을 사용하여 클러스터의 멤버십을 관리하고 검색할 수 있습니다.
JDBC_PING은 데이터 소스에 지정된 데이터베이스를 사용하여 클러스터 멤버를 나열합니다.
프로세스
- 클러스터 멤버십을 관리하는 데 사용할 데이터베이스에 연결할 데이터 소스를 생성합니다.
다음 스크립트를 텍스트 편집기에 복사하여 로컬 파일 시스템에 저장합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고정의된 프로토콜의 순서가 중요합니다.
add-index값을add명령에 전달하여 특정 인덱스에 프로토콜을 삽입할 수도 있습니다. 인덱스는 0부터 시작하므로 다음 관리 CLI 명령은UNICAST3프로토콜을 7번째 프로토콜로 추가합니다./subsystem=jgroups/stack=JDBC_PING/protocol=UNICAST3:add(add-index=6)
/subsystem=jgroups/stack=JDBC_PING/protocol=UNICAST3:add(add-index=6)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 환경에 대한 스크립트를 수정합니다.
-
관리형 도메인에서 실행 중인 경우
/subsystem=jgroups명령 앞에/profile=PROFILE_NAME을 사용하여 업데이트할 프로필을 지정해야 합니다. - 'ExampleDS'를 1단계에서 정의한 데이터 소스 이름으로 바꿉니다.
-
관리형 도메인에서 실행 중인 경우
스크립트 파일을 관리 CLI에 전달하여 스크립트를 실행합니다.
EAP_HOME/bin/jboss-cli.sh --connect --file=/path/to/SCRIPT_NAME
$ EAP_HOME/bin/jboss-cli.sh --connect --file=/path/to/SCRIPT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow
JDBC_PING 스택을 사용할 수 있으며 TCP가 네트워크 통신에 사용됩니다.
22.2.6. 네트워크 인터페이스에 Cryostat 바인딩 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 Cryostat는 기본 구성에서 localhost를 가리키는 프라이빗 네트워크 인터페이스에만 바인딩됩니다. 보안상의 이유로, Cryostat는 JBoss EAP 시작 중에 지정된 -b 인수에 의해 정의된 네트워크 인터페이스에 바인딩되지 않습니다. 클러스터링 트래픽은 공용 네트워크 인터페이스에 노출되지 않아야 합니다.
네트워크 인터페이스 구성 방법에 대한 자세한 내용은 이 가이드의 네트워크 및 포트 구성 장을 참조하십시오.
보안상의 이유로 Cryostat는 공용이 아닌 네트워크 인터페이스에만 바인딩해야 합니다. 성능상의 이유로 Cryostat 트래픽의 네트워크 인터페이스는 전용 VLAN(Virtual Local Area Network)의 일부여야 합니다.
22.2.7. 클러스터 보안 링크 복사링크가 클립보드에 복사되었습니다!
클러스터를 안전하게 실행하기 위해 해결해야 할 몇 가지 문제가 있습니다.
22.2.7.1. 인증 구성 링크 복사링크가 클립보드에 복사되었습니다!
Cryostat 인증은 AUTH 프로토콜에 의해 수행됩니다. 이는 인증된 노드만 클러스터에 참여할 수 있도록 하는 것입니다.
해당 서버 구성 파일에서 적절한 속성 설정으로 AUTH 프로토콜을 추가합니다. AUTH 프로토콜은 pbcast.GMS 프로토콜 바로 전에 구성해야 합니다.
다음 예제에서는 AUTH 를 다른 형식의 권한 부여 토큰과 함께 사용하는 방법을 보여줍니다.
간단한 토큰을 사용하는 AUTH
다이제스트 알고리즘 토큰이 있는 AUTH
이 형식은 모든 다이제스트 알고리즘(예: MD5 또는 SHA-2)과 함께 사용할 수 있습니다. JBoss EAP 8.0의 기본 다이제스트 알고리즘은 SHA-256이며 JVM에서 지원하는 데 필요한 다이제스트 알고리즘입니다. 많은 JVM이 SHA-512를 추가로 구현합니다.
X509 토큰을 사용하는 AUTH
이 예제에서는 elytron 하위 시스템에 새 키 저장소를 생성하고, Cryostat AUTH 구성에서 참조합니다.
키 저장소를 생성합니다.
keytool -genkeypair -alias jgroups_key -keypass my_password -storepass my_password -storetype jks -keystore jgroups.keystore -keyalg RSA
$ keytool -genkeypair -alias jgroups_key -keypass my_password -storepass my_password -storetype jks -keystore jgroups.keystore -keyalg RSACopy to Clipboard Copied! Toggle word wrap Toggle overflow 관리 CLI를 사용하여
elytron하위 시스템에 키 저장소를 추가합니다./subsystem=elytron/key-store=jgroups-token-store:add(type=jks,path=/path/to/jgroups.keystore,credential-reference={clear-text=my_password}, required=true)/subsystem=elytron/key-store=jgroups-token-store:add(type=jks,path=/path/to/jgroups.keystore,credential-reference={clear-text=my_password}, required=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cryostat 스택 정의에서 키 저장소를 사용하도록
AUTH를 구성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
22.2.7.2. 암호화 구성 링크 복사링크가 클립보드에 복사되었습니다!
메시지를 암호화하기 위해 Cryostat는 클러스터 멤버가 공유하는 시크릿 키를 사용합니다. 발신자는 공유 비밀 키를 사용하여 메시지를 암호화하고 수신자는 동일한 비밀 키를 사용하여 메시지를 해독합니다. SYM_ENCRYPT 프로토콜을 사용하여 구성된 대칭 암호화 에서 노드는 공유 키 저장소를 사용하여 시크릿 키를 검색합니다. ASYM_ENCRYPT 프로토콜을 사용하여 구성된 비대칭 암호화 에서 노드는 AUTH 를 사용하여 인증한 후 클러스터의 코디네이터에서 시크릿 키를 검색합니다.
대칭 암호화 사용
SYM_ENCRYPT 를 사용하려면 각 노드의 Cryostat 구성에서 참조될 키 저장소를 설정해야 합니다.
키 저장소를 생성합니다.
다음 명령에서
VERSION을 적절한 Cryostat JAR 버전으로 바꾸고PASSWORD를 키 저장소 암호로 바꿉니다.java -cp EAP_HOME/modules/system/layers/base/org/jgroups/main/jgroups-VERSION.jar org.jgroups.demos.KeyStoreGenerator --alg AES --size 128 --storeName defaultStore.keystore --storepass PASSWORD --alias mykey
$ java -cp EAP_HOME/modules/system/layers/base/org/jgroups/main/jgroups-VERSION.jar org.jgroups.demos.KeyStoreGenerator --alg AES --size 128 --storeName defaultStore.keystore --storepass PASSWORD --alias mykeyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 그러면 Cryostat 구성에서 참조될
defaultStore.keystore파일이 생성됩니다.키 저장소가 생성되면 두 가지 방법 중 하나를 사용하여
SYM_PROTOCOL에 정의됩니다.- 구성에 직접 키 저장소를 지정합니다.
- Elytron 하위 시스템을 사용하여 키 저장소를 참조합니다.
SYM_ENCRYPT 를 사용하는 경우 AUTH 를 구성하는 것은 선택 사항입니다.
키 저장소를 직접 참조하여 대칭 암호화 사용
jgroups하위 시스템에서SYM_ENCRYPT프로토콜을 구성합니다.해당 서버 구성 파일에서 적절한 속성 설정으로
SYM_ENCRYPT프로토콜을 추가합니다. 이 프로토콜은 이전에 생성된 키 저장소를 참조합니다.SYM_ENCRYPT프로토콜은pbcast.NAKACK2프로토콜 바로 전에 구성해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
elytron으로 대칭 암호화 사용
관리 CLI를 사용하여 대칭 암호화를 사용하여 에서 생성된
defaultStore.keystore를 참조하는elytron하위 시스템에 키 저장소를 생성합니다./subsystem=elytron/key-store=jgroups-keystore:add(path=/path/to/defaultStore.keystore,credential-reference={clear-text=PASSWORD},type=JCEKS)/subsystem=elytron/key-store=jgroups-keystore:add(path=/path/to/defaultStore.keystore,credential-reference={clear-text=PASSWORD},type=JCEKS)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 적절한 속성 설정을 사용하여
jgroups하위 시스템에SYM_ENCRYPT프로토콜을 추가합니다. 다음 구성에 표시된 대로SYM_ENCRYPT프로토콜은pbcast.NAKACK2프로토콜 바로 앞에 구성해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고위 예제에서는 일반 텍스트 암호를 사용하지만 구성 파일 외부에서 암호를 정의하도록 인증 정보 저장소도 정의할 수 있습니다. 이 저장소를 구성하는 방법에 대한 자세한 내용은 서버 보안 구성 가이드의 인증 정보 저장소 섹션을 참조하십시오.
비대칭 암호화 사용
ASYM_ENCRYPT 를 사용하려면 AUTH 프로토콜을 정의해야 합니다. jgroups 하위 시스템에서 AUTH 프로토콜 구성 방법에 대한 지침은 인증 구성 섹션을 참조하십시오.
ASYM_ENCRYPT 는 두 가지 방법 중 하나를 사용하여 구성됩니다.
- 시크릿 키를 생성하고 구성에서 직접 참조합니다.
- Elytron 하위 시스템을 사용하여 키 저장소를 생성하고 참조합니다.
보안 키를 생성하여 비대칭 암호화 사용
jgroups하위 시스템에서ASYM_ENCRYPT프로토콜을 구성합니다.해당 서버 구성 파일에서 적절한 속성 설정으로
ASYM_ENCRYPT프로토콜을 추가합니다. 다음 구성에 표시된 대로ASYM_ENCRYPT프로토콜은pbcast.NAKACK2프로토콜 바로 앞에 구성해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
elytron으로 비대칭 암호화 사용
키 쌍을 포함할 키 저장소를 생성합니다. 다음 명령은
mykey항목을 사용하여 키 저장소를 생성합니다.keytool -genkeypair -alias mykey -keyalg RSA -keysize 1024 -keystore defaultKeystore.keystore -dname "CN=localhost" -keypass secret -storepass secret
$ keytool -genkeypair -alias mykey -keyalg RSA -keysize 1024 -keystore defaultKeystore.keystore -dname "CN=localhost" -keypass secret -storepass secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow 관리 CLI를 사용하여
defaultStore.keystore를 참조하는elytron하위 시스템에 키 저장소를 생성합니다./subsystem=elytron/key-store=jgroups-keystore:add(path=/path/to/defaultStore.keystore,credential-reference={clear-text=PASSWORD},type=JCEKS)/subsystem=elytron/key-store=jgroups-keystore:add(path=/path/to/defaultStore.keystore,credential-reference={clear-text=PASSWORD},type=JCEKS)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 적절한 속성 설정으로
jgroups하위 시스템에ASYM_ENCRYPT프로토콜을 추가합니다. 다음 구성에 표시된 대로ASYM_ENCRYPT프로토콜은pbcast.NAKACK2프로토콜 바로 앞에 구성해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고위 예제에서는 일반 텍스트 암호를 사용하지만 구성 파일 외부에서 암호를 정의하도록 인증 정보 저장소도 정의할 수 있습니다. 이 저장소를 구성하는 방법에 대한 자세한 내용은 서버 보안 구성 가이드의 인증 정보 저장소 섹션을 참조하십시오.
22.2.8. Cryostat 스레드 풀 구성 링크 복사링크가 클립보드에 복사되었습니다!
jgroups 하위 시스템에는 기본,internal,oob 및 timer 스레드 풀이 포함되어 있습니다. 이러한 풀은 모든 Cryostat 스택에 대해 구성할 수 있으며 로컬 노드에 구성된 Cryostat 또는 기타 풀에는 영향을 미치지 않습니다. JGroup 스레드 풀은 클러스터 통신을 지원하는 데 사용됩니다.
다음 표에는 각 스레드 풀에 구성할 수 있는 특성과 각각에 대한 기본값이 나열되어 있습니다.
| 스레드 풀 이름 | 설명 | keepalive-time | max-threads | min-threads | queue-length |
|---|---|---|---|---|---|
| default | 이 풀은 대역 외로 표시되지 않는 들어오는 메시지를 처리하는 데 사용됩니다. | 60000L | 300 | 20 | 100 |
| internal | 이 풀은 EAP 유지 관리에 필요한 내부 프로세스를 처리하는 데 사용됩니다. | 60000L | 4 | 2 | 100 |
| cnfB | 이 풀은 들어오는 대역 외 메시지를 처리하는 데 사용됩니다. | 60000L | 300 | 20 | 0 |
| 타이머 | 이 풀은 시간 바인딩된 스케줄러 메시지를 처리하는 데 사용됩니다. | 5000L | 4 | 2 | 500 |
다음 구문을 사용하여 관리 CLI를 사용하여 Cryostat 스레드 풀을 구성합니다.
/subsystem=jgroups/stack=STACK_TYPE/transport=TRANSPORT_TYPE/thread-pool=THREAD_POOL_NAME:write-attribute(name=ATTRIBUTE_NAME, value=ATTRIBUTE_VALUE)
/subsystem=jgroups/stack=STACK_TYPE/transport=TRANSPORT_TYPE/thread-pool=THREAD_POOL_NAME:write-attribute(name=ATTRIBUTE_NAME, value=ATTRIBUTE_VALUE)
다음은 udp 스택의 기본 스레드 풀에서 max-threads 값을 500 으로 설정하는 관리 CLI 명령의 예입니다.
/subsystem=jgroups/stack=udp/transport=UDP/thread-pool=default:write-attribute(name="max-threads", value="500")
/subsystem=jgroups/stack=udp/transport=UDP/thread-pool=default:write-attribute(name="max-threads", value="500")
22.2.9. Cryostat 전송 및 수신 버퍼 구성 링크 복사링크가 클립보드에 복사되었습니다!
버퍼 크기 경고 해결
기본적으로 Cryostat는 특정 전송 및 수신 버퍼 값으로 구성됩니다. 그러나 운영 체제는 사용 가능한 버퍼 크기를 제한할 수 있으며 JBoss EAP는 구성된 버퍼 값을 사용하지 못할 수 있습니다. 이 경우 다음과 유사한 JBoss EAP 로그에 경고가 표시됩니다.
이 문제를 해결하려면 버퍼 크기를 늘리는 방법에 대한 지침은 운영 체제 설명서를 참조하십시오. Red Hat Enterprise Linux 시스템의 경우 root 사용자로 /etc/sysctl.conf 를 편집하여 시스템을 다시 시작할 수 있는 버퍼 크기에 대한 최대 값을 구성합니다. 예를 들면 다음과 같습니다.
# Allow a 25MB UDP receive buffer for JGroups net.core.rmem_max = 26214400 # Allow a 1MB UDP send buffer for JGroups net.core.wmem_max = 1048576
# Allow a 25MB UDP receive buffer for JGroups
net.core.rmem_max = 26214400
# Allow a 1MB UDP send buffer for JGroups
net.core.wmem_max = 1048576
/etc/sysctl.conf 를 수정한 후 sysctl -p 를 실행하여 변경 사항을 적용합니다.
Cryostat 버퍼 크기 구성
UDP 및 TCP Cryostat 스택에서 다음 전송 속성을 설정하여 JBoss EAP에서 사용하는 Cryostat 버퍼 크기를 구성할 수 있습니다.
- UDP 스택
-
ucast_recv_buf_size -
ucast_send_buf_size -
mcast_recv_buf_size -
mcast_send_buf_size
-
- TCP 스택
-
recv_buf_size -
send_buf_size
-
Cryostat 버퍼 크기는 관리 콘솔 또는 관리 CLI를 사용하여 구성할 수 있습니다.
다음 구문을 사용하여 관리 CLI를 사용하여 Cryostat 버퍼 크기 속성을 설정합니다.
/subsystem=jgroups/stack=STACK_NAME/transport=TRANSPORT/property=PROPERTY_NAME:add(value=BUFFER_SIZE)
/subsystem=jgroups/stack=STACK_NAME/transport=TRANSPORT/property=PROPERTY_NAME:add(value=BUFFER_SIZE)
다음은 tcp 스택에서 recv_buf_size 속성을 20000000 으로 설정하는 관리 CLI 명령 예제입니다.
/subsystem=jgroups/stack=tcp/transport=TRANSPORT/property=recv_buf_size:add(value=20000000)
/subsystem=jgroups/stack=tcp/transport=TRANSPORT/property=recv_buf_size:add(value=20000000)
Cryostat 버퍼 크기는 구성 탭에서 Cryostat 하위 시스템으로 이동하고, 뷰 를 클릭하고, 스택 탭을 선택하고, 적절한 스택을 선택하고, 전송 을 클릭하고 속성 필드를 편집하여 관리 콘솔을 사용하여 구성할 수도 있습니다.
22.2.10. Cryostat 하위 시스템 튜닝 링크 복사링크가 클립보드에 복사되었습니다!
jgroups 하위 시스템에 대한 성능 모니터링 및 최적화에 대한 팁은 JBoss EAP의 성능 튜닝 의 Cryostat Tuning 섹션을 참조하십시오.
22.2.11. Cryostat 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
22.2.11.1. 노드가 클러스터를 형성하지 않음 링크 복사링크가 클립보드에 복사되었습니다!
IP 멀티 캐스트에 대해 시스템이 올바르게 설정되었는지 확인합니다. IP 멀티캐스트를 테스트하는 데 사용할 수 있는 JBoss EAP에는 McastReceiverTest 및 McastSenderTest 의 두 가지 테스트 프로그램이 있습니다.
터미널에서 McastReceiverTest 를 시작합니다.
java -cp EAP_HOME/bin/client/jboss-client.jar org.jgroups.tests.McastReceiverTest -mcast_addr 230.11.11.11 -port 5555
$ java -cp EAP_HOME/bin/client/jboss-client.jar org.jgroups.tests.McastReceiverTest -mcast_addr 230.11.11.11 -port 5555
그런 다음 다른 터미널 창에서 McastSenderTest 를 시작합니다.
java -cp EAP_HOME/bin/client/jboss-client.jar org.jgroups.tests.McastSenderTest -mcast_addr 230.11.11.11 -port 5555
$ java -cp EAP_HOME/bin/client/jboss-client.jar org.jgroups.tests.McastSenderTest -mcast_addr 230.11.11.11 -port 5555
특정 네트워크 인터페이스 카드(NIC)에 바인딩하려면 -bind_addr Cryostat _BIND_ADDRESS 를 사용합니다. 여기서 Cryostat _BIND_ADDRESS 는 바인딩하려는 NIC의 IP 주소입니다. 발신자와 수신자 모두에서 이 매개변수를 사용합니다.
McastSenderTest 터미널 창을 입력하면 McastReceiverTest 창에 출력이 표시됩니다. 그렇지 않은 경우 다음 단계를 시도합니다.
-
sender 명령에
-ttl VALUE를 추가하여 멀티 캐스트 패킷의 time-to-live를 늘립니다. 이 테스트 프로그램에서 사용하는 기본값은32이고VALUE는255를 초과해서는 안 됩니다. - 시스템에 여러 인터페이스가 있는 경우 올바른 인터페이스를 사용하고 있는지 확인합니다.
- 시스템 관리자에게 문의하여 선택한 인터페이스에서 멀티 캐스트가 작동하는지 확인하십시오.
클러스터의 각 시스템에서 멀티 캐스트가 올바르게 작동하고 있으면 위의 테스트를 반복하여 네트워크를 테스트하여 발신자를 한 시스템에 배치하고 수신자를 다른 시스템에 배치할 수 있습니다.
22.2.11.2. 실패 탐지에서 하트비트의 원인 링크 복사링크가 클립보드에 복사되었습니다!
하트비트 승인이 시간 초과 및 max_tries 로 정의되는 T( T )에 대해 수신되지 않았기 때문에 클러스터 멤버가 FD(실패 탐지)로 의심되는 경우가 있습니다.
예를 들어 A Pings B, B pings C, C pings D 및 D pings A, B, C, D ping 노드 클러스터의 경우 다음과 같은 이유로 C가 의심될 수 있습니다.
-
B 또는 C는
T초 이상 100 % CPU에서 실행됩니다. 따라서 C가 하트비트 승인을 B로 보내는 경우에도 B는 100 % CPU 사용량에 있기 때문에 처리하지 못할 수 있습니다. - B 또는 C는 가비지 수집 중이므로 위와 동일한 상황이 발생합니다.
- 위의 두 사례의 조합입니다.
- 네트워크가 패킷을 손실됩니다. 이 문제는 일반적으로 네트워크에 트래픽이 많이 있고 스위치가 패킷 삭제 시작, 일반적으로 먼저 브로드캐스트를 시작한 다음 IP 멀티캐스트 및 TCP 패킷이 마지막으로 수행됩니다.
-
B 또는 C는 콜백을 처리하고 있습니다. 예를 들어, C가
T+ 1초를 처리하는 채널을 통해 원격 메서드 호출을 수신하면 이 시간 동안 C는 하트비트를 포함한 다른 메시지를 처리하지 않습니다. 따라서 B는 하트비트 승인을 받지 못하고 C를 의심할 것입니다.
22.3. Infinispan 링크 복사링크가 클립보드에 복사되었습니다!
22.3.1. Infinispan 정보 링크 복사링크가 클립보드에 복사되었습니다!
Infinispan은 캐시된 데이터를 관리하기 위한 Jakarta Persistence 2.2호환 캐시 인터페이스를 제공하는 Java 데이터 그리드 플랫폼입니다.
Infinispan 기능 및 구성 옵션에 대한 자세한 내용은 Infinispan 설명서 를 참조하십시오.
infinispan 하위 시스템은 JBoss EAP에 대한 캐싱 지원을 제공합니다. 이를 통해 이름이 지정된 캐시 컨테이너 및 캐시에 대한 런타임 지표를 구성하고 볼 수 있습니다.
관리형 도메인의 ha 또는 full-ha 프로필 또는 독립 실행형 서버의 standalone-ha.xml 또는 standalone-full-ha.xml 구성 파일과 같은 고가용성 기능을 제공하는 구성을 사용하는 경우 infinispan 하위 시스템은 캐싱, 상태 복제 및 상태 배포 지원을 제공합니다. 고가용성이 아닌 구성에서 infinispan 하위 시스템은 로컬 캐싱 지원을 제공합니다.
Infinispan은 JBoss EAP 8.0의 공개 모듈입니다. 애플리케이션에 infinispan 하위 시스템을 사용하여 새 cache-containers 또는 캐시를 생성하고 사용할 수 있습니다. 또한 Infinispan API의 사용은 애플리케이션에서 지원합니다.
22.3.2. 컨테이너 캐시 링크 복사링크가 클립보드에 복사되었습니다!
캐시 컨테이너는 하위 시스템에서 사용하는 캐시의 리포지토리입니다. 각 캐시 컨테이너는 사용할 기본 캐시를 정의합니다.
JBoss EAP 8.0은 다음과 같은 기본 Infinispan 캐시 컨테이너를 정의합니다.
-
Singleton 캐싱을 위한
서버 -
웹세션 클러스터링을 위한 웹 -
상태 저장 세션 빈 클러스터링을 위한 binary
-
엔티티 캐싱을 위한
Hibernate
예: 기본 Infinispan 구성
각 캐시 컨테이너에 정의된 기본 캐시를 확인합니다. 예를 들어 웹 캐시 컨테이너는 dist distributed cache를 기본값으로 정의합니다. 따라서 웹 세션을 클러스터링할 때 dist 캐시가 사용됩니다.
기본 캐시 변경 및 추가 캐시 추가에 대한 정보는 캐시 컨테이너 구성을 참조하십시오.
22.3.2.1. 캐시 컨테이너 구성 링크 복사링크가 클립보드에 복사되었습니다!
캐시 컨테이너 및 캐시 속성은 관리 콘솔 또는 관리 CLI를 사용하여 구성할 수 있습니다.
구성의 다른 구성 요소가 참조할 수 있으므로 캐시 또는 캐시 컨테이너 이름을 변경하지 않아야 합니다.
22.3.2.1.1. 관리 콘솔을 사용하여 캐시 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리 콘솔의 Configuration 탭에서 Infinispan 하위 시스템으로 이동하면 캐시 및 캐시 컨테이너를 구성할 수 있습니다. 관리형 도메인에서 구성할 적절한 프로필을 선택해야 합니다.
캐시 컨테이너를 추가합니다.
캐시 컨테이너 제목 옆에 있는 Add (+) 버튼을 클릭하고 캐시 컨테이너 추가 를 선택한 다음 새 캐시 컨테이너 설정을 입력합니다.
캐시 컨테이너 설정을 업데이트합니다.
적절한 캐시 컨테이너를 선택하고 View 를 클릭합니다. 필요에 따라 캐시 컨테이너 설정을 구성합니다.
캐시 컨테이너 전송 설정을 업데이트합니다.
적절한 캐시 컨테이너를 선택하고 View 를 클릭합니다. 전송 탭을 선택하고 필요에 따라 캐시 컨테이너 전송 설정을 구성합니다.
캐시 구성.
적절한 캐시 컨테이너를 선택하고 View 를 클릭합니다. 적절한 캐시 탭에서(예: 복제된 캐시)에서 캐시 를 추가, 업데이트 및 제거할 수 있습니다.
22.3.2.1.2. 관리 CLI를 사용하여 캐시 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 캐시 및 캐시 컨테이너를 구성할 수 있습니다. 관리형 도메인에서 이러한 명령 앞에 /profile=PROFILE_NAME 을 사용하여 업데이트할 프로필을 지정해야 합니다.
캐시 컨테이너를 추가합니다.
/subsystem=infinispan/cache-container=CACHE_CONTAINER:add
/subsystem=infinispan/cache-container=CACHE_CONTAINER:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 복제된 캐시를 추가합니다.
/subsystem=infinispan/cache-container=CACHE_CONTAINER/replicated-cache=CACHE:add(mode=MODE)
/subsystem=infinispan/cache-container=CACHE_CONTAINER/replicated-cache=CACHE:add(mode=MODE)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 캐시 컨테이너의 기본 캐시를 설정합니다.
/subsystem=infinispan/cache-container=CACHE_CONTAINER:write-attribute(name=default-cache,value=CACHE)
/subsystem=infinispan/cache-container=CACHE_CONTAINER:write-attribute(name=default-cache,value=CACHE)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 복제된 캐시에 대한 일괄 처리를 구성합니다.
/subsystem=infinispan/cache-container=CACHE_CONTAINER/replicated-cache=CACHE/component=transaction:write-attribute(name=mode,value=BATCH)
/subsystem=infinispan/cache-container=CACHE_CONTAINER/replicated-cache=CACHE/component=transaction:write-attribute(name=mode,value=BATCH)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 그러면 다음과 같은 서버 구성이 생성됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
22.3.2.1.3. 기본 자카르타 Enterprise Cryostat 캐시 컨테이너 변경 링크 복사링크가 클립보드에 복사되었습니다!
아래 설명된 대로 Cryostat 3 하위 시스템에서 캐시 컨테이너를 사용할 수 있습니다.
-
Jakarta Enterprise Cryostats 세션 빈의 비활성화를 지원하려면
infinispan하위 시스템에 정의된 Cryostat 캐시 컨테이너를 사용하여 세션을 저장할 수 있습니다. - 서버에서 클러스터형 배포에 연결하는 원격 Jakarta Enterprise Cryostat 클라이언트의 경우 상호 작용하는 노드가 실패하는 경우 클러스터 토폴로지 정보를 이러한 클라이언트에 제공해야 클러스터의 다른 노드로 장애 조치될 수 있습니다.
22.3.2.1.4. Infinispan 하위 시스템에서 리소스를 Jakarta EE 애플리케이션에 삽입 링크 복사링크가 클립보드에 복사되었습니다!
@Resource 주석을 사용하여 Infinispan 하위 시스템에서 애플리케이션에 캐시와 같은 Infinispan 리소스를 삽입할 수 있습니다. 다음 예제에서는 @Resource 주석을 사용하여 Jakarta EE 애플리케이션에 캐시를 삽입하는 방법을 보여줍니다.
@Resource(lookup = "java:jboss/infinispan/cache/foo/bar") private org.infinispan.Cache<Integer, Object> cache;
@Resource(lookup = "java:jboss/infinispan/cache/foo/bar")
private org.infinispan.Cache<Integer, Object> cache;
위의 예에서 foo 는 캐시 컨테이너의 이름이며 bar 는 삽입할 캐시의 이름입니다.
EAP는 삽입된 리소스의 라이프사이클을 관리합니다. 즉, 애플리케이션은 캐시 또는 캐시 관리자와 같은 해당 리소스를 관리할 필요가 없습니다.
리소스를 수동으로 생성할 때 애플리케이션은 EAP가 아닌 해당 리소스를 관리합니다.
다음 예제에서는 Infinispan 하위 시스템의 다양한 리소스를 애플리케이션에 삽입하는 방법을 보여줍니다.
기본 캐시 삽입 예
Infinispan 하위 시스템의 캐시 컨테이너의 기본 캐시를 애플리케이션에 삽입하려면 다음 명령을 사용합니다.
@Resource(lookup = "java:jboss/infinispan/cache/foo/default")
@Resource(lookup = "java:jboss/infinispan/cache/foo/default")
임베디드 캐시 관리자 삽입 예
애플리케이션이 새 캐시 구성 및 캐시를 생성할 수 있도록 포함된 캐시 관리자를 삽입하려면 다음 명령을 사용합니다.
@Resource(lookup = "java:jboss/infinispan/container/foo") private org.infinispan.manager.EmbeddedCacheManager manager;
@Resource(lookup = "java:jboss/infinispan/container/foo")
private org.infinispan.manager.EmbeddedCacheManager manager;
캐시 구성 삽입 예
Infinispan 하위 시스템 내에 정의된 모든 캐시 구성은 애플리케이션이 해당 캐시 구성에 명시적으로 종속되지 않는 한 항상 설치하거나 사용할 수 있는 것은 아닙니다. Infinispan 하위 시스템에서 캐시 구성을 애플리케이션에 삽입하려면 @Resource 주석을 사용합니다.
다음 예제에서는
@Resource주석을 사용하여foo컨테이너의 캐시 구성을 삽입합니다.@Resource(lookup = "java:jboss/infinispan/configuration/foo/bar") private org.infinispan.config.Configuration config;
@Resource(lookup = "java:jboss/infinispan/configuration/foo/bar") private org.infinispan.config.Configuration config;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예제에서는
@Resource주석을 사용하여foo컨테이너의 기본 캐시 구성을 삽입합니다.@Resource(lookup = "java:jboss/infinispan/configuration/foo/default") private org.infinispan.config.Configuration config;
@Resource(lookup = "java:jboss/infinispan/configuration/foo/default") private org.infinispan.config.Configuration config;Copy to Clipboard Copied! Toggle word wrap Toggle overflow
22.3.2.1.5. Hibernate 캐시 컨테이너의 제거 기능 링크 복사링크가 클립보드에 복사되었습니다!
hibernate 캐시 컨테이너의 제거 기능은 메모리에서 캐시 항목을 제거합니다. 이 기능은 하위 시스템의 메모리 부하를 줄이는 데 도움이 됩니다.
size 속성은 캐시 항목 제거가 시작되기 전에 저장할 최대 캐시 항목 수를 설정합니다.
예: 제거 기능
<cache-container name="hibernate" default-cache="local-query" module="org.hibernate.infinispan">
<transport lock-timeout="60000"/>
<local-cache name="local-query">
<object-memory size="1000"/>
<expiration max-idle="100000"/>
<cache-container name="hibernate" default-cache="local-query" module="org.hibernate.infinispan">
<transport lock-timeout="60000"/>
<local-cache name="local-query">
<object-memory size="1000"/>
<expiration max-idle="100000"/>
제거는 메모리 내에서만 발생합니다. 캐시 저장소에는 영구적으로 정보가 손실되지 않도록 제거된 캐시 항목이 있습니다. 제거 기능에 대한 자세한 내용은 Infinispan 사용자 가이드의 Eviction 및 Data Container 섹션을 참조하십시오.
22.3.2.1.6. Hibernate 캐시 컨테이너의 만료 기능 링크 복사링크가 클립보드에 복사되었습니다!
hibernate 캐시 컨테이너의 만료 기능은 클러스터형 작업이므로 클러스터형 캐시를 사용하면 모든 클러스터 멤버에서 만료된 캐시 항목이 제거됩니다. 자세한 내용은 Infinispan 사용자 가이드의 만료 섹션을 참조하십시오.
22.3.3. 클러스터링 모드 링크 복사링크가 클립보드에 복사되었습니다!
클러스터링은 Infinispan을 사용하여 JBoss EAP에서 두 가지 방법으로 구성할 수 있습니다. 애플리케이션에 가장 적합한 방법은 요구 사항에 따라 다릅니다. 각 모드에서는 가용성, 일관성, 안정성 및 확장성 간에 절충이 있습니다. 클러스터링 모드를 선택하기 전에 네트워크에서 가장 중요한 기능을 식별하고 이러한 요구 사항을 균형 있게 조정해야 합니다.
캐시 모드
- 복제
- 복제 모드에서는 클러스터에서 새 인스턴스를 자동으로 감지하고 추가합니다. 이러한 인스턴스에 대한 변경 사항은 클러스터의 모든 노드에 복제됩니다. 일반적으로 복제 모드는 네트워크를 통해 복제해야 하는 정보의 양 때문에 소규모 클러스터에서 가장 잘 작동합니다. Infinispan은 UDP 멀티 캐스트를 사용하도록 구성할 수 있으므로 네트워크 트래픽 혼잡을 어느 정도 완화합니다.
- 콘텐츠 배포
배포 모드를 사용하면 Infinispan이 클러스터를 선형으로 확장할 수 있습니다. 배포 모드는 일관된 해시 알고리즘을 사용하여 클러스터에서 새 노드를 배치해야 하는 위치를 결정합니다. 보관해야 하는 사본 또는 소유자 수를 구성할 수 있습니다. 보존된 복사본 수, 데이터의 지속성 및 성능 간의 절충이 있습니다. 유지되는 복사본이 많을수록 성능에 더 많은 영향을 미치지만 서버 장애 시 데이터가 손실될 가능성이 적습니다. 또한 해시 알고리즘은 메타데이터 멀티 캐스트 또는 저장 없이 항목을 찾아 네트워크 트래픽을 줄이기 위해 작동합니다.
클러스터 크기가 6-8 노드를 초과하면 배포 모드를 캐싱 전략으로 사용해야 합니다. 배포 모드에서는 모든 노드와 달리 데이터가 클러스터 내의 노드 하위 집합에만 배포됩니다.
22.3.3.1. 캐시 모드 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 기본 캐시를 변경할 수 있습니다.
이 섹션에서는 기본적으로 배포 모드로 설정된 웹 세션 캐시 구성과 관련된 지침을 보여줍니다. 단계 및 관리 CLI 명령은 다른 캐시 컨테이너에 적용되도록 쉽게 조정할 수 있습니다.
복제 캐시 모드로 변경
웹 세션 캐시에 대한 기본 JBoss EAP 8.0 구성에는 복제 캐시 가 포함되지 않습니다. 이 캐시를 먼저 추가해야 합니다.
아래 관리 CLI 명령은 독립 실행형 서버에 대한 것입니다. 관리형 도메인에서 실행하는 경우 /subsystem=infinispan 명령 앞에 /profile=PROFILE_NAME 을 추가하여 업데이트할 프로필을 지정해야 합니다.
repl복제 캐시를 추가하고 기본 캐시로 설정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
배포 캐시 모드로 변경
웹 세션 캐시에 대한 기본 JBoss EAP 8.0 구성에는 이미 dist 배포 캐시가 포함되어 있습니다.
아래 관리 CLI 명령은 독립 실행형 서버에 대한 것입니다. 관리형 도메인에서 실행하는 경우 /subsystem=infinispan 명령 앞에 /profile=PROFILE_NAME 을 추가하여 업데이트할 프로필을 지정해야 합니다.
기본 캐시를
dist배포 캐시로 변경합니다./subsystem=infinispan/cache-container=web:write-attribute(name=default-cache,value=dist)
/subsystem=infinispan/cache-container=web:write-attribute(name=default-cache,value=dist)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 배포 캐시의 소유자 수를 설정합니다. 다음 명령은
5명의 소유자를 설정합니다. 기본값은2입니다./subsystem=infinispan/cache-container=web/distributed-cache=dist:write-attribute(name=owners,value=5)
/subsystem=infinispan/cache-container=web/distributed-cache=dist:write-attribute(name=owners,value=5)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
22.3.3.2. 캐시 전략 성능 링크 복사링크가 클립보드에 복사되었습니다!
SYNC 캐싱 전략을 사용하는 경우 복제 비용이 복제가 완료될 때까지 요청이 완료되지 않기 때문에 응답 시간에 쉽게 측정하고 직접 확인할 수 있습니다.
ASYNC 캐싱 전략으로 SYNC 캐싱 전략보다 응답 시간이 짧아야 하지만 올바른 조건에서만 마찬가지입니다. ASYNC 캐싱 전략은 측정하기가 더 어렵지만 요청 사이의 기간이 캐시 작업을 완료하기에 충분한 기간인 경우 SYNC 전략보다 성능이 향상될 수 있습니다. 이는 복제 비용이 응답 시간에 즉시 표시되지 않기 때문입니다.
동일한 세션에 대한 요청이 너무 빨리 수행되면 이전 요청의 복제 비용이 이전 요청에서 복제가 완료될 때까지 대기해야 하므로 이후 요청 앞쪽으로 이동합니다. 응답이 수신된 직후에 후속 요청이 전송되는 빠른 실행 요청의 경우 ASYNC 캐싱 전략이 SYNC 캐싱 전략보다 성능이 저하됩니다. 결과적으로 SYNC 캐싱 전략이 실제로 A 캐싱 전략보다 더 나은 동일한 세션에 대한 요청 사이에 임계값이 있습니다. 실제 사용에서 동일한 세션에 대한 요청은 일반적으로 빠른 연속으로 수신되지 않습니다. 대신 요청 사이에 일반적으로 몇 초 이상의 시간 간격이 있습니다. 이 경우 SYNC ASYNC 캐싱 전략은 합리적인 기본값이며 가장 빠른 응답 시간을 제공합니다.
22.3.4. 상태 전송 링크 복사링크가 클립보드에 복사되었습니다!
상태 전송은 기본 데이터 그리드와 클러스터형 캐시 기능입니다. 상태를 전송하지 않으면 클러스터에 노드를 추가하거나 클러스터에서 제거해도 데이터가 손실됩니다.
상태 전송은 캐시 멤버십 변경에 대한 응답으로 캐시의 내부 상태를 조정합니다. 이 변경 사항은 노드가 클러스터에 참여하거나 떠나거나 두 개 이상의 클러스터 파티션이 병합될 때 또는 이러한 이벤트의 조합 후에 자동으로 발생합니다. 새로 시작된 캐시의 초기 상태 전송은 아래에 설명된 캐시 모드를 기반으로 새 캐시의 최대 상태를 받아야 하므로 비용이 가장 많이 듭니다.
timeout 속성을 사용하여 새로 시작된 캐시가 해당 상태를 수신 대기하는 시간을 제어할 수 있습니다. timeout 특성이 양수인 경우 캐시는 서비스 요청에 사용할 수 있을 때까지 모든 초기 상태를 수신할 때까지 기다립니다. 지정된 시간 내에 상태 전송이 완료되지 않으면 기본값은 240000 밀리초이며 캐시는 오류를 발생시키고 시작을 취소합니다. 시간 초과 가 0 으로 설정된 경우 캐시를 즉시 사용할 수 있으며 백그라운드 작업 중에 초기 상태를 수신합니다. 초기 상태 전송이 완료될 때까지 캐시가 아직 수신되지 않은 캐시 항목에 대한 모든 요청을 원격 노드에서 가져와야 합니다.
다음 명령을 사용하여 timeout 속성을 0 으로 설정할 수 있습니다.
/subsystem=infinispan/cache-container=server/CACHE_TYPE=CACHE/component=state-transfer:write-attribute(name=timeout,value=0)
/subsystem=infinispan/cache-container=server/CACHE_TYPE=CACHE/component=state-transfer:write-attribute(name=timeout,value=0)
상태 전송 동작은 캐시 모드에 따라 결정됩니다.
- 복제 모드에서는 캐시에 참여하는 새 노드가 기존 노드에서 전체 캐시 상태를 수신합니다. 노드가 클러스터를 떠나면 상태 전송이 없습니다.
-
배포 모드에서는 새 노드는 기존 노드에서 상태의 일부만 수신하고 기존 노드는 일관된 해시를 통해 결정된 대로 캐시의
소유자복사본을 유지하기 위해 일부 상태를 제거합니다. 노드가 클러스터를 벗어나면 배포 캐시가 해당 노드에 저장된 키의 추가 사본을 만들어야 각 키의 소유자가 계속 존재할 수 있습니다. - 무효화 모드에서는 초기 상태 전송이 복제 모드와 유사하지만 노드가 동일한 상태가 보장되지 않는 유일한 차이점입니다. 노드가 클러스터를 떠나면 상태 전송이 없습니다.
상태 전송은 기본적으로 메모리 내 및 영구 상태를 모두 전송하지만 구성에서 둘 다 비활성화할 수 있습니다. 상태 전송이 비활성화되면 ClusterLoader 를 구성해야 합니다. 그렇지 않으면 노드가 데이터를 캐시에 로드하지 않고 키의 소유자 또는 백업 소유자가 됩니다. 또한 배포 모드에서 상태 전송을 비활성화하면 키가 캐시에 소유자 복사본보다 적은 경우가 있습니다.
22.3.5. Infinispan 스레드 풀 구성 링크 복사링크가 클립보드에 복사되었습니다!
infinispan 하위 시스템에는 async-operations,expiration,listener,persistence,remote-command,state-transfer, 전송 스레드 풀이 포함되어 있습니다. 이러한 풀은 모든 Infinispan 캐시 컨테이너에 대해 구성할 수 있습니다.
다음 표에는 infinispan 하위 시스템의 각 스레드 풀에 구성할 수 있는 특성과 각각에 대한 기본값이 나열되어 있습니다.
| 스레드 풀 이름 | keepalive-time | max-threads | min-threads | queue-length |
|---|---|---|---|---|
| async-operations | 60000L | 25 | 25 | 1000 |
| 만료 | 60000L | 1 | 해당 없음 | 해당 없음 |
| listener | 60000L | 1 | 1 | 100000 |
| 지속성 | 60000L | 4 | 1 | 0 |
| remote-command | 60000L | 200 | 1 | 0 |
| state-transfer | 60000L | 60 | 1 | 0 |
| 전송 | 60000L | 25 | 25 | 100000 |
관리 CLI를 사용하여 Infinispan 스레드 풀을 구성하려면 다음 구문을 사용합니다.
/subsystem=infinispan/cache-container=CACHE_CONTAINER_NAME/thread-pool=THREAD_POOL_NAME:write-attribute(name=ATTRIBUTE_NAME, value=ATTRIBUTE_VALUE)
/subsystem=infinispan/cache-container=CACHE_CONTAINER_NAME/thread-pool=THREAD_POOL_NAME:write-attribute(name=ATTRIBUTE_NAME, value=ATTRIBUTE_VALUE)
다음은 서버 캐시 컨테이너의 지속성 스레드 풀에서 max-threads 값을 10 으로 설정하는 관리 CLI 명령의 예입니다.
/subsystem=infinispan/cache-container=server/thread-pool=persistence:write-attribute(name="max-threads", value="10")
/subsystem=infinispan/cache-container=server/thread-pool=persistence:write-attribute(name="max-threads", value="10")
22.3.6. Infinispan 통계 링크 복사링크가 클립보드에 복사되었습니다!
모니터링을 위해 Infinispan 캐시 및 캐시 컨테이너에 대한 런타임 통계를 활성화할 수 있습니다. 성능상의 이유로 통계 수집은 기본적으로 활성화되어 있지 않습니다.
각 캐시 컨테이너, 캐시 또는 둘 다에 대해 통계 컬렉션을 활성화할 수 있습니다. 각 캐시에 대한 statistics 옵션은 캐시 컨테이너의 옵션을 덮어씁니다. 캐시 컨테이너에 대한 통계 컬렉션을 활성화하거나 비활성화하면 명시적으로 지정하지 않는 한 해당 컨테이너의 모든 캐시가 설정을 상속합니다.
22.3.6.1. Infinispan 통계 활성화 링크 복사링크가 클립보드에 복사되었습니다!
Infinispan 통계를 활성화하면 infinispan 하위 시스템의 성능에 부정적인 영향을 미칠 수 있습니다. 통계는 필요한 경우에만 활성화해야 합니다.
관리 콘솔 또는 관리 CLI를 사용하여 Infinispan 통계 컬렉션을 활성화하거나 비활성화할 수 있습니다. 관리 콘솔에서 Configuration 탭에서 Infinispan 하위 시스템으로 이동하여 적절한 캐시 또는 캐시 컨테이너를 선택하고 통계 Enabled 특성을 편집합니다. 관리 CLI를 사용하여 통계를 활성화하려면 아래 명령을 사용합니다.
캐시 컨테이너에 대한 통계 컬렉션을 활성화합니다. 서버 다시 로드가 필요합니다.
/subsystem=infinispan/cache-container=CACHE_CONTAINER:write-attribute(name=statistics-enabled,value=true)
/subsystem=infinispan/cache-container=CACHE_CONTAINER:write-attribute(name=statistics-enabled,value=true)
캐시에 대한 통계 컬렉션을 활성화합니다. 서버 다시 로드가 필요합니다.
/subsystem=infinispan/cache-container=CACHE_CONTAINER/CACHE_TYPE=CACHE:write-attribute(name=statistics-enabled,value=true)
/subsystem=infinispan/cache-container=CACHE_CONTAINER/CACHE_TYPE=CACHE:write-attribute(name=statistics-enabled,value=true)
다음 명령을 사용하면 캐시 컨테이너의 statistics-enabled 속성 설정을 상속하도록 캐시의 statistics-enabled 특성을 정의할 수 있습니다.
/subsystem=infinispan/cache-container=CACHE_CONTAINER/CACHE_TYPE=CACHE:undefine-attribute(name=statistics-enabled)
/subsystem=infinispan/cache-container=CACHE_CONTAINER/CACHE_TYPE=CACHE:undefine-attribute(name=statistics-enabled)
22.3.7. Infinispan 파티션 처리 링크 복사링크가 클립보드에 복사되었습니다!
Infinispan 클러스터 는 데이터가 저장되는 여러 노드로 빌드됩니다. 여러 노드가 실패하는 경우 데이터 손실을 방지하기 위해 Infinispan은 여러 노드에 동일한 데이터를 복사합니다. 이 수준의 데이터 중복성은 owners 속성을 사용하여 구성됩니다. 구성된 노드 수보다 동시에 충돌하는 한 Infinispan에는 사용 가능한 데이터 사본이 있습니다.
그러나 클러스터에 너무 많은 노드가 사라질 때 발생할 수 있는 심각한 상황이 있습니다.
- 스플릿 브레인
이렇게 하면 클러스터가 독립적으로 작동하는 두 개 이상의 파티션 또는 하위 클러스터로 분할됩니다. 이러한 상황에서 여러 클라이언트가 서로 다른 파티션에서 읽고 쓰는 경우 동일한 캐시 항목의 다른 버전을 볼 수 있으므로 많은 애플리케이션에서 문제가 발생합니다.
참고중복 네트워크 또는 IP 본딩 과 같이 분할 뇌가 발생할 가능성을 완화하는 방법이 있습니다. 그러나 이러한 문제는 문제가 발생하는 시간만 줄일 수 있습니다.
- 여러 노드가 순서대로 충돌
- 여러 노드, 특히 소유자 수를 빠른 순서로 충돌하고 Infinispan이 충돌 사이에 상태를 적절하게 재조정할 시간이 없는 경우 결과는 부분적인 데이터 손실입니다.
목표는 분할된 뇌 또는 여러 노드가 빠른 순서로 충돌하여 사용자에게 잘못된 데이터가 반환되는 상황을 방지하는 것입니다.
22.3.7.1. 스플릿 브레인 링크 복사링크가 클립보드에 복사되었습니다!
분할 뇌 상황에서 각 네트워크 파티션은 고유한 Cryostat 보기를 설치하고 다른 파티션에서 노드를 제거합니다. 파티션이 서로를 인식하지 못하기 때문에 클러스터가 두 개 이상의 파티션으로 분할되었는지 여부를 직접 확인할 수 없습니다. 대신 명시적 휴가 메시지를 보내지 않고 하나 이상의 노드가 Cryostat 클러스터에서 사라질 때 클러스터가 분할되었다고 가정합니다.
파티션 처리가 비활성화되면 이러한 각 파티션이 독립적인 클러스터로 계속 작동합니다. 각 파티션은 데이터의 일부만 볼 수 있으며 각 파티션은 캐시에서 충돌하는 업데이트를 작성할 수 있습니다.
파티션 처리가 활성화된 상태에서 분할을 감지하면 각 파티션이 즉시 리밸런싱을 시작하지 않지만 먼저 성능이 저하된 모드로 전환해야 하는지 여부를 확인합니다.
- 하나 이상의 세그먼트가 모든 소유자를 손실한 경우, 마지막으로 리밸런스가 종료된 이후 지정된 소유자 수가 남아 있는 경우 파티션은 성능이 저하된 모드로 전환됩니다.
- 파티션에 최신 안정된 토폴로지 에서도 대부분의 노드(floor(numNodes/2) + 1)가 포함되어 있지 않은 경우 파티션도 성능 저하 모드로 전환됩니다.
- 그렇지 않으면 파티션이 정상적으로 작동하고 리밸런스를 시작합니다.
stable 토폴로지 는 리밸런스 작업이 종료될 때마다 업데이트되고 코디네이터는 다른 리밸런스가 필요하지 않다고 결정합니다. 이러한 규칙은 하나의 파티션이 사용 가능한 모드로 남아 있고 다른 파티션은 성능이 저하된 모드로 유지됩니다.
파티션이 성능 저하 모드인 경우 다음과 같이 설정된 키에 대한 액세스 권한만 허용합니다.
- 이 파티션 내의 노드의 모든 복사본이 있는 항목에 대한 요청(읽기 및 쓰기)이 적용됩니다.
-
오류가 발생한 노드에서 부분적으로 또는 완전히 소유한 항목에 대한 요청은
AvailabilityException과 함께 거부됩니다.
이렇게 하면 파티션에서 동일한 키(캐시가 일관됨)에 대해 다른 값을 쓸 수 없으며 하나의 파티션에서 다른 파티션에서 업데이트된 키를 읽을 수 없습니다(비효한 데이터 없음).
두 개의 파티션이 격리된 상태로 시작될 수 있으며 병합하지 않는 한 일관성 없는 데이터를 읽고 쓸 수 있습니다. 나중에 사용자 정의 가용성 전략(예: 특정 노드가 클러스터의 일부인지 확인)을 허용하거나 이러한 상황을 처리할 수 있는 외부 시스템에 액세스할 수 있는지 확인할 수 있습니다.
22.3.7.2. 파티션 처리 구성 링크 복사링크가 클립보드에 복사되었습니다!
파티션 처리는 기본적으로 비활성화되어 있습니다. 파티션 처리를 활성화할 때 다음과 같은 두 가지 구성 가능한 속성이 있습니다.
| 속성 | 값 |
|---|---|
|
| "DENY_READ_WRITES", "ALLOW_READS", "ALLOW_READ_WRITES" |
|
| "NONE", "PREFERRED_ALWAYS", "PREFERRED_NON_NULL", "REMOVE_ALL" |
네트워크 파티션이 감지될 때 캐시의 읽기 및 쓰기 동작을 결정하도록 when-split 을 구성합니다.
두 개의 네트워크 파티션을 병합할 때 충돌 해결 정책 전략을 결정하도록 merge-policy 를 구성합니다.
CLI 명령 예:
/subsystem=infinispan/cache-container=web/distributed-cache=dist/component=partition-handling:write-attribute(name=when-split, value=DENY_READ_WRITES)
/subsystem=infinispan/cache-container=web/distributed-cache=dist/component=partition-handling:write-attribute(name=when-split, value=DENY_READ_WRITES)
22.3.7.3. 원격 캐시 컨테이너 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리형 도메인의 모든 서버 그룹에 대해 원격 캐시를 구성해야 합니다. statistics-enabled 특성을 사용하여 지정된 remote-cache-container 및 관련 런타임 캐시에 대한 메트릭 컬렉션을 활성화할 수 있습니다.
22.3.7.3.1. 원격 캐시 컨테이너 생성 링크 복사링크가 클립보드에 복사되었습니다!
관리형 도메인의 각 서버 그룹에는 고유한 원격 캐시가 필요합니다. 캐시는 동일한 데이터 그리드에 속할 수 있습니다. 따라서 사용자는 서버 그룹에 대한 소켓 바인딩을 정의하고 소켓 바인딩을 원격 캐시 컨테이너와 연결하여 모든 서버 그룹에 대한 원격 캐시를 구성해야 합니다.
프로세스
socket-binding을 정의하여 클러스터의 각 원격 Red Hat Data Grid 인스턴스에 필요에 따라 명령을 반복합니다./socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=SOCKET_BINDING:add(host=HOSTNAME,port=PORT)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=SOCKET_BINDING:add(host=HOSTNAME,port=PORT)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새로 생성된 소켓 바인딩을 참조하는
remote-cache-container를 정의합니다.batch /subsystem=infinispan/remote-cache-container=CACHE_CONTAINER:add(default-remote-cluster=data-grid-cluster) /subsystem=infinispan/remote-cache-container=CACHE_CONTAINER/remote-cluster=data-grid-cluster:add(socket-bindings=[SOCKET_BINDING,SOCKET_BINDING_2,...]) run-batch
batch /subsystem=infinispan/remote-cache-container=CACHE_CONTAINER:add(default-remote-cluster=data-grid-cluster) /subsystem=infinispan/remote-cache-container=CACHE_CONTAINER/remote-cluster=data-grid-cluster:add(socket-bindings=[SOCKET_BINDING,SOCKET_BINDING_2,...]) run-batchCopy to Clipboard Copied! Toggle word wrap Toggle overflow
22.3.7.3.2. 원격 캐시 컨테이너에 대한 통계 활성화 링크 복사링크가 클립보드에 복사되었습니다!
statistics-enabled 특성을 사용하면 지정된 remote-cache-container 및 관련 런타임 캐시에 대한 메트릭 컬렉션을 사용할 수 있습니다.
-
"foo"라는
remote-cache-container의 경우 다음 작업을 사용하여 통계를 활성화합니다.
/subsystem=infinispan/remote-cache-container=foo:write-attribute(name=statistics-enabled, value=true)
/subsystem=infinispan/remote-cache-container=foo:write-attribute(name=statistics-enabled, value=true)
-
remote-cache-container"foo"의 경우 런타임 시 다음 메트릭이 표시됩니다.
/subsystem=infinispan/remote-cache-container=foo:read-attribute(name=connections) /subsystem=infinispan/remote-cache-container=foo:read-attribute(name=active-connections) /subsystem=infinispan/remote-cache-container=foo:read-attribute(name=idle-connections)
/subsystem=infinispan/remote-cache-container=foo:read-attribute(name=connections)
/subsystem=infinispan/remote-cache-container=foo:read-attribute(name=active-connections)
/subsystem=infinispan/remote-cache-container=foo:read-attribute(name=idle-connections)
-
이러한 메트릭에 대한 설명을 보려면
remote-cache-container에 대한 read-resource-description 작업을 실행합니다.
/subsystem=infinispan/remote-cache-container=foo:read-resource-description
/subsystem=infinispan/remote-cache-container=foo:read-resource-description
- 다음 메트릭은 선택한 배포에서 사용하는 원격 캐시에 고유합니다.
- 이러한 메트릭에 대한 설명은 원격 캐시에 대한 read-resource-description 작업을 실행합니다.
/subsystem=infinispan/remote-cache-container=foo/remote-cache=bar.war:read-resource-description
/subsystem=infinispan/remote-cache-container=foo/remote-cache=bar.war:read-resource-description
- 이러한 메트릭 중 일부는 계산된 값(예: average-*)이지만 다른 메트릭은 적중 및 누락과 같은 매우 높은 값입니다. 승격된 메트릭은 다음 작업을 통해 재설정할 수 있습니다.
/subsystem=infinispan/remote-cache-container=foo/remote-cache=bar.war:reset-statistics()
/subsystem=infinispan/remote-cache-container=foo/remote-cache=bar.war:reset-statistics()
22.3.8. Red Hat Data Grid로 HTTP 세션 외부화 링크 복사링크가 클립보드에 복사되었습니다!
이 기능을 사용하려면 Red Hat Data Grid 서브스크립션이 필요합니다.
Red Hat Data Grid는 HTTP 세션과 같은 JBoss EAP의 애플리케이션 관련 데이터에 대한 외부 캐시 컨테이너로 사용할 수 있습니다. 이를 통해 애플리케이션과 독립적으로 데이터 계층을 확장할 수 있으며 다양한 도메인에 있을 수 있는 다양한 JBoss EAP 클러스터를 활성화하여 동일한 Red Hat Data Grid 클러스터의 데이터에 액세스할 수 있습니다. 또한 다른 애플리케이션은 Red Hat Data Grid에서 제공하는 캐시와 상호 작용할 수 있습니다.
다음 예제에서는 HTTP 세션을 외부화하는 방법을 보여줍니다. JBoss EAP의 독립 실행형 인스턴스 및 관리형 도메인에 모두 적용됩니다.
-
remote-cache-container를 생성합니다. 자세한 내용은 원격 캐시 컨테이너 구성을 참조하십시오. HotRod 저장소를 구성합니다. HotRod 저장소는 JBoss EAP 서버에서 생성한 각 캐시에 대해 하나의 전용 원격 캐시를 사용합니다. 일반적으로 아래 CLI 스크립트에 표시된 것처럼 하나의 무효화 캐시는 JBoss EAP 서버에서 사용됩니다.
참고Red Hat Data Grid 서버에서 원격 캐시를 수동으로 구성해야 합니다. 이러한 캐시에 권장되는 구성은 비관적 잠금이 있는 트랜잭션 배포 모드 캐시입니다. 캐시 이름은
test.war와 같은 배포 파일 이름에 해당해야 합니다.원격 캐시 컨테이너가 구성되면 기존 저장소를 대체하도록
핫 로드저장소를 구성할 수 있습니다. 다음 CLI 스크립트는 무효화 캐시와 함께 세션을 오프로드하는 일반적인 사용 사례를 보여줍니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 스크립트는 새 무효화 캐시를 구성합니다. 그런 다음 세션 데이터는 성능을 위해 캐시에서 유지 관리되고 복원력을 위해 저장소에 기록됩니다.
HotRod 클라이언트는
@Resource주석을 사용하여 자카르타 EE 애플리케이션에 직접 삽입할 수 있습니다. 아래 예제에서@Resource주석은hotrod-client.properties파일에서 클래스 경로에서 구성 속성을 조회합니다.@Resource(lookup = "java:jboss/infinispan/remote-container/web-sessions") private org.infinispan.client.hotrod.RemoteCacheContainer client;
@Resource(lookup = "java:jboss/infinispan/remote-container/web-sessions") private org.infinispan.client.hotrod.RemoteCacheContainer client;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예:
hotrod-client.properties파일Copy to Clipboard Copied! Toggle word wrap Toggle overflow
원격 캐시 컨테이너 보안
SSL을 사용하여 원격 Red Hat Data Grid 인스턴스와의 통신을 보호할 수 있습니다. 이는 JBoss EAP 인스턴스에 remote-cache-container 를 구성하고 활성 보안 영역을 사용하도록 Red Hat Data Grid 인스턴스에서 hotrod 커넥터를 조정하여 수행됩니다.
JBoss EAP에서
client-ssl-context를 만듭니다. 다른 elytron 구성 요소 생성을 포함하여client-ssl-context를 생성하는 방법에 대한 자세한 내용은 JBoss EAP 서버 보안 구성 방법에서 client-ssl-context 사용을 참조하십시오./subsystem=elytron/client-ssl-context=CLIENT_SSL_CONTEXT:add(key-manager=KEY_MANAGER,trust-manager=TRUST_MANAGER)
/subsystem=elytron/client-ssl-context=CLIENT_SSL_CONTEXT:add(key-manager=KEY_MANAGER,trust-manager=TRUST_MANAGER)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클라이언트 SSL 컨텍스트를 사용하도록 원격 캐시 컨테이너를 구성합니다.
/subsystem=infinispan/remote-cache-container=CACHE_CONTAINER/component=security:write-attribute(name=ssl-context,value=CLIENT_SSL_CONTEXT)
/subsystem=infinispan/remote-cache-container=CACHE_CONTAINER/component=security:write-attribute(name=ssl-context,value=CLIENT_SSL_CONTEXT)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 인스턴스에 대해 필요에 따라 반복하여 원격 Red Hat Data Grid 인스턴스를 보호합니다.
-
client-ssl-context에 사용된 키 저장소를 원격 Red Hat Data Grid 인스턴스에 복사합니다. 이 키 저장소를 사용하도록
ApplicationRealm을 구성합니다./core-service=management/security-realm=ApplicationRealm/server-identity=ssl:add(keystore-path="KEYSTORE_NAME",keystore-relative-to="jboss.server.config.dir",keystore-password="KEYSTORE_PASSWORD")
/core-service=management/security-realm=ApplicationRealm/server-identity=ssl:add(keystore-path="KEYSTORE_NAME",keystore-relative-to="jboss.server.config.dir",keystore-password="KEYSTORE_PASSWORD")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 보안 영역을 가리키도록 핫 로드 커넥터를 조정합니다.
/subsystem=datagrid-infinispan-endpoint/hotrod-connector=hotrod-connector/encryption=ENCRYPTION:add(require-ssl-client-auth=false,security-realm="ApplicationRealm")
/subsystem=datagrid-infinispan-endpoint/hotrod-connector=hotrod-connector/encryption=ENCRYPTION:add(require-ssl-client-auth=false,security-realm="ApplicationRealm")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 원격 Red Hat Data Grid 인스턴스를 다시 로드합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
22.3.9. 원격 저장소를 사용하여 Red Hat Data Grid에 HTTP 세션 외부화 링크 복사링크가 클립보드에 복사되었습니다!
이 기능을 사용하려면 Red Hat Data Grid 서브스크립션이 필요합니다.
여기에서는 세션을 외부화하는 이전 방법을 나타냅니다. JBoss EAP 7.2는 elytron 하위 시스템과 통합된 HotRod 프로토콜을 기반으로 사용자 정의 최적화된 캐시 저장소를 도입했습니다. Red Hat Data Grid로 HTTP 세션을 외부화하는 데 설명된 대로 새로운 핫로드 저장소를 사용하는 것이 좋습니다.
배포 가능한 각 애플리케이션에 대해 완전히 새 캐시를 생성해야 합니다. 기존 캐시 컨테이너에서 생성할 수 있습니다(예: web ).
HTTP 세션을 외부화하려면 다음을 수행합니다.
socket-binding-group에 네트워킹 정보를 추가하여 원격 Red Hat Data Grid 서버의 위치를 정의합니다.예: 원격 소켓 바인딩 추가
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-rhdg-server1:add(host=RHDGHostName1, port=11222) /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-rhdg-server2:add(host=RHDGHostName2, port=11222)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-rhdg-server1:add(host=RHDGHostName1, port=11222) /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-rhdg-server2:add(host=RHDGHostName2, port=11222)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 결과 XML
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고각 Red Hat Data Grid 서버에 대해 원격 소켓 바인딩을 구성해야 합니다.
원격 캐시 컨테이너가 JBoss EAP의
infinispan하위 시스템에 정의되어 있는지 확인합니다.remote-store요소의cache속성 아래 예제에서는 원격 Red Hat Data Grid 서버에서 캐시 이름을 정의합니다.관리형 도메인에서 실행 중인 경우 이러한 명령 앞에
/profile=PROFILE_NAME.예: 원격 캐시 컨테이너 추가
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 결과 XML
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
22.4. JBoss EAP를 프론트 엔드 로드 밸런서로 구성 링크 복사링크가 클립보드에 복사되었습니다!
백엔드 JBoss EAP 서버에 대한 요청을 프록시하기 위해 프런트 엔드 로드 밸런서 장치로 작동하도록 JBoss EAP 및 undertow 하위 시스템을 구성할 수 있습니다. Cryostat는 비동기 IO를 사용하므로 연결을 담당하는 IO 스레드가 요청에 관련된 유일한 스레드입니다. 동일한 스레드가 백엔드 서버에 대한 연결에도 사용됩니다.
다음 프로토콜을 사용할 수 있습니다.
-
HTTP over plain text (
http) HTTP/1 및 HTTP/2 (h2c) 지원 -
HTTP/1 및 HTTP/2(
h2)를 지원하여 보안 연결(https)을 통한 HTTP -
Cryostat (
ajp)
정적 로드 밸런서 를 정의하고 구성에 백엔드 호스트를 지정하거나 mod_cluster 프론트엔드 를 사용하여 호스트를 동적으로 업데이트할 수 있습니다.
22.4.1. mod_cluster를 사용하여 undertow를 로드 밸런서로 구성 링크 복사링크가 클립보드에 복사되었습니다!
기본 제공 mod_cluster 프런트 엔드 로드 밸런서를 사용하여 다른 JBoss EAP 인스턴스를 로드 밸런싱할 수 있습니다.
이 절차에서는 관리형 도메인에서 실행 중이고 다음과 같이 이미 구성되어 있다고 가정합니다.
로드 밸런서 역할을 하는 JBoss EAP 서버입니다.
이 서버는
load-balancer-sockets 소켓 바인딩 그룹에 바인딩된 load-balancer프로필을 사용합니다.참고로드 밸런서프로필은 이미 소켓 바인딩, mod-cluster Cryostat 필터로 사전 구성되었으며 이 서버를 프런트 엔드 로드 밸런서로 사용하기 위해 기본 호스트의 필터를 참조합니다. * 백엔드 서버 역할을 하는 두 JBoss EAP 서버입니다. ** 이러한 서버는 클러스터에서 실행되고 있으며소켓 바인딩 그룹에 바인딩된 ha 프로필을 사용합니다. * 백엔드 서버에 부하 분산할 배포 가능한 애플리케이션입니다.ha-sockets
mod_cluster 프런트 엔드 로드 밸런서 구성
아래 단계는 관리형 도메인의 부하 분산 서버이지만 독립 실행형 서버 세트에 적용되도록 조정할 수 있습니다. 환경에 맞게 관리 CLI 명령 값을 업데이트해야 합니다.
프로세스
mod_cluster 알림 보안 키를 설정합니다.
광고 보안 키를 추가하면 검색 중에 로드 밸런서 및 서버가 인증할 수 있습니다.
다음 관리 CLI 명령을 사용하여 mod_cluster에서 보안 키를 알립니다.
/profile=ha/subsystem=modcluster/proxy=default:write-attribute(name=advertise-security-key, value=mypassword)
/profile=ha/subsystem=modcluster/proxy=default:write-attribute(name=advertise-security-key, value=mypassword)Copy to Clipboard Copied! Toggle word wrap Toggle overflow mod_cluster 로드 밸런서의 보안 키를 업데이트합니다.
다음 관리 CLI 명령을 사용하여 mod_cluster 필터의 보안 키를 설정합니다.
/profile=load-balancer/subsystem=undertow/configuration=filter/mod-cluster=load-balancer:write-attribute(name=security-key,value=mypassword)
/profile=load-balancer/subsystem=undertow/configuration=filter/mod-cluster=load-balancer:write-attribute(name=security-key,value=mypassword)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
mod_cluster에서만 사용하는 관리 및 광고 소켓 바인딩은 공용 IP 주소가 아닌 내부 네트워크에 노출되는 것이 좋습니다.
로드 밸런서 JBoss EAP 서버는 이제 두 개의 백엔드 JBoss EAP 서버를 로드 밸런싱할 수 있습니다.
여러 mod_cluster 구성
mod_cluster 하위 시스템은 기본이 아닌 서버를 역방향 프록시에 등록할 수 있는 여러 개의 이름이 지정된 프록시 구성을 지원합니다. 또한 단일 애플리케이션 서버 노드가 다른 프록시 서버 그룹에 등록할 수 있습니다.
다음 예제에서는 undertow 서버에 ajp-listener, server 및 host를 추가합니다. 또한 광고 메커니즘을 사용하여 호스트를 등록하는 새로운 mod_cluster 구성을 추가합니다.
22.4.2. 로드 밸런서에서 순위가 지정된 세션 선호도 활성화 링크 복사링크가 클립보드에 복사되었습니다!
로드 밸런서에서 순위가 매겨진 세션 선호도를 활성화하여 distributable-web 하위 시스템에서 여러 개의 정렬된 경로를 사용하여 세션 선호도를 설정해야 합니다. distributable-web 하위 시스템 및 다양한 선호도 옵션에 대한 자세한 내용은 JBoss EAP 개발 가이드 의 배포 가능한 웹 세션 구성의 distributable-web 하위 시스템을 참조하십시오.
노드 경로를 구분하는 기본 구분 기호는 . . 입니다. 다른 값을 원하는 경우 선호도 리소스의 구분 기호 특성을 구성할 수 있습니다.
프로세스
로드 밸런서의 순위 지정 세션 선호도를 활성화합니다.
/subsystem=undertow/configuration=filter/mod-cluster=load-balancer/affinity=ranked:add
/subsystem=undertow/configuration=filter/mod-cluster=load-balancer/affinity=ranked:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
선호도리소스의구분 기호특성을 구성합니다./subsystem=undertow/configuration=filter/mod-cluster=load-balancer/affinity=ranked:write-attribute(name=delimiter,value=':')
/subsystem=undertow/configuration=filter/mod-cluster=load-balancer/affinity=ranked:write-attribute(name=delimiter,value=':')Copy to Clipboard Copied! Toggle word wrap Toggle overflow
22.4.3. undertow를 정적 로드 밸런서로 구성 링크 복사링크가 클립보드에 복사되었습니다!
Cryostat를 사용하여 정적 로드 밸런서를 구성하려면 undertow 하위 시스템에서 프록시 처리기를 구성해야 합니다. Cryostat에서 프록시 처리기를 구성하려면 정적 로드 밸런서로 사용할 JBoss EAP 인스턴스에서 다음을 수행해야 합니다.
- 역방향 프록시 처리기 추가
- 각 원격 호스트에 대한 아웃바운드 소켓 바인딩 정의
- 역방향 프록시 처리기에 각 원격 호스트 추가
- 역방향 프록시 위치 추가
다음 예제에서는 JBoss EAP 인스턴스를 정적 로드 밸런서 장치로 구성하는 방법을 보여줍니다. JBoss EAP 인스턴스는 lb.example.com 에 있으며, server1.example.com 과 server2.example.com 이라는 두 개의 추가 서버 간에 부하를 분산합니다. 로드 밸런서는 /app 위치로 역방향 프록시되고 Cryostat 프로토콜을 사용합니다.
프로세스
역방향 프록시 처리기를 추가하려면 다음을 수행합니다.
/subsystem=undertow/configuration=handler/reverse-proxy=my-handler:add
/subsystem=undertow/configuration=handler/reverse-proxy=my-handler:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 각 원격 호스트에 대한 아웃바운드 소켓 바인딩을 정의하려면 다음을 수행합니다.
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-host1/:add(host=server1.example.com, port=8009) /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-host2/:add(host=server2.example.com, port=8009)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-host1/:add(host=server1.example.com, port=8009) /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-host2/:add(host=server2.example.com, port=8009)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 역방향 프록시 처리기에 각 원격 호스트를 추가하려면 다음을 수행합니다.
/subsystem=undertow/configuration=handler/reverse-proxy=my-handler/host=host1:add(outbound-socket-binding=remote-host1, scheme=ajp, instance-id=myroute1, path=/test) /subsystem=undertow/configuration=handler/reverse-proxy=my-handler/host=host2:add(outbound-socket-binding=remote-host2, scheme=ajp, instance-id=myroute2, path=/test)
/subsystem=undertow/configuration=handler/reverse-proxy=my-handler/host=host1:add(outbound-socket-binding=remote-host1, scheme=ajp, instance-id=myroute1, path=/test) /subsystem=undertow/configuration=handler/reverse-proxy=my-handler/host=host2:add(outbound-socket-binding=remote-host2, scheme=ajp, instance-id=myroute2, path=/test)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 역방향 프록시 위치를 추가하려면 다음을 수행합니다.
/subsystem=undertow/server=default-server/host=default-host/location=\/test:add(handler=my-handler)
/subsystem=undertow/server=default-server/host=default-host/location=\/test:add(handler=my-handler)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
lb.example.com:8080/app 에 액세스하는 경우 server1.example.com 및 server2.example.com 에서 프록시된 콘텐츠가 표시됩니다.
22.5. 외부 웹 서버를 프록시 서버로 사용 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 외부 웹 서버 구성에 따라 지원되는 HTTP, HTTPS 또는 Cryostat 프로토콜을 사용하여 외부 웹 서버의 요청을 수락할 수 있습니다.
각 웹 서버에 대해 지원되는 HTTP 커넥터에 대한 자세한 내용은 HTTP 커넥터 개요 를 참조하십시오. 사용할 웹 서버와 HTTP 커넥터를 결정한 후에는 커넥터 구성에 대한 적절한 섹션을 참조하십시오.
- Apache HTTP Server 의 mod_cluster,mod_jk 또는 mod_proxy 섹션을 참조하십시오.
- MicrosoftIIS의 ISAPI 커넥터 섹션을 참조하십시오.
- Oracle iPlanet Web Server의 NSAPI 커넥터 섹션을 참조하십시오.
HTTP 커넥터의 지원되는 구성에 대한 최신 정보는 JBoss EAP 지원 구성을 참조하십시오.
또한 JBoss EAP가 외부 웹 서버의 요청을 수락 하도록 구성되어 있는지 확인해야 합니다.
22.5.1. HTTP 커넥터 개요 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 Apache HTTP Server, Microsoft Cryostat 및 Oracle iPlanet과 같은 외부 웹 서버에 내장된 로드 밸런싱 및 클러스터링 메커니즘을 사용할 수 있습니다. JBoss EAP는 커넥터를 사용하여 웹 서버와 통신합니다. 이러한 커넥터는 JBoss EAP의 undertow 하위 시스템 내에서 구성됩니다.
웹 서버에는 HTTP 요청이 JBoss EAP 노드로 라우팅되는 방식을 제어하는 소프트웨어 모듈이 포함되어 있습니다. 이러한 각 모듈은 작동 방식과 구성 방식에 따라 다릅니다. 모듈은 여러 JBoss EAP 노드에서 작업 부하를 분산하고, 오류가 발생한 경우 또는 둘 다의 경우 작업 부하를 대체 서버로 이동하기 위해 구성됩니다.
JBoss EAP는 여러 다른 커넥터를 지원합니다. 선택한 웹 서버는 사용 중인 웹 서버와 필요한 기능에 따라 다릅니다. JBoss EAP와 호환되는 다양한 HTTP 커넥터의 지원 구성 및 기능을 비교하려면 아래 표를 참조하십시오.
JBoss EAP 8.0을 다중 플랫폼 로드 밸런서 장치로 사용하는 방법에 대한 자세한 내용은 mod_cluster를 사용하여 Cryostat를 로드 밸런서로 구성 을 참조하십시오.
HTTP 커넥터의 지원되는 구성에 대한 최신 정보는 JBoss EAP 지원 구성을 참조하십시오.
| 커넥터 | Web 서버 | 지원되는 운영 체제 | 지원되는 프로토콜 |
|---|---|---|---|
| Red Hat JBoss Core Services Apache HTTP Server, Red Hat JBoss Web Server Apache HTTP Server, JBoss EAP(Undertow) | Red Hat Enterprise Linux, Microsoft Windows Server | HTTP, HTTPS, AJP, WebSocket | |
| Red Hat JBoss Core Services Apache HTTP Server, Red Hat JBoss Web Server Apache HTTP Server | Red Hat Enterprise Linux, Microsoft Windows Server | AJP | |
| Red Hat JBoss Core Services Apache HTTP Server, Red Hat JBoss Web Server Apache HTTP Server | Red Hat Enterprise Linux, Microsoft Windows Server | HTTP, HTTPS, AJP | |
| Microsoft IIS | Microsoft Windows Server | AJP | |
| Oracle iPlanet Web Server | AJP |
| 커넥터 | 세션 지원 | 배포 상태에 맞게 조정 |
|---|---|---|
| 제공됨 | 제공됨 애플리케이션 배포 및 배포 취소를 감지하고 애플리케이션이 해당 서버에 배포되었는지 여부에 따라 클라이언트 요청을 서버로 보낼지 여부를 동적으로 결정합니다. | |
| 제공됨 | 아니요. 애플리케이션 상태와 관계없이 컨테이너를 사용할 수 있는 한 컨테이너에 클라이언트를 요청합니다. | |
| 제공됨 | 아니요. 애플리케이션 상태와 관계없이 컨테이너를 사용할 수 있는 한 컨테이너에 클라이언트를 요청합니다. | |
| 제공됨 | 아니요. 애플리케이션 상태와 관계없이 컨테이너를 사용할 수 있는 한 컨테이너에 클라이언트를 요청합니다. | |
| 제공됨 | 아니요. 애플리케이션 상태와 관계없이 컨테이너를 사용할 수 있는 한 컨테이너에 클라이언트를 요청합니다. |
22.5.2. Apache HTTP Server 링크 복사링크가 클립보드에 복사되었습니다!
독립 실행형 Apache HTTP Server 번들은 이제 Red Hat JBoss Core Services를 통해 별도의 다운로드로 제공됩니다. 이를 통해 설치 및 구성을 단순화하고 보다 일관된 업데이트 환경을 제공합니다.
22.5.2.1. Apache HTTP Server 설치 링크 복사링크가 클립보드에 복사되었습니다!
Apache HTTP Server 설치에 대한 자세한 내용은 JBoss Core Services Apache HTTP Server 설치 가이드를 참조하십시오.
22.5.3. 외부 웹 서버에서 요청 수락 링크 복사링크가 클립보드에 복사되었습니다!
올바른 프로토콜 처리기(예: Cryostat, HTTP 또는 HTTPS)가 구성된 경우 JBoss EAP는 프록시 서버에서 요청을 수락할 필요가 없습니다.
프록시 서버가 mod_jk, mod_proxy, ISAPI 또는 NSAPI를 사용하는 경우 JBoss EAP에 요청을 전송하고 JBoss EAP는 간단히 응답을 제공합니다. mod_cluster를 사용하면 JBoss EAP가 현재 부하, 애플리케이션 라이프사이클 이벤트 및 상태와 같은 정보를 프록시 서버로 전송하여 요청을 라우팅할 위치를 결정할 수 있도록 네트워크를 구성해야 합니다. mod_cluster 프록시 서버 구성에 대한 자세한 내용은 mod_cluster HTTP Connector 를 참조하십시오.
JBoss EAP 구성 업데이트
다음 절차에서는 예제의 프로토콜 및 포트를 구성하는 데 필요한 프로토콜로 바꿉니다.
프로세스
Cryostat의
instance-id특성을 구성합니다.외부 웹 서버는
instance-id를 사용하여 커넥터 구성에서 JBoss EAP 인스턴스를 식별합니다. 다음 관리 CLI 명령을 사용하여 Cryostat에서instance-id특성을 설정합니다./subsystem=undertow:write-attribute(name=instance-id,value=node1)
/subsystem=undertow:write-attribute(name=instance-id,value=node1)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 위의 예에서 외부 웹 서버는 현재 JBoss EAP 인스턴스를
node1로 식별합니다.필요한 리스너를 Cryostat에 추가합니다.
외부 웹 서버가 JBoss EAP에 연결하기 위해서는 listener가 필요합니다. 각 프로토콜은 소켓 바인딩에 연결된 자체 리스너가 필요합니다.
참고원하는 프로토콜 및 포트 구성에 따라 이 단계가 필요하지 않을 수 있습니다. HTTP 리스너는 모든 기본 JBoss EAP 구성에 구성되며 ha 또는 full-ha 프로필을 사용하는 경우 Cryostat 리스너가 구성됩니다.
기본 서버 구성을 읽고 필요한 리스너가 이미 구성되어 있는지 확인할 수 있습니다.
/subsystem=undertow/server=default-server:read-resource
/subsystem=undertow/server=default-server:read-resourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow listening에 리스너를 추가하려면 소켓 바인딩이 있어야 합니다. 소켓 바인딩은 서버 또는 서버 그룹에서 사용하는 소켓 바인딩 그룹에 추가됩니다. 다음 관리 CLI 명령은 포트
8009에 바인딩된ajp소켓 바인딩을standard-sockets소켓 바인딩 그룹에 추가합니다./socket-binding-group=standard-sockets/socket-binding=ajp:add(port=8009)
/socket-binding-group=standard-sockets/socket-binding=ajp:add(port=8009)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 관리 CLI 명령은
ajp소켓 바인딩을 사용하여 ajp 리스너를Cryostat에 추가합니다./subsystem=undertow/server=default-server/ajp-listener=ajp:add(socket-binding=ajp)
/subsystem=undertow/server=default-server/ajp-listener=ajp:add(socket-binding=ajp)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
22.6. mod_cluster HTTP 커넥터 링크 복사링크가 클립보드에 복사되었습니다!
mod_cluster 커넥터는 Apache HTTP 서버 기반 로드 밸런서입니다. 통신 채널을 사용하여 Apache HTTP Server에서 애플리케이션 서버 노드 세트 중 하나로 요청을 전달합니다.
mod_cluster 커넥터는 다른 커넥터보다 몇 가지 이점이 있습니다.
- mod_cluster 관리 프로토콜(MCMP)은 mod_cluster 모듈이 활성화된 JBoss EAP 서버와 Apache HTTP 서버 간의 추가 연결입니다. JBoss EAP 서버는 사용자 지정 HTTP 메서드 세트를 통해 서버 측 부하 분산 요인 및 라이프사이클 이벤트를 다시 Apache HTTP 서버로 전송하는 데 사용됩니다.
- mod_cluster를 사용한 Apache HTTP Server의 동적 구성을 사용하면 JBoss EAP 서버가 수동 구성 없이 부하 분산 배열에 참여할 수 있습니다.
- JBoss EAP는 mod_cluster에서 Apache HTTP Server를 사용하는 대신 부하 분산 요소 계산을 수행합니다. 이렇게 하면 로드 밸런싱 메트릭이 다른 커넥터보다 더 정확합니다.
- mod_cluster 커넥터는 세분화된 애플리케이션 라이프사이클 제어를 제공합니다. 각 JBoss EAP 서버는 웹 애플리케이션 컨텍스트 라이프사이클 이벤트를 Apache HTTP Server에 전달하여 지정된 컨텍스트의 라우팅 요청을 시작하거나 중지하도록 알립니다. 이렇게 하면 사용할 수 없는 리소스로 인해 최종 사용자가 HTTP 오류가 표시되지 않습니다.
- Cryostat, HTTP 또는 HTTPS 전송을 사용할 수 있습니다.
modcluster 하위 시스템의 특정 구성 옵션에 대한 자세한 내용은 ModCluster Cryostat 특성을 참조하십시오.
22.6.1. Apache HTTP Server에서 mod_cluster 구성 링크 복사링크가 클립보드에 복사되었습니다!
mod_cluster 모듈은 JBoss Core Services Apache HTTP Server를 설치하거나 JWS를 사용할 때 이미 포함되어 있으며 기본적으로 로드됩니다.
Apache HTTP Server는 더 이상 JWS와 버전 3.1.0과 함께 배포되지 않습니다.
환경에 맞게 mod_cluster 모듈을 구성하려면 아래 단계를 참조하십시오.
Red Hat 고객은 Red Hat 고객 포털에서 로드 밸런서 구성 툴 을 사용하여 mod_cluster 및 기타 커넥터를 위한 최적의 구성 템플릿을 빠르게 생성할 수 있습니다. 이 도구에 액세스하려면 로그인해야 합니다.
mod_cluster 구성
Apache HTTP Server에는 이미 mod_cluster 모듈을 로드하고 기본 구성을 제공하는 mod_cluster 구성 파일인 mod_cluster가 포함되어 있습니다. 아래에 표시된 이 파일의 IP 주소, 포트 및 기타 설정은 필요에 맞게 구성할 수 있습니다.
Apache HTTP Server 서버는 로드 밸런서로 구성되며 JBoss EAP에서 실행되는 modcluster 하위 시스템에서 작업할 수 있습니다. JBoss EAP에서 mod_cluster를 인식하도록 mod_cluster 작업자 노드를 구성해야 합니다.
mod_cluster에 대한 광고를 비활성화하고 대신 정적 프록시 목록을 구성하려면 mod_cluster의 알림 비활성화를 참조하십시오. Apache HTTP Server에서 사용 가능한 mod_cluster 구성 옵션에 대한 자세한 내용은 Apache HTTP Server mod_cluster guides를 참조하십시오.
mod_cluster 구성에 대한 자세한 내용은 JWS HTTP Connectors 및 Load Balancing Guide의 Apache HTTP Server 및 mod_cluster를 사용하여 로드 밸런싱 구성 섹션을 참조하십시오.
22.6.2. mod_cluster에 대한 광고 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 modcluster 하위 시스템의 밸런서는 멀티캐스트 UDP를 사용하여 백그라운드 작업자에게 가용성을 알립니다. 다음 절차를 사용하여 광고를 비활성화하고 대신 프록시 목록을 사용할 수 있습니다.
다음 절차의 관리 CLI 명령은 관리형 도메인에서 full-ha 프로필을 사용한다고 가정합니다. full-ha 이외의 프로필을 사용하는 경우 명령에 적절한 프로필 이름을 사용합니다. 독립 실행형 서버를 실행 중인 경우 /profile=full-ha 를 완전히 제거하십시오.
Apache HTTP Server 구성을 수정합니다.
httpd.confApache HTTP Server 구성 파일을 편집합니다.EnableMCPMReceive지시문을 사용하여 MCPM 요청을 수신 대기하는 가상 호스트를 다음 업데이트를 수행합니다.서버 알림을 비활성화하려면 지시문을 추가합니다.
서버 알림을 비활성화하려면
ServerAdvertise지시문을Off로 설정합니다.ServerAdvertise Off
ServerAdvertise OffCopy to Clipboard Copied! Toggle word wrap Toggle overflow 광고 빈도를 비활성화합니다.
구성에서
AdvertiseFrequency매개변수를 지정하는 경우#문자를 사용하여 주석을 답니다.AdvertiseFrequency 5
# AdvertiseFrequency 5Copy to Clipboard Copied! Toggle word wrap Toggle overflow MCPM 메시지를 수신하는 기능을 활성화합니다.
EnableMCPMReceive지시문이 있는지 확인하여 웹 서버가 작업자 노드에서 MCPM 메시지를 수신할 수 있도록 합니다.EnableMCPMReceive
EnableMCPMReceiveCopy to Clipboard Copied! Toggle word wrap Toggle overflow
JBoss EAP
modcluster하위 시스템에서 알림을 비활성화합니다.다음 관리 CLI 명령을 사용하여 광고를 비활성화합니다.
/profile=full-ha/subsystem=modcluster/proxy=default:write-attribute(name=advertise,value=false)
/profile=full-ha/subsystem=modcluster/proxy=default:write-attribute(name=advertise,value=false)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요프록시 목록을 제공하기 위해 다음 단계를 계속해야 합니다. 프록시 목록이 비어 있으면 광고가 비활성화되지 않습니다.
JBoss EAP
modcluster하위 시스템에서 프록시 목록을 제공합니다.modcluster하위 시스템에서 광고가 비활성화된 경우 프록시를 자동으로 검색할 수 없으므로 프록시 목록을 제공해야 합니다.먼저 적절한 소켓 바인딩 그룹에 아웃바운드 소켓 바인딩을 정의합니다.
/socket-binding-group=full-ha-sockets/remote-destination-outbound-socket-binding=proxy1:add(host=10.33.144.3,port=6666) /socket-binding-group=full-ha-sockets/remote-destination-outbound-socket-binding=proxy2:add(host=10.33.144.1,port=6666)
/socket-binding-group=full-ha-sockets/remote-destination-outbound-socket-binding=proxy1:add(host=10.33.144.3,port=6666) /socket-binding-group=full-ha-sockets/remote-destination-outbound-socket-binding=proxy2:add(host=10.33.144.1,port=6666)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음으로 프록시를 mod_cluster 구성에 추가합니다.
/profile=full-ha/subsystem=modcluster/proxy=default:list-add(name=proxies,value=proxy1) /profile=full-ha/subsystem=modcluster/proxy=default:list-add(name=proxies,value=proxy2)
/profile=full-ha/subsystem=modcluster/proxy=default:list-add(name=proxies,value=proxy1) /profile=full-ha/subsystem=modcluster/proxy=default:list-add(name=proxies,value=proxy2)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Apache HTTP Server 밸런서는 더 이상 작업자 노드에 대한 존재를 알리지 않으며 UDP 멀티캐스트는 더 이상 사용되지 않습니다.
22.6.3. mod_cluster 작업자 노드 구성 링크 복사링크가 클립보드에 복사되었습니다!
mod_cluster 작업자 노드는 JBoss EAP 서버로 구성됩니다. 이 서버는 독립 실행형 서버이거나 관리형 도메인의 서버 그룹의 일부일 수 있습니다. 별도의 프로세스는 클러스터의 모든 작업자 노드를 관리하는 JBoss EAP 내에서 실행됩니다. 이를 관리형 도메인 또는 독립 실행형 서버의 마스터에서 기본이라고 합니다.
관리형 도메인의 작업자 노드는 서버 그룹에서 동일한 구성을 공유합니다. 독립 실행형 서버로 실행되는 작업자 노드는 개별적으로 구성됩니다. 구성 단계는 그렇지 않으면 동일합니다.
- 독립 실행형 서버는 standalone-ha 또는 standalone-full-ha 프로필을 사용하여 시작해야 합니다.
- 관리형 도메인의 서버 그룹은 ha 또는 full-ha 프로필과 ha-sockets 또는 full-ha-sockets 소켓 바인딩 그룹을 사용해야 합니다. JBoss EAP에는 이러한 요구 사항을 충족하는 other-server-group이라는 클러스터 사용 서버 그룹이 포함되어 있습니다.
작업자 노드 구성
이 절차의 관리 CLI 명령은 full-ha 프로필로 관리형 도메인을 사용한다고 가정합니다. 독립 실행형 서버를 실행 중인 경우 명령의 /profile=full-ha 부분을 제거합니다.
프로세스
네트워크 인터페이스를 구성합니다.
기본적으로 네트워크 인터페이스의 기본값은
127.0.0.1입니다. 독립 실행형 서버 또는 서버 그룹에서 하나 이상의 서버를 호스팅하는 모든 물리적 호스트는 다른 서버에서 볼 수 있는 공용 IP 주소를 사용하도록 인터페이스를 구성해야 합니다.다음 관리 CLI 명령을 사용하여 환경에 적합한
관리,공용및 비보안 인터페이스의외부 IP 주소를 수정합니다. 명령에서EXTERNAL_IP_ADDRESS를 호스트의 실제 외부 IP 주소로 교체해야 합니다./interface=management:write-attribute(name=inet-address,value="${jboss.bind.address.management:EXTERNAL_IP_ADDRESS}") /interface=public:write-attribute(name=inet-address,value="${jboss.bind.address.public:EXTERNAL_IP_ADDRESS}") /interface=unsecure:write-attribute(name=inet-address,value="${jboss.bind.address.unsecure:EXTERNAL_IP_ADDRESS}")/interface=management:write-attribute(name=inet-address,value="${jboss.bind.address.management:EXTERNAL_IP_ADDRESS}") /interface=public:write-attribute(name=inet-address,value="${jboss.bind.address.public:EXTERNAL_IP_ADDRESS}") /interface=unsecure:write-attribute(name=inet-address,value="${jboss.bind.address.unsecure:EXTERNAL_IP_ADDRESS}")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트 이름을 구성합니다.
관리형 도메인에 참여하는 각 호스트의 고유한 호스트 이름을 설정합니다. 이 이름은 초고기 간에 고유해야 하며 보조자가 클러스터를 식별하는 데 사용되므로 사용하는 이름을 기록해 둡니다.
적절한
host.xml구성 파일을 사용하여 JBoss EAP 보조 호스트를 시작합니다.EAP_HOME/bin/domain.sh --host-config=host-secondary.xml
$ EAP_HOME/bin/domain.sh --host-config=host-secondary.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 관리 CLI 명령을 사용하여 고유한 호스트 이름을 설정합니다. 이 예에서는
secondary1을 새 호스트 이름으로 사용합니다./host=EXISTING_HOST_NAME:write-attribute(name=name,value=secondary1)
/host=EXISTING_HOST_NAME:write-attribute(name=name,value=secondary1)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트 이름 구성에 대한 자세한 내용은 호스트 이름 구성을 참조하십시오.
도메인 컨트롤러에 연결하도록 각 호스트를 구성합니다.
참고이 단계는 독립 실행형 서버에 적용되지 않습니다.
+ 관리형 도메인에 가입해야 하는 새로 구성된 호스트의 경우 로컬 요소를 제거하고 도메인 컨트롤러를 가리키는 원격 요소 호스트 속성을 추가해야 합니다.
+ .. 적절한
host.xml구성 파일을 사용하여 JBoss EAP 보조 호스트를 시작합니다.+
EAP_HOME/bin/domain.sh --host-config=host-secondary.xml
$ EAP_HOME/bin/domain.sh --host-config=host-secondary.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 관리 CLI 명령을 사용하여 도메인 컨트롤러 설정을 구성합니다.
/host=SECONDARY_HOST_NAME:write-remote-domain-controller(host=DOMAIN_CONTROLLER_IP_ADDRESS,port=${jboss.domain.primary.port:9990},security-realm="ManagementRealm")/host=SECONDARY_HOST_NAME:write-remote-domain-controller(host=DOMAIN_CONTROLLER_IP_ADDRESS,port=${jboss.domain.primary.port:9990},security-realm="ManagementRealm")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이렇게 하면 host-secondary.xml 파일의 XML이 다음과 같이 수정됩니다.
<domain-controller> <remote host="DOMAIN_CONTROLLER_IP_ADDRESS" port="${jboss.domain.primary.port:9990}" security-realm="ManagementRealm"/> </domain-controller><domain-controller> <remote host="DOMAIN_CONTROLLER_IP_ADDRESS" port="${jboss.domain.primary.port:9990}" security-realm="ManagementRealm"/> </domain-controller>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 자세한 내용은 호스트 컨트롤러 구성 을 참조하십시오.
각 보조 호스트에 대한 인증을 구성합니다.
각 보조 서버에는 도메인 컨트롤러의 기본 또는 독립 실행형의 마스터 ManagementRealm에서 생성된 사용자 이름과 암호가 필요합니다. 도메인 컨트롤러 기본 또는 독립 실행형 마스터에서 각 호스트에 대해
EAP_HOME/bin/add-user.sh명령을 실행합니다. 보조 항목의 호스트 이름과 일치하는 사용자 이름을 사용하여 각 호스트에 대한 관리 사용자를 추가합니다."이 새 사용자가 다른 AS 프로세스에 연결하는 데 사용됩니까?"라는 마지막 질문에
yes로 대답해야 합니다. 그러면 시크릿 값이 제공됩니다.예:
add-user.sh스크립트 출력 (trimmed)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 단계에서 사용할 수 있는 이 출력에서 제공하는 Base64로 인코딩된 보안 값
SECRET_VALUE를 복사합니다.자세한 내용은 JBoss EAP 서버 보안 구성 가이드 의 기본 도메인 컨트롤러에 사용자 추가 섹션을 참조하십시오.
새 인증을 사용하도록 보조 호스트의 보안 영역을 수정합니다.
서버 구성의 secret 값을 설정하거나, 인증 정보 저장소 또는 자격 증명 저장소에서 암호를 가져오거나, 암호를 시스템 속성으로 전달하여 암호를 지정할 수 있습니다.
관리 CLI를 사용하여 서버 구성 파일에서 Base64로 인코딩된 암호 값을 지정합니다.
다음 관리 CLI 명령을 사용하여 시크릿 값을 지정합니다.
SECRET_VALUE를 이전 단계의 add-user 출력에서 반환된 secret 값으로 교체해야 합니다./host=SECONDARY_HOST_NAME/core-service=management/security-realm=ManagementRealm/server-identity=secret:add(value="SECRET_VALUE")
/host=SECONDARY_HOST_NAME/core-service=management/security-realm=ManagementRealm/server-identity=secret:add(value="SECRET_VALUE")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드해야 합니다.
--host인수는 독립 실행형 서버에는 적용되지 않습니다.reload --host=HOST_NAME
reload --host=HOST_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 자세한 내용은 JBoss EAP에서 서버 보안 구성 가이드의 인증 정보 섹션을 사용하도록 보조 컨트롤러 구성 섹션을 참조하십시오.
인증 정보 저장소에서 암호를 가져오도록 호스트를 구성합니다.
인증 정보 저장소에 시크릿 값을 저장한 경우 다음 명령을 사용하여 서버 시크릿을 인증 정보 저장소의 값으로 설정할 수 있습니다.
/host=SECONDARY_HOST_NAME/core-service=management/security-realm=ManagementRealm/server-identity=secret:add(credential-reference={store=STORE_NAME,alias=ALIAS}/host=SECONDARY_HOST_NAME/core-service=management/security-realm=ManagementRealm/server-identity=secret:add(credential-reference={store=STORE_NAME,alias=ALIAS}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드해야 합니다.
--host인수는 독립 실행형 서버에는 적용되지 않습니다.reload --host=HOST_NAME
reload --host=HOST_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 자세한 내용은 JBoss EAP How To Configure Server Security 가이드의 인증 정보 저장소 섹션을 참조하십시오.
자격 증명 모음에서 암호를 가져오도록 호스트를 구성합니다.
EAP_HOME/bin/vault.sh스크립트를 사용하여 마스크된 암호를 생성합니다.VAULT::secret::password::VAULT_SECRET_VALUE형식으로 문자열을 생성합니다. 예를 들면 다음과 같습니다.VAULT::secret::password::ODVmYmJjNGMtZDU2ZC00YmNlLWE4ODMtZjQ1NWNmNDU4ZDc1TElORV9CUkVBS3ZhdWx0.
VAULT::secret::password::ODVmYmJjNGMtZDU2ZC00YmNlLWE4ODMtZjQ1NWNmNDU4ZDc1TElORV9CUkVBS3ZhdWx0.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고자격 증명 모음에 암호를 생성할 때 Base64 인코딩이 아닌 일반 텍스트로 지정해야 합니다.
다음 관리 CLI 명령을 사용하여 시크릿 값을 지정합니다.
VAULT_SECRET_VALUE를 이전 단계에서 생성된 마스크된 암호로 교체해야 합니다./host=primary/core-service=management/security-realm=ManagementRealm/server-identity=secret:add(value="${VAULT::secret::password::VAULT_SECRET_VALUE}")/host=primary/core-service=management/security-realm=ManagementRealm/server-identity=secret:add(value="${VAULT::secret::password::VAULT_SECRET_VALUE}")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드해야 합니다.
--host인수는 독립 실행형 서버에는 적용되지 않습니다.reload --host=HOST_NAME
reload --host=HOST_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 자세한 내용은 JBoss EAP How To Configure Server Security 가이드의 Password vault 섹션을 참조하십시오.
암호를 시스템 속성으로 지정합니다.
다음 예제에서는
server.identity.password를 암호의 시스템 속성 이름으로 사용합니다.서버 구성 파일에서 암호의 시스템 속성을 지정합니다.
다음 managemente CLI 명령을 사용하여 시스템 속성을 사용하도록 시크릿 ID를 구성합니다.
/host=SECONDARY_HOST_NAME/core-service=management/security-realm=ManagementRealm/server-identity=secret:add(value="${server.identity.password}")/host=SECONDARY_HOST_NAME/core-service=management/security-realm=ManagementRealm/server-identity=secret:add(value="${server.identity.password}")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드해야 합니다.
--host인수는 독립 실행형 서버에는 적용되지 않습니다.reload --host=primary
reload --host=primaryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 시작할 때 시스템 속성의 암호를 설정합니다.
명령줄 인수 또는 속성 파일로 전달하여
server.identity.password시스템 속성을 설정할 수 있습니다.일반 텍스트 명령줄 인수로 전달합니다.
서버를 시작하고
server.identity.password속성을 전달합니다.EAP_HOME/bin/domain.sh --host-config=host-secondary.xml -Dserver.identity.password=changeme
$ EAP_HOME/bin/domain.sh --host-config=host-secondary.xml -Dserver.identity.password=changemeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 주의암호를 일반 텍스트로 입력해야 하며
ps -ef명령을 실행한 모든 사용자에게 표시됩니다.속성 파일에서 속성을 설정합니다.
속성 파일을 생성하고 속성 파일에 키/값 쌍을 추가합니다. 예를 들면 다음과 같습니다.
server.identity.password=changeme
server.identity.password=changemeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 주의암호는 일반 텍스트로 되어 있으며 이 속성 파일에 액세스할 수 있는 모든 사용자에게 표시됩니다.
+ 명령줄 인수를 사용하여 서버를 시작합니다.
+
EAP_HOME/bin/domain.sh --host-config=host-secondary.xml --properties=PATH_TO_PROPERTIES_FILE
$ EAP_HOME/bin/domain.sh --host-config=host-secondary.xml --properties=PATH_TO_PROPERTIES_FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow
서버를 다시 시작합니다.
이제 보조 항목은 호스트 이름을 사용자 이름으로 사용하고 암호화된 문자열을 암호로 사용하여 기본 으로 인증합니다.
이제 관리형 도메인의 서버 그룹 내의 독립 실행형 서버 또는 서버가 mod_cluster 작업자 노드로 구성됩니다. 클러스터형 애플리케이션을 배포하면 장애 조치(failover)를 위해 해당 세션이 모든 클러스터 노드에 복제되고 외부 웹 서버 또는 로드 밸런서의 요청을 수락할 수 있습니다. 클러스터의 각 노드는 기본적으로 자동 검색을 사용하여 다른 노드를 검색합니다.
22.6.4. mod_cluster fail_on_status Parameter 구성 링크 복사링크가 클립보드에 복사되었습니다!
fail_on_status 매개변수는 클러스터에서 작업자 노드에서 반환한 경우 해당 노드가 실패한 것으로 표시하는 HTTP 상태 코드를 나열합니다. 그러면 로드 밸런서에서 클러스터의 다른 작업자 노드에 향후 요청을 보냅니다. 실패한 작업자 노드는 로드 밸런서를 STATUS 메시지를 보낼 때까지 NOTOK 상태로 유지됩니다.
fail_on_status 매개변수는 로드 밸런서의 httpd 구성 파일에서 구성해야 합니다. fail_on_status 에 대한 여러 HTTP 상태 코드는 쉼표로 구분된 목록으로 지정할 수 있습니다. 다음 예제에서는 fail_on_status 의 경우 HTTP 상태 코드 203 및 204 를 지정합니다.
예: fail_on_status 구성
ProxyPass / balancer://MyBalancer stickysession=JSESSIONID|jsessionid nofailover=on failonstatus=203,204 ProxyPassReverse / balancer://MyBalancer ProxyPreserveHost on
ProxyPass / balancer://MyBalancer stickysession=JSESSIONID|jsessionid nofailover=on failonstatus=203,204
ProxyPassReverse / balancer://MyBalancer
ProxyPreserveHost on
22.6.5. 클러스터 간 트래픽 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP를 사용하여 새 클러스터를 생성한 후 업그레이드 프로세스의 일부로 이전 클러스터에서 새 클러스터로 트래픽을 마이그레이션할 수 있습니다. 이 작업에서는 중단 또는 다운 타임을 최소화하여 이 트래픽을 마이그레이션하는 데 사용할 수 있는 전략이 표시됩니다.
- 새 클러스터 설정. 이 클러스터를 ClusterNEW 라고 합니다.
- 중복되는 기존 클러스터 설정입니다. 이 클러스터를 ClusterOLD 라고 합니다.
클러스터의 업그레이드 프로세스 - 로드 밸런싱 그룹
- 사전 요구 사항에 설명된 단계를 사용하여 새 클러스터를 설정합니다.
ClusterNEW 및 ClusterOLD 모두에서 구성 옵션 stick
-session이true의 기본 설정으로 설정되어 있는지 확인합니다. 이 옵션을 활성화하면 클러스터에서 클러스터 노드에 대한 모든 새 요청이 계속 각 클러스터 노드로 이동합니다./profile=full-ha/subsystem=modcluster/proxy=default:write-attribute(name=sticky-session,value=true)
/profile=full-ha/subsystem=modcluster/proxy=default:write-attribute(name=sticky-session,value=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterOLD 의 모든 클러스터 노드가
ClusterOLD로드 밸런싱 그룹의 멤버라고 가정하면load-balancing-group을 ClusterOLD 로 설정합니다./profile=full-ha/subsystem=modcluster/proxy=default:write-attribute(name=load-balancing-group,value=ClusterOLD)
/profile=full-ha/subsystem=modcluster/proxy=default:write-attribute(name=load-balancing-group,value=ClusterOLD)Copy to Clipboard Copied! Toggle word wrap Toggle overflow mod_cluster Worker Node 섹션에 설명된 프로세스를 사용하여 ClusterNEW 의 노드를 mod_cluster 구성에 개별적으로 추가합니다. 또한 앞서 언급한 절차를 사용하고 로드 밸런싱 그룹을 ClusterNEW 로 설정합니다.
이 시점에서 mod_cluster-manager 콘솔에서 undermentioned 단축된 예와 유사한 출력을 볼 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 활성 세션은 ClusterOLD 그룹 내에 있으며 모든 새 세션은 ClusterOLD 또는 CLusterNEW 그룹 내에서 생성됩니다. 다음으로 전체 ClusterOLD 그룹을 비활성화하여 현재 활성 클라이언트의 세션에 오류가 발생하지 않고 클러스터 노드를 제거할 수 있습니다.
mod_cluster-manager 웹 콘솔에서 LBGroup ClusterOLD 에 대한 노드 비활성화 링크를 클릭합니다.
이 시점에서 이미 설정된 세션에 속하는 요청만 ClusterOLD 로드 밸런싱 그룹의 멤버로 라우팅됩니다. 새 클라이언트의 세션은 ClusterNEW 그룹에만 생성됩니다. ClusterOLD 그룹 내에 활성 세션이 없는 즉시 해당 멤버를 안전하게 제거할 수 있습니다.
참고중지 노드를 사용하면 로드 밸런서를 사용하여 이 도메인에 대한 요청 라우팅을 즉시 중지합니다. 이렇게 하면 ClusterNEW 와 ClusterOLD 간에 세션 복제가 없는 경우 클라이언트에 세션 데이터가 손실되는 다른 로드 밸런싱 그룹에 대한 페일오버가 강제 적용됩니다.
기본 로드 밸런싱 그룹
현재 ClusterOLD 설정에 mod_cluster-manager 콘솔의 LBGroup:에서 찾은 부하 분산 그룹 설정이 포함되어 있지 않은 경우, 여전히 ClusterOLD 노드를 비활성화할 수 있습니다. 이 경우 각 ClusterOLD 노드에 대한 컨텍스트 비활성화 를 클릭합니다. 이러한 노드의 컨텍스트는 비활성화되며 활성 세션이 없으면 제거할 준비가 됩니다. 새 클라이언트의 세션은 활성화된 컨텍스트가 있는 노드(이 예제의 ClusterNEW 멤버)에서만 생성됩니다.
관리 CLI 사용
mod_cluster-manager 웹 콘솔을 사용하는 것 외에도 JBoss EAP 관리 CLI를 사용하여 특정 컨텍스트를 중지하거나 비활성화할 수 있습니다.
컨텍스트 중지
/host=primary/server=server-one/subsystem=modcluster:stop-context(context=/my-deployed-application-context, virtualhost=default-host, waittime=0)
/host=primary/server=server-one/subsystem=modcluster:stop-context(context=/my-deployed-application-context, virtualhost=default-host, waittime=0)
waittime 이 0 으로 설정된 컨텍스트를 중지하면 시간 초과가 없는 경우 해당 장치에 즉시 요청을 라우팅하도록 지시합니다. 이로 인해 다른 사용 가능한 컨텍스트로 페일오버가 강제 적용됩니다.
waittime 인수를 사용하여 timeout 값을 설정하면 이 컨텍스트에서 새 세션이 생성되지 않지만 기존 세션은 완료되거나 지정된 타임아웃이 경과될 때까지 이 노드로 계속 전달됩니다. waittime 인수의 기본값은 10 초입니다.
컨텍스트 비활성화
/host=primary/server=server-one/subsystem=modcluster:disable-context(context=/my-deployed-application-context, virtualhost=default-host)
/host=primary/server=server-one/subsystem=modcluster:disable-context(context=/my-deployed-application-context, virtualhost=default-host)
컨텍스트를 비활성화하면 이 컨텍스트에서 새 세션을 생성하지 않아야 합니다.
22.7. Apache mod_jk HTTP 커넥터 링크 복사링크가 클립보드에 복사되었습니다!
Apache mod_jk 는 호환성을 위해 필요한 고객을 위해 제공되는 HTTP 커넥터입니다.
JBoss EAP는 Apache HTTP 프록시 서버의 워크로드를 허용할 수 있습니다. 프록시 서버는 웹 프런트 엔드의 클라이언트 요청을 수락하고 작업을 참여 JBoss EAP 서버로 전달합니다. 고정 세션을 활성화하면 서버를 사용할 수 없는 경우가 아니면 동일한 클라이언트 요청이 항상 동일한 JBoss EAP 서버로 이동합니다.
mod_jk는 Cryostat 1.3 프로토콜을 통해 통신합니다. 다른 프로토콜은 mod_cluster 또는 mod_proxy 와 함께 사용할 수 있습니다. 자세한 내용은 HTTP Connectors 개요 를 참조하십시오.
mod_cluster 는 mod_jk보다 고급 로드 밸런서 장치이며 권장되는 HTTP 커넥터입니다. mod_cluster는 mod_jk의 모든 기능과 추가 기능을 제공합니다. JBoss EAP mod_cluster HTTP 커넥터와 달리 Apache mod_jk HTTP 커넥터는 서버 또는 서버 그룹에 대한 배포 상태를 알 수 없으며 그에 따라 작업을 보내는 위치를 조정할 수 없습니다.
자세한 내용은 Apache mod_jk 설명서 를 참조하십시오.
22.7.1. Apache HTTP Server에서 mod_jk 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss Core Services Apache HTTP 서버를 설치하거나 JWS를 사용할 때 mod_jk.so 인 mod_jk 모듈이 이미 포함되어 있지만 기본적으로 로드되지 않습니다.
Apache HTTP Server는 더 이상 JWS와 버전 3.1.0과 함께 배포되지 않습니다.
다음 단계를 사용하여 Apache HTTP Server에서 mod_jk를 로드하고 구성합니다. 이 단계에서는 이미 플랫폼에 따라 다른 Apache HTTP Server의 httpd/ 디렉터리로 이동했다고 가정합니다. 자세한 내용은 JBoss Core Services Apache HTTP Server 설치 가이드에서 플랫폼에 대한 설치 지침을 참조하십시오.
Red Hat 고객은 Red Hat 고객 포털에서 로드 밸런서 구성 툴 을 사용하여 mod_jk 및 기타 커넥터에 대한 최적의 구성 템플릿을 빠르게 생성할 수 있습니다. 이 도구에 액세스하려면 로그인해야 합니다.
프로세스
mod_jk 모듈을 구성합니다.
참고샘플 mod_jk 구성 파일은
conf.d/mod_jk.conf.sample에 제공됩니다. 필요에 따라.sample확장자를 제거하고 해당 내용을 수정하여 자체 파일을 생성하는 대신 이 샘플을 사용할 수 있습니다.conf.d/mod_jk.conf라는 새 파일을 생성합니다. 파일에 다음 구성을 추가하여 필요한 제품군에 콘텐츠를 수정해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고JkMount 지시문은 Apache HTTP Server가 mod_jk 모듈로 전달해야 하는 URL을 지정합니다. 지시문의 구성에 따라 mod_jk는 수신된 URL을 올바른 작업자로 보냅니다. 정적 콘텐츠를 직접 제공하고 Java 애플리케이션에 대한 로드 밸런서만 사용하려면 URL 경로는
/application/*이어야 합니다. mod_jk를 로드 밸런서 장치로 사용하려면/*값을 사용하여 모든 URL을 mod_jk로 전달합니다.이 파일은 일반적인 mod_jk 구성 외에도
mod_jk.so모듈을 로드하도록 지정하고workers.properties파일을 찾을 위치를 정의합니다.mod_jk 작업자 노드를 구성합니다.
참고샘플 작업자 구성 파일은
conf.d/workers.properties.sample에서 제공됩니다. 필요에 따라.sample확장자를 제거하고 해당 내용을 수정하여 자체 파일을 생성하는 대신 이 샘플을 사용할 수 있습니다.conf.d/workers.properties라는 새 파일을 만듭니다. 파일에 다음 구성을 추가하여 필요한 제품군에 콘텐츠를 수정해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow mod_jk
workers.properties파일 및 기타 고급 구성 옵션의 구문에 대한 자세한 내용은 mod_jk Worker Properties 를 참조하십시오.필요한 경우 JKMountFile 지시문을 지정합니다.
mod-jk.conf의 JKMount 지시문 외에도 mod_jk로 전달할 여러 URL 패턴이 포함된 파일을 지정할 수 있습니다.uriworkermap.properties파일을 생성합니다.참고샘플 URI 작업자 맵 구성 파일은
conf.d/uriworkermap.properties.sample에 제공됩니다. 필요에 따라.sample확장자를 제거하고 해당 내용을 수정하여 자체 파일을 생성하는 대신 이 샘플을 사용할 수 있습니다.conf.d/uriworkermap.properties라는 새 파일을 생성합니다. 일치시킬 각 URL 패턴에 대한 행을 추가합니다. 예를 들면 다음과 같습니다.# Simple worker configuration file /*=loadbalancer
# Simple worker configuration file /*=loadbalancerCopy to Clipboard Copied! Toggle word wrap Toggle overflow uriworkermap.properties파일을 가리키도록 구성을 업데이트합니다.conf.d/mod_jk.conf에 다음을 추가합니다.# Use external file for mount points. # It will be checked for updates each 60 seconds. # The format of the file is: /url=worker /examples/*=loadbalancer JkMountFile conf.d/uriworkermap.properties
# Use external file for mount points. # It will be checked for updates each 60 seconds. # The format of the file is: /url=worker # /examples/*=loadbalancer JkMountFile conf.d/uriworkermap.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
mod_jk 구성에 대한 자세한 내용은 JWS HTTP 커넥터 및 로드 밸런싱 가이드의 mod_jk를 로드하도록 Apache HTTP Server 구성 섹션을 참조하십시오.
22.7.2. mod_jk와 통신하도록 JBoss EAP 구성 링크 복사링크가 클립보드에 복사되었습니다!
mod_jk HTTP 커넥터에는 웹 서버에서 로드한 mod_jk.so 모듈이 단일 구성 요소가 있습니다. 이 모듈은 클라이언트 요청을 수신하여 컨테이너에 전달합니다(이 경우 JBoss EAP). 또한 JBoss EAP는 이러한 요청을 수락하고 웹 서버로 응답을 다시 전송하도록 구성해야 합니다.
JBoss EAP undertow 하위 시스템은 요청을 수락하고 외부 웹 서버로 응답을 다시 전송하기 위해 리스너를 지정해야 합니다. mod_jk에서는 Cryostat 프로토콜을 사용하므로 Cryostat 리스너를 구성해야 합니다.
기본 고가용성 구성인 ha 또는 full-ha 중 하나를 사용하는 경우 Cryostat 리스너가 이미 구성되어 있습니다.
자세한 내용은 외부 웹 서버에서 요청 수락을 참조하십시오.
22.8. Apache mod_proxy HTTP 커넥터 링크 복사링크가 클립보드에 복사되었습니다!
Apache mod_proxy 는 Cryostat, HTTP 및 HTTPS 프로토콜을 통한 연결을 지원하는 HTTP 커넥터입니다. mod_proxy는 부하 분산 또는 로드 밸런싱이 아닌 구성으로 구성할 수 있으며 고정 세션의 개념을 지원합니다.
mod_proxy 모듈을 사용하려면 사용하려는 프로토콜에 따라 JBoss EAP에 HTTP, HTTPS 또는 Cryostat 리스너가 undertow 하위 시스템에 구성되어 있어야 합니다.
mod_cluster 는 mod_proxy보다 고급 로드 밸런서 장치이며 권장되는 HTTP 커넥터입니다. mod_cluster는 mod_proxy의 모든 기능과 추가 기능을 제공합니다. JBoss EAP mod_cluster HTTP 커넥터와 달리 Apache mod_proxy HTTP 커넥터는 서버 또는 서버 그룹의 배포 상태를 알 수 없으며 그에 따라 작업을 전송하는 위치를 조정할 수 없습니다.
자세한 내용은 Apache mod_proxy 설명서 를 참조하십시오.
22.8.1. Apache HTTP Server에서 mod_proxy 구성 링크 복사링크가 클립보드에 복사되었습니다!
mod_proxy 모듈은 JBoss Core Services Apache HTTP Server를 설치하거나 JWS를 사용할 때 이미 포함되어 있으며 기본적으로 로드됩니다.
Apache HTTP Server는 더 이상 JWS와 버전 3.1.0과 함께 배포되지 않습니다.
기본 로드 밸런싱 또는 비 로드 밸런싱 프록시를 구성하려면 아래 적절한 섹션을 참조하십시오. 이 단계에서는 이미 Apache HTTP Server의 httpd/ 디렉토리로 이동했다고 가정하며, 이는 플랫폼에 따라 다릅니다. 자세한 내용은 JBoss Core Services Apache HTTP Server 설치 가이드에서 플랫폼에 대한 설치 지침을 참조하십시오. 이 단계에서는 필요한 HTTP 리스너가 JBoss EAP 하위 시스템에 이미 구성되어 있다고 가정합니다.
Red Hat 고객은 Red Hat 고객 포털에서 로드 밸런서 구성 툴 을 사용하여 mod_proxy 및 기타 커넥터에 대한 최적의 구성 템플릿을 빠르게 생성할 수 있습니다. 이 도구에 액세스하려면 로그인해야 합니다.
로드되지 않은 프록시 추가
가질 수 있는 다른 < VirtualHost > 지시문 아래에 직접 conf/httpd.conf 파일에 다음 구성을 추가합니다. 설정에 적합한 값으로 바꿉니다.
로드 밸런싱 프록시 추가
기본 Apache HTTP Server 구성에는 mod_cluster와 호환되지 않으므로 mod_proxy_balancer.so 모듈이 비활성화되었습니다. 이 작업을 완료하려면 이 모듈을 로드하고 mod_cluster 모듈을 비활성화해야 합니다.
mod_proxy를 로드 밸런서 장치로 사용하고 작업을 여러 JBoss EAP 인스턴스에 보내려면 conf/httpd.conf 파일에 다음 구성을 추가합니다. 예제 IP 주소는 가상입니다. 사용자 환경에 적절한 값으로 바꿉니다.
위의 예제는 모두 HTTP 프로토콜을 사용하여 통신합니다. 적절한 mod_proxy 모듈을 로드하는 경우 대신 Cryostat 또는 HTTPS 프로토콜을 사용할 수 있습니다. 자세한 내용은 Apache mod_proxy 설명서 를 참조하십시오.
고정 세션 활성화
고정 세션 은 클라이언트 요청이 원래 특정 JBoss EAP 작업자로 이동하면 사용할 수 없게 되지 않는 한 모든 향후 요청이 동일한 작업자로 전송됨을 의미합니다. 이는 거의 항상 권장되는 동작입니다.
mod_proxy에 대해 고정 세션을 활성화하려면 ProxyPass 문에 고정session 매개변수를 추가합니다.
ProxyPass / balancer://mycluster stickysession=JSESSIONID
ProxyPass / balancer://mycluster stickysession=JSESSIONID
lbmethod 및 nofailover 와 같은 ProxyPass 문에 대한 추가 매개변수를 지정할 수 있습니다. 사용 가능한 매개변수에 대한 자세한 내용은 Apache mod_proxy 설명서 를 참조하십시오.
22.8.2. mod_proxy와 통신하도록 JBoss EAP 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP undertow 하위 시스템은 요청을 수락하고 외부 웹 서버로 응답을 다시 전송하기 위해 리스너를 지정해야 합니다. 사용할 프로토콜에 따라 리스너를 구성해야 할 수도 있습니다.
HTTP 리스너는 JBoss EAP 기본 구성에 구성됩니다. 기본 고가용성 구성인 ha 또는 full-ha 중 하나를 사용하는 경우 Cryostat 리스너도 사전 구성됩니다.
자세한 내용은 외부 웹 서버의 요청 수락을 참조하십시오.
22.9. Microsoft ISAPI 커넥터 링크 복사링크가 클립보드에 복사되었습니다!
Internet Server API(ISAPI)는 Microsoft의 인터넷 정보 서비스(IIS)와 같은 웹 서버에 대한 ODBC 서버 확장 및 필터를 작성하는 데 사용되는 API 집합입니다. isapi_redirect. offers 는 hieradata로 조정된 mod_jk 의 확장입니다. isapi_redirect.chunk 을 사용하면 SASL을 로드 밸런서로 사용하여 JBoss EAP 인스턴스를 작업자 노드로 구성할 수 있습니다.
Windows Server 및 SASL의 지원되는 구성에 대한 자세한 내용은 JBoss EAP 지원 구성을 참조하십시오.
22.9.1. ISAPI 커넥터를 사용하도록 Microsoft Administrators 구성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat 고객 포털에서 ISAPI 커넥터를 다운로드합니다.
- 브라우저를 열고 Red Hat Customer Portal JBoss Software Downloads 페이지에 로그인합니다.
- 제품 드롭다운 메뉴에서 Web Connectors 를 선택합니다.
- 버전 드롭다운 메뉴에서 최신 JBoss Core Services 버전을 선택합니다.
- 목록에서 Red Hat JBoss Core Services ISAPI Connector 를 찾아 다운로드 링크를 클릭합니다.
-
아카이브를 추출하고
sbin디렉터리의 내용을 서버의 위치에 복사합니다. 아래 명령은 콘텐츠가C:\connectors\에 복사되었다고 가정합니다.
SSSD 관리자(IIS 7)를 사용하여IIS Redirector를 구성하려면 다음을 수행합니다.
-
시작 → 실행을 클릭하고
inetmgr을 입력하여 SASL 관리자를 엽니다. - 왼쪽 트리 뷰 창에서 NSX 7을 확장합니다.
- ISAPI 및 CGI 등록을 두 번 클릭하여 새 창에서 엽니다.
- 작업 창에서 추가 를 클릭합니다. ISAPI 또는 CGI 제한 추가 창이 열립니다.
다음 값을 지정합니다.
-
ISAPI 또는 CGI 경로:
C:\connectors\isapi_redirect.VERSION -
설명:
jboss - Enable extension path to execute: check 상자를 선택합니다.
-
ISAPI 또는 CGI 경로:
- OK 를 클릭하여 ISAPI 또는 CGI Restriction 창을 닫습니다.
JBoss Native 가상 디렉터리 정의
- 기본 웹 사이트를 마우스 오른쪽 버튼으로 클릭하고 가상 디렉터리 추가를 클릭합니다. 가상 디렉터리 추가 창이 열립니다.
가상 디렉터리를 추가하려면 다음 값을 지정합니다.
-
alias:
jboss -
물리적 경로:
C:\connectors\
-
alias:
- 확인을 클릭하여 값을 저장하고 가상 디렉터리 추가 창을 닫습니다.
JBoss Native ISAPI 리디렉션 필터 정의
- 트리 뷰 창에서 site → Default Web site를 확장합니다.
- ISAPI 필터 를 두 번 클릭합니다. ISAPI 필터 기능 보기가 표시됩니다.
- 작업 창에서 추가를 클릭합니다. ISAPI 필터 추가 창이 표시됩니다.
ISAPI 필터 추가 창에서 다음 값을 지정합니다.
-
필터 이름:
jboss -
Executable:
C:\connectors\isapi_redirect.dll
-
필터 이름:
- OK 를 클릭하여 값을 저장하고 ISAPI 필터 추가 창을 닫습니다.
ISAPI- offers 처리기 활성화
- 트리 뷰 창에서 NSX 7 항목을 두 번 클릭합니다. SASL 7 홈 기능 뷰 가 열립니다.
- Handler Mappings 를 두 번 클릭합니다. Handler Mappings 기능 뷰 가 표시됩니다.
- 그룹 by 콤보 상자에서 상태를 선택합니다. Handler Mappings 는 Enabled 및 Disabled Groups 에 표시됩니다.
-
ISAPI- offers를 찾습니다. Disabled 그룹에 있는 경우 마우스 오른쪽 버튼으로 클릭하고 기능 권한 편집을 선택합니다. 다음 권한을 활성화합니다.
- 읽기
- 스크립트
- 실행
- 확인을 클릭하여 값을 저장하고 기능 권한 편집 창을 닫습니다.
이제 Microsoft Administrators가 ISAPI 커넥터를 사용하도록 구성되어 있습니다.
22.9.2. 클라이언트 요청을 JBoss EAP에 보내도록 ISAPI 커넥터 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 작업은 ISAPI 커넥터의 요청을 수락하도록 JBoss EAP 서버 그룹을 구성합니다. 로드 밸런싱 또는 고가용성 장애 조치(failover)를 위한 구성은 포함되어 있지 않습니다.
이 구성은 SASL 서버에서 수행되며 외부 웹 서버의 요청을 수락 하도록 이미 JBoss EAP가 구성되어 있다고 가정합니다. 또한 Administrators 서버에 대한 전체 관리자 액세스 권한이 필요하며 ISAPI 커넥터를 사용하도록 WMCO를 구성해야 합니다.
속성 파일 생성 및 리디렉션 설정
로그, 속성 파일 및 잠금 파일을 저장할 디렉터리를 생성합니다.
이 절차의 나머지 부분에서는 이 목적을 위해
C:\connectors\디렉터리를 사용한다고 가정합니다. 다른 디렉터리를 사용하는 경우 그에 따라 지침을 수정합니다.isapi_redirect.properties파일을 생성합니다.C:\connectors\isapi_redirect.properties라는 새 파일을 생성합니다. 다음 콘텐츠를 파일에 복사합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow rewrite.properties파일을 사용하지 않으려면 행 시작 부분에#문자를 배치하여 마지막 행을 주석 처리합니다.uriworkermap.properties파일을 생성합니다.uriworkermap.properties파일에는 배포된 애플리케이션 URL과 해당 URL에 대한 요청을 처리하는 작업자 간의 매핑이 포함되어 있습니다. 다음 예제 파일은 파일의 구문을 보여줍니다.uriworkermap.properties파일을C:\connectors\에 배치합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow workers.properties파일을 생성합니다.workers.properties파일에는 작업자 레이블과 서버 인스턴스 간의 매핑 정의가 포함되어 있습니다. 이 파일은 Apache mod_jk worker 속성 구성에 사용되는 것과 동일한 파일의 구문을 따릅니다.다음은
workers.properties파일의 예입니다. 작업자 이름,worker01및worker02는 JBoss EAP 하위시스템에서구성된instance-id와 일치해야 합니다.이 파일을
C:\connectors\디렉터리에 배치합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow rewrite.properties파일을 만듭니다.rewrite.properties파일에는 특정 애플리케이션에 대한 간단한 URL 재작성 규칙이 포함되어 있습니다. 아래 예제와 같이 다시 작성된 경로는 이름-값 쌍을 사용하여 지정합니다. 이 파일을C:\connectors\디렉터리에 배치합니다.#Simple example # Images are accessible under abc path /app-01/abc/=/app-01/images/
#Simple example # Images are accessible under abc path /app-01/abc/=/app-01/images/Copy to Clipboard Copied! Toggle word wrap Toggle overflow net stop및net start명령을 사용하여 SASL 서버를 다시 시작합니다.net stop was /Y net start w3svc
C:\> net stop was /Y C:\> net start w3svcCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Administrators 서버는 애플리케이션별로 구성한 특정 JBoss EAP 서버에 클라이언트 요청을 전송하도록 구성되어 있습니다.
22.9.3. 여러 JBoss EAP 서버에서 클라이언트 요청의 균형을 조정하도록 ISAPI 커넥터 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 구성은 지정한 JBoss EAP 서버에서 클라이언트 요청을 분산합니다. 이 구성은 SASL 서버에서 수행되며 외부 웹 서버의 요청을 수락 하도록 이미 JBoss EAP가 구성되어 있다고 가정합니다. 또한 Administrators 서버에 대한 전체 관리자 액세스 권한이 필요하며 ISAPI 커넥터를 사용하도록 WMCO를 구성해야 합니다.
여러 서버에서 클라이언트 요청의 균형을 유지
로그, 속성 파일 및 잠금 파일을 저장할 디렉터리를 생성합니다.
이 절차의 나머지 부분에서는 이 목적을 위해
C:\connectors\디렉터리를 사용한다고 가정합니다. 다른 디렉터리를 사용하는 경우 그에 따라 지침을 수정합니다.isapi_redirect.properties파일을 생성합니다.C:\connectors\isapi_redirect.properties라는 새 파일을 생성합니다. 다음 콘텐츠를 파일에 복사합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow rewrite.properties파일을 사용하지 않으려면 행 시작 부분에#문자를 배치하여 마지막 행을 주석 처리합니다.uriworkermap.properties파일을 생성합니다.uriworkermap.properties파일에는 배포된 애플리케이션 URL과 해당 URL에 대한 요청을 처리하는 작업자 간의 매핑이 포함되어 있습니다. 다음 예제 파일은 부하 분산 구성이 있는 파일의 구문을 보여줍니다. 와일드카드(*) 문자는 다양한 URL 하위 디렉터리에 대한 모든 요청을 라우터라는 로드 밸런서에 전송합니다. 로드 밸런서의 구성은 다음 단계에서 다룹니다.uriworkermap.properties파일을C:\connectors\에 배치합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow workers.properties파일을 생성합니다.workers.properties파일에는 작업자 레이블과 서버 인스턴스 간의 매핑 정의가 포함되어 있습니다. 이 파일은 Apache mod_jk worker 속성 구성에 사용되는 것과 동일한 파일의 구문을 따릅니다.다음은
workers.properties파일의 예입니다. 로드 밸런서는worker01및worker02를 구성하도록 파일 끝 부분에 구성됩니다. 이러한 작업자 이름은 JBoss EAP 하위시스템에서구성된instance-id와 일치해야 합니다.이 파일을
C:\connectors\디렉터리에 배치합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
rewrite.properties파일을 만듭니다.rewrite.properties파일에는 특정 애플리케이션에 대한 간단한 URL 재작성 규칙이 포함되어 있습니다. 아래 예제와 같이 다시 작성된 경로는 이름-값 쌍을 사용하여 지정합니다. 이 파일을C:\connectors\디렉터리에 배치합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
NSX 서버는 workers.properties 파일에서 참조된 JBoss EAP 서버에 클라이언트 요청을 전송하여 1:3 비율로 서버에 부하를 분산하도록 구성되어 있습니다. 이 비율은 각 서버에 할당된 부하 분산 요소인 lbfactor 에서 파생됩니다.
22.10. Oracle NSAPI 커넥터 링크 복사링크가 클립보드에 복사되었습니다!
Netscape Server API(NSAPI)는 이전에 Netscape Web Server인 Oracle iPlanet Web Server가 서버에 대한 확장을 구현하기 위해 제공하는 API입니다. 이러한 확장 기능을 서버 플러그인이라고 합니다. NSAPI 커넥터는 nsapi_redirector.so 에서 사용되며 Oracle iPlanet Web Server로 조정된 mod_jk의 확장입니다. NSAPI 커넥터를 사용하면 Oracle iPlanet Web Server를 로드 밸런서 장치로 사용하여 JBoss EAP 인스턴스를 작업자 노드로 구성할 수 있습니다.
Oracle iPlanet Web Server의 지원되는 구성에 대한 자세한 내용은 JBoss EAP 지원 구성을 참조하십시오.
22.10.1. NSAPI 커넥터를 사용하도록 Oracle iPlanet 웹 서버 구성 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- JBoss EAP는 작업자 역할을 할 각 서버에 설치 및 구성됩니다.
Red Hat 고객 포털에서 NSAPI 커넥터를 다운로드합니다.
- 브라우저를 열고 Red Hat Customer Portal JBoss Software Downloads 페이지에 로그인합니다.
- 제품 드롭다운 메뉴에서 Web Connectors 를 선택합니다.
- 버전 드롭다운 메뉴에서 최신 JBoss Core Services 버전을 선택합니다.
- 목록에서 Red Hat JBoss Core Services NSAPI Connector 를 찾아 시스템에 대한 올바른 플랫폼 및 아키텍처를 선택하고 다운로드 링크를 클릭합니다.
-
lib/또는lib64/디렉터리에 있는nsapi_redirector.so파일을IPLANET_CONFIG/lib/또는IPLANET_CONFIG/lib64/디렉터리에 추출합니다.
NSAPI 커넥터를 설정합니다.
이 지침에서 IPLANET_CONFIG 는 Oracle iPlanet 구성 디렉터리(일반적으로 /opt/oracle/webserver7/config/ )를 나타냅니다. Oracle iPlanet 구성 디렉터리가 다른 경우 그에 따라 지침을 수정합니다.
서블릿 매핑을 비활성화합니다.
IPLANET_CONFIG/default.web.xml파일을 열고 Built In Server Mappings 라는 제목이 있는 섹션을 찾습니다. XML 주석 문자( <!- 및.--> )로 래핑하여 다음 세 개의 서블릿에 대한 매핑을 비활성화합니다- default
- 호출자
JSP
다음 예제 구성은 비활성화된 매핑을 보여줍니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 저장하고 종료합니다.
NSAPI 커넥터 모듈을 로드하도록 iPlanet 웹 서버를 구성합니다.
IPLANET_CONFIG/magnus.conf파일의 끝에 다음 행을 추가하고 구성에 맞게 파일 경로를 수정합니다. 이러한 행은nsapi_redirector.so모듈의 위치와 작업자 및 해당 속성을 나열하는workers.properties파일을 정의합니다.Init fn="load-modules" funcs="jk_init,jk_service" shlib="/lib/nsapi_redirector.so" shlib_flags="(global|now)" Init fn="jk_init" worker_file="IPLANET_CONFIG/connectors/workers.properties" log_level="info" log_file="IPLANET_CONFIG/connectors/nsapi.log" shm_file="IPLANET_CONFIG/connectors/tmp/jk_shm"
Init fn="load-modules" funcs="jk_init,jk_service" shlib="/lib/nsapi_redirector.so" shlib_flags="(global|now)" Init fn="jk_init" worker_file="IPLANET_CONFIG/connectors/workers.properties" log_level="info" log_file="IPLANET_CONFIG/connectors/nsapi.log" shm_file="IPLANET_CONFIG/connectors/tmp/jk_shm"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 위의 구성은 32비트 아키텍처용입니다.
파일을 저장하고 종료합니다.
NSAPI 커넥터를 구성합니다.
로드 밸런싱 또는 로드 밸런싱 구성을 사용하여 기본 구성에 대해 NSAPI 커넥터를 구성할 수 있습니다. 다음 옵션 중 하나를 선택하면 구성이 완료될 것입니다.
22.10.2. JBoss EAP에 클라이언트 요청을 전송하도록 NSAPI 커넥터 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 작업에서는 로드 밸런싱 또는 페일오버 없이 클라이언트 요청을 JBoss EAP 서버로 리디렉션하도록 NSAPI 커넥터를 구성합니다. 리디렉션은 배포별로 수행되므로 URL별로 리디렉션됩니다.
이 작업을 계속하기 전에 NSAPI 커넥터를 이미 구성해야 합니다.
기본 HTTP 커넥터 설정
JBoss EAP 서버로 리디렉션할 URL 경로를 정의합니다.
참고IPLANET_CONFIG/obj.conf에서는 행이 이전 행의 연속인 경우를 제외하고 줄 시작 부분에 공백을 사용할 수 없습니다.IPLANET_CONFIG/obj.conf파일을 편집합니다. < Object name="default" > 로 시작하는 섹션을 찾아 아래 예제 파일에 표시된 형식으로 일치시킬 각 URL 패턴을 추가합니다. jknsapi 문자열은 다음 단계에서 정의할 HTTP 커넥터를 나타냅니다. 이 예제에서는 패턴 일치에 와일드카드를 사용하는 방법을 보여줍니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 경로에 서비스를 제공하는 작업자를 정의합니다.
IPLANET_CONFIG/obj.conf파일을 계속 편집합니다. 편집을 완료한 섹션의 닫기 태그 바로 뒤에 다음을 추가합니다. < /Object>.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 위의 예제에서는 URL 경로 /status 로 요청을 worker01 이라는 작업자로 리디렉션하고
/nc/아래의 모든 URL 경로는 worker02 라는 작업자로 리디렉션합니다. 세 번째 줄은 이전 행과 일치하지 않는 jknsapi 오브젝트에 할당된 모든 URL이 worker01 에게 제공됨을 나타냅니다.파일을 저장하고 종료합니다.
작업자 및 해당 속성을 정의합니다.
IPLANET_CONFIG/connectors/디렉터리에workers.properties라는 파일을 생성합니다. 다음 내용을 파일에 붙여넣고 환경에 맞게 수정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow workers.properties파일은 Apache mod_jk와 동일한 구문을 사용합니다.파일을 저장하고 종료합니다.
iPlanet 웹 서버 재시작
다음 명령을 실행하여 iPlanet 웹 서버를 다시 시작합니다.
IPLANET_CONFIG/../bin/stopserv IPLANET_CONFIG/../bin/startserv
IPLANET_CONFIG/../bin/stopserv IPLANET_CONFIG/../bin/startservCopy to Clipboard Copied! Toggle word wrap Toggle overflow
iPlanet Web Server는 이제 클라이언트 요청을 JBoss EAP에 배포하도록 구성한 URL로 보냅니다.
22.10.3. 여러 JBoss EAP 서버 간에 클라이언트 요청의 균형을 조정하도록 NSAPI Connector 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 작업은 로드 밸런싱 구성에서 클라이언트 요청을 JBoss EAP 서버로 전송하도록 NSAPI 커넥터를 구성합니다.
이 작업을 계속하기 전에 NSAPI 커넥터를 이미 구성해야 합니다.
로드 밸런싱을 위한 커넥터 구성
JBoss EAP 서버로 리디렉션할 URL 경로를 정의합니다.
참고IPLANET_CONFIG/obj.conf에서는 행이 이전 행의 연속인 경우를 제외하고 줄 시작 부분에 공백을 사용할 수 없습니다.IPLANET_CONFIG/obj.conf파일을 편집합니다. <Object name="default"> 로 시작하는 섹션을 찾아 아래 예제 파일에 표시된 형식으로 일치시킬 각 URL 패턴을 추가합니다.jknsapi문자열은 다음 단계에서 정의할 HTTP 커넥터를 나타냅니다. 이 예제에서는 패턴 일치에 와일드카드를 사용하는 방법을 보여줍니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 경로에 서비스를 제공하는 작업자를 정의합니다.
IPLANET_CONFIG/obj.conf파일을 계속 편집합니다. 이전 단계에서 수정한 섹션에 대한 닫기 태그 바로 뒤에 </Object> 다음 새 섹션을 추가하고 필요에 맞게 수정합니다.<Object name="jknsapi"> ObjectType fn=force-type type=text/plain Service fn="jk_service" worker="status" path="/jkmanager(/*)" Service fn="jk_service" worker="router" </Object>
<Object name="jknsapi"> ObjectType fn=force-type type=text/plain Service fn="jk_service" worker="status" path="/jkmanager(/*)" Service fn="jk_service" worker="router" </Object>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이
jksnapi오브젝트는기본오브젝트에서name="jksnapi"매핑에 매핑된 각 경로를 제공하는 데 사용되는 작업자 노드를 정의합니다./jkmanager/*와 일치하는 URL을 제외한 모든 URL은라우터라는 작업자로 리디렉션됩니다.작업자 및 해당 속성을 정의합니다.
IPLANET_CONFIG/connector/에workers.properties라는 파일을 생성합니다. 다음 내용을 파일에 붙여넣고 환경에 맞게 수정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow workers.properties파일은 Apache mod_jk와 동일한 구문을 사용합니다.파일을 저장하고 종료합니다.
iPlanet Web Server 7.0을 다시 시작합니다.
IPLANET_CONFIG/../bin/stopserv IPLANET_CONFIG/../bin/startserv
IPLANET_CONFIG/../bin/stopserv IPLANET_CONFIG/../bin/startservCopy to Clipboard Copied! Toggle word wrap Toggle overflow
iPlanet 웹 서버는 로드 밸런싱 구성에서 JBoss EAP 서버로 구성한 URL 패턴을 리디렉션합니다.
23장. JBoss EAP 서버 구성 최적화 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 서버를 설치하고 관리 사용자를 생성한 후에는 서버 구성을 최적화하는 것이 좋습니다.
프로덕션 환경에서 애플리케이션을 배포할 때 일반적인 문제를 방지하기 위해 서버 구성을 최적화하는 방법에 대한 자세한 내용은 JBoss EAP 성능 튜닝 가이드의 정보를 검토하십시오. 일반적인 최적화에는 ulimits 설정,가비지 컬렉션 활성화,Java 힙 덤프 생성, 스레드 풀 크기 조정 등이 포함됩니다.
최신 버그 수정으로 JBoss EAP 인스턴스를 최신 상태로 유지하는 것도 좋습니다. 자세한 내용은 Red Hat JBoss Enterprise Application Platform 업데이트를 참조하십시오.
부록 A. 참조 자료 링크 복사링크가 클립보드에 복사되었습니다!
A.1. 서버 런타임 인수 링크 복사링크가 클립보드에 복사되었습니다!
애플리케이션 서버 시작 스크립트는 런타임 시 인수 및 스위치를 허용합니다. 이를 통해 서버는 standalone.xml,domain.xml 및 host.xml 구성 파일에 정의된 대체 구성에서 시작할 수 있습니다.
대체 구성에는 대체 소켓 바인딩 세트 또는 보조 구성으로 서버 시작이 포함될 수 있습니다.
시작 시 도움말 switch -h 또는 --help 를 전달하여 사용 가능한 매개변수 목록에 액세스할 수 있습니다.
| 인수 또는 스위치 | 작동 모드 | 설명 |
|---|---|---|
| --admin-only | 독립 실행형 |
서버의 실행 중인 유형을 |
| --admin-only | domain |
호스트 컨트롤러의 실행 중인 유형을 |
| -b=<value>, -b <value> | 독립 실행형 도메인 |
공용 인터페이스의 바인딩 주소를 구성하는 데 사용되는 시스템 속성 |
| -b<interface>=<value> | 독립 실행형 도메인 |
시스템 속성 |
| --backup | domain | 이 호스트가 도메인 컨트롤러가 아니더라도 영구 도메인 구성의 사본을 보관합니다. |
| -c=<config>, -c <config> | 독립 실행형 |
사용할 서버 구성 파일의 이름입니다. 기본값은 |
| -c=<config>, -c <config> | domain |
사용할 서버 구성 파일의 이름입니다. 기본값은 |
| --cached-dc | domain | 호스트가 도메인 컨트롤러가 아니며 부팅 시 도메인 컨트롤러에 연결할 수 없는 경우 로컬로 캐시된 도메인 구성 복사본을 사용하여 부팅합니다. |
| --debug [<port>] | 독립 실행형 | 포트를 지정하려면 선택적 인수로 디버그 모드를 활성화합니다. 시작 스크립트에서 지원하는 경우에만 작동합니다. |
| -D<name>[=<value>] | 독립 실행형 도메인 | 시스템 속성을 설정합니다. |
| --domain-config=<config> | domain |
사용할 서버 구성 파일의 이름입니다. 기본값은 |
| --git-repo | 독립 실행형 |
서버 구성 데이터를 관리하고 유지하는 데 사용되는 Git 리포지토리의 위치입니다. 로컬에 저장하려는 경우 |
| --git-branch | 독립 실행형 | 사용할 Git 리포지토리의 분기 또는 태그 이름입니다. 이 인수는 기존 분기 또는 태그 이름 이름이 없는 경우 생성되지 않기 때문에 지정해야 합니다. 태그 이름을 사용하는 경우 리포지토리를 분리된 HEAD 상태에 넣습니다. 즉, 향후 커밋은 임의의 분기에 연결되어 있지 않습니다. 태그 이름은 읽기 전용이며 일반적으로 여러 노드에서 구성을 복제해야 할 때 사용됩니다. |
| --git-auth | 독립 실행형 |
원격 Git 리포지토리에 연결할 때 사용할 자격 증명이 포함된 Elytron 구성 파일의 URL입니다. 원격 Git 리포지토리에 인증이 필요한 경우 이 인수가 필요합니다. Elytron은 SSH를 지원하지 않습니다. 따라서 암호 없이 개인 키를 사용하여 기본 SSH 인증만 지원됩니다. 이 인수는 |
| -h, --help | 독립 실행형 도메인 | 도움말 메시지를 표시하고 종료합니다. |
| --host-config=<config> | domain |
사용할 호스트 구성 파일의 이름입니다. 기본값은 |
| --interprocess-hc-address=<address> | domain | 호스트 컨트롤러가 프로세스 컨트롤러의 통신을 수신 대기해야 하는 주소입니다. |
| --interprocess-hc-port=<port> | domain | 호스트 컨트롤러가 프로세스 컨트롤러의 통신을 수신 대기해야 하는 포트입니다. |
| --primary-address=<address> | domain |
시스템 속성 |
| --primary-port=<port> | domain |
시스템 속성 |
| --read-only-server-config=<config> | 독립 실행형 |
사용할 서버 구성 파일의 이름입니다. 원본 파일을 덮어쓰지 않는다는 점에서 |
| --read-only-domain-config=<config> | domain |
사용할 도메인 구성 파일의 이름입니다. 이는 초기 파일을 덮어쓰지 않는다는 점에서 |
| --read-only-host-config=<config> | domain |
사용할 호스트 구성 파일의 이름입니다. 이는 초기 파일을 덮어쓰지 않는다는 점에서 |
| -P=<url>, -P <url>, --properties=<url> | 독립 실행형 도메인 | 지정된 URL에서 시스템 속성을 로드합니다. |
| --pc-address=<address> | domain | 프로세스 컨트롤러가 제어하는 프로세스에서 통신을 수신 대기하는 주소입니다. |
| --pc-port=<port> | domain | 프로세스 컨트롤러가 제어하는 프로세스에서 통신을 수신 대기하는 포트입니다. |
| -S<name>[=<value>] | 독립 실행형 | 보안 속성을 설정합니다. |
| -secmgr | 독립 실행형 도메인 | 보안 관리자가 설치된 서버를 실행합니다. |
| --server-config=<config> | 독립 실행형 |
사용할 서버 구성 파일의 이름입니다. 기본값은 |
| --start-mode=<mode> | 독립 실행형 |
서버의 시작 모드를 설정합니다. 이 옵션은
|
| -u=<value>, -u <value> | 독립 실행형 도메인 |
구성 파일의 socket-binding 요소에서 멀티 캐스트 주소를 구성하는 데 사용되는 시스템 속성 |
| -v, -V, --version | 독립 실행형 도메인 | 애플리케이션 서버 버전을 표시하고 종료합니다. |
JBoss EAP와 함께 제공되는 구성 파일은 스위치의 동작을 처리하도록 설정됩니다(예: -b 및 -u ). 스위치에서 제어하는 시스템 속성을 더 이상 사용하지 않도록 구성 파일을 변경하면 launch 명령에 추가해도 적용되지 않습니다.
A.2. RPM 서비스 구성 파일 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP의 RPM 설치에는 ZIP 또는 설치 관리자 설치에 비해 두 가지 추가 구성 파일이 포함되어 있습니다. 이러한 파일은 서비스 init 스크립트에서 JBoss EAP 시작 환경을 지정하는 데 사용됩니다.
Red Hat Enterprise Linux 7 이상의 경우 RPM 서비스 구성 파일이 systemd 를 사용하여 로드되므로 변수 표현식이 확장되지 않습니다.
| 파일 | 설명 |
|---|---|
| /etc/opt/rh/eap8/wildfly/eap8-standalone.conf | Red Hat Enterprise Linux 8 이상에서 독립 실행형 JBoss EAP 서버와 관련된 설정입니다. |
| /etc/opt/rh/eap8/wildfly/eap8-domain.conf | Red Hat Enterprise Linux 8 이상에서 관리형 도메인으로 실행되는 JBoss EAP와 관련된 설정 |
A.3. RPM 서비스 구성 속성 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에서는 JBoss EAP RPM 서비스에 사용 가능한 구성 속성 목록과 기본값을 보여줍니다.
속성의 이름이 /usr/lib/systemd/system/eap8-standalone.service:, 및 JBoss EAP 시작 구성 파일(예: EAP_HOME/bin/standalone.conf )에 모두 동일한 이름이 있는 경우 우선순위를 사용하는 값은 JBoss EAP 시작 구성 파일에서 우선합니다. 이러한 속성 중 하나는 JAVA_HOME 입니다.
| 속성 | 설명 |
|---|---|
| JAVA_HOME | Java 런타임 환경이 설치된 디렉터리입니다.
기본값: |
| JAVAPTH | Java 실행 파일이 설치된 경로입니다.
기본값: |
| WILDFLY_CONSOLE_LOG | CONSOLE 로그 처리기가 리디렉션되는 파일입니다.
독립 실행형 서버의 경우 기본값: |
| WILDFLY_SH | JBoss EAP 서버를 시작하는 데 사용되는 스크립트입니다.
기본값은 독립 실행형 서버의 |
| WILDFLY_SERVER_CONFIG | 사용할 서버 구성 파일입니다.
이 속성에는 기본값이 없습니다. |
| WILDFLY_HOST_CONFIG |
관리형 도메인의 경우 이 속성을 사용하면 |
| WILDFLY_MODULEPATH | JBoss EAP 모듈 디렉터리의 경로입니다.
기본값: |
| WILDFLY_BIND |
공용 인터페이스의 바인딩 주소를 구성하는 데 사용되는 |
| WILDFLY_OPTS | 시작 시 포함할 추가 인수입니다. 예를 들면 다음과 같습니다. -Dorg.wildfly.openssl.path=PATH_TO_OPENSSL_LIBS
|
A.4. JBoss EAP 하위 시스템 개요 링크 복사링크가 클립보드에 복사되었습니다!
아래 표는 JBoss EAP 하위 시스템에 대한 간략한 설명입니다.
| JBoss EAP 하위 시스템 | 설명 |
|---|---|
| batch-jberet | |
| Cryostat-validation | Java 개체 데이터의 유효성을 검사하기 위해 Cryostat 유효성 검사를 구성합니다. |
| core-management | 서버 라이프사이클 이벤트에 대한 리스너를 등록하고 구성 변경 사항을 추적합니다. |
| 데이터 소스 | 데이터 소스를 생성 및 구성하고 JDBC 데이터베이스 드라이버를 관리합니다. |
| deployment-scanner | 배포할 애플리케이션의 특정 위치를 모니터링하도록 배포 스캐너 를 구성합니다. |
| ee | 글로벌 모듈 정의, 설명자 기반 속성 교체 활성화, 기본 바인딩 구성과 같은 Jakarta EE 플랫폼에서 공통 기능을 구성합니다. |
| ejb3 | 세션 및 메시지 기반 빈을 포함하여 Jakarta Enterprise Cryostat를 구성합니다.
Cryostat |
| Elytron | 서버 및 애플리케이션 보안을 구성합니다.
|
| IIOP-openjdk |
JTS 트랜잭션에 대한 CORBA(Common Object Request Broker Architecture) 서비스 및 보안을 포함한 기타 ORB 서비스를 구성합니다. JBoss EAP 7에서 이 기능은 |
| Infinispan | JBoss EAP 고가용성 서비스를 위한 캐싱 기능을 구성합니다. |
| io | |
| jaxrs | Jakarta RESTful Web Services 애플리케이션의 배포 및 기능을 활성화합니다. |
| JCA | Jakarta Connectors 컨테이너 및 리소스 어댑터 배포에 대한 일반 설정을 구성합니다. |
| jdr | 문제 해결에 도움이 되도록 진단 데이터를 수집할 수 있습니다. JBoss EAP 구독자는 지원을 요청할 때 Red Hat에 이 정보를 제공할 수 있습니다. |
| Cryostat | 클러스터의 서버가 서로 통신하는 방법에 대한 프로토콜 스택 및 통신 메커니즘 을 구성합니다. |
| jmx | 원격 자카르타 관리 액세스를 구성합니다. |
| JPA | Jakarta Persistence 2.2 컨테이너 관리 요구 사항을 관리하고 영구 단위 정의, 주석 및 설명자를 배포할 수 있습니다.
|
| Cryostat | 자카르타 서버 구현 관리. |
| jsr77 | Jakarta Management 사양에서 정의한 Jakarta EE 관리 기능을 제공합니다. |
| logging | 로그 카테고리 및 로그 처리기 시스템을 통해 시스템 및 애플리케이션 수준 로깅을 구성합니다. |
| | JBoss EAP에 배포한 애플리케이션이 해당 서비스를 사용하여 이메일을 보낼 수 있는 메일 서비스를 생성하도록 메일 서버 속성 및 사용자 지정 메일 전송을 구성합니다. |
| messaging-activemq |
통합 메시징 공급자인 Artemis에 대한 Java Message Service 대상, 연결 팩토리 및 기타 설정을 구성합니다. JBoss EAP 7에서는 메시징 기능이
|
| 메트릭 |
관리 모델 및 JVM(Java Virtual Machine) Cryostat의 기본 지표를 표시합니다. JBoss EAP에는 더 이상 |
| 상태 |
JBoss EAP 런타임의 상태 점검을 노출합니다. JBoss EAP에는 더 이상 |
| modcluster | 서버 측 mod_cluster 작업자 노드를 구성합니다. |
| 이름 지정 | 항목을 글로벌 JNDI 네임스페이스에 바인딩하고 원격 JNDI 인터페이스를 구성합니다. |
| Cryostat | 이전 버전의 JBoss EAP에서 지원하는 대로 JBoss Microcontainer 서비스가 포함된 애플리케이션을 배포할 수 있습니다. |
| Remoting | discovery |
| 검색 하위 시스템은 현재 내부 하위 시스템용으로만 사용됩니다. 이는 개인 API이며 공용용으로는 사용할 수 없습니다. | request-controller |
| 서버를 정상적으로 일시 중단 및 종료 하도록 설정을 구성합니다. | resource-adapters |
| Jakarta Connectors 사양을 사용하여 Jakarta EE 애플리케이션과 EIS(Enterprise Information System) 간의 통신을 위해 리소스 어댑터를 구성하고 유지 관리합니다. | RTS |
| REST-AT 구현이 지원되지 않습니다. | SAR |
| 이전 버전의 JBoss EAP에서 지원하는 대로 Cryostat 서비스가 포함된 SAR 아카이브 배포를 활성화합니다. | 보안 |
| 애플리케이션 보안 설정을 구성하는 레거시 방법입니다.
| security-manager |
| Java Security Manager에서 사용할 Java 보안 정책을 구성합니다.
| 싱글톤 |
| Singleton 정책을 정의하여 Singleton 배포 동작을 구성하거나 Singleton MSC 서비스를 생성합니다.
| 트랜잭션 |
|
시간 제한 값, 트랜잭션 로깅 및 JTS(Java Transaction Service) 사용 여부와 같은 트랜잭션 관리자(TM) 옵션을 구성합니다. | Cryostat |
|
JBoss EAP의 웹 서버 및 서블릿 컨테이너 설정을 구성합니다. JBoss EAP 7에서 이 기능은 | WebServices |
| 웹 서비스 공급자에 대해 게시된 엔드포인트 주소 및 엔드포인트 처리기 체인과 호스트 이름, 포트, WSDL 주소를 구성합니다.
| weld |
| JBoss EAP에 대한 Jakarta 컨텍스트 및 종속성 기능 구성. | XTS |
A.5. add-user 유틸리티 인수 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에서는 기본 제공 인증을 위해 새 사용자를 속성 파일에 추가하는 유틸리티인 -user.batch 스크립트에 사용할 수 있는 인수를 설명합니다.
add-user.sh 또는 add
| 명령줄 인수 | 설명 |
|---|---|
| -a | 애플리케이션 영역에 사용자를 생성합니다. 생략하면 기본값은 관리 영역에 사용자를 생성하는 것입니다. |
| -dc <value> |
속성 파일을 포함할 도메인 구성 디렉터리입니다. 생략된 경우 기본 디렉터리는 |
| -SC <value> |
속성 파일을 포함할 대체 독립 실행형 서버 구성 디렉터리입니다. 생략하면 기본 디렉터리는 |
| -up, --user-properties <value> |
대체 사용자 속성 파일의 이름입니다. 절대 경로이거나 대체 구성 디렉터리를 지정하는 |
| -g, --group <value> | 이 사용자에게 할당할 쉼표로 구분된 그룹 목록입니다. |
| -gp, --group-properties <value> |
대체 그룹 속성 파일의 이름입니다. 절대 경로이거나 대체 구성 디렉터리를 지정하는 |
| -p, --password <value> | 사용자의 암호입니다. |
| -u, --user <value> | 사용자의 이름입니다. 사용자 이름은 임의의 숫자 및 순서로 다음 문자만 포함할 수 있습니다.
|
| -r, --realm <value> |
관리 인터페이스를 보호하는 데 사용되는 영역의 이름입니다. 생략하면 기본값은 |
| -s, --silent |
콘솔에 대한 출력 없이 |
| -e, --enable | 사용자를 활성화합니다. |
| -d, --disable | 사용자를 비활성화합니다. |
| -cw, --confirm-warning | 대화형 모드에서 경고를 자동으로 확인합니다. |
| -h, --help |
|
| -ds, --display-secret | 비대화형 모드로 시크릿 값을 출력합니다. |
A.6. 관리 감사 로깅 속성 링크 복사링크가 클립보드에 복사되었습니다!
이러한 테이블의 특성 이름은 관리 모델에 표시되는 대로 나열됩니다(예: 관리 CLI 사용). 관리 모델의 차이가 있을 수 있으므로 EAP_HOME/docs/schema/wildfly-config_5_0.xsd 에 있는 스키마 정의 파일을 참조하십시오.
| 속성 | 설명 |
|---|---|
| enabled | 감사 로깅이 활성화되었는지 여부입니다. |
| log-boot | 서버 부팅 시 작업을 로깅해야 하는지 여부입니다. |
| log-read-only | 구성을 수정하지 않는 작업 또는 런타임 서비스를 로깅해야 하는지 여부입니다. |
| 속성 | 설명 |
|---|---|
| compact |
|
| date-format |
|
| date-separator |
날짜와 형식의 나머지 로그 메시지 사이의 구분 기호입니다. |
| escape-control-characters |
|
| escape-new-line |
|
| include-date | 포맷된 로그 레코드에 날짜를 포함할지 여부입니다. |
| 속성 | 설명 |
|---|---|
| disabled-due-to-failure | 로깅 실패로 인해 이 처리기가 비활성화되었는지 여부(읽기 전용). |
| failure-count | 처리기가 초기화된 이후 로깅 실패 수(읽기 전용)입니다. |
| 포맷터 | 로그 메시지를 포맷하는 데 사용되는 JSON 포맷터입니다. |
| max-failure-count | 이 처리기를 비활성화하기 전에 최대 로깅 실패 수입니다. |
| path | 감사 로그 파일의 경로입니다. |
| relative-to |
이전에 이름이 지정된 다른 경로의 이름 또는 시스템에서 제공하는 표준 경로 중 하나입니다. |
| rotate-at-startup | 서버를 시작할 때 이전 로그 파일을 순환해야 하는지 여부입니다. |
| 속성 | 설명 |
|---|---|
| app-name | RFC-5424 의 섹션 6.2.5에 정의된 대로 syslog 레코드에 추가할 애플리케이션 이름입니다. 지정하지 않으면 기본적으로 제품 이름이 설정됩니다. |
| disabled-due-to-failure | 로깅 실패로 인해 이 처리기가 비활성화되었는지 여부(읽기 전용). |
| facility | RFC-5424 의 섹션 6.2.1 및 RFC-3164 섹션 4.1.1에 정의된 대로 syslog 로깅에 사용하는 기능입니다. |
| failure-count | 처리기가 초기화된 이후 로깅 실패 수(읽기 전용)입니다. |
| 포맷터 | 로그 메시지를 포맷하는 데 사용되는 JSON 포맷터입니다. |
| max-failure-count | 이 처리기를 비활성화하기 전에 최대 로깅 실패 수입니다. |
| max-length |
헤더를 포함하여 로그 메시지의 최대 길이(바이트)가 허용됩니다. 정의되지 않은 경우 syslog-format이 |
| 프로토콜 |
syslog 처리기에 사용할 프로토콜입니다. |
| syslog-format |
syslog 형식: |
| truncate |
헤더를 포함하는 메시지인지 여부에 관계없이 길이(바이트)가 |
syslog 서버는 구현 시 다를 수 있으므로 일부 설정이 모든 syslog 서버에 적용되는 것은 아닙니다. 테스트는 rsyslog syslog 구현을 사용하여 수행되었습니다.
이 테이블에는 상위 수준 속성만 나열됩니다. 각 속성에는 구성 매개 변수가 있으며 일부는 하위 구성 매개 변수가 있습니다.
A.7. 인터페이스 속성 링크 복사링크가 클립보드에 복사되었습니다!
이 표의 특성 이름은 관리 모델에 표시되는 대로 나열됩니다(예: 관리 CLI 사용). 관리 모델의 차이가 있을 수 있으므로 EAP_HOME/docs/schema/wildfly-config_5_0.xsd 에 있는 스키마 정의 파일을 참조하십시오.
| 인터페이스 요소 | 설명 |
|---|---|
| Any | 인터페이스에 대한 선택 기준의 일부가 중첩된 기준 집합의 하나 이상이지만 반드시 all은 충족함을 나타내는 요소입니다. |
| any-address |
이 인터페이스를 사용하는 소켓이 와일드카드 주소에 바인딩되어야 함을 나타내는 빈 요소입니다. |
| inet-address | IPv6 또는 IPv4 점선 표기법의 IP 주소 또는 IP 주소로 확인할 수 있는 호스트 이름입니다. |
| link-local-address | 인터페이스에 대한 선택 기준의 일부가 링크 로컬인지 여부를 나타내는 빈 요소입니다. |
| 루프백 | 인터페이스에 대한 선택 기준의 일부가 루프백 인터페이스인지 여부를 나타내는 빈 요소입니다. |
| loopback-address | 시스템의 루프백 인터페이스에 실제로 구성되지 않을 수 있는 루프백 주소입니다. 연결된 IP 주소가 있는 NIC를 찾을 수 없는 경우에도 지정된 값이 사용된다는 점에서 inet-address 유형과 다릅니다. |
| 멀티 캐스트 | 인터페이스에 대한 선택 기준의 일부가 멀티 캐스트를 지원하는지 여부를 나타내는 빈 요소입니다. |
| name | 인터페이스의 이름입니다. |
| NIC | 네트워크 인터페이스의 이름(예: eth0, eth1, lo)입니다. |
| NIC-match | 사용 가능한 인터페이스를 찾기 위해 시스템에서 사용 가능한 네트워크 인터페이스 이름을 일치시킬 수 있는 정규식입니다. |
| 해당 없음 | 인터페이스에 대한 선택 기준의 일부가 기준의 중첩된 집합을 충족하지 않음을 나타내는 요소입니다. |
| point-to-point | 인터페이스에 대한 선택 기준의 일부가 지점 간 인터페이스인지 여부를 나타내는 빈 요소입니다. |
| public-address | 인터페이스에 대한 선택 기준의 일부가 공개적으로 라우팅 가능한 주소가 있는지 여부를 나타내는 빈 요소입니다. |
| site-local-address | 인터페이스에 대한 선택 기준의 일부가 site-local인지 여부를 나타내는 빈 요소입니다. |
| subnet-match |
네트워크 IP 주소 및 주소의 네트워크 접두사의 비트 수(예: |
| up | 인터페이스에 대한 선택 기준의 일부가 현재 작동 중인지 여부를 나타내는 빈 요소입니다. |
| 가상 | 인터페이스에 대한 선택 기준의 일부가 가상 인터페이스인지 여부를 나타내는 빈 요소입니다. |
A.8. 소켓 바인딩 속성 링크 복사링크가 클립보드에 복사되었습니다!
이러한 테이블의 특성 이름은 관리 모델에 표시되는 대로 나열됩니다(예: 관리 CLI 사용). 관리 모델의 차이가 있을 수 있으므로 EAP_HOME/docs/schema/wildfly-config_5_0.xsd 에 있는 스키마 정의 파일을 참조하십시오.
다음 표에는 세 가지 소켓 바인딩 유형 각각에 대해 구성할 수 있는 특성이 표시되어 있습니다.
| 속성 | 설명 |
|---|---|
| client-mappings | 이 소켓 바인딩의 클라이언트 매핑을 지정합니다. 이 소켓에 연결하는 클라이언트는 원하는 아웃 바운드 인터페이스와 일치하는 매핑에 지정된 대상 주소를 사용해야 합니다. 이를 통해 네트워크 주소 변환을 사용하거나 여러 네트워크 인터페이스에 바인딩이 작동하는 고급 네트워크 토폴로지를 사용할 수 있습니다. 각 매핑은 선언된 순서로 평가되어야 하며 첫 번째 성공적인 일치는 대상을 결정하는 데 사용됩니다. |
| fixed-port | 소켓 그룹의 다른 소켓에 숫자 오프셋이 적용되는 경우에도 포트 값이 고정되어야 하는지 여부입니다. |
| 인터페이스 |
소켓을 바인딩해야 하는 인터페이스의 이름 또는 멀티캐스트 소켓의 경우 수신 대기해야 하는 인터페이스의 이름입니다. 선언된 인터페이스 중 하나여야 합니다. 정의되지 않은 경우 enclosing 소켓 바인딩 그룹의 |
| multicast-address | 소켓이 멀티 캐스트 트래픽을 수신해야 하는 멀티 캐스트 주소입니다. 지정되지 않은 경우 소켓은 멀티 캐스트를 수신하도록 구성되지 않습니다. |
| multicast-port |
소켓에서 멀티 캐스트 트래픽을 수신해야 하는 포트입니다. |
| name | 소켓의 이름입니다. 소켓 구성 정보에 액세스해야 하는 서비스는 이 이름을 사용하여 찾을 수 있습니다. 이 속성은 필수입니다. |
| port | 소켓을 바인딩해야 하는 포트 수입니다. 서버가 port-offset을 적용하여 모든 포트 값을 늘리거나 감소하면 이 값을 덮어쓸 수 있습니다. |
| 속성 | 설명 |
|---|---|
| fixed-source-port | 소켓 그룹의 다른 아웃바운드 소켓에 숫자 오프셋이 적용되는 경우에도 포트 값이 고정되어야 하는지 여부입니다. |
| host | 이 아웃바운드 소켓이 연결될 원격 대상의 호스트 이름 또는 IP 주소입니다. |
| port | 아웃바운드 소켓이 연결해야 하는 원격 대상의 포트 번호입니다. |
| source-interface | 아웃바운드 소켓의 소스 주소에 사용할 인터페이스의 이름입니다. |
| source-port | 아웃바운드 소켓의 소스 포트로 사용할 포트 번호입니다. |
| 속성 | 설명 |
|---|---|
| fixed-source-port | 소켓 그룹의 다른 아웃바운드 소켓에 숫자 오프셋이 적용되는 경우에도 포트 값이 고정되어야 하는지 여부입니다. |
| socket-binding-ref | 이 아웃바운드 소켓이 연결되는 포트를 결정하는 데 사용할 로컬 소켓 바인딩의 이름입니다. |
| source-interface | 아웃바운드 소켓의 소스 주소에 사용할 인터페이스의 이름입니다. |
| source-port | 아웃바운드 소켓의 소스 포트로 사용할 포트 번호입니다. |
A.9. 기본 소켓 바인딩 그룹 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에는 각 소켓 바인딩 그룹의 기본 소켓 바인딩이 표시되어 있습니다.
| 소켓 바인딩 | 포트 | 설명 |
|---|---|---|
| Cryostat | 8009 | Apache JServ Protocol. HTTP 클러스터링 및 로드 밸런싱에 사용됩니다. |
| http | 8080 | 배포된 웹 애플리케이션의 기본 포트입니다. |
| https | 8443 | 배포된 웹 애플리케이션과 클라이언트 간의 SSL 암호화 연결. |
| management-http | 9990 | 관리 계층과의 HTTP 통신에 사용됩니다. |
| management-https | 9993 | 관리 계층과의 HTTPS 통신에 사용됩니다. |
| TXN-recovery-environment | 4712 | Jakarta 트랜잭션 복구 관리자입니다. |
| txn-status-manager | 4713 | Jakarta 트랜잭션 / JTS 트랜잭션 관리자입니다. |
| 소켓 바인딩 | 포트 | 멀티 캐스트 포트 | 설명 |
|---|---|---|---|
| Cryostat | 8009 | Apache JServ Protocol. HTTP 클러스터링 및 로드 밸런싱에 사용됩니다. | |
| http | 8080 | 배포된 웹 애플리케이션의 기본 포트입니다. | |
| https | 8443 | 배포된 웹 애플리케이션과 클라이언트 간의 SSL 암호화 연결. | |
| jgroups-mping | 45700 | 멀티 캐스트. HA 클러스터에서 초기 멤버십을 검색하는 데 사용됩니다. | |
| jgroups-tcp | 7600 | TCP를 사용하는 HA 클러스터에서 유니캐스트 피어 검색. | |
| jgroups-udp | 55200 | 45688 | UDP를 사용하는 HA 클러스터에서 멀티 캐스트 피어 검색. |
| management-http | 9990 | 관리 계층과의 HTTP 통신에 사용됩니다. | |
| management-https | 9993 | 관리 계층과의 HTTPS 통신에 사용됩니다. | |
| modcluster | 23364 | JBoss EAP와 HTTP 로드 밸런서 간의 통신을 위한 멀티 캐스트 포트입니다. | |
| TXN-recovery-environment | 4712 | Jakarta 트랜잭션 복구 관리자입니다. | |
| txn-status-manager | 4713 | Jakarta 트랜잭션 / JTS 트랜잭션 관리자입니다. |
| 소켓 바인딩 | 포트 | 설명 |
|---|---|---|
| Cryostat | 8009 | Apache JServ Protocol. HTTP 클러스터링 및 로드 밸런싱에 사용됩니다. |
| http | 8080 | 배포된 웹 애플리케이션의 기본 포트입니다. |
| https | 8443 | 배포된 웹 애플리케이션과 클라이언트 간의 SSL 암호화 연결. |
| IIOP | 3528 | JTS 트랜잭션 및 기타 ORB 종속 서비스를 위한 CORBA 서비스. |
| iiop-ssl | 3529 | SSL 암호화 CORBA 서비스. |
| management-http | 9990 | 관리 계층과의 HTTP 통신에 사용됩니다. |
| management-https | 9993 | 관리 계층과의 HTTPS 통신에 사용됩니다. |
| TXN-recovery-environment | 4712 | Jakarta 트랜잭션 복구 관리자입니다. |
| txn-status-manager | 4713 | Jakarta 트랜잭션 / JTS 트랜잭션 관리자입니다. |
| 이름 | 포트 | 멀티 캐스트 포트 | 설명 |
|---|---|---|---|
| Cryostat | 8009 | Apache JServ Protocol. HTTP 클러스터링 및 로드 밸런싱에 사용됩니다. | |
| http | 8080 | 배포된 웹 애플리케이션의 기본 포트입니다. | |
| https | 8443 | 배포된 웹 애플리케이션과 클라이언트 간의 SSL 암호화 연결. | |
| IIOP | 3528 | JTS 트랜잭션 및 기타 ORB 종속 서비스를 위한 CORBA 서비스. | |
| iiop-ssl | 3529 | SSL 암호화 CORBA 서비스. | |
| jgroups-mping | 45700 | 멀티 캐스트. HA 클러스터에서 초기 멤버십을 검색하는 데 사용됩니다. | |
| jgroups-tcp | 7600 | TCP를 사용하는 HA 클러스터에서 유니캐스트 피어 검색. | |
| jgroups-udp | 55200 | 45688 | UDP를 사용하는 HA 클러스터에서 멀티 캐스트 피어 검색. |
| management-http | 9990 | 관리 계층과의 HTTP 통신에 사용됩니다. | |
| management-https | 9993 | 관리 계층과의 HTTPS 통신에 사용됩니다. | |
| modcluster | 23364 | JBoss EAP와 HTTP 로드 밸런서 간의 통신을 위한 멀티 캐스트 포트입니다. | |
| TXN-recovery-environment | 4712 | Jakarta 트랜잭션 복구 관리자입니다. | |
| txn-status-manager | 4713 | Jakarta 트랜잭션 / JTS 트랜잭션 관리자입니다. |
| 이름 | 포트 | 멀티 캐스트 포트 | 설명 |
|---|---|---|---|
| http | 8080 | 배포된 웹 애플리케이션의 기본 포트입니다. | |
| https | 8443 | 배포된 웹 애플리케이션과 클라이언트 간의 SSL 암호화 연결. | |
| management-http | 9990 | 관리 계층과의 HTTP 통신에 사용됩니다. | |
| management-https | 9993 | 관리 계층과의 HTTPS 통신에 사용됩니다. | |
| mcmp-management | 8090 | 라이프사이클 이벤트를 전송하기 위해 MCMP(Mod-Cluster Management Protocol) 연결의 포트입니다. | |
| modcluster | 23364 | JBoss EAP와 HTTP 로드 밸런서 간의 통신을 위한 멀티 캐스트 포트입니다. |
A.10. 모듈 명령 인수 링크 복사링크가 클립보드에 복사되었습니다!
다음 인수를 모듈 add management CLI 명령에 전달할 수 있습니다.
| 인수 | 설명 |
|---|---|
| --absolute-resources |
이 인수를 사용하여
구분 기호 세부 정보는 |
| --allow-nonexistent-resources |
이 인수를 사용하여 |
| --dependencies | 이 인수를 사용하여 이 모듈이 사용하는 쉼표로 구분된 모듈 이름 목록을 제공합니다. |
| --export-dependencies | 내보낸 종속 항목을 지정하려면 이 인수를 사용합니다. module add --name=com.mysql --resources=/path/to/mysql-connector-j-8.0.33.jar --export-dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
참고 MySQL 드라이버 JAR 이름 mysql-connector-j-8.0.33.jar는 예제로만 제공됩니다. 테스트된 MySQL 버전에 대한 자세한 내용은 테스트 된 데이터베이스 를 참조하십시오. |
| --main-class | 이 인수를 사용하여 모듈의 main 메서드를 선언하는 정규화된 클래스 이름을 지정합니다. |
| --module-root-dir |
기본EAP module add --module-root-dir=/path/to/my-external-modules/ --name=com.mysql --resources=/path/to/mysql-connector-j-8.0.33.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
참고 MySQL 드라이버 JAR 이름 mysql-connector-j-8.0.33.jar는 예제로만 제공됩니다. 테스트된 MySQL 버전에 대한 자세한 내용은 테스트 된 데이터베이스 를 참조하십시오. |
| --module-xml |
이 인수를 사용하여 이 새 모듈에 사용할 |
| --name | 이 인수를 사용하여 추가할 모듈의 이름을 제공합니다. 이 인수가 필요합니다. |
| --properties |
이 인수를 사용하여 모듈 속성을 정의하는 쉼표로 구분된 |
| --resource-delimiter |
이 인수를 사용하여 |
| --resources |
파일 시스템 경로 목록을 제공하여 이 모듈의 리소스를 지정하려면 이 인수를 사용합니다. 파일은 이 모듈 디렉터리에 복사되고 해당
구분 기호 세부 정보는 |
| --slot |
기본 module add --name=com.mysql --slot=8.0 --resources=/path/to/mysql-connector-j-8.0.33.jar --dependencies=wildflyee.api,java.se,java.xml,java.xml.crypto,jdk.xml.dom,jakarta.transaction.api
참고 MySQL 드라이버 JAR 이름 mysql-connector-j-8.0.33.jar는 예제로만 제공됩니다. 테스트된 MySQL 버전에 대한 자세한 내용은 테스트 된 데이터베이스 를 참조하십시오. |
A.11. 배포 스캐너 마커 파일 링크 복사링크가 클립보드에 복사되었습니다!
마커 파일은 배포 스캐너에서 JBoss EAP 서버 인스턴스의 배포 디렉터리 내에서 애플리케이션 상태를 표시하는 데 사용됩니다. 마커 파일의 이름은 배포 이름과 같으며 파일 접미사는 애플리케이션 배포 상태를 나타냅니다.
예를 들어 test-application.war 를 성공적으로 배포하면 test-application.war.deployed 라는 마커 파일이 있습니다.
다음 표에는 사용 가능한 마커 파일 유형과 해당 의미가 나열되어 있습니다.
| 파일 이름 Suffix | origin | 설명 |
|---|---|---|
| .deployed | 시스템 생성 | 콘텐츠가 배포되었음을 나타냅니다. 이 파일이 삭제되면 콘텐츠가 배포 취소됩니다. |
| .dodeploy | 사용자 생성 | 콘텐츠를 배포하거나 재배포해야 함을 나타냅니다. |
| .failed | 시스템 생성 | 배포 실패를 나타냅니다. 마커 파일에는 오류 원인에 대한 정보가 포함되어 있습니다. 마커 파일이 삭제되면 콘텐츠가 다시 자동 배포될 수 있습니다. |
| .isdeploying | 시스템 생성 | 배포가 진행 중임을 나타냅니다. 이 마커 파일은 완료되면 삭제됩니다. |
| .isundeploying | 시스템 생성 |
|
| .pending | 시스템 생성 | 배포 스캐너가 콘텐츠를 배포할 필요성을 인식하지만 현재 문제는 자동 배포가 방지됩니다(예: 콘텐츠가 복사 중인 프로세스인 경우). 이 마커는 글로벌 배포 로드맵 블록 역할을 합니다. 즉, 스캐너는 이 마커 파일이 존재하는 동안 콘텐츠를 배포하거나 배포 취소하도록 지시하지 않습니다. |
| .skipdeploy | 사용자 생성 | 존재하는 동안 애플리케이션의 자동 배포를 비활성화합니다. 부끄러운 콘텐츠의 자동 배포를 일시적으로 차단하는 방법으로서 불완전한 콘텐츠 편집 위험을 방지할 수 있습니다. 압축된 콘텐츠와 함께 사용할 수 있지만 스캐너가 진행 중인 콘텐츠를 감지하여 압축된 콘텐츠가 변경되고 완료될 때까지 대기합니다. |
| .undeployed | 시스템 생성 | 콘텐츠가 배포 취소되었음을 나타냅니다. 이 마커 파일을 삭제해도 콘텐츠 재배포에는 영향을 미치지 않습니다. |
A.12. 배포 스캐너 속성 링크 복사링크가 클립보드에 복사되었습니다!
배포 스캐너에는 다음과 같은 구성 가능한 속성이 포함되어 있습니다.
이 표의 특성 이름은 관리 모델에 표시되는 대로 나열됩니다(예: 관리 CLI 사용). 관리 모델과 차이가 있을 수 있으므로 EAP_HOME/docs/schema/jboss-as-deployment-scanner_2_0.xsd 에 있는 스키마 정의 파일을 참조하십시오.
| 이름 | 기본 | 설명 |
|---|---|---|
| auto-deploy-exploded | false |
|
| auto-deploy-xml | true |
|
| auto-deploy-zipped | true |
|
| deployment-timeout | 600 | 배포 스캐너가 취소되기 전에 배포 시도를 허용하는 시간(초)입니다. |
| path | 배포 |
검사할 실제 파일 시스템 경로입니다. |
| relative-to | jboss.server.base.dir | 서버 구성에서 경로로 정의된 파일 시스템 경로에 대한 참조입니다. |
| runtime-failure-causes-rollback | false | 런타임 배포 실패 여부에 관계없이 검사 작업의 일부로 배포 롤백 및 기타 모든(비관계되지 않은) 배포가 발생할 수 있습니다. |
| scan-enabled | true |
스캔 |
| scan-interval | 5000 |
리포지토리의 변경 사항을 스캔해야 하는 시간 간격(밀리초)입니다. 값이 |
A.13. 관리형 도메인 JVM 구성 속성 링크 복사링크가 클립보드에 복사되었습니다!
호스트, 서버 그룹 또는 서버 수준에서 관리형 도메인에 대해 다음 JVM(Java Virtual Machine) 구성 옵션을 설정할 수 있습니다. 이러한 속성 중 일부에 유효한 값은 JVM에 따라 다릅니다. 자세한 내용은 JDK 벤더 설명서를 참조하십시오.
이 표의 특성 이름은 관리 모델에 표시되는 대로 나열됩니다(예: 관리 CLI 사용). 관리 모델의 차이가 있을 수 있으므로 EAP_HOME/docs/schema/wildfly-config_20_0.xsd 에 있는 스키마 정의 파일을 참조하십시오.
| 속성 | 설명 |
|---|---|
| agent-lib |
Java 에이전트 라이브러리를 지정하는 |
| agent-path |
Java 에이전트 경로를 지정하는 |
| debug-enabled |