2

我使用 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:

连接是否有时间限制?

4

1 回答 1

4

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

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

最好的!

于 2012-06-22T23:12:28.507 回答