我运行一个高效的应用程序来管理我们研究小组的出版物。该应用程序是用 perl 的 mojolicious 框架编写的。我使用 sqlite3 作为数据库,使用 Hypnotoad 作为应用服务器。
我的问题是与数据库的连接偶尔会崩溃(每周 2 次)而没有给出合理的错误消息。唯一有帮助的是重新启动 Hypnotoad。任何想法为什么会发生这种情况?
错误消息示例:
[Fri Jan 16 08:43:09 2015] [error] Can't call method "execute" on an undefined value at /home/piotr/perl/publiste2/script/../lib/AdminApi/Core.pm line 525.
那里的代码如下所示:
my $qry = "SELECT DISTINCT our_type FROM OurType_to_Type WHERE landing=1 ORDER BY our_type ASC";
my $sth = $dbh->prepare( $qry );
$sth->execute(); # this is the line 525
dbh 变量由助手返回:
DBI->connect('dbi:SQLite:dbname='.$config->{normal_db}, '', '') or die $DBI::errstr .". File is: ".$config->{normal_db};
完整代码可在此处获得: https ://bitbucket.org/vikin9/hex64publicationlistmanager/src