適用対象: Configuration Manager
概要
Microsoft ODBC Driver for Microsoft SQL Server をバージョン 18.6.1.1 に更新すると、Configuration Manager サイトのインストールが失敗し、クライアント通知機能が動作しなくなる可能性があります。 この記事では、これらの問題に関する情報を提供し、永続的な修正プログラムが利用可能になるまでそれらを回避する方法について説明します。
症状
Windows バージョン 18.6.1.1 に Microsoft ODBC Driver for SQL Server をインストールすると、次の現象が発生します。
現象 1: 新しい ConfigMgr サイトをインストールできない
新しい ConfigMgr サイトをインストールしようとすると、操作が失敗します。 ConfigMgrSetup.log ファイルは、次の例のようなエラーを報告します。
INFO: Database watermark:
ERROR: Failed parsing the watermark from the database: 80070057.
INFO: Could not retrieve and process both watermarks, will import all tables from disk.
INFO: On disk watermark is newer than the one in the database. All tables will be imported.
INFO: Starting data import data to table: LU_LicensedProduct
*** MERGE [dbo].[LU_LicensedProduct] AS TARGET ~ using (select [LicensedProductID], [ProductPool], [ProductName], ~ [FamilyName], [VersionSequence], [VersionCode], ~ GETUTCDATE() , N'$CD' ~ from tempdb.dbo.temp_LU_LicensedProduct) ~ as SOURCE ( [LicensedProductID], [ProductPool], [ProductName], ~ [FamilyName], [VersionSequence], [VersionCode], ~ [LastUpdated], [SourceSite]) ~ ON SOURCE.[LicensedProductID] = TARGET.[LicensedProductID] ~ when matched and (~ TARGET.[ProductPool] != SOURCE.[ProductPool] OR ~ TARGET.[ProductName] != SOURCE.[ProductName] OR ~ TARGET.[FamilyName] != SOURCE.[FamilyName] OR ~ TARGET.[VersionSequence] != SOURCE.[VersionSequence] OR ~ TARGET.[VersionCode] != SOURCE.[VersionCode] OR ~ TARGET.[SourceSite] != SOURCE.[SourceSite]) ~ then ~ UPDATE SET ~ [ProductPool] = SOURCE.[ProductPool], ~ [ProductName] = SOURCE.
*** [23000][515][Microsoft][ODBC Driver 18 for SQL Server][SQL Server]Cannot insert the value NULL into column 'VersionCode', table 'CM_TS1.dbo.LU_LicensedProduct'; column does not allow nulls. UPDATE fails.
...
ERROR: FAILED to import data to table LU_LicensedProduct
ERROR: Failed to import data from CSV files
ERROR: Failed to import Asset Intelligence data into the site database.
現象 2: クライアント通知が動作を停止する
既存の環境では、Configuration Manager コンソールの [現在ログオンしているユーザー] 列は表示されません。 サイト サーバーのBGBMgr.log ファイルには、次のエラー エントリも表示されます。
BCP queued 18 rows for currently logged on users
*** [23000][515][Microsoft][ODBC Driver 18 for SQL Server][SQL Server]Cannot insert the value NULL into column 'CurrentLogonUser', table 'CM_P01.dbo.BGB_LiveDataLogonUsersPending'; column does not allow nulls. INSERT fails.
*** [01000][3621][Microsoft][ODBC Driver 18 for SQL Server][SQL Server]The statement has been terminated.
*** bcp_batch() failed
ERROR: Failed to send batched rows
ERROR: Failed to execute task class LiveDataBcp
ERROR: Failed to bcp file
ERROR: Failed to execute task class LiveDataProcessTask
WARNING: Failed to process file Bgbtdhs3.BLD, move it to bad inbox
Begin to move file from E:\Microsoft Configuration Manager\inboxes\bgb.box\Bgbtdhs3.BLD to E:\Microsoft Configuration Manager\inboxes\bgb.box\bad\Bgbtdhs3.BLD
原因
ODBC Driver for SQL Server バージョン 18.6.1.1 には、NULL 非許容列に対して NULL 値をより厳密に処理する変更が含まれています。 この変更により、このような列に NULL 値を挿入しようとする Configuration Manager 操作でエラーが発生する可能性があります。 このようなエラーにより、サイトのインストール中にエラーが発生し、"現在ログオンしているユーザー" レポートが生成されます。
Resolution
この問題を解決するには、ODBC Driver for SQL Server を バージョン 18.6.2.1 にアップグレードします。
または、ドライバーを バージョン 18.4.1.1 にダウングレードします。 Configuration Manager バージョン 2503 以降のバージョンには、このバージョンのドライバーが再頒布可能コンテンツとして含まれています。
注
ODBC Driver for SQL Server バージョン 18.6.1.1 には、セキュリティ更新プログラムが含まれません。 そのため、ドライバーをロールバックしても脆弱性は発生しません。