bigcreeklinn has asked for the wisdom of the Perl Monks concerning the following question:
Greetings, all.
I have an OLE script I am working on. In a loop driven from a database, I am doing:
use Win32::OLE qw(in); my $ole = Win32::OLE->new('WbemScripting.SWbemLocator') or die "Can't start OLE"; # now in a loop for each ip,hostname,uid,pw set: my $wmi = $ole->ConnectServer($ip, 'root/cimv2', $hostname.'\\'.$uid, $pw, undef, undef, 128);
According to http://msdn.microsoft.com/en-us/library/windows/desktop/aa393720(v=vs.85).aspx, this method should be guaranteed to return, if not with success, then with failure, within 2 minutes. I do not always see that return. I am running this script for about 20000 hosts. Of these, a few do not return (ever) from this call. When I find a host for which this method hangs, I explicitly exclude that IP address.
I would like the script to handle this implicitly for me. What are simple ways to impose my own timeout on this method call?
Thanks.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: What is a simple way to impose a timeout on Win32::OLE::ConnectServer
by Anonymous Monk on Dec 28, 2011 at 01:58 UTC |