SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

SQL Server 2022 RC1 + SSMS 19.0 Preview 3 環境で ostress を実行する際の注意点

leave a comment

Windows Server 2022 + SQL Server 2022 RC1 + SSMS 19.0 Preview 3 の環境で、ローカルの SQL Server に対して ostress.exe を実行した場合に、次のエラーが発生し、負荷をかけることができませんでした。

10/27/22 09:20:01.124 [0x00000D2C] SQLState: 08001, Native Error: 18
[DBNETLIB]SSL セキュリティ エラー

10/27/22 09:20:01.125 [0x00000D2C] SQLState: 01S00, Native Error: 0
接続文字列の属性が正しくありません。

 

今まで見たことがないエラーだったので、なぜ発生しているのかを調べてみました。

ostress ですが「ODBC-Based Stress/Replay Utility」となっており、厳密には SQL Server 専用というわけではなく、ODBC を使用してアクセスが行われているため、ODBC ドライバーが提供されていれば、他の環境に対しても負荷をかけようと思えばかけることはできます。(基本的には SQL Server への実行を想定していると思うのでそれ以外に対して想定している負荷がかけられるかは別の話ですが)

上記の Windows Server 2022 + SQL Server 2022 RC1 + SSMS 19.0 Preview 3 の環境でも、SQL Server 向けの ODBC ドライバーはインストールされるのですが「ODBC Driver 17 for SQL Server」がインストールされた状態となっています。

ostress のプロセスの動きを見ていたところ、サーバー名を指定したストレステストの実行では、使用する ODBC ドライバーは次の場所の情報を使用しているようでした。

  • HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI
    • ODBC Driver 11 for SQL Server
    • SQL Server Native Client 11.0
    • SQL Server Native Client 10.0
    • SQL Server

今回使用している環境では、ODBC Driver 11 for SQL Server / SQL Server Native Client 11.0, 10.0 はインストールされていないのですが、「SQL Server」はインストールされている状態となっています。

image

ODBC ドライバーとしてこれが使われている場合は上記のエラーにつながるようですね。(SQL Server の ODBC ドライバー、バージョンとしては「10.00.20348.1006」なので、結構古いものが使われているかもしれませんね)

今回は、次のドライバーをインストールすることで、正常に動作するようになりました。

Windows Server 2022 + SQL Server 2019 + SSMS 18.0 の環境では、追加のドライバーをインストールしなくても動作するのですが、この組み合わせの場合は「SQL Server Native Client 11.0」がインストールされていることで、エラーとならないようでした。

SQL Server Native Client (SQLNCLI) の利用は、現在は非推奨となっているので最新の組み合わせではインストールされなくなっているのかもしれませんね。

Share

Written by Masayuki.Ozawa

10月 27th, 2022 at 9:39 am

Leave a Reply