ODBC闲置8小时后崩溃

时间:2012-06-22 07:31:41

标签: erlang odbc

我使用odbc来连接mysql。我通过以下代码启动odbc:

ConnectString = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=mydb; User=userdb;Password=pwddb;Option=3;",case odbc:connect(ConnectString, [{scrollable_cursors,off}]) of ...    

8小时不活动(或多或少),odbc崩溃:

=CRASH REPORT==== 22-Jun-2012::02:09:27 ===   crasher:
    initial call: odbc:init/1
    pid: <0.113.0>
    registered_name: []
    exception exit: {stopped,{'EXIT',<0.108.0>,killed}}
      in function  gen_server:terminate/6 (gen_server.erl, line 737)
    ancestors: [odbc_sup,<0.111.0>]
    messages: [{'EXIT',#Port<0.967>,normal}]
    links: [<0.112.0>]
    dictionary: []
    trap_exit: true
    status: running
    heap_size: 377
    stack_size: 24
    reductions: 2237   neighbours:

连接时间是否有限?

1 个答案:

答案 0 :(得分:3)

Mysql有一个变量wait_timeout,它控制服务器等待客户端执行某些操作的时间。默认值为28800秒。随便,28800秒是8小时,因此您可能需要在服务器配置中检查它并将其设置为更大的值。

除此之外,您应该让您的工作人员终止,并让主管正常重启。或者(如果使用gen_server或gen_fsm)设置超时以发出查询或ping以保持连接每小时左右,以保持工作者活着。

最佳!