<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[NetXMS 3.0 released]]></title><description><![CDATA[<p dir="auto">Hi all!</p>
<p dir="auto">NetXMS 3.0 is officially out! There are few visual changes and lot of them under the hood. Development focus was on improving system stability and performance, especially for large networks: we have improved TimescaleDB support which is now production ready;  zones can have multiple proxies for both redundancy and load sharing; embedded scripting language - NXSL - is up to ten times faster then in previous version.<br />
Upgrade should be smooth in most cases, but there are few changes that could potentially break things:</p>
<ol>
<li>We have switched from TRE to PCRE as regular expression engine. In most cases this should go unnoticed, but in certain cases regular expressions may stop working or produce unexpected results.</li>
<li>Some bit fields in NXSL classes (most notably <em>flags</em> in <em>Node</em> class) had changed their meaning. If your script use those fields please check NXSL documentation for changes.</li>
<li>Agent policies were merged with templates - all existing policies will be converted into separate templates, and new policies has to be created under template object.</li>
<li>SMS drivers replaced by notification channels (so it is now possible to have more than one channel for messaging). Existing driver configuration should be automatically converted to channel named SMS.</li>
</ol>
<p dir="auto">Starting with this release we are changing versioning scheme. From now on product version consists of two numbers - major version and minor version. Third number represents build (patch) number. After release there will be no new features in current version, only critical bug fixes. It is guaranteed that all components with same major and minor versions are interoperable. We will publish patched versions (with new build number) only for affected components. So current product version is 3.0, release build is 2258, and next version will be 3.1.</p>
<p dir="auto">Full change log for version 3.0:</p>
<ul>
<li>Event tags</li>
<li>ICMP polls for collecting ICMP response time statistic on server side</li>
<li>User agents (desktop support application)</li>
<li>Raw DCI values saved in history along with corresponding transformed values</li>
<li>New DCI data types - "32 bit counter" and "64 bit counter"</li>
<li>Collected DCI data recalculation based on stored raw values and current transformation settings</li>
<li>Agent always requires encryption unless RequireEncryption parameter explicitly set to off</li>
<li>Default values for missing custom attributes in macros (in form %{attr:default})</li>
<li>Support for macros in threshold values</li>
<li>Improved network discovery filter script capabilities</li>
<li>Internal server parameters for counting client sessions</li>
<li>New hook script UpdateInterface</li>
<li>Node creation option "create as zone proxy"</li>
<li>JSON support in NXSL</li>
<li>Improved NXSL performance</li>
<li>Null values interpreted as "false" in NXSL logical expressions</li>
<li>Added method executeSSHCommand in NXSL class "Node"</li>
<li>Cleanup of collected DCI data by housekeeper can be disabled</li>
<li>Service group support in Tuxedo subagent</li>
<li>Improved Enduro/X compatibility</li>
<li>Improved Cisco Aironet (former Airespace) driver</li>
<li>Added driver for Cisco Nexus switches</li>
<li>Duplicate IP address detection during network discovery</li>
<li>Improved I/O performance parameters in Windows agent</li>
<li>Optional JSON format for log files</li>
<li>Option to use stdout as log output device</li>
<li>Switched to pcre (from libtre) as regular expression matching engine</li>
<li>Event parameters exposed as writable "Event" class attributes in NXSL</li>
<li>New method "addParameter" in NXSL class "Event"</li>
<li>"Origin timestamp" for events</li>
<li>Object management functions in NXSL implemented as object methods</li>
<li>SNMP functions in NXSL implemented as transport methods</li>
<li>Range access for strings and arrays in NXSL via [:] operator</li>
<li>Access to VLAN information from NXSL</li>
<li>Object tool type "Agent Table" now used to read agent tables and "Agent List" to read agent lists</li>
<li>Fixed issues:<br />
    NX-183 (Implemented responsible users for objects)<br />
    NX-725 (Add alarm comments from NXSL)<br />
    NX-900 (Server started during nxdbmgr check forced repair)<br />
    NX-1021 (Add event SYS_SERVER_STARTED)<br />
    NX-1102 (Implement event groups)<br />
    NX-1199 (SNMP credentials per-zone)<br />
    NX-1219 (Add 'created' and 'last login' columns to User Manager)<br />
    NX-1271 (Implement internal server topology map)<br />
    NX-1307 (After a node is deleted, its tunnel can't be unbound)<br />
    NX-1386 (Implement units for server variables)<br />
    NX-1426 (Transformation scripts for SNMP traps)<br />
    NX-1479 (DCI poll spread after NetXMS server/service restart)<br />
    NX-1562 (Add "tunnel only" option to node's agent communication configuration)<br />
    NX-1601 (Log Policy editor can't parse xml with unknown event code)<br />
    NX-1643 (Extra parameters for event generated by log parser)</li>
</ul>
<p dir="auto">Best regards,<br />
Victor</p>
]]></description><link>https://forum.netxms.org/topic/6161/netxms-3.0-released</link><generator>RSS for Node</generator><lastBuildDate>Fri, 13 Nov 2026 06:23:04 GMT</lastBuildDate><atom:link href="https://forum.netxms.org/topic/6161.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 11 Sep 2019 19:46:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to NetXMS 3.0 released on Wed, 25 Sep 2019 10:40:54 GMT]]></title><description><![CDATA[<p dir="auto">Found problem. It should be only with sending notification using "Send Notification" functionality form UI.</p>
]]></description><link>https://forum.netxms.org/post/26612</link><guid isPermaLink="true">https://forum.netxms.org/post/26612</guid><dc:creator><![CDATA[zev]]></dc:creator><pubDate>Wed, 25 Sep 2019 10:40:54 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Mon, 23 Sep 2019 00:59:40 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/zev" aria-label="Profile: zev">@<bdi>zev</bdi></a> said in <a href="/post/26534">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/brettmilfos" aria-label="Profile: brettmilfos">@<bdi>brettmilfos</bdi></a> said in <a href="/post/26520">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto">Hi,</p>
<p dir="auto">That fixed the issue of not finding the DriverName.</p>
<p dir="auto">Checking the logs the generic driver finds the device OK, but when I try to send a notification it says it cannot send the notification as there is no such channel name.</p>
<p dir="auto">Cheers, Brett.</p>
</blockquote>
<p dir="auto">Can you please provide screenshot of Cannel configuration for GenericDriver. It is under "Configuration"-&gt;"Notification Channels"</p>
</blockquote>
<p dir="auto">Hi Victor,</p>
<p dir="auto">Attached is the screenshot.</p>
<p dir="auto">P.S. Issue is with using Tools &gt; Send notification</p>
<p dir="auto">Thanks, Brett.</p>
<hr />
<p dir="auto"><img src="/assets/uploads/files/smf/0000000004846-2019-09-23_12_55_49-Clipboard.png" alt="2019-09-23 12_55_49-Clipboard.png" class="img-markdown  img-fluid" width="390" height="61" /></p>
]]></description><link>https://forum.netxms.org/post/26593</link><guid isPermaLink="true">https://forum.netxms.org/post/26593</guid><dc:creator><![CDATA[brettmilfos]]></dc:creator><pubDate>Mon, 23 Sep 2019 00:59:40 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Fri, 20 Sep 2019 10:08:35 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/brettmilfos" aria-label="Profile: brettmilfos">@<bdi>brettmilfos</bdi></a> said in <a href="/post/26520">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/victor" aria-label="Profile: victor">@<bdi>victor</bdi></a> said in <a href="/post/26519">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto">Hi,</p>
<p dir="auto">I've found bug in Windows installer. Try to rename directory C:\NetXMS\lib\ncd to C:\NetXMS\lib\ncdrv and restart NetXMS Core service.</p>
<p dir="auto">Best regards,<br />
Victor</p>
</blockquote>
<p dir="auto">Hi,</p>
<p dir="auto">That fixed the issue of not finding the DriverName.</p>
<p dir="auto">Checking the logs the generic driver finds the device OK, but when I try to send a notification it says it cannot send the notification as there is no such channel name.</p>
<p dir="auto">Cheers, Brett.</p>
</blockquote>
<hr />
<p dir="auto"><img src="/assets/uploads/files/smf/0000000004844-1.png" alt="1.png" class="img-markdown  img-fluid" width="1366" height="768" /></p>
]]></description><link>https://forum.netxms.org/post/26585</link><guid isPermaLink="true">https://forum.netxms.org/post/26585</guid><dc:creator><![CDATA[hayarm]]></dc:creator><pubDate>Fri, 20 Sep 2019 10:08:35 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Thu, 19 Sep 2019 02:47:44 GMT]]></title><description><![CDATA[<p dir="auto">From what I've seen after some basic testing, it loads a tray icon on the computer in question and allows the user to execute commands as pre-defined on the NetXMS server.<br />
It's not like VNC, i.e. it's not a remote control tool.</p>
]]></description><link>https://forum.netxms.org/post/26570</link><guid isPermaLink="true">https://forum.netxms.org/post/26570</guid><dc:creator><![CDATA[Tursiops]]></dc:creator><pubDate>Thu, 19 Sep 2019 02:47:44 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Tue, 17 Sep 2019 10:17:37 GMT]]></title><description><![CDATA[<p dir="auto">May i ask what is "User agents (desktop support application)" supposed to do ? Is it somthing similar to vnc ?</p>
]]></description><link>https://forum.netxms.org/post/26556</link><guid isPermaLink="true">https://forum.netxms.org/post/26556</guid><dc:creator><![CDATA[Egert143]]></dc:creator><pubDate>Tue, 17 Sep 2019 10:17:37 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Tue, 17 Sep 2019 06:52:12 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/victor" aria-label="Profile: victor">@<bdi>victor</bdi></a> said in <a href="/post/26543">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto">Did you clone it from our repository? Because latest version still waiting for approval to get into official Grafana plugin list.</p>
<p dir="auto">Best regards,<br />
Victor</p>
</blockquote>
<p dir="auto">I cloned from this git: <a href="https://github.com/netxms/grafana" rel="nofollow ugc">https://github.com/netxms/grafana</a></p>
]]></description><link>https://forum.netxms.org/post/26551</link><guid isPermaLink="true">https://forum.netxms.org/post/26551</guid><dc:creator><![CDATA[vir_db]]></dc:creator><pubDate>Tue, 17 Sep 2019 06:52:12 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Mon, 16 Sep 2019 15:00:50 GMT]]></title><description><![CDATA[<p dir="auto">Did you clone it from our repository? Because latest version still waiting for approval to get into official Grafana plugin list.</p>
<p dir="auto">Best regards,<br />
Victor</p>
]]></description><link>https://forum.netxms.org/post/26543</link><guid isPermaLink="true">https://forum.netxms.org/post/26543</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Mon, 16 Sep 2019 15:00:50 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Mon, 16 Sep 2019 14:10:30 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/alk" aria-label="Profile: alk">@<bdi>alk</bdi></a> said in <a href="/post/26499">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto">Plugin in grafana repo will be updated shortly.<br />
In a meantime you can update it directly from git.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/vir_db" aria-label="Profile: vir_db">@<bdi>vir_db</bdi></a> said in <a href="/post/26498">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto">Thanks Viktor,</p>
<p dir="auto">just another issue: seems that the upgrade brok the grafana plugin. I can get alerts, but I cannot collect any graphs (for ex. CPU Usage)</p>
</blockquote>
</blockquote>
<p dir="auto">there are any updates about grafana plugin?<br />
I saw the last commit 3 day ago, but still not working cloned in my grafana / netxms deploy</p>
]]></description><link>https://forum.netxms.org/post/26542</link><guid isPermaLink="true">https://forum.netxms.org/post/26542</guid><dc:creator><![CDATA[vir_db]]></dc:creator><pubDate>Mon, 16 Sep 2019 14:10:30 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Mon, 16 Sep 2019 09:52:36 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/brettmilfos" aria-label="Profile: brettmilfos">@<bdi>brettmilfos</bdi></a> said in <a href="/post/26520">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto">Hi,</p>
<p dir="auto">That fixed the issue of not finding the DriverName.</p>
<p dir="auto">Checking the logs the generic driver finds the device OK, but when I try to send a notification it says it cannot send the notification as there is no such channel name.</p>
<p dir="auto">Cheers, Brett.</p>
</blockquote>
<p dir="auto">Can you please provide screenshot of Cannel configuration for GenericDriver. It is under "Configuration"-&gt;"Notification Channels"</p>
]]></description><link>https://forum.netxms.org/post/26534</link><guid isPermaLink="true">https://forum.netxms.org/post/26534</guid><dc:creator><![CDATA[zev]]></dc:creator><pubDate>Mon, 16 Sep 2019 09:52:36 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Sun, 15 Sep 2019 15:11:24 GMT]]></title><description><![CDATA[<p dir="auto">Hi,</p>
<p dir="auto">there are issues with libraries needed by 3.0 in Debian Jessie and so far we have no plans to provide Debian Jessie packages for version 3.0.</p>
<p dir="auto">Best regards,<br />
Victor</p>
]]></description><link>https://forum.netxms.org/post/26526</link><guid isPermaLink="true">https://forum.netxms.org/post/26526</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Sun, 15 Sep 2019 15:11:24 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Sun, 15 Sep 2019 10:14:33 GMT]]></title><description><![CDATA[<p dir="auto">Hello,</p>
<p dir="auto">I am using the debian repository, (<a href="http://packages.netxms.org" rel="nofollow ugc">http://packages.netxms.org</a> jessie/main amd64 packages ) but it is not pickup version 3.0 .. is this not push jet ?<br />
or is there a other repository ?</p>
]]></description><link>https://forum.netxms.org/post/26524</link><guid isPermaLink="true">https://forum.netxms.org/post/26524</guid><dc:creator><![CDATA[yordi]]></dc:creator><pubDate>Sun, 15 Sep 2019 10:14:33 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Fri, 13 Sep 2019 03:49:59 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/victor" aria-label="Profile: victor">@<bdi>victor</bdi></a> said in <a href="/post/26519">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto">Hi,</p>
<p dir="auto">I've found bug in Windows installer. Try to rename directory C:\NetXMS\lib\ncd to C:\NetXMS\lib\ncdrv and restart NetXMS Core service.</p>
<p dir="auto">Best regards,<br />
Victor</p>
</blockquote>
<p dir="auto">Hi,</p>
<p dir="auto">That fixed the issue of not finding the DriverName.</p>
<p dir="auto">Checking the logs the generic driver finds the device OK, but when I try to send a notification it says it cannot send the notification as there is no such channel name.</p>
<p dir="auto">Cheers, Brett.</p>
]]></description><link>https://forum.netxms.org/post/26520</link><guid isPermaLink="true">https://forum.netxms.org/post/26520</guid><dc:creator><![CDATA[brettmilfos]]></dc:creator><pubDate>Fri, 13 Sep 2019 03:49:59 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Thu, 12 Sep 2019 21:51:16 GMT]]></title><description><![CDATA[<p dir="auto">Hi,</p>
<p dir="auto">I've found bug in Windows installer. Try to rename directory C:\NetXMS\lib\ncd to C:\NetXMS\lib\ncdrv and restart NetXMS Core service.</p>
<p dir="auto">Best regards,<br />
Victor</p>
]]></description><link>https://forum.netxms.org/post/26519</link><guid isPermaLink="true">https://forum.netxms.org/post/26519</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Thu, 12 Sep 2019 21:51:16 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Thu, 12 Sep 2019 20:46:05 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/victor" aria-label="Profile: victor">@<bdi>victor</bdi></a> said in <a href="/post/26492">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/brettmilfos" aria-label="Profile: brettmilfos">@<bdi>brettmilfos</bdi></a> said in <a href="/post/26488">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto">Just upgraded and have found an issue with SMS.</p>
<p dir="auto">It created the migrated notification channel but did not work.</p>
<p dir="auto">I tried to create a new notification channel, but there is nothing to select in the Driver name drop down.</p>
<p dir="auto">Thanks, Brett.</p>
</blockquote>
<p dir="auto">How did you install server? On what platform?</p>
<p dir="auto">Best regards,<br />
Victor</p>
</blockquote>
<p dir="auto">Hi Victor,</p>
<p dir="auto">Updated from 2.2.17 server 2k8r2 with existing generic SMS.</p>
<p dir="auto">Cheers, Brett.</p>
]]></description><link>https://forum.netxms.org/post/26518</link><guid isPermaLink="true">https://forum.netxms.org/post/26518</guid><dc:creator><![CDATA[brettmilfos]]></dc:creator><pubDate>Thu, 12 Sep 2019 20:46:05 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Thu, 12 Sep 2019 13:43:45 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/vir_db" aria-label="Profile: vir_db">@<bdi>vir_db</bdi></a> said in <a href="/post/26500">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto">Hi Alex,<br />
do you mean this git? <a href="https://github.com/netxms/grafana" rel="nofollow ugc">https://github.com/netxms/grafana</a></p>
<p dir="auto">seems last commit was in june:</p>
<p dir="auto"></p><div class="card col-md-9 col-lg-6 position-relative link-preview p-0">



<a href="https://github.com/netxms/grafana/commits/master" title="Commits · netxms/grafana">
<img src="https://opengraph.githubassets.com/726416e6a89524892b4d2c4b4b889ab812206a88d547ce5f7a78b654c8da3ad2/netxms/grafana" class="card-img-top not-responsive" style="max-height:15rem" alt="Link Preview Image" />
</a>



<div class="card-body">
<h5 class="card-title">
<a class="text-decoration-none" href="https://github.com/netxms/grafana/commits/master">
Commits · netxms/grafana
</a>
</h5>
<p class="card-text line-clamp-3">Grafana integration module for NetXMS. Contribute to netxms/grafana development by creating an account on GitHub.</p>
</div>
<a href="https://github.com/netxms/grafana/commits/master" class="card-footer text-body-secondary small d-flex gap-2 align-items-center lh-2">



<img src="https://github.githubassets.com/favicons/favicon.svg" alt="favicon" class="not-responsive overflow-hiddden" style="max-width:21px;max-height:21px" />



<p class="d-inline-block text-truncate mb-0">GitHub <span class="text-secondary">(github.com)</span></p>
</a>
</div><p></p>
</blockquote>
<p dir="auto">I reported an issue on GitHub <a href="https://github.com/netxms/grafana/issues/3" rel="nofollow ugc">https://github.com/netxms/grafana/issues/3</a></p>
]]></description><link>https://forum.netxms.org/post/26507</link><guid isPermaLink="true">https://forum.netxms.org/post/26507</guid><dc:creator><![CDATA[vir_db]]></dc:creator><pubDate>Thu, 12 Sep 2019 13:43:45 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Thu, 12 Sep 2019 12:35:08 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/tomaskir" aria-label="Profile: tomaskir">@<bdi>tomaskir</bdi></a> said in <a href="/post/26496">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/victor" aria-label="Profile: victor">@<bdi>victor</bdi></a> said in <a href="/post/26494">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto">That's complicated issue. Current implementation is a bit messy with $n variables after matching. Consider the following code:</p>
<pre><code>v = "error 43";
if (v ~= "(error|warning) ([0-9]+)")
	println("Step 1: $1=".$1." $2=".$2);
if (v ~= "(error .*|info ([0-9]+))")
	println("Step 2: $1=".$1." $2=".$2);
</code></pre>
<p dir="auto">In NetXMS 2.2 $2 will be equal "43" on step 2, which is kind of misleading. It was because implementation in 2.2 silently skipping unmatched capture groups. Implementation in 3.0 resets all unused $n variables, which has side effect of clearing $1 if there were no capture groups at all. Looks like it was bad decision to use same names for capture groups and script arguments.</p>
<p dir="auto">I want to gradually clean up inconsistencies in NXSL, and that could lead to break up of some things. I think that for now I can introduce server configuration variable (off by default) that will prevent resetting of unused capture group variables. Also I will introduce separated naming for script arguments and capture groups so scripts could be migrated over time to non-overlapping variable naming. Also for transformation scripts I think it is worth passing raw value not only as first argument to the script but also as global variable, like $rawValue.</p>
<p dir="auto">Best regards,<br />
Victor</p>
</blockquote>
<p dir="auto">The problem here is that there are likely thousands of scripts all around the Forums, Wiki and the internet that this change breaks.<br />
Every single one would have to be updated - which is unrealistic.<br />
For new users who find some regex-based scripts on the internet, they will not work, and they don't know why.</p>
<p dir="auto">Existing implementations (scripts) will start working differently upon upgrade, without any knowledge of the system operators<br />
This will be VERY difficult to track down, as this will not produce script errors, rather things will just work differently.<br />
This means there can be a threshold script which will "pretend" to still work, but in reality will not work.<br />
It puts burden on system operators to review every script they have upon upgrade to check if it still works properly</p>
<p dir="auto">What I personally would propose:<br />
There are far less scripts using regex capture groups than just regex.<br />
So if a change is needed, only regex capture group should be changed, without affecting regex operations without capture groups (as is the case now).</p>
<p dir="auto">What about capturing regex returning arrays with captures?</p>
<pre><code>matchArrray = "test" ~= "t(e)(s)t";

println(matchArrray [0] . matchArrray [1]);
for (match : matchArrray) {
  print(match);
}
</code></pre>
<p dir="auto">This would clean up the reuse of $1, $2, etc. without breaking ALL regex handling.<br />
The change would only affect a smaller part of community, so less impact.</p>
</blockquote>
<p dir="auto">I've changed regexp expressions to return array with capture groups instead of boolean value. It still sets $n variables for compatibility but does not erase unused variables (so if there is no capture groups in regexp $1 will be left intact). As a side effect it is now possible do directly access capture group from regexp. For example the following code</p>
<pre><code>text = "error 43";
errorCode = (text ~= "error ([0-9]+)")[1];
println(errorCode);
</code></pre>
<p dir="auto">will print 43.</p>
<p dir="auto">Best regards,<br />
Victor</p>
]]></description><link>https://forum.netxms.org/post/26504</link><guid isPermaLink="true">https://forum.netxms.org/post/26504</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Thu, 12 Sep 2019 12:35:08 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Thu, 12 Sep 2019 10:57:26 GMT]]></title><description><![CDATA[<p dir="auto">Fantastic work Victor and the team - including those who helped in the testing.</p>
<p dir="auto">I will wait for the first patch release - or Saturday - whichever comes first <img src="https://forum.netxms.org/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=72b86a538fc" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:1.4em;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
]]></description><link>https://forum.netxms.org/post/26501</link><guid isPermaLink="true">https://forum.netxms.org/post/26501</guid><dc:creator><![CDATA[paul]]></dc:creator><pubDate>Thu, 12 Sep 2019 10:57:26 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Thu, 12 Sep 2019 10:35:21 GMT]]></title><description><![CDATA[<p dir="auto">Hi Alex,<br />
do you mean this git? <a href="https://github.com/netxms/grafana" rel="nofollow ugc">https://github.com/netxms/grafana</a></p>
<p dir="auto">seems last commit was in june:</p>
<p dir="auto"><div class="card col-md-9 col-lg-6 position-relative link-preview p-0">



<a href="https://github.com/netxms/grafana/commits/master" title="Commits · netxms/grafana">
<img src="https://opengraph.githubassets.com/726416e6a89524892b4d2c4b4b889ab812206a88d547ce5f7a78b654c8da3ad2/netxms/grafana" class="card-img-top not-responsive" style="max-height: 15rem;" alt="Link Preview Image" onerror="this.parentElement.remove()" />
</a>



<div class="card-body">
<h5 class="card-title">
<a class="text-decoration-none" href="https://github.com/netxms/grafana/commits/master">
Commits · netxms/grafana
</a>
</h5>
<p class="card-text line-clamp-3">Grafana integration module for NetXMS. Contribute to netxms/grafana development by creating an account on GitHub.</p>
</div>
<a href="https://github.com/netxms/grafana/commits/master" class="card-footer text-body-secondary small d-flex gap-2 align-items-center lh-2">



<img src="https://github.githubassets.com/favicons/favicon.svg" alt="favicon" class="not-responsive overflow-hiddden" style="max-width: 21px; max-height: 21px;" onerror="this.remove()"/>



<p class="d-inline-block text-truncate mb-0">GitHub <span class="text-secondary">(github.com)</span></p>
</a>
</div></p>
]]></description><link>https://forum.netxms.org/post/26500</link><guid isPermaLink="true">https://forum.netxms.org/post/26500</guid><dc:creator><![CDATA[vir_db]]></dc:creator><pubDate>Thu, 12 Sep 2019 10:35:21 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Thu, 12 Sep 2019 10:13:21 GMT]]></title><description><![CDATA[<p dir="auto">Plugin in grafana repo will be updated shortly.<br />
In a meantime you can update it directly from git.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/vir_db" aria-label="Profile: vir_db">@<bdi>vir_db</bdi></a> said in <a href="/post/26498">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto">Thanks Viktor,</p>
<p dir="auto">just another issue: seems that the upgrade brok the grafana plugin. I can get alerts, but I cannot collect any graphs (for ex. CPU Usage)</p>
</blockquote>
]]></description><link>https://forum.netxms.org/post/26499</link><guid isPermaLink="true">https://forum.netxms.org/post/26499</guid><dc:creator><![CDATA[alk]]></dc:creator><pubDate>Thu, 12 Sep 2019 10:13:21 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Thu, 12 Sep 2019 09:34:03 GMT]]></title><description><![CDATA[<p dir="auto">Thanks Viktor,</p>
<p dir="auto">just another issue: seems that the upgrade brok the grafana plugin. I can get alerts, but I cannot collect any graphs (for ex. CPU Usage)</p>
]]></description><link>https://forum.netxms.org/post/26498</link><guid isPermaLink="true">https://forum.netxms.org/post/26498</guid><dc:creator><![CDATA[vir_db]]></dc:creator><pubDate>Thu, 12 Sep 2019 09:34:03 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Thu, 12 Sep 2019 09:25:17 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/vir_db" aria-label="Profile: vir_db">@<bdi>vir_db</bdi></a> said in <a href="/post/26495">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto">Good morning.</p>
<p dir="auto">just upraded to 3.0: more or less all hosts reports this alarm: Status of DCI xxxx (NetXMS Agent: sqlite-hosts) changed to UNSUPPORTED. (seems it comes from "Local Database" template)</p>
<p dir="auto">just the server itself reports:</p>
<ul>
<li>Status of DCI 697 (Internal: Server.ThreadPool.Usage(SYNCER)) changed to UNSUPPORTED</li>
<li>Status of DCI 696 (Internal: Server.ThreadPool.LoadAverage(SYNCER,1)) changed to UNSUPPORTED</li>
<li>Status of DCI 695 (Internal: Server.ThreadPool.CurrSize(SYNCER)) changed to UNSUPPORTED</li>
<li>Status of DCI 694 (Internal: Server.ThreadPool.Load(SYNCER)) changed to UNSUPPORTED</li>
</ul>
<p dir="auto">looking at Data Collection Configuration, those DCIs doesn't exists.</p>
<p dir="auto">Also tried to delete the database (PGSQL) and have a fresh start, but the results is the same.</p>
<p dir="auto">How can I solve?</p>
<p dir="auto">thanks alot and best regards</p>
</blockquote>
<p dir="auto">You van safely ignore them. It is cosmetic issue in default templates, we will fix that in next patch release.</p>
<p dir="auto">Best regards,<br />
Victor</p>
]]></description><link>https://forum.netxms.org/post/26497</link><guid isPermaLink="true">https://forum.netxms.org/post/26497</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Thu, 12 Sep 2019 09:25:17 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Thu, 12 Sep 2019 09:11:15 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/victor" aria-label="Profile: victor">@<bdi>victor</bdi></a> said in <a href="/post/26494">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto">That's complicated issue. Current implementation is a bit messy with $n variables after matching. Consider the following code:</p>
<pre><code>v = "error 43";
if (v ~= "(error|warning) ([0-9]+)")
	println("Step 1: $1=".$1." $2=".$2);
if (v ~= "(error .*|info ([0-9]+))")
	println("Step 2: $1=".$1." $2=".$2);
</code></pre>
<p dir="auto">In NetXMS 2.2 $2 will be equal "43" on step 2, which is kind of misleading. It was because implementation in 2.2 silently skipping unmatched capture groups. Implementation in 3.0 resets all unused $n variables, which has side effect of clearing $1 if there were no capture groups at all. Looks like it was bad decision to use same names for capture groups and script arguments.</p>
<p dir="auto">I want to gradually clean up inconsistencies in NXSL, and that could lead to break up of some things. I think that for now I can introduce server configuration variable (off by default) that will prevent resetting of unused capture group variables. Also I will introduce separated naming for script arguments and capture groups so scripts could be migrated over time to non-overlapping variable naming. Also for transformation scripts I think it is worth passing raw value not only as first argument to the script but also as global variable, like $rawValue.</p>
<p dir="auto">Best regards,<br />
Victor</p>
</blockquote>
<p dir="auto">The problem here is that there are likely thousands of scripts all around the Forums, Wiki and the internet that this change breaks.<br />
Every single one would have to be updated - which is unrealistic.<br />
For new users who find some regex-based scripts on the internet, they will not work, and they don't know why.</p>
<p dir="auto">Existing implementations (scripts) will start working differently upon upgrade, without any knowledge of the system operators<br />
This will be VERY difficult to track down, as this will not produce script errors, rather things will just work differently.<br />
This means there can be a threshold script which will "pretend" to still work, but in reality will not work.<br />
It puts burden on system operators to review every script they have upon upgrade to check if it still works properly</p>
<p dir="auto">What I personally would propose:<br />
There are far less scripts using regex capture groups than just regex.<br />
So if a change is needed, only regex capture group should be changed, without affecting regex operations without capture groups (as is the case now).</p>
<p dir="auto">What about capturing regex returning arrays with captures?</p>
<pre><code>matchArrray = "test" ~= "t(e)(s)t";

println(matchArrray [0] . matchArrray [1]);
for (match : matchArrray) {
  print(match);
}
</code></pre>
<p dir="auto">This would clean up the reuse of $1, $2, etc. without breaking ALL regex handling.<br />
The change would only affect a smaller part of community, so less impact.</p>
]]></description><link>https://forum.netxms.org/post/26496</link><guid isPermaLink="true">https://forum.netxms.org/post/26496</guid><dc:creator><![CDATA[tomaskir]]></dc:creator><pubDate>Thu, 12 Sep 2019 09:11:15 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Thu, 12 Sep 2019 09:05:24 GMT]]></title><description><![CDATA[<p dir="auto">Good morning.</p>
<p dir="auto">just upraded to 3.0: more or less all hosts reports this alarm: Status of DCI xxxx (NetXMS Agent: sqlite-hosts) changed to UNSUPPORTED. (seems it comes from "Local Database" template)</p>
<p dir="auto">just the server itself reports:</p>
<ul>
<li>Status of DCI 697 (Internal: Server.ThreadPool.Usage(SYNCER)) changed to UNSUPPORTED</li>
<li>Status of DCI 696 (Internal: Server.ThreadPool.LoadAverage(SYNCER,1)) changed to UNSUPPORTED</li>
<li>Status of DCI 695 (Internal: Server.ThreadPool.CurrSize(SYNCER)) changed to UNSUPPORTED</li>
<li>Status of DCI 694 (Internal: Server.ThreadPool.Load(SYNCER)) changed to UNSUPPORTED</li>
</ul>
<p dir="auto">looking at Data Collection Configuration, those DCIs doesn't exists.</p>
<p dir="auto">Also tried to delete the database (PGSQL) and have a fresh start, but the results is the same.</p>
<p dir="auto">How can I solve?</p>
<p dir="auto">thanks alot and best regards</p>
]]></description><link>https://forum.netxms.org/post/26495</link><guid isPermaLink="true">https://forum.netxms.org/post/26495</guid><dc:creator><![CDATA[vir_db]]></dc:creator><pubDate>Thu, 12 Sep 2019 09:05:24 GMT</pubDate></item><item><title><![CDATA[Reply to NetXMS 3.0 released on Thu, 12 Sep 2019 08:10:31 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/tomaskir" aria-label="Profile: tomaskir">@<bdi>tomaskir</bdi></a> said in <a href="/post/26486">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/tursiops" aria-label="Profile: tursiops">@<bdi>tursiops</bdi></a> said in <a href="/post/26485">NetXMS 3.0 released</a>:</p>
<blockquote>
<p dir="auto">Just a practical note on this one:</p>
<blockquote>
<ol>
<li>We have switched from TRE to PCRE as regular expression engine. In most cases this should go unnoticed, but in certain cases regular expressions may stop working or produce unexpected results.</li>
</ol>
</blockquote>
<p dir="auto">A side effect of this change is that if you are matching a regular expression, even without a capture group, $1, $2, etc. will be reset to null values.<br />
An transform script example of where that might cause an issue:</p>
<pre><code>if ( $1 ~= "^Hello\s+World" ) {
  return $1;
} else {
  return "Something Else";
}
</code></pre>
<p dir="auto">In prior versions of NetXMS, if the DCI returned "Hello World", the transform script would have returned exactly that.<br />
With version 3, the transform script will return null.</p>
<p dir="auto">You will need to change your script to something like this:</p>
<pre><code>value = $1;
if ( value ~= "^Hello\s+World" ) {
  return value;
} else {
  return "Something Else";
}
</code></pre>
</blockquote>
<p dir="auto">Is this a known and expected change or a bug?<br />
This will break A LOT of my NXSL scripts...</p>
</blockquote>
<p dir="auto">That's complicated issue. Current implementation is a bit messy with $n variables after matching. Consider the following code:</p>
<pre><code>v = "error 43";
if (v ~= "(error|warning) ([0-9]+)")
	println("Step 1: $1=".$1." $2=".$2);
if (v ~= "(error .*|info ([0-9]+))")
	println("Step 2: $1=".$1." $2=".$2);
</code></pre>
<p dir="auto">In NetXMS 2.2 $2 will be equal "43" on step 2, which is kind of misleading. It was because implementation in 2.2 silently skipping unmatched capture groups. Implementation in 3.0 resets all unused $n variables, which has side effect of clearing $1 if there were no capture groups at all. Looks like it was bad decision to use same names for capture groups and script arguments.</p>
<p dir="auto">I want to gradually clean up inconsistencies in NXSL, and that could lead to break up of some things. I think that for now I can introduce server configuration variable (off by default) that will prevent resetting of unused capture group variables. Also I will introduce separated naming for script arguments and capture groups so scripts could be migrated over time to non-overlapping variable naming. Also for transformation scripts I think it is worth passing raw value not only as first argument to the script but also as global variable, like $rawValue.</p>
<p dir="auto">Best regards,<br />
Victor</p>
]]></description><link>https://forum.netxms.org/post/26494</link><guid isPermaLink="true">https://forum.netxms.org/post/26494</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Thu, 12 Sep 2019 08:10:31 GMT</pubDate></item></channel></rss>