Troubleshooting BMC Event Adapters


Issue

The SNMPv3 instance of the TrueSight Event Adapters is unable to run on certain Windows systems. When the adapter instance fails to start properly, the mcxa.trace file creates an MC_ADAPTER_ERROR event with a generic message having the following value:

msg = "MA::EngineMgr: ";

The log does not provide any leads for the issue except for the preceding generic message. By running the Perl test script you will see the following error and it determines that the ESNMPReceiver.dll is unable to run on particular Windows systems. 

Perl test script (testscript.pl)

#!/usr/bin/perl
use Win32::API;
$Win32::API::DEBUG = 1;
$function = Win32::API->new(
 'ESNMPReceiver.dll', 'int bmc_Initialize(int port, TCHAR* ConfigFile,int* output)',
);
$return = $function->Call(162,"../etc/snmptrapd.conf",1);

Error

D:\Program Files\BMC Software\TSIMAgent\Agent\server\bin>perl.exe testscript.pl
Win32::API::new: Loading library 'ESNMPReceiver.dll'
Missing argument in printf at D:/Perl/lib/Win32/API.pm line 47.
Invalid conversion in printf: "%1 " at D:/Perl/lib/Win32/API.pm line 47.
FAILED Loading library 'ESNMPReceiver.dll': %1 is not a valid Win32 application.
Can't call method "Call" on an undefined value at testscript.pl line 7

Root Cause

The preceding error indicates that Windows is unable to understand ESNMPReceiver.dll and the required Microsoft Visual C++ Redistributable packages are not installed on the Windows Server. 

Resolution

  1. Ensure that you install the following Microsoft Visual C++ Redistributable packages:
    • Microsoft Visual C++ 2010 x86 Redistributable - 10.0.40219
    • Microsoft Visual C++ 2010 x64 Redistributable - 10.0.40219
    • Microsoft Visual C++ 2015 Redistributable (x64) - 14.0.23026
  2. If the system shows that the preceding packages or later are already installed, there might be a possibility that the msvcr71.dll is missing in the C:\Windows\SysWOW64 directory.  If the msvcr71.dll is missing, copy it from a working system into the same directory.


 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*