DOBON.NETプログラミング道掲示板
(現在 過去ログ1 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■33211 / inTopicNo.1)  VB2010,MySQLのタイムアウト発生条件を知りたい
  
□投稿者/ 山下恵子 一般人(1回)-(2016/01/12(Tue) 12:33:57)
  • アイコン環境/言語:[OS : Windows 7 / 言語 : Visual Basic .NET / .NET Framework : 4.5] 
    分類:[.NET] 

    【解決したい問題】

    VB2010からMySQL(Ver5.6.26)にアクセスする場合のタイムアウトについて質問させて下さい。

    VC2013で作成したAPLでは認証後、8時間程度DBにアクセスが無い場合、エラーになります。VB2010では8時間程度同じDBにアクセスが無い場合でもエラーになりません。VB2010でエラーにならないのは何故でしょうか? 以下に確認プログラムを記述しますので、宜しくお願い致します。
    タイムアウトエラーの発生条件などについて、ご教授頂ければ幸いです。

    VC++2013 :MySQL server has gone away 2006([ODBC 5.3(w) Driver])
    VB.net2010:エラー無し

    【VB.net2010の確認プログラム その1】
    Private Sub FormA_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    Dim MyConString As String = "{MYSQL ODBC 5.3 Unicode Driver};UID=root;PWD=root;SERVER=localhost;DATABASE=temp;option=3;"
    MySqlConn.ConnectionString = ("temp")
    Acucess_DB()
    Timer1.Enabled = True

    End Sub

    Private Sub Acucess_DB()

    Try
    MySqlConn.Open()
    Query = "SELECT temp FROM temp WHERE temp='temp';"
    COMMAND = New OdbcCommand(Query, MySqlConn)
    Dim temp As String = COMMAND.ExecuteScalar()
    MySqlConn.Close()
    Catch ex As Exception
    My.Computer.FileSystem.WriteAllText(file, Now & ":" & ex.Message & vbNewLine, True)
    End Try

    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

    Timer1.Enabled = False
    Acucess_DB()
    Timer1.Enabled = True

    End Sub

    【VB.net2010の確認プログラム その2】
    Private Sub FormA_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    fileReader = My.Computer.FileSystem.ReadAllText("temp.txt")
    MySqlConn.ConnectionString = fileReader
    Acucess_DB()
    Timer1.Enabled = True

    End Sub

    Private Sub Acucess_DB()

    Try
    MySqlConn.Open()
    Query = "SELECT temp FROM temp WHERE VCMSerial='temp';"
    COMMAND = New MySqlCommand(Query, MySqlConn)
    Dim temp As String = COMMAND.ExecuteScalar
    COMMAND.ExecuteNonQuery()
    MySqlConn.Close()
    Catch ex As Exception
    My.Computer.FileSystem.WriteAllText(file, Now & ":" & ex.Message & vbNewLine, True)
    End Try
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

    Timer1.Enabled = False
    Acucess_DB()
    Timer1.Enabled = True

    End Sub
引用返信 削除キー/
■33212 / inTopicNo.2)  Re[1]: VB2010,MySQLのタイムアウト発生条件を知りたい
□投稿者/ shu 大御所(470回)-(2016/01/12(Tue) 12:53:23)
  • アイコンNo33211に返信(山下恵子さんの記事)
    >
    > VC2013で作成したAPLでは認証後、8時間程度DBにアクセスが無い場合、エラーになります。VB2010では8時間程度同じDBにアクセスが無い場合でもエラーになりません。VB2010でエラーにならないのは何故でしょうか? 以下に確認プログラムを記述


    肝心のエラーが発生するプログラムがないと何故エラーになるのか明確にするのは困難かと思います。
引用返信 削除キー/
■33215 / inTopicNo.3)  Re[2]: VB2010,MySQLのタイムアウト発生条件を知りたい
□投稿者/ 山下恵子 一般人(3回)-(2016/01/12(Tue) 18:47:36)
  • アイコンNo33212に返信(shuさんの記事)
    > ■No33211に返信(山下恵子さんの記事)
    >
    > 肝心のエラーが発生するプログラムがないと何故エラーになるのか明確にするのは困難かと思います。

    申し訳有りません。エラーが発生するVC2013++のソースは他社作成の為、入手出来ておりません。
    同じDBにアクセスしているにもかかわらず、VCでは8時間程度経過するとエラーになり、VBではタイマーを10時間周期で動作させてもエラーになりません。
    VB2010でエラーにならない理由が知りたいです。DBのタイムアウト設定はデフォルトの28800秒(8時間)です。
    不十分な情報で、申し訳ないのですが、何卒宜しくお願い致します。
引用返信 削除キー/
■33216 / inTopicNo.4)  Re[3]: VB2010,MySQLのタイムアウト発生条件を知りたい
□投稿者/ shu 大御所(471回)-(2016/01/13(Wed) 07:40:29)
  • アイコンNo33215に返信(山下恵子さんの記事)
    > ■No33212に返信(shuさんの記事)
    > 不十分な情報で、申し訳ないのですが、何卒宜しくお願い致します。
    提示されたプログラムからわかるのは
    1回の処理でOpenしてCloseしているので何時間毎の処理であろうと1回の処理が
    すぐ終了しているからかと思います。

引用返信 削除キー/
■33217 / inTopicNo.5)  Re[4]: VB2010,MySQLのタイムアウト発生条件を知りたい
□投稿者/ 山下恵子 一般人(4回)-(2016/01/13(Wed) 16:58:57)
  • アイコンNo33216に返信(shuさんの記事)
    > ■No33215に返信(山下恵子さんの記事)
    >>■No33212に返信(shuさんの記事)
    > 提示されたプログラムからわかるのは
    > 1回の処理でOpenしてCloseしているので何時間毎の処理であろうと1回の処理が
    > すぐ終了しているからかと思います。

    Shu様
    早々のご回答、有難うございます。
    タイムアウト設定(wait_timeout、interactive_timeout)の影響は、以下の認識で合っていますでしょうか?

    1)Openから、クエリー発行までの経過時間>タイムアウト設定の場合⇒エラー
    2)クエリー終了から、次のクエリー発行までの経過時間>タイムアウト設定の場合⇒エラー
    3)クローズから次のオープンまでの経過時間>タイムアウト設定の場合⇒エラーにならない

    VC(他社作成)は、APL起動時にOpenして、APL終了時までCloseしていないのだと推測します。


引用返信 削除キー/
■33219 / inTopicNo.6)  Re[5]: VB2010,MySQLのタイムアウト発生条件を知りたい
□投稿者/ ニーブラ 一般人(1回)-(2016/01/19(Tue) 14:48:28)
  • アイコン何が問題なのかよく判りません。
    VCで作成されたアプリのエラーが出ることが問題なのですか?
    それとも、VBでの検証結果でエラーが出ないことが問題なのですか?

    客観的に考えれば、前者が問題なのだと思いますが、
    質問の内容からして、そのように理解できないので。
引用返信 削除キー/
■33221 / inTopicNo.7)  Re[1]: VB2010,MySQLのタイムアウト発生条件を知りたい
□投稿者/ とくま 一般人(4回)-(2016/01/22(Fri) 11:06:31)
  • アイコン2016/01/22(Fri) 11:29:27 編集(投稿者)

    No33211に返信(山下恵子さんの記事)
    http://faz.main.jp/wp/server/mysql/80/
    データベース側で勝手に切断しちゃう設定みたいですね。デッドロック対策とかなんでしょうかね?

    > VB2010でエラーにならないのは何故でしょうか?
    →確認プログラムがタイムアウト時間経過前にcloseしているからでは?(shu さんの指摘事項)
    指摘事項に関しての回答は?「そうでした」なのか「いや、〜しているから違います」なのか?
    勝手に話を進めないで、回答者の回答についてちゃんと対応して欲しいものですね。

    VBで単純にopenしてからタイムアウト時間経過するまでcloseしないプログラムを書けばエラーになるのでは?
    こちらからは自分で自分の首を絞めながら「苦しいのはなぜですか?」と質問しているように
    見えて、何が何だかわかりません。

    ついでに言えば
    >タイムアウト設定(wait_timeout、interactive_timeout)の影響は、以下の認識で合っていますでしょうか?
    質問内容が変わっている&質問のジャンルがVB→MySQLに変わってる
    にもかかわらず何の説明もないというのも、他人に質問しているのですから
    気を付けるべき点だと思います。
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -