Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Windows Server'da Active Directory Rights Management Services'ta (AD RMS) olay kimliği 84'ün günlüğe kaydedilmesi sorununu düzeltmeye yönelik yardım sağlanır.
Özgün KB numarası: 4038927
Belirtiler
Active Directory Rights Management Services (AD RMS) yüklü olan Windows Server tabanlı bir bilgisayarda aşağıdaki olayı alırsınız:
Günlük Adı: Uygulama
Kaynak: Active Directory Rights Management Services
Tarih: Tarih/Saat
Olay Kimliği: 84
Görev Kategorisi: Sertifika
Düzey: Hata
Anahtar Sözcükler: Klasik
Kullanıcı: Yok
Bilgisayar:ipc01.treyresearch.net
Açıklama:
Bu Active Directory Rights Management Services (AD RMS) kümesi, AD RMS veritabanlarından birinde işlem gerçekleştiremez. Tüm AD RMS veritabanlarının ağda düzgün çalıştığından ve AD RMS hizmet hesabının veritabanlarında okuma ve yazma izinlerine sahip olduğundan emin olun.Parametre Başvurusu
Bağlam: Pipeline[ComponentBase.LogResults]
RequestId:RequestID
HelpLink.ProdName: Microsoft SQL Server
HelpLink.ProdVer: 10.50.4000
HelpLink.EvtSrc: MSSQLServer
HelpLink.EvtID: 8115
HelpLink.BaseHelpUrl:https://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: Kimlik smallint veri türüne dönüştürülürken aritmetik taşma hatası.
SqlError-1.Number: 3606
SqlError-0.Sayı: 8115
SqlError-1.Message: Aritmetik taşma oluştu.
SqlError-1.State: 0
SqlError-0.Server:sql01.treyresearch.net
,1441
SqlError-0.Class: 16Microsoft.RightsManagementServices.LowSeveritySqlException
İleti: Veritabanı Altyapısı, eksik veritabanı nesnesi veya varlığı, olası veri tutarsızlığı, işlem kilitlenmesi, güvenlik ayarı sorunları veya SQL komut söz dizimi hatası gibi kullanıcı tarafından düzeltilebilen bir hataya yanıt olarak bu özel durumu attı. Daha fazla bilgi için lütfen SqlError ayrıntılarını inceleyin.
HelpLink.ProdName: Microsoft SQL Server
HelpLink.ProdVer: 10.50.4000
HelpLink.EvtSrc: MSSQLServer
HelpLink.EvtID: 8115
HelpLink.BaseHelpUrl:https://go.microsoft.com/fwlink
HelpLink.LinkId: 20476
Bağlam: ComponentBase.LogResults
SqlError-1.Class: 0
SqlError-0.State: 1
SqlError-1.Server:sql01.treyresearch.net
,1441
SqlError-0.Message: Kimlik smallint veri türüne dönüştürülürken aritmetik taşma hatası.
SqlError-1.Number: 3606
SqlError-0.Sayı: 8115
SqlError-1.Message: Aritmetik taşma oluştu.
SqlError-1.State: 0
SqlError-0.Server:sql01.treyresearch.net
,1441
SqlError-0.Class: 16
+ System.Data.SqlClient.SqlException
+ İleti: Kimlik smallint veri türüne dönüştürülürken aritmetik taşma hatası. Aritmetik taşma oluştu.
+ HelpLink.ProdName: Microsoft SQL Server
+ HelpLink.ProdVer: 10.50.4000
+ HelpLink.EvtSrc: MSSQLServer
+ HelpLink.EvtID: 8115
+ HelpLink.BaseHelpUrl:https://go.microsoft.com/fwlink
+ HelpLink.LinkId: 20476
+ Bağlam: ComponentBase.LogResults
Neden
Bu sorun, AD RMS günlüğe kaydetme işleminin günlüğe kaydetme veritabanına bir olay kaydetmemesi nedeniyle oluşur.
Günlük veritabanında UserAgentId değerine başvuran iki tablo vardır. İkisi de dbo. UserAgent ve dbo. ServiceRequest tablolarının UserAgentId sütunu vardır. Bu sütunların her ikisi de smallint veri türündedir. UserAgentId değeri en yüksek değeri (~32.767) aştığı anda günlük veritabanı güncelleştirilemez. Bir işlem günlüğe kaydedilmediğinde, RMS isteği geri alır ve bir hata oluşturur.
Daha Fazla Bilgi
AD RMS'den lisans isterken istemciler, istekte bulunan uygulamayla ilgili temel bilgileri içeren aracı dizelerini geçirir. Şu dbo. UserAgent tablosu yalnızca benzersiz aracı dizelerini depolar.
Başlangıçta, MSIPC istemcileri işletim sistemi, uygulama, MSIPC ve mimari sürümlerini geçti. Dizelerin depolandığı tablo yalnızca benzersiz girdileri tutar. Kullanıcı tabanında çok fazla benzersiz dize olmamalıdır.
MSIPC;version=1.0.2191.0;AppName=EXCEL.EXE;AppVersion=16.0.7369.2127;AppArch=x86;OSName=Windows;OSVersion=10.0.10586;OSArch=amd64
Bir noktada MSIPC istemcisi, bu kullanıcı aracısı dizesine işlem kimliğini (PID) eklemeye başladı. Bu, her dizeyi benzersiz hale getirir.
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
Bu nedenle, depolamak için çok fazla benzersiz dizeye sahip olmaması gereken tabloda artık binlerce vardır.
Geçici çözüm
Bu sorunu geçici olarak çözmek için AD RMS kümesinde günlüğe kaydetmeyi devre dışı bırakın:
Çözüm
Bu sorunu çözmek için, sütunların veri türünü smallint yerine int (tamsayı) olarak değiştirin. Bunun için aşağıdaki adımları izleyin:
Not
Büyük bir günlük veritabanının (DB) değiştirilmesi uzun sürebilir ve SQL performans sorunlarına neden olabilir. Bu nedenle, SQL VERITABANıNı üretim SQL örneğinden yedeklemenizi ve üretim dışı bir SQL konumuna geri yüklemenizi öneririz. Bundan sonra, üretim dışı SQL konumunda veritabanı değişikliğini gerçekleştirebilir ve ardından üretim veritabanını değiştirebilirsiniz.
AD RMS günlük veritabanını yedekleyin.
SQL bilgilerini toplayın.
- AD RMS günlük veritabanı adı
- Dbo.UserAgent anahtar adı
Betiği oluşturun (aşağıdaki örneğe bakın).
Örnek betik
Not
Hedef ortamı yansıtacak şekilde veritabanı adını ve UserAgent tablo anahtarı değerini düzenleyin.
/*******************************************************************************
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