Date: Fri, 1 Aug 2003 09:34:20 +0900
From: "Fujisawa Yohei" <who@example.netwk.ntt-at.co.jp>
お世話になっております。 藤沢です。
現在私は言語VC++のADOを用いてSQL
サーバへあれこれしておりますが、結構
落ち着いています。
ADOであればいろいろとアドバイス出来る
と思うのですが、、、
> DBへの接続処理を行う関数と接続を終了する関数を作成し、その関数を複数の
> スレッドから呼び出します。プログラム起動から数時間は問題なく動作するのです
> が、接続処理を行う関数から突然処理が戻ってこなくなります。
> 詳しく調べてみた結果、SQLConnect()関数から復帰してこない様なのですが、ス
> レッドが死んでいるのか、SQLConnect()関数の中で待ち状態になっているのか判断
> がつきません。
スレッドが死んでいるかどうは自前で監視する必要がありますね。
VC++で過去に試したところ、どうも1アプリあたり2xx個以上のスレ
ッドを作成するとアプリが死んだ経験があります。
私はよくスレッドからSPをコールしますが、同じようにSPを呼んで
いるのであれば、SP側でログを書くとよいと思います。
ログはDOSまたはCOMを使って書きます。
また、ADOですとタイムアウト値を設定できますが、ソースを拝見
した限りでは設定されていないように思われます。
(していたらごめんなさい。)
さらにSQLServer側のエラーをVC++で作成したアプリ側から取得
しておられますでしょうか?
ADOですと、属に言うPrintProviderError(関数名)を使用します。
こいつはMSDN200304月以上でしたら腐るほどサンプルがあり
ます。
まずはエラーを特定する必要があると思います。
> こんな経験をされた方はいらっしゃいますでしょうか?
よくありまくりました。
エラーと特定していくと解決への近道になるかと思います。
もし問題がなければADOがお勧めかもですね。
簡単に試験したいのであれば、
-----------------------------------------------
-- _□×--
-- --
-- [接続A] [接続B] [接続C] ・・・ --
-- [切断A] [切断B] [切断C] ・・・ --
-- --
-- [終了] --
-----------------------------------------------
上記のようなGUIをつくり、ボタンによって別スレッドから接続・
切断するアプリを生成して、接続時、切断時で正常に動いて
いるか、ログなどに書いて確かめてはどうでしょうか?
全然参考になっていなくて申し訳ありませんが。。。
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|