CMPivot 문제 해결
CMPivot은 사용자 환경에서 디바이스의 실시간 상태에 대한 액세스를 제공하는 도구입니다. CMPivot은 대상 컬렉션의 현재 연결된 모든 디바이스에서 쿼리를 실행하고 결과를 반환합니다.
경우에 따라 CMPivot 문제를 해결해야 할 수 있습니다. 예를 들어 클라이언트에서 CMPivot으로의 상태 메시지가 손상되면 사이트 서버에서 메시지를 처리할 수 없습니다. 이 문서는 CMPivot에 대한 정보의 흐름을 이해하는 데 도움이 됩니다.
버전 1902 이상에서 CMPivot 문제 해결
Configuration Manager 버전 1902 이상에서는 계층 구조의 CAS(중앙 관리 사이트)에서 CMPivot을 실행할 수 있습니다. 기본 사이트는 여전히 클라이언트에 대한 통신을 처리합니다.
CAS에서 CMPivot을 실행하면 고속 메시지 구독 채널을 사용하여 기본 사이트와 통신합니다. CMPivot은 사이트 간 표준 SQL Server 복제를 사용하지 않습니다. SQL Server 인스턴스 또는 SMS 공급자가 원격이거나 SQL Server Always On 가용성 그룹을 사용하는 경우 CMPivot에 대한 "이중 홉 시나리오"가 있습니다. "이중 홉 시나리오"에 대한 제한된 위임을 정의하는 방법에 대한 자세한 내용은 버전 1902부터 CMPivot을 참조하세요.
중요
CMPivot 문제를 해결할 때 관리 지점(MP) 및 사이트 서버의 SMS_MESSAGE_PROCESSING_ENGINE 자세한 정보 로깅을 사용하도록 설정하여 자세한 정보를 가져옵니다. 또한 클라이언트의 출력이 80KB보다 큰 경우 MP 및 사이트 서버의 SMS_STATE_SYSTEM 구성 요소에서 자세한 로깅을 사용하도록 설정합니다. 자세한 로깅을 사용하도록 설정하는 방법에 대한 자세한 내용은 사이트 서버 로깅 옵션을 참조하세요.
사이트 서버에서 정보 가져오기
기본적으로 사이트 서버 로그 파일은 에 있습니다 C:\Program Files\Microsoft Configuration Manager\logs
. 기본이 아닌 설치 디렉터리 또는 SMS 공급자와 같은 오프로드된 항목을 다른 서버에 지정한 경우 이 위치가 다를 수 있습니다. CAS에서 CMPivot을 실행하는 경우 로그는 기본 사이트 서버에 있습니다.
smsprov.log
다음 줄을 찾습니다.
Configuration Manager 버전 1906:
Auditing: User <username> initiated client operation 145 to collection <CollectionId>.
Configuration Manager 버전 1902:
Type parameter is 135. Auditing: User <username> ran script 7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14 with hash dc6c2ad05f1bfda88d880c54121c8b5cea6a394282425a88dd4d8714547dc4a2 on collection <CollectionId>.
7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14
는 CMPivot에 대한 Script-Guid. CMPivot 감사 상태 메시지에서도 이 GUID를 볼 수 있습니다.
다음으로 CMPivot 창에서 ID를 찾습니다. 이 ID는 입니다 ClientOperationID
.
TaskID
ClientAction 테이블에서 를 찾습니다. 는 TaskID
ClientAction 테이블의 에 해당 UniqueID
합니다.
select * from ClientAction where ClientOperationId=<id>
에서 BgbServer.log
SQL Server 수집한 를 찾아 TaskID
을 확인합니다PushID
. 에 TaskID
레이블이 지정됩니다 TaskGUID
. 예를 들면
Starting to send push task (PushID: 9 TaskID: 12 TaskGUID: 9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0 TaskType: 15 TaskParam: PFNjcmlwdENvbnRlbnQgU2NyaXB0R3VpZD0nN0RDNkI2RjEtRTdGNi00M0MxL (truncated log entry)
Finished sending push task (PushID: 9 TaskID: 12) to 2 clients
클라이언트 로그
사이트 서버의 정보가 있으면 클라이언트 로그를 확인합니다. 기본적으로 클라이언트 로그는 에 있습니다 C:\Windows\CCM\Logs
.
에서 CcmNotificationAgent.log
다음 줄과 같은 로그 항목을 찾습니다.
Receive task from server with pushid=9, taskid=12, taskguid=9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0, tasktype=15 and taskParam=PFNjcmlwdEhhc2ggU2NyaXB0SGF (truncated log entry)
Send Task response message <BgbResponseMessage TimeStamp="2019-09-13T17:29:09Z"><PushID>5</PushID><TaskID>4</TaskID><ReturnCode>1</ReturnCode></BgbResponseMessage> successfuly.
를 확인 Scripts.log
합니다 TaskID
. 다음 예제에서는 를 참조 Task ID
{9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}
하세요.
Sending script state message (fast): {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}
Result are sent for ScriptGuid: 7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14 and TaskID: {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}
참고
에 Scripts.log
"(fast)"가 표시되지 않으면 데이터가 80KB를 초과할 수 있습니다. 이 경우 정보는 상태 메시지로 사이트 서버로 전송됩니다. 클라이언트 StateMessage.log
및 사이트 서버의 Statesys.log
를 사용합니다.
사이트 서버에서 메시지 검토
관리 지점에서 자세한 로깅 을 사용하도록 설정하면 들어오는 클라이언트 메시지가 처리되는 방식을 확인할 수 있습니다. 에서 MP_RelayMsgMgr.log
를 찾습니다 TaskID
.
MP_RelayMsgMgr.log
이 예제에서는 클라이언트의 ID (GUID:83F67728-2E6D-4E4F-8075-ED035C31B783)
와 Task ID {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}
를 볼 수 있습니다. 메시지 ID는 메시지 처리 엔진으로 전송되기 전에 클라이언트의 응답에 할당됩니다.
MessageKey: GUID:83F67728-2E6D-4E4F-8075-ED035C31B783{9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}
Create message succeeded for message id 22f00adf-181e-4bad-b35e-d18912f39f89
Add message payload succeeded for message id 22f00adf-181e-4bad-b35e-d18912f39f89
Put message succeeded for message id 22f00adf-181e-4bad-b35e-d18912f39f89
CRelayMsgMgrHandler::HandleMessage(): ExecuteTask() succeeded
에서 자세한 로깅을 SMS_MESSAGE_PROCESSING_ENGINE.log
사용하도록 설정하면 클라이언트 결과가 처리됩니다. 에서 찾은 메시지 ID를 MP_RelayMsgMgr.log
사용합니다. 처리 로그 항목은 다음 예제와 유사합니다.
Processing 2 messages with type Instant and IDs 22f00adf-181e-4bad-b35e-d18912f39f89[19], 434d80ae-09d4-4d84-aebf-28a4a29a9852[20]...
Processed 2 messages with type Instant. Failed to process 0 messages. All message IDs 22f00adf-181e-4bad-b35e-d18912f39f89[19], 434d80ae-09d4-4d84-aebf-28a4a29a9852[20]
팁
처리하는 동안 예외가 발생하면 다음 SQL 쿼리를 실행하고 예외 열을 확인하여 검토할 수 있습니다. 메시지가 처리되면 더 이상 테이블에 표시되지 MPE_RequestMessages_Instant
않습니다.
select * from MPE_RequestMessages_Instant where MessageID=<ID from SMS_MESSAGE_PROCESSING_ENGINE.log>
에서 BgbServer.log
를 PushID
찾아 보고하거나 실패한 클라이언트 수를 확인합니다.
Generated BGB task status report c:\ConfigMgr\inboxes\bgb.box\Bgb5c1db.BTS at 09/16/2019 16:46:39. (PushID: 9 ReportedClients: 2 FailedClients: 0)
를 사용하여 SQL Server CMPivot에 대한 모니터링 보기를 확인합니다TaskID
.
select * from vSMS_CMPivotStatus where TaskID='{9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}'
1810년 이전의 CMPivot 문제 해결
Configuration Manager 버전 1810 이하에서는 사이트 서버가 클라이언트에 대한 통신을 처리합니다.
사이트 서버에서 정보 가져오기
기본적으로 사이트 서버 로그 파일은 에 있습니다 C:\Program Files\Microsoft Configuration Manager\logs
. 기본이 아닌 설치 디렉터리 또는 SMS 공급자와 같은 오프로드된 항목을 다른 서버에 지정한 경우 이 위치가 다를 수 있습니다.
smsprov.log
다음 줄을 찾습니다.
Auditing: User <username> initiated client operation 135 to collection <CollectionId>.
CMPivot 창에서 ID를 찾습니다. 이 ID는 입니다 ClientOperationID
.
TaskID
ClientAction 테이블에서 를 찾습니다. 는 TaskID
ClientAction 테이블의 에 해당 UniqueID
합니다.
select * from ClientAction where ClientOperationId=<id>
에서 BgbServer.log
SQL에서 수집한 를 찾 TaskID
습니다. 레이블이 로 지정됩니다 TaskGUID
. 예를 들면
Starting to send push task (PushID: 260 TaskID: 258 TaskGUID: F8C7C37F-B42B-4C0A-B050-2BB44DF1098A TaskType: 15
TaskParam: PFNjcmlwdEhhc2ggU2NyaXB0SGF...truncated...to 5 clients with throttling (strategy: 1 param: 42)
Finished sending push task (PushID: 260 TaskID: 258) to 5 clients
클라이언트 로그
사이트 서버의 정보가 있으면 클라이언트 로그를 확인합니다. 기본적으로 클라이언트 로그는 에 있습니다 C:\Windows\CCM\Logs
.
에서 CcmNotificationAgent.log
다음 항목과 유사한 로그를 찾습니다.
Error! Bookmark not defined.+PFNjcmlwdEhhc2ggU2NyaXB0SGFzaEFsZz0nU0hBMjU2Jz42YzZmNDY0OGYzZjU3M2MyNTQyNWZiNT
g2ZDVjYTIwNzRjNmViZmQ1NTg5MDZlMWI5NDRmYTEzNmFiMDE0ZGNjPC9TY3JpcHRIYXNoPjxTY3Jp (truncated log entry)
를 Scripts.log
찾습니다 TaskID
. 다음 예제에서는 를 참조 Task ID {F8C7C37F-B42B-4C0A-B050-2BB44DF1098A}
하세요.
Sending script state message: 7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14
State message: Task Id {F8C7C37F-B42B-4C0A-B050-2BB44DF1098A}
을 살펴보 StateMessage.log
십시오. 다음 예제에서는 이 옆에 있는 TaskID
메시지의 맨 아래에 있는 것을 볼 수 있습니다 <Param>
.
StateMessage body: <?xml version="1.0" encoding="UTF-16"?>
<Report><ReportHeader><Identification><Machine><ClientInstalled>1</ClientInstalled><ClientType>1
</ClientType><ClientID>GUID:DBAC52C9-57E6-47D7-A8D6-E0A5A64B57E6</ClientID><ClientVersion>5.00.8670.1000</ClientVersion>
<NetBIOSName>R613924</NetBIOSName><CodePage>437</CodePage>
<SystemDefaultLCID>1033</SystemDefaultLCID><Priority>0</Priority></Machine></Identification>
<ReportDetails><ReportContent>State Message Data</ReportContent><ReportType>Full</ReportType>
<Date>20180703184447.673000+000</Date><Version>1.0</Version><Format>1.0</Format>
</ReportDetails></ReportHeader><ReportBody><StateMessage MessageTime="20180703184447.517000+000"><Topic ID="7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14" Type="9003" IDType="0" User="" UserSID=""/><State ID="1" Criticality="0"/>
<StateDetails Type="1"><![CDATA["PAA/AHgAbQBsACAAdgBlAHIAcwBpAG8AbgA9ACIAMQAuADAAIgAgAGUAbgBjAG8AZABpAG4AZwA9ACIAdQB0AGYALQAxADYAIgA/AD4APAByAGUAcwB1AGwAdAAgAFIAZQBzAHUAbAB0AEMAbwBkAGUAPQAiADAAIgA+ADwAZQAgAE4AYQBtAGUAPQAiAEkAbgB0AGUAbAAoAFIAKQAgAFgAZQBvAG4AKABSACkAIABDAFAAVQAgAEUANQAtADIANgA3ADMAIAB2ADQAIABAACAAMgAuADMAMABHAEgAegAiACAATQBhAG4AdQBmAGEAYwB0AHUAcgBlAHIAPQAiAEEAbQBlAHIAaQBjAGEAbgAgAE0AZQBnAGEAdAByAGUAbgBkAHMAIABJAG4AYwAuACIAIABWAGUAcgBzAGkAbwBuAD0AIgBWAFIAVABVAEEATAAgAC0AIAA2ADAAMAAxADcAMAAyACIAIABSAGUAbABlAGEAcwBlAEQAYQB0AGUAPQAiADIAMAAxADcALQAwADYALQAwADIAIAAwADAAOgAwADAAOgAwADAAIgAgAFMAZQByAGkAYQBsAE4AdQBtAGIAZQByAD0AIgAwADAAMAAwAC0AMAAwADEAOAAtADMANgA4ADIALQA0ADcAMAA4AC0ANwA2ADQAMAAtADcANgAwADAALQAzADMAIgAgAFMATQBCAEkATwBTAEIASQBPAFMAVgBlAHIAcwBpAG8AbgA9ACIAMAA5ADAAMAAwADcAIAAiACAALwA+ADwALwByAGUAcwB1AGwAdAA+AA=="~~]]></StateDetails><UserParameters Flags="0" Count="2">
<Param>{F8C7C37F-B42B-4C0A-B050-2BB44DF1098A}</Param><Param>0</Param></UserParameters></StateMessage></ReportBody></Report>
Successfully forwarded State Messages to the MP StateMessage 7/3/2018 11:44:47 AM 5036 (0x13AC)
사이트 서버에서 메시지 검토
메시지를 받고 처리하는지 확인하려면 을 엽니다 statesys.log
. 다음 예제에서는 옆에 <Param>
있는 메시지 아래쪽 근처에 표시됩니다TaskID
. SMS_STATE_SYSTEM 구성 요소에서 자세한 로깅 을 사용하도록 설정하여 이러한 로그 항목을 확인합니다.
CMessageProcessor - the cmdline to DB exec dbo.spProcessStateReport N'?<?xml version="1.0" encoding="UTF-
16"?>~~<Report><ReportHeader><Identification><Machine><ClientInstalled>1</ClientInstalled><ClientType>1
</ClientType><ClientID>GUID:DBAC52C9-57E6-47D7-A8D6-E0A5A64B57E6</ClientID><ClientVersion>5.00.8670.1000</ClientVersion>
<NetBIOSName>R613924</NetBIOSName><CodePage>437</CodePage>
<SystemDefaultLCID>1033</SystemDefaultLCID><Priority>0</Priority></Machine></Identification>
<ReportDetails><ReportContent>State Message Data</ReportContent><ReportType>Full</ReportType>
<Date>20180703184447.673000+000</Date><Version>1.0</Version><Format>1.0</Format>
</ReportDetails></ReportHeader><ReportBody><StateMessage MessageTime="20180703184447.517000+000"><Topic ID="7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14" Type="9003" IDType="0" User="" UserSID=""/><State ID="1" Criticality="0"/>
<StateDetails Type="1"><![CDATA["PAA/AHgAbQBsACAAdgBlAHIAcwBpAG8AbgA9ACIAMQAuADAAIgAgAGUAbgBjAG8AZABpAG4AZwA9ACIAdQB0AGYALQAxADYAIgA/AD4APAByAGUAcwB1AGwAdAAgAFIAZQBzAHUAbAB0AEMAbwBkAGUAPQAiADAAIgA+ADwAZQAgAE4AYQBtAGUAPQAiAEkAbgB0AGUAbAAoAFIAKQAgAFgAZQBvAG4AKABSACkAIABDAFAAVQAgAEUANQAtADIANgA3ADMAIAB2ADQAIABAACAAMgAuADMAMABHAEgAegAiACAATQBhAG4AdQBmAGEAYwB0AHUAcgBlAHIAPQAiAEEAbQBlAHIAaQBjAGEAbgAgAE0AZQBnAGEAdAByAGUAbgBkAHMAIABJAG4AYwAuACIAIABWAGUAcgBzAGkAbwBuAD0AIgBWAFIAVABVAEEATAAgAC0AIAA2ADAAMAAxADcAMAAyACIAIABSAGUAbABlAGEAcwBlAEQAYQB0AGUAPQAiADIAMAAxADcALQAwADYALQAwADIAIAAwADAAOgAwADAAOgAwADAAIgAgAFMAZQByAGkAYQBsAE4AdQBtAGIAZQByAD0AIgAwADAAMAAwAC0AMAAwADEAOAAtADMANgA4ADIALQA0ADcAMAA4AC0ANwA2ADQAMAAtADcANgAwADAALQAzADMAIgAgAFMATQBCAEkATwBTAEIASQBPAFMAVgBlAHIAcwBpAG8AbgA9ACIAMAA5ADAAMAAwADcAIAAiACAALwA+ADwALwByAGUAcwB1AGwAdAA+AA=="~~]]></StateDetails><UserParameters Flags="0" Count="2">
<Param>{F8C7C37F-B42B-4C0A-B050-2BB44DF1098A}</Param><Param>0</Param></UserParameters></StateMessage></ReportBody></Report>~~'
메시지가 처리되지 않은 경우 상태 메시지 받은 편지함을 선택합니다. 기본 받은 편지함 위치는 입니다 C:\Program Files\Microsoft Configuration Manager\inboxes\auth\statesys.box\
. 다음 위치에서 파일을 찾습니다.
- 들어오는
- 손상
- 프로세스
를 사용하여 다음 SQL 쿼리를 통해 CMPivot에 대한 모니터링 보기를 확인합니다 TaskID
.
select * from vSMS_CMPivotStatus where TaskID='{F8C7C37F-B42B-4C0A-B050-2BB44DF1098A}'
참고
버전 1810 이상을 사용하는 클라이언트의 경우 출력이 80KB보다 크지 않으면 상태 메시징이 사용되지 않습니다. 이러한 경우 CMPivot 문제를 해결할 때 의원 및 사이트 서버의 SMS_MESSAGE_PROCESSING_ENGINE 자세한 정보 로깅을 사용하도록 설정할 때 자세한 정보를 얻을 수 있습니다. 자세한 로깅을 사용하도록 설정하는 방법에 대한 자세한 내용은 사이트 서버 로깅 옵션을 참조하세요.
문제를 해결하려면 다음 로그를 참조하세요.
MP_Relay.log
SMS_MESSAGE_PROCESSING_ENGINE.log
다음 단계
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기