Как я могу использовать соединение с базой данных в разветвленном процессе в Perl?

StackOverflow https://stackoverflow.com/questions/874434

  •  22-08-2019
  •  | 
  •  

Вопрос

Раньше я создавал следующие программы на Perl:

my $db = DBconnection with DB2

if ($pid = fork()) {
    #parent
} else {
    #child
    $db->execute("SELECT ****");
    exit;
}

wait();
$db->execute("SELECT ****");

Я думал, что он ждал окончания дочернего процесса, чтобы захотеть это сделать, и будет управлять им для БД с помощью пропроцесса.

Кроме того, БД не связана с содержимым ошибки.

В чем дело?

Это было полезно?

Решение

Вам нужно сделать много вещей, чтобы позволить дочернему процессу использовать дескриптор DBI своего родительского процесса.См. эту статью о Perl Monks о DBI, форк и клон.

Другие советы

Попробуйте включить эту строку кода в дочерний блок:

$db->{InactiveDestroy} = 1;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top