In first instance I'm looking for a way to remove all internal DCF connections to get rid of duplicate connections.
I tried slnet calls, which doesn't allow deleting internal connections. Also through the general parameters page it's not possible to delete these internal connections.
I've been now advised to remove them from the elementdata table.
I'm trying following cql querry, but it doesn't allow the bigger than and smaller than characters.
delete from elementdata where d=34907 and e=159 and p>65060 and p<65070;
Anyone who knows the best way to delete internal connections without deleting the external connections?
According to the datastax documentation the PK_column_conditions for a delete query have the following restrictions:
-Only equals (=) or IN are supported
That would make the cql query to look like:
delete from elementdata where d=34907 and e=159 and p IN (65061, 65062, 65063, 65064, 65065, 65066, 65067, 65068, 65069);
*Do note that I did not verify if the pids match the ones used in internal DCF. I took the example from your query.
Not sure on CQL Syntax but you’re looking for a CQL alternative for this mysql part:
chIndex in (select chIndex from (select * from elementdata_DMAID where iEID = ELEMENTID and iPID in (65089) and chValue = “696E7465726E616C”) As x)
Checking if the value of column 65089 is “internal” which is “696E7465726E616C” in hex (ascii).
Indeed, you’ll need to find the DataMiner PKs of the internal connections. In CQL you won’t be able to find the ones that are “internal” as those values are not part of a clustering column (or you would have to use “allow filtering” keyword, which is not advised) and as far as I’m aware you can’t use the output of a query as content of an “IN” statement.
You would need to be able to run queries for pids 65061, 65096, 65062, 65089, 65064, and 65101 where each includes in the IN statement the PK of the rows to be deleted, which seems a lot of manual work.
Are you sure that you can’t delete the rows from the general parameters page? There is the [Connection to delete] parameter where the connection id can be filled in, then click on the Delete button of the [Add Connection]. This then triggers QAction 900007 which does a simple DeleteRow call without checks if it’s an internal row.
I believe the following should do the trick:
Cleaning all connections from a specific element
delete from elementdata_DMAID where iEID = ELEMENTID and iPID in (65061,65096,65062,65089,65064,65101) and chIndex in (select chIndex from (select * from elementdata_DMAID where iEID = ELEMENTID and iPID in (65089) and chValue = "696E7465726E616C") As x);
that will delete all internal connections for a specific element.
ELEMENTID and DMAID are filled in twice in the query so you can just substitute for the right one. Restart the element when done.
That example query is SQL, applicable for e.g. a MySql DB. This will not work on a Cassandra DB, as Jeroen is mentioning that he’s using CQL.
It’s indeed CQL. Is there a way to only delete the internal connections?