<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Потоки и DBI::Sybase</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7884.html</link>
    <description>При попытке использовать DBI в потоках получаю ошибку:&lt;br&gt;&lt;br&gt;thread failed to start: DBD::Sybase::db do failed: handle 2 is owned by thread 814c008 not current thread 845e040 (handles can&apos;t be shared between threads and your driver may need a CLONE method added)&lt;br&gt;&lt;br&gt;Код:&lt;br&gt;&lt;br&gt;use DBI;&lt;br&gt;use threads;&lt;br&gt;&lt;br&gt;sub ms_do&lt;br&gt;&#123;&lt;br&gt;    local &#064;par=&#064;_;&lt;br&gt;    $par&#091;0&#093;-&amp;gt;do($par&#091;1&#093;);&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;my $mdbh=DBI-&amp;gt;connect(&quot;dbi:Sybase:server=$server&quot;, $login, $pass);&lt;br&gt;my &#064;thr;&lt;br&gt;&lt;br&gt;push &#064;thr, threads-&amp;gt;create(&#092;&amp;ms_do,$mdbh,&quot;delete from $database.$table1&quot;);&lt;br&gt;push &#064;thr, threads-&amp;gt;create(&#092;&amp;ms_do,$mdbh,&quot;delete from $database.$table2&quot;);&lt;br&gt;&lt;br&gt;foreach my $thread (&#064;thr)&lt;br&gt;&#123;&lt;br&gt;    $thread-&amp;gt;join();&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;Соответственно вопрос: Что я делаю не верно? И есть ли возможность использовать многопоточность с DBI в perl?&lt;br&gt;&lt;br&gt;</description>

<item>
    <title>Потоки и DBI::Sybase (angra)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7884.html#2</link>
    <pubDate>Thu, 05 Feb 2009 23:23:52 GMT</pubDate>
    <description>&amp;gt;Что я делаю не верно? &lt;br&gt;&lt;br&gt;Используете DBI в тредах, хотя известно, что большинство DBD, да и сам DBI не threadsafe&lt;br&gt;&amp;gt;И есть ли возможность использовать многопоточность с DBI в perl?&lt;br&gt;&lt;br&gt;Ну например обращаться к базе только из одного потока, а остальными ставить ему запросы в очередь. &lt;br&gt;</description>
</item>

<item>
    <title>Потоки и DBI::Sybase (NuINu)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7884.html#1</link>
    <pubDate>Thu, 05 Feb 2009 18:40:44 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;push &#064;thr, threads-&amp;gt;create(&#092;&amp;ms_do,$mdbh,&quot;delete from $database.$table1&quot;);&lt;br&gt;&amp;gt;push &#064;thr, threads-&amp;gt;create(&#092;&amp;ms_do,$mdbh,&quot;delete from $database.$table2&quot;);&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;foreach my $thread (&#064;thr) &lt;br&gt;&amp;gt;&#123; &lt;br&gt;&amp;gt;    $thread-&amp;gt;join();&lt;br&gt;&amp;gt;&#125; &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Соответственно вопрос: Что я делаю не верно? И есть ли возможность использовать &lt;br&gt;&amp;gt;многопоточность с DBI в perl? &lt;br&gt;&lt;br&gt;причем тут DBI? у вас DBD ругается!&lt;br&gt;вполне возможно что данный драйвер не позволяет это сделать... посмотрите как он у вас собран. и есть ли вообще у него такаая возможность.&lt;br&gt;&lt;br&gt;попробуйте открыть два дескриптора $mdbh&lt;br&gt;</description>
</item>

</channel>
</rss>
