Thanks for response.
When i run the code, getting error :
Invalid value for shared scalar at /opt/perl-5.8.6_1/lib/5.8.6/Thread/Queue.pm line 90, <> line 10. Posting my code here.
use strict;
use threads;
use Data::Dumper;
use Thread::Queue;
my $THREADS = 5;
my %dataEntity;
while(<>){
chomp;
next if !length($_);
my ($dsName,$passwd) = split /\|/, $_;
$dataEntity{$dsName} = $passwd;
}
my $request = Thread::Queue->new;
my $response = Thread::Queue->new;
# Submit all requests
for my $dbname (keys %dataEntity) {
$request->enqueue([$dbname,$dataEntity{$dbname}]);
};
# Tell each thread that we're done
for (1..$THREADS) {
$request->enqueue(undef);
};
# Launch our threads
for (1..$THREADS) {
async(\&getData);
};
sub getData {
while (my $job = $request->dequeue()) {
my ($dbname, $credentials) = @$job;
#connect to DB, retrieve information
my $dbh = getConn($dbname,$credentials);
my %results;
my $resArrRef = $dbh->selectall_arrayref("select srvname,dbnam
+e from syslogins",{ Slice => {} });
foreach my $row ( @$resArrRef ) {
$results{$row->{srvname}} = $row->{dbname};
}
$response->enqueue(\%results);
};
# tell our main thread we're done
$response->enqueue( undef );
};
while (my $payload = $response->dequeue or $THREADS--) {
print Dumper $payload;
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|