This topic applies only to the IBM Business Process Manager Advanced configuration.

사용자 지정 문제점 해결

권한 역할에 사용자 지정과 관련된 문제점을 해결하려면 다음 정보를 사용하십시오.

이 태스크 정보

기술 지원 검색 페이지에서도 추가 정보를 검색할 수 있습니다.

사용자가 프로세스, 범위 또는 활동 인스턴스를 관리하거나 모니터링할 수 없고 관리 태스크가 작성되지 않음
프로세스 관리가 시스템 관리자에게 제한된 경우 인스턴스 기반 관리를 사용할 수 없으며 프로세스, 범위 및 활동에 대한 모든 관리 조치가 BPESystemAdministrator 역할에 지정된 사용자에게 제한됩니다. 이 관리 모드에 대한 자세한 정보는 BPEL process에 대한 대체 관리 모델를 참조하십시오.
비즈니스 플로우 관리자를 대체 모드에서 실행하도록 전환한 경우, 다음 조치 중 하나를 수행해야 합니다.
  • 관리 조치를 수행하는 모든 사용자와 프로그램이 해당 역할의 사용자 ID를 사용 중인지 확인하십시오(예: BPESystemAdministrator 또는 BPESystemmonitor).
  • 대체 프로세스 관리 권한 부여 모드를 설정 해제하여 인스턴스 기반 관리를 복원하십시오. 설정 해제 방법은 BPEL 프로세스 관리 최적화에 설명되어 있습니다.
사용자 디렉토리 제공자 배치 중 오류
LDAP(Lightweight Directory Access Protocol) 사용자 디렉토리 제공자를 사용 중인 경우, 제공자 구성 매개변수 값이 올바르지 않아 배치에 실패합니다.
  • 필수 매개변수를 모두 설정했는지 확인하십시오.
  • baseDN 매개변수를 LDAP 디렉토리 트리의 Root로 설정하려면 빈 문자열을 지정하고 baseDN 매개변수를 두 개의 어포스트로피(') 문자('')로 설정하십시오. 큰따옴표(")를 사용하지 마십시오. baseDN 매개변수를 설정하지 않으면 배치 시 NullPointerException 예외가 발생합니다.
사용자 디렉토리의 항목이 작업 항목 지정에 반영되지 않음
사용자 조회에서 검색되는 최대 사용자 ID 수는 사용 중인 XSL 변환 파일에 정의된 Threshold 변수로 지정됩니다. LDAP 사용자 디렉토리 제공자에 사용된 샘플 XSL 변환 파일은 LDAPTransformation.xsl입니다.
  • For Linux operating systemFor UNIX operating systemLinux 및 UNIX 플랫폼에서 이 파일은 install-root/ProcessChoreographer/Staff에 있습니다.
  • For Windows operating systemWindows 플랫폼에서 이 파일은 install-root\ProcessChoreographer\Staff에 있습니다.
기본 Threshold1000000이므로, 기본적으로 임계값은 실질적으로 중요하지 않습니다. 충분한 고려 없이 이 값을 낮추지 마십시오.
  1. 새 사용자 디렉토리 제공자 구성을 작성하여 자체 XSL 파일 버전을 제공하십시오.
  2. 필요에 따라 XSL 파일의 다음 항목을 조정하십시오.
     <xsl:variable name="Threshold">1000000</xsl:variable>
사용자 디렉토리 변경사항이 작업 항목 지정에 즉시 반영되지 않음

Business Process Choreographer는 사용자 디렉토리(예: LDAP 서버)와 비교하여 평가한 사용자 지정 결과를 런타임 데이터베이스에 캐시합니다. 사용자 디렉토리가 변경되면 변경사항이 데이터베이스 캐시에 즉시 반영되지 않습니다.

다음과 같은 방법으로 캐시된 결과를 새로 고칠 수 있습니다.

  • 관리 콘솔을 사용하여 사용자 조회 결과를 새로 고칩니다. 중요한 변경사항이 있거나 거의 모든 사용자 조회에 대한 결과를 새로 고쳐야 하는 경우 이 방법을 사용하십시오.
  • 관리 스크립트를 사용하여 사용자 조회 결과를 새로 고칩니다. wsadmin 도구를 사용하여 관리 스크립트를 작성하거나 사용자 조회 결과 서브세트 또는 모두를 즉시 새로 고치려면 이 방법을 사용하십시오.
  • refresh 디먼을 사용하여 사용자 조회 결과를 새로 고칩니다. 만기된 모든 사용자 조회 결과를 정기적으로 자동 새로 고치기를 설정하려면 이 방법을 사용하십시오.
참고: 이러한 방법은 Group verb에 대한 사용자의 그룹 멤버십 연관을 새로 고칠 수 없습니다. 이 그룹 멤버십은 기본적으로 2시간 후에 만기되는 사용자의 로그인 세션(WebSphere® 보안 LTPA 토큰)에 캐시됩니다. 프로세스 탐색에 사용되는 프로세스 시작자 ID의 그룹 멤버십 목록은 새로 고쳐지지 않습니다.
태스크 또는 프로세스 인스턴스에 대한 예기치 못한 사용자 지정
태스크의 특정 역할에 대해 사용자 지정 기준을 정의하지 않거나 사용자 지정에 실패하거나 결과를 리턴하지 않으면 기본 사용자 지정이 수행됩니다. 이러한 기본값으로 인해 예기치 못한 사용자 권한 부여가 발생할 수 있습니다. 예를 들어, 프로세스 시작자가 프로세스 관리자 권한을 수신할 수 있습니다. 또한 종속 아티팩트가 많은 권한을 상속합니다. 예를 들어, 프로세스 관리자는 모든 인라인 태스크의 관리자도 될 수 있습니다.

다음 표는 각 상황에 적용되는 기본값을 설명합니다.

표 1. BPEL process에 대한 역할
BPEL process에 대한 역할 프로세스 모델에 역할이 정의되지 않은 경우... 프로세스 모델에 역할이 정의되었지만 사용자 지정에 실패하거나 올바른 결과를 리턴하지 않는 경우...
프로세스 관리자 프로세스 시작자가 프로세스 관리자가 됨 예외가 발생하며 프로세스가 시작되지 않음

EngineAdministratorCannotBeResolvedException

프로세스 독자 독자가 없음 독자가 없음
표 2. 인라인 사용자 태스크 및 에스컬레이션에 대한 역할
인라인 사용자 태스크 및 에스컬레이션에 대한 역할 태스크 모델에 역할이 정의되지 않은 경우... 태스크 모델에 역할이 정의되었지만 사용자 지정에 실패하거나 올바른 결과를 리턴하지 않는 경우...
태스크 관리자 상속만 적용됨 상속만 적용됨
태스크 잠재적 시작자. 호출 태스크에만 적용됨 모든 사용자가 잠재적 시작자가 됨 예외가 발생하며 프로세스가 시작되지 않음
태스크 잠재적 소유자 모든 사용자가 잠재적 소유자가 됨 관리자가 잠재적 소유자가 됨
태스크 편집자 편집자 없음 편집자 없음
태스크 독자 상속만 적용됨 상속만 적용됨
에스컬레이션 수신자 관리자가 에스컬레이션 수신자가 됨 관리자가 에스컬레이션 수신자가 됨
인라인 태스크에 적용되는 상속 규칙은 다음과 같습니다.
  • 프로세스 관리자는 모든 인라인 태스크, 서브태스크, 후속 태스크, 에스컬레이션의 관리자가 됩니다.
  • 프로세스 독자는 모든 인라인 태스크, 서브태스크, 후속 태스크, 에스컬레이션의 독자가 됩니다.
  • 태스크 관리자는 이러한 모든 태스크의 모든 서브태스크, 후속 태스크, 에스컬레이션의 관리자가 됩니다.
  • 태스크 독자는 이러한 모든 태스크의 모든 서브태스크, 후속 태스크, 에스컬레이션의 독자가 됩니다.
  • 태스크 역할의 구성원은 이 태스크의 에스컬레이션, 서브태스크, 후속 태스크의 독자가 됩니다.
  • 에스컬레이션 수신자는 에스컬레이션된 태스크의 독자가 됩니다.
표 3. 독립형 사용자 태스크 및 에스컬레이션에 대한 역할
독립형 사용자 태스크 및 에스컬레이션에 대한 역할 태스크 모델에 역할이 정의되지 않은 경우... 태스크 모델에 역할이 정의되어 있지만 사용자 지정에 실패하거나 올바른 결과를 리턴하지 않는 경우...
태스크 관리자 제안자가 관리자가 됨 태스크가 시작되지 않음
태스크 잠재적 인스턴스 작성자 모든 사용자가 잠재적 인스턴스 작성자가 됨 예외가 발생하며 태스크가 작성되지 않음
태스크 잠재적 시작자 제안자가 잠재적 시작자가 됨 예외가 발생하며 태스크가 시작되지 않음
잠재적 소유자 모든 사용자가 잠재적 소유자가 됨 관리자가 잠재적 소유자가 됨
편집자 편집자 없음 편집자 없음
독자 상속만 적용됨 상속만 적용됨
에스컬레이션 수신자 관리자가 에스컬레이션 수신자가 됨 관리자가 에스컬레이션 수신자가 됨
독립형 태스크에 적용되는 상속 규칙은 다음과 같습니다.
  • 태스크 관리자는 이러한 모든 태스크의 모든 서브태스크, 후속 태스크, 에스컬레이션의 관리자가 됩니다.
  • 태스크 독자는 이러한 모든 태스크의 모든 서브태스크, 후속 태스크, 에스컬레이션의 독자가 됩니다.
  • 태스크 역할의 구성원은 이 태스크의 에스컬레이션, 서브태스크, 후속 태스크의 독자가 됩니다.
  • 에스컬레이션 수신자는 에스컬레이션된 태스크의 독자가 됩니다.
참고: 비즈니스 플로우 관리자 API를 사용하여 메소드를 호출한 경우, BPESystemAdministrator 역할의 구성원은 관리자 권한을 가지며 BPESystemMonitor 역할의 구성원은 독자 권한을 가집니다.
참고: 사용자 태스크 관리자 API를 통해 메소드를 호출한 경우, TaskSystemAdministrator 역할의 구성원은 관리자 권한을 가지며 TaskSystemMonitor 역할의 구성원은 독자 권한을 가집니다.
중지된 사용자 태스크
다음 문제점이 하나 이상 발생하는 경우:
  • BPEL process가 정상적으로 탐색을 시작했더라도 사용자 태스크를 청구할 수 없습니다.
  • SystemOut.log 파일에는 CWWB0057I: 처리되지 않은 실패로 인해 'MyProcess' 프로세스의 'MyStaffActivity' 활동이 중지되었습니다...라는 메시지가 들어 있습니다.

이러한 문제점은 관리 보안을 사용할 수 없음을 표시합니다. 사용자 권한을 사용하는 사용자 태스크 및 프로세스는 보안을 사용할 수 있어야 하며 사용자 레지스트리가 구성되어 있어야 합니다. 다음 단계를 수행하십시오.

  1. 관리 보안을 사용할 수 있는지 확인하십시오. 관리 콘솔에서 보안 > 글로벌 보안으로 이동한 후 관리 보안 사용 선택란이 선택되어 있는지 확인하십시오.
  2. 사용자 레지스트리가 구성되어 있는지 확인하십시오. 관리 콘솔에서 보안 > 사용자 레지스트리로 이동한 후 활성 사용자 레지스트리 속성을 확인하십시오.
  3. 활동이 중지된 경우 활동을 다시 시작하십시오.
사용자 지정 관련 오류 및 경고 메시지
사용자 지정 중에 사용자 디렉토리에 액세스할 때 몇 가지 일반적인 오류가 발생할 수 있습니다. 이러한 오류에 대한 세부사항을 보려면 다음 추적 설정을 사용하여 추적을 사용할 수 있게 하십시오. com.ibm.bpe.*=all: com.ibm.task.*=all:com.ibm.ws.staffsupport.ws.*=all

경고 또는 오류 메시지를 통해 표시되는 일반적인 오류 상황은 다음과 같습니다.

  • trace.log 파일에서 Could not connect to LDAP server는 LDAP 서버에 대한 연결 실패를 나타냅니다. 네트워크 설정 및 사용 중인 사용자 디렉토리 제공자의 구성(특히, 제공자 URL)을 검사하고 LDAP 서버에 SSL 연결이 필요한지 검증하십시오.
  • System.out 또는 System.err 파일에서 javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: Element type "xsl:template" must be followed by either attribute specifications, ">" 또는 "/>"LDAPTransformation.xsl 파일을 읽을 수 없음을 나타냅니다. 사용자 지정 구성을 검사하고 구성된 XSLT 파일에서 오류를 확인하십시오.
  • trace.log 파일의 LDAP object not found. dn: uid=unknown,cn=users,dc=ibm,dc=com [LDAP: error code 32 - No Such Object]는 LDAP 입력 항목을 찾을 수 없음을 나타냅니다. 태스크 모델의 사용자 지정 기준(verb) 매개변수 및 LDAP 디렉토리 컨텐츠를 검사하여 태스크 모델에 불일치가 있는지 확인하십시오.
  • trace.log 파일에서 Requested attribute "uid" not found in: uid=test222,cn=users,dc=ibm,dc=com은 조회된 LDAP 오브젝트에서 속성을 찾을 수 없음을 나타냅니다. 태스크 모델의 사용자 지정 기준(verb) 매개변수 및 LDAP 디렉토리 컨텐츠를 검사하여 태스크 모델에 불일치가 있는지 확인하십시오.사용자 지정 구성의 XSLT 파일에 오류가 있는지도 확인하십시오.
사용자 지정 의사결정에 대한 추가 메시지 사용
사용자 정의 특성을 설정하여 SystemOut.log에 추가 메시지를 로그할 수 있습니다. 메시지는 다음 이벤트를 기록합니다.
  • 사용자 분석에서 태스크 역할의 사용자를 찾지 못한 경우 및 기본 사용자가 선택된 경우
  • VMM을 사용하는 경우, 지정된 엔티티 또는 특정 속성을 VMM 사용자 디렉토리에서 찾을 수 없을 때의 경고
  • 대체를 사용하는 경우, 사용자가 대체되었는지 여부에 대한 로그 의사결정
이러한 메시지는 SystemOut.log의 데이터 수를 크게 늘리므로 테스트 또는 디버깅 목적으로만 이러한 추가 메시지를 사용하십시오.
직원 진단 기능을 사용하려면 다음 단계를 수행하십시오.
  1. 관리 콘솔에서 서버 > 클러스터 > WebSphere Application Server 클러스터 > cluster_name클릭 후, 구성 탭의 Business Process Manager 섹션에서 Business Process Choreographer를 펼치고 Human Task Manager 클릭를 클릭하십시오.
  2. 구성 탭에서 Staff.Diagnosis 사용자 정의 특성 값을 다음 값 중 하나로 설정하십시오.
    off
    추가 사용자 지정 정보를 기록하지 않습니다.
    on
    추가 사용자 지정 정보를 항상 기록합니다.
    development_mode
    서버가 개발 모드에서 실행 중인 경우에만 추가 사용자 지정 정보를 기록합니다. 이는 기본값입니다.
  3. 서버를 다시 시작하십시오.

다음 메시지가 생성됩니다.

  • Core.StaffDiagMsgIsEnabled=CWTKE0057I: The output of people (staff) resolution diagnosis messages is enabled. 진단 기능을 사용할 수 있음을 표시합니다. 이 메시지는 사용자 태스크 관리자가 시작될 때 생성됩니다.
  • Core.EverybodyIsPotInstanceCreator=CWTKE0047I: Everybody is potential instance creator for task {0}. 잠재적 인스턴스 작성자를 정의하지 않아서 Everybody가 잠재적 인스턴스 작성자가 되었음을 표시합니다.
  • Core.OriginatorBecomesPotStarter=CWTKE0046I: Originator becomes potential starter of task {0}. 독립형 태스크에만 해당합니다. 잠재적 시작자를 정의하지 않았기 때문에 제안자가 잠재적 시작자가 되었음을 표시합니다.
  • Core.EverybodyIsPotentialStarter=CWTKE0045I: Everybody is potential starter of task {0}. 인라인 태스크에만 해당합니다. 잠재적 시작자를 정의하지 않았기 때문에 Everybody가 잠재적 시작자가 되었음을 표시합니다.
  • Core.OriginatorBecomesAdministrator=CWTKE0044I: Originator becomes administrator of task {0}. 관리자를 정의하지 않았기 때문에 제안자가 관리자가 되었음을 표시합니다.
  • Core.EscalationReceiverDoesNotExist=CWTKE0043W: Administrator(s) will be the escalation receiver(s) of the escalation {0}. 에스컬레이션 수신자의 사용자 분석이 실패했거나 빈 목록을 리턴해서 관리자가 에스컬레이션 수신자가 되었음을 표시합니다. 에스컬레이션 수신자를 정의하지 않은 경우 기본값은 Everybody이고, 추적 메시지가 작성됩니다.
  • Core.EverybodyIsPotentialOwner=CWTKE0014I: Everybody is potential owner of task {0}. 잠재적 소유자를 정의하지 않아서 Everybody가 잠재적 소유자가 되었음을 표시합니다.
  • Core.PotentialOwnerDoesNotExist=CWTKE0015W: Administrator(s) will be the potential owner(s) of the task {0}. 잠재적 소유자에 대한 직원 분석에 실패했거나 빈 목록을 리턴했기 때문에 관리자가 잠재적 소유자가 되었음을 표시합니다. 잠재적 소유자를 정의하지 않은 경우 기본값은 Everybody이고, 추적 메시지가 작성됩니다.
  • StaffPlugin.VMMEntityNotFound=CWWBS0457W: The VMM entity could not be found, received VMM message is ''{0}''. 지정된 VMM 엔티티(그룹 또는 사용자)를 사용자 디렉토리에서 찾을 수 없음과 이유을 표시합니다. 사용자 디렉토리에서 찾을 수 없는 사용자 또는 그룹은 사용자 분석 결과에 포함되지 않습니다.
  • StaffPlugin.VMMEntityAttributeNotFound=CWWBS0454W: VMM entity ''{0}'' has no attribute with name ''{1}'' of type ''{2}''. 사용자 디렉토리에서 VMM 항목(개인)을 검색할 때 지정된 속성이 없었음을 표시합니다. 사용자 이메일 주소를 찾을 수 없으면 사용자가 에스컬레이션에 대한 이메일 알림을 수신할 수 없습니다. 사용자 preferredLanguage가 없으면 기본 언어 설정이 사용됩니다. 읽을 때 대체 속성(isAbsent 또는 substitutes)이 없으면 속성을 초기화하려고 시도합니다. 쓰거나 업데이트할 때 대체 속성이 없으면 예외가 생성됩니다.
  • StaffPlugin.VMMResultIsEmpty=CWWBS0456W: The VMM invocation returned no requested result entities. VMM의 (가져오기 또는 검색) 호출이 엔티티를 리턴하지 않았음을 표시합니다. 사용자 분석 결과에 사용자가 포함되지 않습니다.
그룹 작업 항목 및 "Group" 사용자 지정 기준에 대한 문제
Group 사용자 지정 기준을 사용하는 경우 다음 상황이 발생할 수 있습니다.
  • 그룹 이름은 지정했으나 그룹 구성원에게 권한이 부여되지 않았습니다.
    • WebSphere 보안용 로컬 OS 레지스트리를 사용 중인 경우에는 축약 이름을 지정하고 LDAP 레지스트리를 사용 중인 경우에는 dn 그룹을 지정하십시오.
    • 그룹 이름에 대소문자를 구분하여 사용하십시오.

    WebSphere 보안에 대해 LDAP 사용자 레지스트리를 구성하고 권한에서 대소문자 구분 안 함 옵션을 선택한 경우에 이러한 상황이 발생할 수 있습니다. 그렇다면, 옵션을 선택 취소하거나 LDAP 그룹 dn을 모두 대문자로 지정하십시오.

  • 그룹 멤버십 변경사항이 권한에 즉시 반영되지 않습니다. 영향받는 사용자가 계속 로그온하고 있을 때 이런 상황이 발생할 수 있습니다. 사용자의 그룹 멤버십은 로그인 세션에 캐시되며, 기본적으로 2시간 후에 만기됩니다. 로그인 세션이 만기(기본값은 2시간)될 때까지 기다리거나 애플리케이션 서버를 다시 시작할 수 있습니다. 사용자 태스크 관리자가 제공한 새로 고치기 방법은 이 사용자 지정 기준에 적용되지 않습니다. 프로세스 시작자의 그룹 멤버십 목록은 새로 고쳐지지 않습니다.
저장된 사용자 지정 결과 정리
사용자 지정 결과는 데이터베이스에 저장됩니다. 모든 저장된 지정 결과는 사용자 지정 새로 고치기의 대상이 됩니다. 사용자 지정 결과 계산을 유도하는 태스크 인스턴스를 포함하는 태스크 템플리트가 삭제되면, 저장된 사용자 지정 결과도 삭제됩니다. 그러나 저장된 사용자 지정 결과를 사용 중인 태스크 인스턴스만 삭제되는 경우 저장된 사용자 지정 결과는 삭제되지 않습니다.
데이터베이스에 저장된 불필요한 사용자 지정 결과가 많지 않도록 하려면 태스크 템플리트 컨텍스트에서 다음 단계를 수행하십시오.
  1. 사용자 지정 기준 정의로 인해 공유 사용자 지정 결과가 발생하는지 비공유 사용자 지정 결과가 발생하는지 여부를 평가하십시오.
  2. 비공유 지정 결과가 발생하면 사용자 지정 결과 대신 정리 프로시저를 넣을 것을 고려하십시오. 예상한 태스크 인스턴스 수에 대한 정리 간격과 정리 간격당 비공유 사용자 지정 결과 수를 기초로 합니다. 스크립트 기반 정리 프로시저를 적용하는 방법에 대한 자세한 정보는 관리 스크립트를 사용하여 사용하지 않는 사용자 조회 결과 제거를 참조하십시오.
조정된 XSL 변환 파일이 아무런 영향을 주지 않음
XSL 변환 파일을 조정하는 경우, 서버를 다시 시작해야 변경사항이 적용됩니다. 또한 조정된 XSL 파일은 새로 배치된 프로세스 및 태스크에만 적용됩니다. XSL 파일이 변경되기 전에 배치된 프로세스 및 태스크에는 변경사항이 적용되지 않습니다.