Hi Dojo,
I'm testing the new Apache Cassandra Cluster Monitor connector and noticed below exception in the element log file:
2022/01/11 12:49:31.841|SLManagedScripting.exe|ManagedInterop|ERR|0|5|QA3|2|Run|Exception thrown: System.MissingMethodException: Method not found: 'System.Guid Cassandra.Host.get_HostId()'. at QAction.ParseCassandraNodes(CassandraDb cassandra) at QAction.Run(SLProtocolExt protocol)
The protocol solution has no builds issues and all necessary DLLs are added in the ProtocolScripts folder.
Does someone has an idea why this fails?
The problem was that we placed the necessary Cassandra DLL in the ProtocolScripts folder, while DataMiner has a Cassandra DLL of its own in the files folder. When doing a dllImport on a QAction, DataMiner will first look for a reference in the Files folder before looking in the ProtocolScripts folder.
Unfortunately, the Cassandra DLL in the files folder doesn't contain all properties that are needed for the connector to work. Therefore the developer will change the name of the Cassandra DLL so that it can be placed in the ProtocolScripts folder and the connector will use the correct DLL.
This exception is typically the result of code being executed using assemblies that differ from the assemblies they were compiled against. We often see this when an automation script is unchanged but a DLL reference of the script is updated (and some method signatures are different), without a DMA restart. I suspect something similar has happened with your QAction. I would check if the version of the assembly containing the Cassandra type is still correct.