1 of 1 people found this helpful
I gave up on maps and leveraged dynamic groups. For reasons you mentioned but also due to the rollup status flexibility via groups that seemed lacking in maps. This was an easy decision to make since devices had DNS entries and hostnames that looked like: region-function-001.
Since I maintained five installations and failover engine did not meet our use case, time management necessitated ditching maps.
1 of 1 people found this helpful
As a start, a custom SQL Query can get us this information.
select filename from MapStudioFiles
where convert(nvarchar(max),filedata) like '%Nodes: NodeID%'
Now... to figure out a nice way to display it dynamically somewhere in the console. On the node details view maybe..
it seems to be useful. I tried to use a convert function and I found that each map's FileData field contains a list of nodes wich are placed on it..
It looks this way:
comment: "NetObjects=: ,Orion.Nodes: 2777,Orion.Nodes: 12006,Orion.Nodes: 7096,Orion.Nodes: 12576,Orion.Nodes: 6080,Orion.Nodes: 14825,Orion.Nodes: 14957,
I found that the convert function is very demanding on the processor performance, when it search through all maps a SQL server is close to collapse. It will be necessary to make copy of the MapStudioFiles table to another SQL instance and all operations make out of the NMP SQL.
Using this convert function and some additional queries I will create new table wich should contain thee columns :
Node ID : Map Name: Map URL:
2777 Praha - Url generated using Map name field - <a href="/Orion/NetPerfMon/MapView.aspx?Map=Praha">Praha</a>
2777 Praha-2 - Url generated using Map name field - <a href="/Orion/NetPerfMon/MapView.aspx?Map=Praha-2">Praha-2</a> - in a case that the node will be found on more maps
- In the next step I have to transfer Map URL field in to Node table in NPM database - in to Map URL field (as I described the description of my current solution).
This procedure should help me to automate creation of URL's of maps.
The rest of issues I have remain, until official solutions from the manufacturer will be available. I'm asking for it for years but with no success.
I hope that SolarWinds will not change the structure of databases in the next versions so that at least this solution can be used.
I'm little bit late but I'm going to describe my solution how to find out on wich map is a specific device located.
1. I created a new custom property feeld for object Nodes (format Text) - named Map
2. I created a new custom property field for object Nodes (format Text) - named Map URL
( now only step 2 is necessary , I have to doo it this way, because in one of previous NPM version was not URL in "Map URL" human readable well , In 12.x version only step 2 is necessary)
3. Each "Map" field I filled up with real map name . For example "Praha"
4. Each "Map URL " I filled up with map URL coppied from line on browser line forexample : <a href="/Orion/NetPerfMon/MapView.aspx?Map=Praha">Praha</a>
If the device is on more maps , it is possible to put "brake" sign and fill another URL.
You can imagine that maintain all this informations manually is horrible. Moreover it does not solve everythink I need.
- It is not possible to search Node using standard search tool. When you use standard search, as a result it shows nodes wich match , but no other database fields related to this node - like "Map URL" . Additionally, the ability to display other database fields in the result is not user-definable.
- With search function it is possible to open Node detail screen, from the Node detail screen you can open "Map URL" (of course if you have custom property fields displayed on this view)
- The only way how to search map, is to use a "Manage Nodes" function, there is possible to display mode database fields. So I put a Map URL field there. From this point it is possible to click on URL and open the map view.
- Bad is, that I do not want to allow "Manage nodes" function to all users of course. These users will be blind.
When I do all the previous steps and open the map on which the device is located, I have not yet won. Imagine map with 30 and more devices - you have to find it on this screen and it is definitelly not easy. CTRL-F is not usable because labels are not displayed as Text on the screen. There is no way how to highlight searched Node on map too !
- In Network atlas you can use "Map" name as one of grouping parameters. So all nodes and interfaces on map I'm editing at the moment, are easily visible in left hand list one next to each other.
This is my way how to open a map on wich is a node I'm lookong for located. I'm not happy with it and will not be able to use it in the future due to user-friendliness.
If anybody (especially SolarWinds staff) will have any idea how to improve this solution I will be glad.
P.S. Tonny.Johnson wich makes replay to my question give me good idea.
Map search has been solved - at max level wich was possible to acchive in SolarWinds environment.
I'm using external utility wich was programmed by my good friend. It is an application running on SQL server it is looking for occurrence of NodeID in MapStudioFiles table. (It runs every 2 hours as a Windows service or upon user request as an application)
Every Time it finds "NodeID" in "Filedata" field of the "MapStudioFile" table, it generates URL of the map and fills it in to my Custom property field "MapaURL" (If node exists on more maps - there is more URL`s generated)
For example node is drawn on two maps:
By clicking on the URL I can open a map wich I want to see.
We did not suceed in changing of the behavior of "Search" function. Whole "search" seems to be compilled in one DLL file so it was not possible to change its functionality - our goal was to add more database fields to search results.
Currently we receive only Node name on request and there is not possible to add some other fields ( my "MapaURL" field for example) :
An application is theoretically usable on any NPM environment, the only necessary think is to have the same Custom fields on Node as we have - "MAPA" and "MAPAURL" , I have to test it on second NPM server we have