ID evento 84 si verifica in Active Directory Rights Management Services (AD RMS) in Windows Server

Sintomi

In un computer basato su Windows Server con Active Directory Rights Management Services (AD RMS) installato, viene visualizzato il seguente evento:

Nome registro: applicazione Origine: Active Directory Rights Management Services Data: Data e ora ID evento: 84 Categoria di attività: certificazione Livello: errore Parole chiave: classico Utente: n/d Computer: ipc01.treyresearch.net Descrizione: Questo cluster di Active Directory Rights Management Services (AD RMS) non può eseguire un'operazione su uno dei database AD RMS. Assicurarsi che tutti i database AD RMS funzionino correttamente in rete e che l'account del servizio AD RMS dispone di autorizzazioni lettura e scrittura per i database.   Parametro di riferimento Contesto: Pipeline[ComponentBase.LogResults] ID richiesta: RequestID HelpLink.ProdName: Microsoft SQL Server HelpLink.ProdVer: 10.50.4000 HelpLink.EvtSrc: MSSQLServer HelpLink.EvtID: 8115 HelpLink.BaseHelpUrl: http://go.microsoft.com/fwlink HelpLink.LinkId: 20476 SqlError-1.Class: 0 SqlError-0.State: 1 SqlError-1.Server: sql01.treyresearch.net,1441 SqlError-0.Message: errore di overflow aritmetico la conversione di identità in dati di tipo smallint. SqlError-1.Number: 3606 SqlError-0.Number: 8115 SqlError-1.Message: si è verificato un overflow aritmetico. SqlError-1.State: 0 SqlError-0.Server: sql01.treyresearch.net,1441 SqlError-0.Class: 16   Microsoft.RightsManagementServices.LowSeveritySqlException         Messaggio: Il motore di Database ha generato questa eccezione in risposta a un errore che può essere corretti dall'utente, ad esempio un oggetto di database mancante o entità incoerenza nei dati possibili, deadlock di transazione, problemi di impostazione di protezione o errore di sintassi di comando SQL.  Esaminare i dettagli SqlError per ulteriori informazioni.         HelpLink.ProdName: Microsoft SQL Server         HelpLink.ProdVer: 10.50.4000         HelpLink.EvtSrc: MSSQLServer         HelpLink.EvtID: 8115         HelpLink.BaseHelpUrl: http://go.microsoft.com/fwlink         HelpLink.LinkId: 20476         Contesto: ComponentBase.LogResults         SqlError-1.Class: 0         SqlError-0.State: 1         SqlError-1.Server: sql01.treyresearch.net,1441         SqlError-0.Message: errore di overflow aritmetico la conversione di identità in dati di tipo smallint.         SqlError-1.Number: 3606         SqlError-0.Number: 8115         SqlError-1.Message: si è verificato un overflow aritmetico.         SqlError-1.State: 0         SqlError-0.Server: sql01.treyresearch.net,1441         SqlError-0.Class: 16   + System.Data.SqlClient.SqlException   + Messaggio: Errore di overflow aritmetico la conversione di identità in dati di tipo smallint. Si è verificato un overflow aritmetico.   + HelpLink.ProdName: Microsoft SQL Server   + HelpLink.ProdVer: 10.50.4000   + HelpLink.EvtSrc: MSSQLServer   + HelpLink.EvtID: 8115   + HelpLink.BaseHelpUrl: http://go.microsoft.com/fwlink   + HelpLink.LinkId: 20476   + Contesto: ComponentBase.LogResults

Causa

Questo problema si verifica perché il processo di registrazione AD RMS non registra un evento nel database di registrazione.

Esistono due tabelle nel database di registrazione che fanno riferimento a un valore di UserAgentId. Sia la tabella dbo. UserAgent e la tabella dbo. Le tabelle di richiesta di servizio hanno una colonna UserAgentId. Queste colonne sono che entrambi dati di tipo smallint. Non appena il valore di UserAgentId supera il valore massimo (~ 32.767), Impossibile aggiornare il database di registrazione. Quando una transazione non registra, RMS verrà eseguito il rollback della richiesta e genera un errore.

Ulteriori informazioni

Quando si richiede una licenza da AD RMS, i client stanno passando stringhe agente con le informazioni di base relative all'applicazione richiedente. La tabella dbo. Tabella UserAgent memorizza solo le stringhe agente univoco.

In origine, i client MSIPC passato solo nelle versioni del sistema operativo, applicazioni, MSIPC e architettura. La tabella in cui sono archiviate le stringhe mantiene solo le voci univoche. Tra la base di utenti non deve essere molte stringhe univoche.

MSIPC;version=1.0.2191.0;AppName=EXCEL.EXE;AppVersion=16.0.7369.2127;AppArch=x86;OSName=Windows;OSVersion=10.0.10586;OSArch=amd64

Un certo punto, il client MSIPC avviato tra l'ID processo (PID) per la stringa agente utente. In questo modo ogni stringa univoca.

MSIPC;version=1.0.2456.0;AppName=EXCEL.EXE;AppVersion=15.0.4919.1000;AppArch=x86;PID=13660;OSName=Windows;OSVersion=6.1.7601;OSA

Pertanto, la tabella che non avrebbero così molte stringhe univoche per l'archiviazione ha ora molte migliaia.

Soluzione alternativa

Per risolvere questo problema, disabilitare la registrazione su cluster AD RMS:

Disattivare la registrazione

Risoluzione

Per risolvere questo problema, modificare il tipo di dati delle colonne di tipo smallint in int (integer). A tale scopo, attenersi alla procedura seguente:

Nota: La registrazione di grandi un database (DB) può richiedere molto tempo per modificare e potrebbe causare problemi di prestazioni di SQL. Pertanto, si consiglia eseguire il backup dei database SQL dall'istanza SQL di produzione e ripristinarlo in un percorso di SQL non di produzione. Successivamente, è possibile eseguire la modifica di database sul percorso di SQL non di produzione e quindi sostituire la produzione DB.

  1. Eseguire il backup del database di registrazione RMS di Active Directory.

  2. Raccogliere le informazioni di SQL.

  • Il nome del database di registrazione AD RMS

  • Il nome della chiave Dbo.UserAgent

Informazioni SQL

     3. generare lo script (vedere il seguente codice di esempio).

Script di esempio

Nota:Modificare il nome del database e UserAgent tabella il valore della chiave per riflettere l'ambiente di destinazione.

/*******************************************************************************
 
 THIS TOOL AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, 
 EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED 
 WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
 
*******************************************************************************/
 
use [DRMS_Logging_ipc_treyresearch_net_443]
go
 
ALTER TABLE [dbo].[ServiceRequest] drop CONSTRAINT [FK_CLIENTINFOID_ServiceRequest_UserAgent]
GO
 
Alter table [dbo].[ServiceRequest] alter COLUMN [UserAgentId] int
GO
 
ALTER TABLE [dbo].[UserAgent] DROP CONSTRAINT [PK__UserAgen__UserAgentId]
GO
 
Alter table [dbo].[UserAgent] alter COLUMN [UserAgentId] int
GO
 
Alter table [dbo].[UserAgent]
    ADD PRIMARY KEY (UserAgentId)
GO
 
ALTER TABLE [dbo].[ServiceRequest]  WITH CHECK ADD  CONSTRAINT [FK_CLIENTINFOID_ServiceRequest_UserAgent] FOREIGN KEY([UserAgentId])
REFERENCES [dbo].[UserAgent] ([UserAgentId])
GO
 
ALTER TABLE [dbo].[ServiceRequest] CHECK CONSTRAINT [FK_CLIENTINFOID_ServiceRequest_UserAgent]
GO

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×