Troubleshooting Connectivity #9 – ローカル接続でネットワーク エラーとはこれいかに?

  高橋 理香 SQL Developer Support Escalation Engineer みなさん、こんにちは。 皆さんの疑問にお答えするブログを書きたいと思い早数年、今回は時々お問い合わせされる方が声にされる「SQL Server が稼動している環境上のほかのアプリケーションやツールから接続した場合にもネットワーク エラーが発生するのはなぜ?」について、その接続の仕組みなどを説明したいと思います。 前提: ローカル接続でトランスポートネットワークエラーが発生する事象について疑問があるとはどういうこと? まず、以下の2つの図を比べてみましょう。 図1 ではクライアント マシン CLIENT01 上の SQL Server Management Studio (以降、SSMS) から物理的にネットワークの回線を介してリモート マシン SERVER01 上で動作する SQL Server に接続するイメージです。接続でエラーが発生するということは、接続のリクエストとその完了の通信経路上で遅延や障害があった場合に生ずるため、図1 のパターンにおいてネットワークに起因した問題があればネットワーク通信におけるエラーが返される可能性があるということは容易に想像できますね。 それでは図2 はいかがでしょう。サーバー マシン SERVER01 上で SSMS を起動し、同じ SERVER01 上で動作する SQL Server に接続するイメージです。この場合、物理ネットワーク回線を介さないはずです。それにもかかわらずネットワーク層のエラーが発生することがある、これが「ローカル接続なのにネットワーク エラーが発生するのはなぜ?」という疑問です。 実際にどちらの構成であっても次のようにネットワークに問題があるようにも見えるエラーが発生します。 SERVER01 に接続できません。 ADDITIONAL INFORMATION: SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL…

0

INSERT や UPDATE でデータの切り捨てエラー 8152 が発生することがある

  事象 INSERT や UPDATE を実行する際に、対象の列のデータ長よりも長いデータを INSERT/UPDATE しようとすると、エラー 8152が発生します。 エラー 8152 文字列データまたはバイナリ データが切り捨てられます。 SQL Server では暗黙的にデータを変換してエラーを発生させないようにしますが、長いデータをINSERTしようとした場合には ANSI_WARNINGS の設定に従いエラーとなります。例1のように明らかに長いデータを INSERT しようとしてエラーとなるのは分かりやすいパターンです。例2のように、INSERT INTO SELECT やさらにテーブル結合を行っているような場合には、実行プランによってエラーが発生する場合と発生しない場合があるため、注意が必要です。 このブログでは、例2について説明したいと思います。   例1 — テーブル CREATE TABLE table01(c1 varchar(10)) GO — varchar(20) から varchar(10) へ暗黙的に変換され、データの切り捨てが行われないため正常終了する DECLARE @c1 varchar(20) SET @c1 = ‘1234567890’ INSERT INTO table01 VALUES(@c1) — varchar(20) から varchar(10) へ暗黙的に変換されるが、データの切り捨てが発生するため、エラーとなる DECLARE…

0

SQL Server 2014 SP1 適用における不具合 – Updated(解消されました)

SQL Server Support Team   2015/5/22 追記 「SQL Server 2014 SP1適用における不具合」は現在解消されています。 KB3058865 にて不具合を修正した新しいリリース(バージョン 12.0.4100.1 )がダウンロード可能です。 Microsoft® SQL Server® 2014 SP1 Microsoft® SQL Server® 2014 SP1 Express Microsoft® SQL Server® 2014 SP1 Feature Pack   このたびは弊社提供製品の不具合により、大変なご迷惑をおかけ致しましたこと、改めてお詫び申し上げます。   —– 以下は2015年4月23日時点の情報になります 2015/4/15 に SQL Server 2014 SP1 が公開されましたが、インストールにおける問題が発覚したため現在は公開を中止しております。 ※ ダウンロード可能だった時間は 11 時間程になります。 弊社提供製品の不具合により、大変なご迷惑をおかけし誠に申し訳ございません。 不具合を修正した新たな SQL Server 2014 SP1…

0

Known Issue: ストアドプロシージャ実行時にエラー 602 が発生する。

SQL Server Support Team SQL Server 2012 Service Pack 1 をご利用の環境において、ストアドプロシージャ実行時にエラー 602 が発生する場合があります。 この現象について、早急に情報を公開する目的で本ブログ記事を公開しています。   現象 SQL Server 2012 Servce Pack 1 を利用する環境で、ストアドプロシージャ実行時に、エラー602 が発生する場合があります。同環境で同一ストアドプロシージャを実行した場合でも、エラーが発生しない場合もあります。この事象は、 SQL Server 2012 Service Pack 1 の不具合に起因しています。 エラー602 は下記のメッセージとなります。 —-  パーティション ID が %1! のテーブルまたはインデックスのエントリが、データベース %2! に見つかりませんでした。このエラーは、削除されたテーブルをストアド プロシージャが参照している場合、またはメタデータが壊れている場合に発生する可能性があります。ストアド プロシージャを削除して再作成するか、DBCC CHECKDB を実行してください。 —- なお、以下の操作実行時に不具合に遭遇する可能性が高まります。  ストアドプロシージャ内でローカル一時テーブルが作成および削除され、そのストアドプロシージャがひとつのセッション内で繰り返し呼び出される。  SQL Server 内でキャッシュされている実行プラン内に、前回の実行時に作成されたローカル一時テーブルに関する情報が残っており、その情報が参照された。  高スペックなマシン (多数の CPU を搭載するマシン)…

1

[SSRS] アプリケーションドメイン DefaultDomain を読み込めませんでしたエラーについて

  SQL Server Developer Support チーム 須田 恵 概要 イベントログに、SQL Server Reporting Services での下記エラーが記録されることがあります。 ———————— アプリケーション ドメイン DefaultDomain を読み込めませんでした。 次の例外が発生しました: appdomain をアンロード中にエラーが発生しました。 (HRESULT からの例外: 0x80131015)。 ———————— このエラーについてよくお問い合わせをいただくことがありますが、OS の再起動など Reporting Services 停止タイミングに伴い記録されている場合、かつ Reporting Services 利用において特に実害がない場合には、安全に無視してよいエラーとなります。   詳細 アプリケーションドメインとは? アプリケーションドメインは、.NET Framework における実行コードの管理単位のことです。 Reporting Services は、レポート サーバー Web サービス・レポート マネージャ・およびバックグラウンド処理アプリケーションなどの複数の機能を包含した一つのサービスとして存在しますが、各機能ごとに実行されている処理や関連データが、別の機能に影響しないように分離されます。 この単位がアプリケーション ドメインであり、エラーメッセージの “DefaultDomain” がアンロードに失敗したアプリケーション ドメインです。 – 参考情報 レポート…

0

[SQL ODBC]「text、ntext、または image ポインター値は、指定した列名と競合しています。」エラーが発生する

  佐藤 靖典 SQL Developer Support Engineer   みなさん、こんにちは。 今回は、SQL Server の varbinary(max) 型の列に対して書き込みを行おうとしたときに遭遇する可能性のある事象と対処方法を紹介します。 [1] 事象 Windows 同梱の SQL Server ODBC Driver を使用して、400KB 以上のデータを varbinary(max) 型の列に書き込みを行おうとすると、次のエラーが発生します。 日本語のエラー メッセージ [Microsoft][ODBC SQL Server Driver][SQL Server]text、ntext、または image ポインター値は、指定した列名と競合しています。 英語のエラー メッセージ [Microsoft][ODBC SQL Server Driver][SQL Server]The text, ntext, or image pointer value conflicts with the column name specified. [2]…

0

Kerberos認証を用いてファイル共有上のデータを基にBulk Insertするとアクセス拒否で処理が失敗する

  横井 羽衣子 (よこい ういこ) SQL Server Developer Support Engineer 皆さん、ご機嫌よう。今日は共有フォルダ上のファイルをソースとして Bulk Insert を実行した際、アクセス拒否エラーが発生する現象についてご紹介します。 エラー : メッセージ 4861、レベル 16、状態 1、行 1 ファイル “<CSV ファイル名>” を開けなかったので、一括読み込みできません。オペレーティング システム エラー コード 5(アクセスが拒否されました。)。 発生条件 : ・Active Directory 環境であること ・Windows 認証 を使うこと ・Bulk Insert のソースは SQL Server 構成マシンとは別のマシン上に配置されていること ※ SQL Server 認証ユーザーで実行される場合は、問題は発生しません。 ※ Always ON / シングル構成に限らず発生します。 図 : File…

0

[Data Access] ODBC カーソルライブラリ非推奨に伴う Visual Studio 2012 以降のバージョンの MFC における実装変更とその動作について

横井 羽衣子 (よこい ういこ) Microsoft SQL Developer Support Engineer みなさんごきげんよう。本日は、Visual Studio 2012 の MFC CDatabase クラスにおける実装変更と、それに伴う挙動の変化についてご紹介します。この挙動は、レガシー テクノロジの一つである ODBC カーソル ライブラリが非推奨になったことに伴う変更です。 ODBC カーソル ライブラリをはじめ、いくつかの古くから存在するデータアクセス テクノロジには時代の変化に伴い、非推奨となった機能があります。今回の記事では、そうした非推奨となった機能についての情報を今後確認頂くための情報などもご紹介します。 【現象】 Visual Studio 2012 より前のバージョンの MFC の CDatabase クラスで以下の条件で処理を実行した場合と、Visual Studio 2012 以降の同クラスを用いた場合で接続先の SQL Server のバージョンに関わらず、処理の結果が異なる。 実装の流れは以下の通り。 1. CDatabase::OpenEx() のオプションに、CDatabase::useCursorLib を指定してデータベースをオープン 2. CRecordset::Open() でレコードセットタイプ (nOpenType) を明示的に指定しないか、あるいは CRecoredset::snapshot(※) を指定して Edit() メソッドを実行する 結果は以下の通り。 Visual…

0

データベース バックアップでイベント ID 3014 が記録される

  SQL Server の新しいバージョンで、データベース バックアップ時に記録されるログが追加されましたので、ご紹介します。 変更点 SQL Server 2012 SP2、SQL Server 2014 から、イベントログ(アプリケーション) と SQL Server エラーログに、バックアップ完了時に次のようなメッセージが記録されるようになりました。 ログの名前:         Application ソース:           MSSQLSERVER イベント ID:       3014 レベル:           情報 説明: BACKUP DATABASE により 322 ページが 0.733 秒間で正常に処理されました (3.430 MB/秒)。   例: SQL Server 2014 イベント ID 18264 とともに、イベント ID 3014 が記録されます。 イベントログ (アプリケーション) SQL Server エラーログ 2015-01-22 09:29:33.45…

0

[ご注意ください] 12 月 10 日に Windows Update で配信された Visual Studio 2012 対象の更新プログラム KB3002339 をインストールするとシステムのハングアップなどの問題が発生する(※ Ver3.0 - 12/17リンク先追記あり)

※ 本件は、Visual Studio サポート チームのブログの転載となります。 2014 年 12 月 10 日に公開され、Windows Update で配信された Visual Studio 2012 対象の KB3002339 の更新プログラムをインストールすると、Windows Update が完了しない、システム再起動時に更新が完了せずシステムがハングアップしてしまうという現象が発生することを確認いたしました。 KB3002339 https://support.microsoft.com/kb/3002339/ 本問題の報告を受け、Windows Update の配信は既に停止いたしましたが、Windows Server Update Services (WSUS) を使用して更新プログラムを配信されているお客様におかれましては、本更新プログラムの配信を停止していただけますようお願い申し上げます。 既に本更新プログラムを適用し、ハングアップなどの現象が発生している環境での復旧方法につきましては、現在調査中です。進展があり次第、Visual Studio チーム記事にて情報公開させていただきます。最新の内容は下記 Visual Studio チームブログ(※12/17 アップデート内容がございます)をご覧ください。 Visual Studio サポートチームブログ [ご注意ください] 12 月 10 日に Windows Update で配信された Visual Studio 2012 対象の更新プログラム KB3002339 をインストールするとシステムのハングアップなどの問題が発生する…

0