- PR -

タイムアウト

投稿者投稿内容
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2004-10-01 07:59
さかもとです。おはようございます。

1:他の端末からアクセスしても同様でしょうか?
2:端末側のファイヤーウォール(ウイルスソフトとか)を切っても同様でしょうか?
3:SQLサーバーの認証方式は?

少々気になりまして・・・ご確認いただければと思います。
taki
常連さん
会議室デビュー日: 2003/09/16
投稿数: 45
投稿日時: 2004-10-01 08:56
きくちゃん さん
ご指摘の通り、IDEのサーバエクスプローラを使用して同じSQL文を
発行したところ「時間切れになりました」とエラーメッセージが表示
されました。。
後、SQL文発行に2秒は確かにかかりすぎだと少し気になっていましたが、
SQL文の見直しが先決でしょうか?

さかもと さん
確認完了次第ご連絡します。
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2004-10-01 09:02
taki様

サーバーエクスプローラーからでもエラーですか。
ちょっと気になる追加事項ですが・・・。
1:VS.NETのバージョンはいくつでしょうか?
2:sqlDataAdapterもツールからドラッグして作成してませんでしょうか?

追加でご確認下さい。
taki
常連さん
会議室デビュー日: 2003/09/16
投稿数: 45
投稿日時: 2004-10-01 09:22
さかもと さんへ
ご返答ありがとうございます。
1.VB.netのバージョンは、7.0.9486、念のためフレームワークのバージョンは 1.0.3705です。
2.sqlDataAdapterは、コードで記述しました。

宜しくお願いします。
taki
常連さん
会議室デビュー日: 2003/09/16
投稿数: 45
投稿日時: 2004-10-01 09:26
さかもと さんへ
さかもとさんからのご指摘の点確認しました。
1.他の端末からアクセスしても同様にエラーが発生しました。念のためIDEでも行いましたが、同様にエラーでした。
2.ファイヤーウォールをきっても同様のエラーが発生しました。
3.認証方式は、SQL認証です。

SQL文の見直しが必要でしょうか。。
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2004-10-01 09:41
さかもとです。

こういうエラーって本当に難しいですよね・・・。
「タイムアウトが発生しました。ここと,そこを,このように直してください」
なんていう夢のようなエラーメッセージが出てくれればと初心者のわたくし
は思います・・・。

DataAdapterをコードで記述されているということですので,
1:MyConnection
2:strSQL
をどのように記述されているのかを掲載すればベテランの皆様であれば
1.5秒くらいで分かってしまうかもしれません・・・(笑)

それといまさらながらですが,DataReaderでテストしたレスで

>Dim myCommand As New SqlCommand(strSQL, MyConnection)
>Dim myReader As SqlDataReader
>myReader = myCommand.ExecuteReader() ' ←この部分でタイムアウトになります。

myCommandを発行する前に MyConnectionをOpenしていましたか?
AdapterのFillメソッドではOpen/Closeを自動的にやってくれてますが,上記の場合は明示的にOpenしてやらないといけなかったような・・・(違いましたっけ?今書籍を他の担当者が持ち逃げしてるので・・・)


taki
常連さん
会議室デビュー日: 2003/09/16
投稿数: 45
投稿日時: 2004-10-01 09:54
さかもと さんへ
ご返答ありがとうございます。

まず、DataAdapterのコードで記述している部分をご連絡し ます。
  Dim MyConnection As SqlConnection 'コネクションオブジェクト
  Dim MyCommand As SqlDataAdapter   'DataAdapter
  Dim strSQL As String  '←問題のSQL文が入ります。。

  strSQL = "複雑なSQLが入ります"
  MyConnection = New SqlConnection("Network   Address=IPアドレスが;uid=ID;pwd=パスワード;database=データベース名")

 MyCommand = New SqlDataAdapter(strSQL, MyConnection)
 SqlGet = New DataSet()
 MyCommand.Fill(SqlGet)

次にDataReaderのテストですが、さかもとさんすいません、事前にMyConnectionをOpen
していました。記述不足ですいません。
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2004-10-01 10:03
taki様

さかもとです。
SQL文が複雑すぎてタイムアウトしているのか,その他の理由かどうかの切り分けとして
strSQLを簡単な文に直してテストしてみてはいかがでしょうか?
もしも単にCount(*)などで取得できるようであればSQLの見直しか,WebConfigのタイムアウトの設定の見直しが必要かもしれません。
(だらだらと書く割にはまともな返答ができずにすいません・・・)

スキルアップ/キャリアアップ(JOB@IT)