Hi Experts, I am new to POE, and to be on true end do not have more perl experience except some small scripts. Now I am trying to POLL one Subnet Range using POE::Component::SNMP. Results are displayed but at the end when $heap->{pending}=0 it dosent seems to exit the snmp_handler sub .
Following is my code: POE::Session->create( inline_states => { _start => \&_start_subnet_system, snmp_handler => \&snmp_subnet_system_handler, } ); sub _start_subnet_system { my ($kernel, $heap) = @_[KERNEL, HEAP]; foreach my $address (@reachable_hosts) { POE::Component::SNMP->create( alias => "$address", hostname => "$address", # if you have seperate community strings for each host # build a hash (@addresses becomes %addresses)and # associate them that way and then set it here. community => $snmp_settings[$temp_loop]{'community_string'}, version =>$snmp_settings[$temp_loop]{'snmp_version'}, timeout =>$snmp_settings[$temp_loop]{'timeout'}, retries =>$snmp_settings[$temp_loop]{'retries'}, # debug => 0x0A, ); $kernel->post( $address => walk => snmp_handler => -baseoid => $system_oid); # If you are polling for N oids, this next line must reflect that, otherwise # it will stop after the first OID and not try any of the others. $heap->{pending} = scalar(@reachable_hosts)-1; } } $poe_kernel->run(); print "Total Discovered Hosts: $discovered_host_count\n"; print "Total Not Discovered Hosts: $not_discovered_host_count\n"; sub snmp_subnet_system_handler { my ($kernel, $heap, $request, $response) = @_[KERNEL, HEAP, ARG0, ARG1]; my ($alias, $host, $cmd, @args) = @$request; my ($results, @callback_args) = @$response; if (ref $results) { $discovered_host_count++; } else { $not_discovered_host_count++; } if (--$heap->{pending} == 0) { * $kernel->post( $alias => 'finish' );* } } Where: @reachable_hosts contains all hosts which are reachable via ICMP Ping. @snmp_settings is a hash of SNMP Settings need to be apploed , tested and printed all the values it has all valued required. $system_oid = '.1.3.6.1.2.1.1' In fact this is a modified version of this code: http://www.gdd.net/index.php/Asynchronous_SNMP_poller_%28Perl%29 Above code also hangs at this point *$kernel->post( $alias => 'finish' );* Can Any pone pelase help on this. Best Regards, -- Rehan Azher Cell: +65 92967887 LinkedIn: http://www.linkedin.com/in/rehanazher