SQLサーバー DBエラー
SQL Serverを使用しているP2Pの環境で、SQL Serverが入っている端末をWindows10(HDD)→Winodws11(SSD)に変えたところ、特定のバッチタスクで「;Named Pipes Provider;could not open a connection to SQLServer[5]」というDBエラーが発生するようになってしまいました。
バッチの内容はCSVファイルを読み込んで、A、B、CのSQLテーブルに書き込んでいます。
MGERRORLOGも確認してみましたが、A、B、Cのいずれかのテーブルで登録が出来ないエラーが発生していて、実行したときによってエラーが発生するテーブルが変わっていました。
また、子機(Windows10(HDD))で実行した際にはDBエラーは発生しませんでした。
書き込みの際にもインデックス項目を位置づけしている為、インデックスの重複ではないと思います。
処理速度くらいしか心当たりが無いのですが、処理速度早すぎてエラーになることはあるのでしょうか。
また、そのほかに心当たりある方いらっしゃいましたら教えていただけますでしょうか。
-
AY001さん、
Named Pipesでの接続エラーになっているようですが、データベーステーブルでの接続設定はどう記述されていますか?
あと、SQL Server側で、「名前付きパイプ」での接続は「有効」としてありますか?
-
AY001さん、
補足ですが、今どきはNamed Pipesを使うより、TCP/IP接続にしたほうが何かと便利ですよ。
-
Tandaさん
回答ありがとうございます。
データベーステーブルの接続設定はデータベース特性の設定であっていますでしょうか。
ログインタブの設定はIP(もしくはコンピュータ名+hosts)で指定しています。SQLの設定はCHECK_KEY=YとONLINE_ARRAY_FETCHING=Nしか設定していません。
SQL SERVERのSQL Native Clientの名前付きパイプは有効になっていました。
-
AY001さん、
そちらの事情が分かりませんが、Named Pipesで接続しなければならないという特別な理由がなければ、複数のプロトコルを混在させるより、全部TCP/IPで統一したほうが設定が楽ですよ。SQL Server側の設定も、接続プロトコルはTCP/IPだけで済みますし。
ちなみに、MagicからSQL Serverに接続する場合は、SQL Native Clientは不要です。Magicが自前のゲートウェイ(mgmssql.dll)を持っています。
-
Tandaさん
Named Pipesはそこまで意識していませんでした。これを機にTCP/IPに統一しようと思います。
SQL SERVER側の設定はSQL Serverネットワークの構成→MSSQLSERVERのプロトコルから名前付きパイプを無効化で大丈夫ですか?
MAGIC側はIP指定でDB名を設定で大丈夫ですか?
-
お邪魔します。自分の場合、以下ですが下の設定は適切ではないですかね?
気にしない個所でした。
-
こんにちはPuです。
自分もnkmtさんと同じ設定です。
でわ~でわ~ -
AY001さん、
はい、「名前付きパイプ」を無効化でいいです。
TCP/IPでの接続ですが、SQL Serverのインスタンスが「規定」のインスタンスでしたら、IPアドレスだけでいいです。「名前付き」インスタンスでしたら、IPアドレスのあとにインスタンス名を付け加えてやります。
データベース名の指定は、「データベース」テーブルで行います。
よろしければ、下記にもお越しください。
https://www.tandacomp.com/ホーム/magic-連載コーナー
第2回 SQL データベースの作成と Magic からの接続 (2008年11月25日)
第6回 SQL Server に Magic からリモート接続する (2009年1月26日)
第186回 SQL Server に複数の PC から接続する(2023年8月31日) -
皆様ありがとうございます。
教えて頂いた方法で設定してみようと思います。
サインインしてコメントを残してください。
コメント
9件のコメント