Start a Conversation

This post is more than 5 years old

Solved!

Go to Solution

1159

January 11th, 2010 12:00

ICS_Notification Status: Unitialized

I need help.

My INCHARGE-OI repository is growing too fast and crashes after 2 days.

This happens because INCHARGE-OI receives lots of traps from several different managers and when the number of ICS_Notifications is bigger than 750.000,00 it goes down.

Some of you may ask about this number of events. Unfortunately, some intermitent traps have different values at its varbinds and Smarts creates a diferent object for the same event in OI repo. (Blame the other NMS)

But the real number of valid ICS_Notifications is only 5.000,00 ( Active and Inactive). The another ICS_Notifications (700.000,00) are with Unitialized Status.

My workaround solution is an ASL/SH scripts to archive this type of Notification, but I'm not happy with it.


1. What is the "unitialized" state?

2. Why Smarts isn't clearing those Notifications?

3. What can I do?

Tks

Gabriel

January 14th, 2010 06:00

Hi Gabriel,

in short :

- you mention that you have eventCode uniquely identifying the event, so, if you have a translation table in your ASL code, you will have for ex:

eventCode => eventName

eventCode1 => "Name of Event #1"

eventCode2 => "Name of Event #2"

so using this translationTable you now have a unique eventName which has a meaning for the end user, not just a code. (EventName should be "CPU load", not "CPU load x%" BTW)

- now, for the eventDisplayName, you don't really have the choice : by default, this is not a supported feature in the trap receiver, so you can hack the trap receiver ASL script to add this feature (not that difficult, clean, but not supported) or use a DXA to add this information. This is just cosmetic information (not use as a key) so you can add the eventDisplayName in SAM, not in OI. To do this, with a DXA, you have to test for your notification "source" (to apply this feature only to the right notifications), and then set the eventDisplayName (in SAM) with a value that the script will take from any attribute coming from OI.

--Fred

January 11th, 2010 14:00

Hi Gabriel,

my understanding is that this "unitialized" state is a temporary (transitional) state for all ICS_Notification. It is the default state when calling a makeNotification. Then, the notification should be set for all needed attributes and then notified. If you don't call the notify method, the ICS_Notification will stay in this unitialized state. So, IMHO, it seems that some traps are badly processed and trap mgr ASL script failed with no "notify" of the ICS_Notification.

What you can do : look at your traps to see why they don't get processed as they should (having a couple of DEBUG in the ASL script).

HTH,

--Fred


== Monitor your Smarts environment using APG ReportPack for Smarts health ==
Frederic Meunier
Solutions Watch4Net Inc
APG & Smarts InCharge integration
http://www.watch4net.com

23 Posts

January 12th, 2010 12:00

Hi Fred,

I believe you found my problem.


I used makeNotification method to access InstanceDisplayName and EventDisplayName inside of the ASL code that used to set the attributes of the Notification.

I know that's another workaround.

Maybe that's the oportunity to do things the right way.

The problem starts because SAM uses INSTANCENAME and EVENTNAME to create de name of the object inside repository.

For some trap events, the varbind related to EVENTNAME is different for the same event.

So Smarts will "think" that those are different events, but they aren't.

Ex:

Trap n1: Varbind1 = source

             Varbind2 = eventcode1

             Varbind3 = "CPU Usage 80%"

Trap n2: Varbind1 = source

             Varbind2 = eventcode1

             Varbind3 = "CPU Usage 85%

Varbind2 is a code and I don't want to see that kind of Information at Notification Log Console.

I use Varbind1 as INSTANCENAME, Varbind2 as EVENTNAME, and Varbind3 as InstanceDisplayName.

I didn't managed to set InstanceDisplayName directely.

Se example code:

...

     ELEMENTCLASSNAME="Host";
     ELEMENTNAME=IPADDRESS;
     INSTANCENAME=V1;
      EVENTNAME=V2;

// And now the workaround:

     icsNotificationFactory = object();
     icsNotificationFactory = object(getInstances("ICS_NotificationFactory")[0]) ? IGNORE;
     ALTER = icsNotificationFactory->makeNotification(CLASSNAME,INSTANCENAME,EVENTNAME);
     if (!ALTER->isNull()) {
         ALTER->InstanceDisplayName=V1;
         ALTER->changed();
     }

...

So the source of the problem is my workaround.


1. How do I remove this workaround?

2. If not possible, can I use "notify()" method (as you sugested) instead of "changed()"?

Tks

Gabriel

January 13th, 2010 06:00

Hi Gabriel,

I'm not sure to fully understand your needs, but I see 2 different things:

(1) if you want to rename the "eventcode" to something else, you can use a table in an ASL script attached to this trap, something like:

trap2eventTable = table();

trap2eventTable["eventcode1"] = "eventName1";

...

and then

EVENTNAME = trap2eventTable[V2];

(2) if you want to have the V3 somewhere in the notifcation:

- why don't you use another field (EventText) ?

or

- you may use a DXA (between OI and SAM) for this, testing for the right notifications coming from a trap and changing the instanceDisplayName if this is really what you want.

Note that your code has an issue because you are in an ASL for the trap where the ICS_Notification is not created yet ... so you are creating one which may be not used then ... and you will have a lot of UNITIALIZED ... Processing ICS_Notification inside a custom ASL script for a trap is not easy. You should try to do things at the DXA layer in your case.

HTH,

--Fred

== Monitor your Smarts environment using APG ReportPack for Smarts health ==
Frederic Meunier
Solutions Watch4Net Inc
APG & Smarts InCharge integration
http://www.watch4net.com

23 Posts

January 13th, 2010 10:00

Fred,

Thks for your attention.

The main motive to insist in this matther is that I want to receive these notification in the same View of Notification Log Console as other sources.

So if I use UserDefinedField to show EventName, I will have some notifications with EventName at colum "A" and another notifications with EventName at colum "B".

In that example, V3 is the Event, but the varbind that uniquely identifies the Event is V2 (Code).

When I set EVENTNAME = V2, without seting EVENTDISPLAYNAME, Smarts at some point defines EVENTDISPLAYNAME = EVENTNAME. That is what I want to avoid.

I have to identify the trap, its retransmissions and its clear trap as a unique event. I can only achieve this using the eventcode as EVENTNAME. But I don't want to show this info at Notification Log.

I don't know if there is another way to solve this problem instead of seting EventDisplayName.

I need more info about the DXA tips that you told in your last post. I don't understood how can it help me because it's not a matter of SAM retrieving a info from OI.

Thks again.

Gabriel

ps: EventText and UserDefinedFields are reserved for future porpouse

23 Posts

January 14th, 2010 10:00

Hi fred,

The problem is finaly solved!

Solution:

I made a copy of trap_mgr_parse.asl and changed it to support "EventDisplayName" and "InstanceDisplayName".

I also reconfigured my TrapMgr Service to use this new RuleSet.

I seted EVENTDISPLAYNAME and INSTANCEDISPLAYNAME at my ASL Script and removed the workaround.

This solution doesn't affect traps received from other sources because I use different Trap Managers listening on diferent ports to each NNM.

Thank You very much.

Best regards.

Gabriel

January 14th, 2010 10:00

Hi Gabriel,

I'm happy you solved your issue. Just keep in mind that you will have to "port" your changes to any new updates which will affect the trap receiver ASL script. In my opinion, for what you want to acheive, this was the best solution to use. This should be a basic feature of the trap receiver (you may ask EMC for this as an enhancement).

--Fred

== Monitor your Smarts environment using APG ReportPack for Smarts health ==
Frederic Meunier
Solutions Watch4Net Inc
APG & Smarts InCharge integration
http://www.watch4net.com

No Events found!

Top