Kenneth Flegal wrote:
From what I have seen, when I call finish on a session for PoCo::SNMP
I am unable to start a session for that same host again for the life
of the program. The first request would work every time without fail
but any subsequent requests made after creating a new PoCo::SNMP
session for this host would never make the postback. I am now using
the hostname the session is for as the alias of the PoCo::SNMP session
and detaching the session from the first session that created the
session and using the session with that alias if it has already been
spawned.
I am fine with keeping the PoCo::SNMP session alive throughout the
life of the program as every connection that I make will be used
frequently so long as it isn’t keeping other sessions alive without
cause. With PoCo::SNMP using a postback that is passed along in the
anonymous sub used as the callback (which is referenced permanently in
the Net::SNMP session) however, it will keep the calling session alive
until a call is made from another session or the finish is called. I
believe I have a fix for this problem by simply adding a line to the
anonymous sub that sets the postback reference to undef after calling
the postback. I haven’t seen any side effects from making this change
but wanted to bring it up on this list to make sure that I am not
missing something important and to include the patch in the case that
this is a useful change. Any comments on this would be greatly
appreciated and I hope that this patch is useful.
- Kenny Flegal
You have incorrectly identified the nature of the problem, as well as
its solution. Turns out PoCo::SNMP had some bad logic involved when a
session was closed, causing it to *stay* "closed," even when you started
a new, different instance of it. I fixed that last nite and a new
version of the component is on CPAN. Try your program with the new
version, and feel free to email me personally if you have any additional
issues.
L8r,
Rob