News:

We really need your input in this questionnaire

Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Victor Kirhenshtein

#4951
Hi!

You can achieve this by storing timestamp of node down event and checking it on node up. You can use custom attributes and scripting for this. For example, you can create the following script in script library, named "OnNodeDown" for example:


SetCustomAttribute($node, "nodeDownTimestamp", time());


then create action "execute script" to execute "OnNodeDown" script, and add it in event processing policy to the rule processing SYS_NODE_DOWN event.

Then create separate rule for sending e-mails on SYS_NODE_UP, with additional filtering script like this:


t = GetCustomAttribute($node, "nodeDownTimestamp");
interval = time() - t;   // get interval in seconds between down and up events
return (interval >= 300);


With this filtering script, only SYS_NODE_UP events happens 5 or more minutes later then SYS_NODE_DOWN event will pass the filter.

More information about scripting you can found here: http://wiki.netxms.org/wiki/Scripting_Guide.

Best regards,
Victor
#4952
General Support / Re: Performance with Custom attributes
November 14, 2012, 12:09:51 PM
Hi!

Yes, server keep entire object tree in memory, and all status calculations done in memory. Objects with changed statuses are marked as modified, and later saved to database by background sync thread. We also actively use queues for processing, so you can experience a slight delay in trap processing for example, but they will not be lost and will be processed in correct order.

Best regards,
Victor
#4953
Hi!

Check that NetXMS Core service is running. If not, check event log for error messages. You can also try to run server in foreground to see why it can't start by running

netxmsd -D 9

from command line.

Best regards,
Victor
#4954
General Support / Re: Performance with Custom attributes
November 13, 2012, 06:58:36 PM
Hi!

It all depends on how often you change and access attributes. NetXMS server caches lot of things, including custom attributes. For example, when you cange custom attribute from the driver, it will not change database immediately, but just mark object as modified. Background sync thread writes changes from objects to database periodically (once per minute by default). Reading custom attributes never involve database access - they read from memory. Drawback of this is of course increased memory usage. Custom attributes stored as strings, so it's not very effective when you have numeric data.

I would go with custom attributes. I also see couple of simple changes to allow easier creation of complicated drivers: we can add "driver data" field to Node object (simple pointer to void) where driver will be able to store it's data in any convenient format, and two additional calls in the driver - saveToDatabase and loadFromDatabase - to be called on node object saving and loading to allow save and restore of driver specific data.

Best regards,
Victor
#4955
Да, это правильный метод. На Jave я бы использовал instanceof Subnet вместо сравнения getObjectClassName(), не знаю, можно ли в Groovy так делать.
#4956
General Support / Re: Too many alerts
November 12, 2012, 11:57:27 AM
Hi!

I've created an issue in the bug tracker: https://www.radensolutions.com/chiliproject/issues/180.

Best regards,
Victor
#4957
General Support / Re: Policies
November 12, 2012, 11:55:57 AM
Hi!

Status for policy object is irrelevant. It's a bug in the server that it remains unknown, it should be normal. But anyway it doesn't indicate anything.

Best regards,
Victor
#4958
Т.е. остался аларм? А как выглядит event processing policy?
#4959
Пока нельзя такое сделать. Я очень давно собираюсь реализовать возможность поместить несколько значений на один график в Performance Tab, все никак руки не доходят :( Постараюсь в 1.2.5 сделать.
#4960
Вообще-то поля NXCObjectModificationData напрямую изменять нельзя. Они все обьявлены как private, я так понимаю что Groovy это просто игнорирует (а зря!). Что касается комментариев, то это исключение (так исторически сложилось), и через modifyObject поменять их нельзя. Правильный код для изменения комментария:



NXCSession session = new NXCSession("server", "login", "password");
session.connect();

session.updateObjectComments(2081, "ABC");

session.disconnect()

#4961
Feature Requests / Re: Java Console - Opening
November 11, 2012, 03:32:54 PM
Hi!

I have changed object browser and object details view to remember currently selected object. It's still not perfect in object browser - it remembers object selection, but not exact path in the tree - if node is in different containers for example, it can select same node, but under different container. I'll take a closer look at this problem later.

Best regards,
Victor
#4962
Feature Requests / Re: mssql subagent
November 11, 2012, 12:58:07 PM
Hi!

For MS SQL you should be able to get almost anything via Windows Performance Counters. So probably WindPerf subagent should be enough.

Best regards,
Victor
#4963
General Support / Re: active discovery targets ignored?
November 09, 2012, 11:50:19 PM
Hi!

Just checked it. Yes, there are flaw in the logic - for each new IP address found server first collect all possible information (thus SNMP packets being sent), and only after that checks the filter. So nodes outside given IP range is not added to database, but still scanned. This behavior comes from the days when there was only custom script filters - for such filters it was not possible for server to know what information will be required by filter to made a decision. For automatic filters it is possible to made a decision early. I have added this as feature request for 1.2.5: https://www.radensolutions.com/chiliproject/issues/178.

Best regards,
Victor
#4964
Hello!

Eclipse RAP and Eclipse RCP are not 100% compatible on source code level. Although most of the RCP code can be compiled for RAP without changes, there are always some code that has to be changes in RAP version. It is theoretically possible to move code which is different in RCP and RAP to plugin fragments and keep single core codebase. But I decide that it is much easier to have separate source trees for RCP and RAP version of the console, and merge them as necessary. My usual development pattern is to make changes in RCP version and then merge these changes into RAP version (usually with svn merge). I also have two different Eclipse instances for RCP and RAP development. And we are still using Eclipse Indigo for RCP version.

Best regards,
Victor

#4965
Проблема с переводом названий каунтеров:

[08-Nov-2012 14:29:38] WINPERF: Counter translated: \LogicalDisk(C:)\Current Disk Queue Length ==> \Logic?(C:)\??????? ?
???? ??????? ?????
[08-Nov-2012 14:29:38] CheckCounter: PDH Error C0000BB8 in call to PdhAddCounter (????????? ??????? ?? ??????? ?? ???? ?
?????????.)

Начиная с версии 1.2.3 агенты для Windows собраны в UNICODE. Попробуйте поставить 1.2.2 - если он заработает, значит проблема именно с UNICODE связана.