Liberty 집합체 문제점 해결

Liberty를 문제점 해결할 때 다수의 공통 문제가 발생할 수 있습니다. 이 문제는 일반적으로 집합체 제어기, 멤버 또는 호스트 시스템의 구성과 관련이 있습니다. 문제의 목록을 찾아보고 문제 해결 방법을 파악하십시오.

기타 문제에 대한 수정사항은 Liberty:런타임 환경의 알려진 문제점 및 제한사항의 내용을 참조하십시오.

REST 커넥터를 사용한 CLI, Jython 또는 MBean 연결과 관련된 문제

CWWKX0217E: 지정된 object_name에 현재 등록된 MBean이 없음
메시지:
Error: CWWKX0217E: No MBean is currently registered with the given ObjectName 'WebSphere:feature=collectiveController,type=CollectiveRegistration,name=CollectiveRegistration'
원인:

MBean이 아직 사용 가능하지 않을 수도 있습니다. 서버 로그를 검사하여 MBean이 이미 보고했는지 확인하십시오.

집합체 저장소가 실행 중이지 않을 수 있습니다. 집합체 저장소가 시작되었는지 확인하십시오.

대상이 집합체 제어기인 경우, 복제본 세트가 활성 상태인지 확인하십시오. 대부분의 집합체 제어기 복제본이 시작되지 않으면 이 메시지가 표시됩니다. 나머지 복제본을 시작하십시오.

서버 구성이 불완전할 수 있습니다. 서버가 제대로 구성되었는지 확인하십시오.

CWWKX0215E: 제공된 사용자 이름 또는 비밀번호에 문제가 있습니다.
메시지:
Error: CWWKX0215E: There was a problem with the user name or password provided.
The server responded with code 401 and message 'Unauthorized'
원인:

사용자 이름 및 비밀번호가 올바르지 않을 수 있습니다. 사용자 이름 및 비밀번호가 대상 서버에 대해 올바른지 확인하십시오.

사용자에게 관리자 역할이 부여되지 않을 수도 있습니다. 사용자에게 관리 역할이 부여되었는지 확인하거나 다른 사용자를 선택하십시오.

대상 서버에 대한 보안 구성이 불완전할 수 있습니다. 보안 구성이 정의되었으며 보안 서비스가 준비(CWWKS0008I)로 보고되는지 확인하십시오.

CWWKX8057I: 집합체 멤버가 집합체 제어기와 연결을 설정할 수 없습니다. 구성된 제어기: [host_name:port_number]
메시지:
CWWKX8057I: 집합체 멤버가 집합체 제어기와 연결을 설정할 수 없습니다. 구성된 제어기: [test.ibm.com:8889]
원인:

서버가 실행 중이 아닐 수 있습니다. 집합체 제어기 및 멤버 서버가 실행 중인지 확인하십시오.

서버가 실행 중인 경우에는 제어기 또는 멤버의 server.xml에 있는 SSL 구성이 최근에 변경되었는지 판별하십시오. 이 CWWKX8057I 메시지가 멤버에서 발생하는 경우에는 제어기의 SSL 구성이 올바르지 않을 가능성이 높습니다. 이 메시지가 제어기에서 발생하는 경우에는 멤버의 SSL 구성이 올바르지 않을 가능성이 높습니다. 이 문제점은 구성이 quickStartSecurity 요소를 사용하지 않는 경우 발생할 수 있습니다.

SSL 구성 관련 문제점을 수정하려면 server.xml 파일에서 다음 내용을 확인하십시오.

  1. 관리자 역할이 구성되었는지 확인하십시오. Liberty의 관리자 역할 맵핑quickStartSecurity 요소 설정을 기본 또는 LDAP 레지스트리의 요소 설정과 비교합니다.
  2. SSL 구성을 검토하고 필요에 따라 업데이트하십시오.
    1. 기본 SSL 구성을 확인하십시오. server.xml 파일에 기본 구성이 포함되어 있는지 확인하고 하나의 SSL 구성을 기본값으로 설정해야 할지 검토하려면 <sslDefault sslRef="LDAPSSLSettings"></sslDefault>를 찾아보십시오.

      <sslDefault sslRef="LDAPSSLSettings"></sslDefault> 구성이 필요하지 않은 경우에는 이를 제거하여 구성에 둘 이상의 SSL 구성이 있도록 하십시오(예: 한 구성은 집합체용, 다른 구성은 LDAP용).

      기본 구성이 필요한 경우에는 <sslDefault sslRef="LDAPSSLSettings"></sslDefault> 행을 유지하고 b 및 c단계로 진행하여 클라이언트 인증을 추가하고 기본 SSL 구성으로 인증서를 가져오십시오. Liberty에서 LDAP 사용자 레지스트리 구성을 확인하십시오.

    2. 클라이언트 인증을 사용으로 설정하십시오. 서버의 HTTPS 포트를 clientAuthenticationSupported="true로 구성하십시오.

      예를 들어, 보안에 LDAP SSL 기본값을 사용하는 집합체 제어기는 집합체 멤버와 상호작용하려면 ssl 요소에 clientAuthenticationSupported="true가 있어야 합니다.

    3. 필요한 인증서를 가져오십시오. keytool을 사용하여 인증서를 가져올 수 있습니다. 기본 신뢰 저장소는 collectiveTrust.jks의 인증서를 포함해야 합니다.
배경 정보:

기본적으로 <sslDefault sslRef>defaultSSLSettings를 가리킵니다. defaultSSLSettings 외의 다른 항목(예: <sslDefault sslRef="LDAPSSLSettings"/>)을 가리키도록 집합체 제어기 구성에 있는 <sslDefault sslRef>를 변경하면 구성에 clientAuthenticationSupported="true"가 있으며 Liberty 서버가 클라이언트 인증서가 있는 모든 SSL 피어를 신뢰하지 않는 한 CWWKX8057I 오류가 발생합니다.

HTTPS에 대한 SSL 설정은 집합체 인증서를 신뢰해야 합니다. clientAuthenticationSupported="true"가 없는, defaultSSLSettings가 아닌 다른 항목을 가리키도록 <sslDefault sslRef>를 변경하면 HTTPS 구성에서 defaultSSLSettings의 바인드가 해제될 수 있습니다. 집합체 SSL 설정은 기본 구성의 일부입니다.

자세한 정보는 Liberty의 관리자 역할 맵핑, Liberty에서 LDAP 사용자 레지스트리 구성기본값이 아닌 SSL 구성을 사용하도록 httpEndpoint 구성의 내용을 참조하십시오.

Error: Connection refused: connect
메시지:
Error: Connection refused: connect
원인:

호스트 및 포트가 올바르지 않을 수 있습니다. 호스트 및 포트가 대상 서버에 대해 올바른지 확인하십시오.

서버가 실행 중이 아닐 수도 있습니다. 서버가 실행 중인지 확인하십시오.

java.net.SocketException 오류
메시지:
java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)(possibly others...)
원인:

신뢰 저장소 및 신뢰 저장소 비밀번호가 올바르지 않을 수 있습니다. 신뢰 저장소 경로, 신뢰 저장소 비밀번호 및 신뢰 저장소의 컨텐츠가 올바른지 확인하십시오.

startstop 명령과 관련된 문제

원격으로 서버를 시작하거나 중지하여 Java를 찾을 수 없음 오류가 발생함
메시지:

서버를 원격으로 시작 또는 중지하면(예를 들어, ClusterManager.startCluster 또는 ServerCommands.startServer 사용) 다음 오류가 발생합니다.

{stderr=java: javaCmd 14: serverCmd 32: ./server 873: FSUM7351 not found, stdout=, returnCode=127}
솔루션:

멤버 서버에 JAVA_HOME 변수를 지정하는 server.env 파일이 필요합니다.

CTGRI0000E: 제공된 권한 신임을 가진 대상 시스템에 대한 연결을 설정할 수 없습니다.
메시지:
CTGRI0000E Could not establish a connection to the target machine with the authorization credentials that were provided.
원인:
사용자 이름 또는 비밀번호를 사용한 인증 실패:
  • 사용자 이름 및 비밀번호가 대상 서버의 server.xml <hostAuthConfig> 요소에서 올바른지 확인하십시오.
  • 집합체 updateHost 명령을 사용하여 호스트 인증 구성을 업데이트하십시오.
ssh 키를 사용한 인증 실패:
  • 다음에 대한 권한을 확인하십시오.
    • ~/.ssh0700이어야 합니다.
    • ~/.ssh/authorized_keys0600이어야 합니다.
  • SELinux를 사용하는 경우 ~/.ssh 및 모든 하위가 정확해야 합니다. restorecon -R을 사용하여 권한을 수정하십시오.
CTGRI0001E: 애플리케이션이 host_name에 대한 연결을 설정할 수 없습니다.
메시지:
{ExceptionMessage=ConnectException caught while performing stopCluster operation on member webp1a.ibm.com,/P1A/WebSphere_LP/usr,memberA1: java.net.ConnectException: 
CTGRI0001E The application could not establish a connection to webp1a.ibm.com., Exception=java.net.ConnectException: CTGRI0001E The application could not establish a connection to webp1a.ibm.com.}
원인:

ClusterManager.startCluster 또는 ServerCommands.startServer 등의 명령을 사용하여 원격으로 서버를 시작하거나 중지하면 오류가 발생할 수 있습니다.

메시지 CTGRI0001E는 메시지 CTGRI0026E와 함께 호스트에 대해 너무 많은 동시 SSH 연결이 작성되었음을 표시할 수 있습니다. 가능한 원인은 다음과 같습니다.
  • 자율 시스템(예: 스케일링 제어기)
  • SSH 디먼에 대한 최대 동시 비인증 연결 수를 초과하는 단일 호스트의 다수의 서버에서 ClusterManager.startCluster, ServerCommands.startServer 또는 기타 시스템 관리 명령 실행

솔루션:

RPC 메커니즘(예: SSH)이 시작되었는지 확인하십시오. 구성된 설정(예: 호스트 및 포트)이 올바른지도 확인하십시오.

사용자의 환경에서 SSH를 사용하는 경우에는 SSH 구성 파일에서 설정을 변경하십시오. SSH 구성 MaxStartups 설정의 동시 비인증 연결 수 기본값은 10개 입니다. SSH 구성 파일(/etc/ssh/sshd_config)에서 MaxStartups 설정을 변경하면 문제를 해결할 수 있습니다. MaxStartups 설정은 SSH 디먼에 대한 최대 동시 비인증 연결 수를 지정합니다. 연결에 대해 LoginGraceTime이 만료되거나 인증에 성공할 때까지 추가적인 연결은 삭제됩니다. 세 개의 콜론으로 구분된 값 start:rate:full(예: 10:30:60)을 지정하여 임의선택폐기(Random Early Drop)를 사용으로 설정할 수 있습니다. 현재 start(10) 비인증 연결이 있는 경우 sshd(8)는 rate/100(30%)의 확률로 연결 시도를 거부합니다. 이 확률은 연속적으로 증가하며 비인증 연결 수가 full(60)에 도달하면 모든 연결 시도가 거부됩니다. 다음의 샘플 SSH 구성 파일 설정은 MaxStartups와 연결 문제를 해소할 수 있는 기타 설정을 지정합니다.
ClientAliveInterval 60
ClientAliveCountMax 3
MaxSessions 100
MaxStartups 100:30:200
LoginGraceTime 180
SSH(Secure Shell) 프로토콜과 /etc/ssh/sshd_config 설정 변경에 대한 자세한 정보는 Liberty 집합체 조작에 대한 RXA 설정의 내용을 참조하십시오.
CTGRI0026E 지정된 제한시간 간격 동안 host_name에 대한 연결을 완료할 수 없습니다.
메시지:
CTGRI0026E A connection could not be completed to webp1a.ibm.com during the specified timeout interval.
원인:

호스트에 대한 동시 SSH 연결 수가 많으면 이 오류가 발생할 수 있습니다.

솔루션:

메시지 CTGRI0001E에 대한 솔루션을 참조하십시오.

CWWKX6027E: The collective controller initialization did not succeed. 소켓 바인드가 호스트 host_name 및 포트 port_number에 대해 성공하지 못했습니다. The port might already be in use or the host does not match the system configuration.
메시지:
CWWKX6027E: The collective controller initialization did not succeed. The socket bind did not succeed for host * and port 10,010. The port might already be in use or the host does not match the system configuration.
솔루션:

집합체 제어기 구성에서 지정된 호스트 값이 올바른지 확인하십시오. 예를 들어, 집합체 제어기가 myhost.com에 상주하는 경우에는 제어기의 server.xml 파일에서 호스트 값이 올바른지 확인하십시오.

<variable name="defaultHostName" value="myhost.com" />

예제 메시지에서는 호스트에 대해 별표(*)를 표시하여 호스트 값이 문제의 원인이 아니었음을 시사합니다. 문제의 원인은 포트 충돌일 수 있습니다.

메시지에 있는 포트 번호가 아직 사용되고 있지 않은지 확인하십시오. 집합체 제어기가 상주하는 호스트 컴퓨터의 명령행에서 netstat -a를 실행하여 포트 번호 목록과 연결의 상태를 확인하십시오. 포트 번호가 사용 중인 경우 목록에는 하나의 항목이 포함되어 있습니다(port 10,010의 경우 다음과 같음).

TCP 127.0.0.1:10010 myhost:0 LISTENING

이 포트 충돌을 수정하려면 집합체 제어기의 server.xml 파일에서 편집기를 연 후 컴퓨터에서 사용되고 있지 않은 포트 번호로 replicaPort를 설정하는 명령문을 추가하십시오. 다음과 같은 명령문이 replicaPort 값을 설정할 수 있습니다.

  • <collectiveController replicaPort="10011"/>
  • <collectiveController replicaHost="myhost.com" replicaPort="10011"/>
  • <collectiveController replicaPort="${prop.controller_1.replica}"/>

    bootstrap.properties 파일 또는 <variable name="name" value="value"/> XML 태그에서 포트 번호에 대한 변수(이 명령문에서는 이름이 prop.controller_1.replica이지만 사용자가 선택하는 임의의 변수 이름을 가질 수 있음)를 설정하십시오.

CWWKX7204E: 제공된 신임으로 호스트 host_name에 연결할 수 없습니다.
메시지:
localhost,C:/wlp,member1 stop operation resulted in an Exception: ConnectException caught while performing stopCluster operation on member localhost,C:/wlp,member1: java.net.ConnectException: 
CWWKX7204E: Cannot connect to host localhost with the credentials provided.
솔루션:

클러스터 멤버 인증 정보가 올바르게 설정되었고 모든 RXA(Remote Execution and Access) 요구사항이 만족되는지 확인하십시오. 다수의 RXA 조작을 사용하려면 표준 사용자 계정에서 일반적으로 액세스할 수 없는 자원에 대한 액세스가 필요합니다. Liberty 집합체 조작에 대한 RXA 설정을 확인하십시오.

집합체 관리가 포함된 문제

집합체 remove 명령이 집합체에서 자동 스케일링된 클러스터 멤버를 제거하지 않음
메시지:
Specified server Cluster1 was not found at location ${wlp.install.dir}/Cluster1.zip/wlp/usr
No collective resources were removed.
Specified userDir ${wlp.install.dir}/Cluster1.zip/wlp/usr was not found
솔루션:

표준 사례는 집합체에서 자동 스케일링된 클러스터 멤버를 수동으로 제거하지 않는 것입니다. 스케일링 제어기는 집합체를 자동으로 관리합니다. Liberty 탄력성을 위해 프로비전 가능한 클러스터 구성을 확인하십시오.

그러나 스케일링 제어기가 집합체에 추가한 클러스터 멤버를 제거해야 하는 경우 WLP_USER_DIRJAVA_HOME 환경 변수를 설정한 후 집합체 remove 명령을 실행하여 집합체에서 클러스터 멤버를 제거할 수 있습니다.

  1. WLP_USER_DIR을 제거하려는 자동 스케일링된 클러스터 멤버의 위치로 설정하십시오.
    export WLP_USER_DIR=/wlp.usr/defaultStackGroup.Cluster1/d16d298c-ea7f-4782-bef6-2e54fb80de20/Cluster1.zip/wlp/usr
  2. 자동 스케일링된 클러스터 멤버의 위치에서 Java를 실행할 수 없는 경우 Liberty 명령을 실행하여 클러스터 멤버를 제거할 수 있도록 JAVA_HOME을 설정하십시오.
    export JAVA_HOME=/wlp.jre/jre.18.zip/
  3. 클러스터 멤버를 중지하십시오.
    /wlp/wlp.855.zip/wlp/bin/server stop Cluster1
  4. collective remove 명령을 실행하여 집합체에서 클러스터 멤버를 제거하십시오.
    /wlp/wlp.855.zip/wlp/bin/collective remove Cluster1 --host=controllerHost --port=9443 --user=admin --password=password

    tagt_wlp_remove_member.html을 확인하십시오.


주제의 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwlp_collective_trouble
파일 이름: cwlp_collective_trouble.html