Open jrobinedwards opened 3 months ago
I updated the C driver to 1.27.2 but still the same error. However looking closely it says "msg=Connecting to mongo for the C++ legacy driver", so it is c++ driver error. Seeing this I updated the mongo c++ to V3.10 : https://www.mongodb.com/docs/languages/cpp/cpp-driver/current/installation/linux/
But still the its the same error! Is there something I'm missing - do I need to build/compile the orion-LD again after updating the C++ drivers?
Also, the Fiware Orion-LD documentation does not say anything about installing C++ driver: https://github.com/FIWARE/context.Orion-LD/blob/develop/doc/manuals-ld/installation-guide-ubuntu-22.04.md
Sorry for the late response, I hadn't seen this issue until right now, thanks to your update.
MongoDB version 6 or newer no longer support the old legacy driver.
Start Orion-LD with the CLI options -mongocOnly
and the old legacy driver is no longer used.
With this you lose the entire support of NGSIv2, which is probably OK.
Ok thank you so much. I was wondering if there was any option. Very helpful. I will try this again. I only need NGSI-LD
See also #1062
Thanks for the heads up @rschwebel, I see that a lot of work needs to be done.
@kzangeli Another question, slightly related to Mongo drivers. Now I plan to replace Cygnus NGSI (built from sources - if you recall), with Cygnus NGSI-LD, will I come across the same issue as in related to the mongocpp legacy drivers?
Not a clue, but I see no real reason why. It's an implementation detail.
Did you know that NGSI-LD brokers actually save the history (to postgres) if you ask it to?
@kzangeli thanks for this. So I see that I may not need cygnus as long a I have postgres installed.
Yeah, if posrgres is OK for you as sink.
To use it, start the broker with the CLI option -troe
(Temporal Representation of Entities).
Orion-LD pushes the history to Postgres while another generic enabler (Mintaka) takes care of the queries.
@kzangeli thanks for this. So I see that I may not need cygnus as long a I have postgres installed. How do I pass the postgres host and port number? I have crateDB already running ( which supports postres wire protocol) so I'll try if I can persist data in crateDB directly using -troe.
Start Orion-LD with -u (usage) and you see the CLI options. Think they're called "-troeHost", "-troeUser" etc. Can't verify right now, in an airport ...
Thank you, I'll do that for now!
Ok I got orionld running with -troe -troeHost -troePort -troeUser -troePwd, it starts with no errors. However, when there is no data in crateDB, I've created new entities and updated values but there is nothing in crateDB, am I missing something?
No that should be all.
Let's have a look at the logfile. Something must be failing.
cat /tmp/orionld.log
Ok I didn't take a log at the log file. I'll do it and get back with the results. Thanks
18 Jun 2024 11:17:34 pm Ken Zangelin @.***>:
No that should be all. Let's have a look at the logfile. Something must be failing. cat /tmp/orionld.log
— Reply to this email directly, view it on GitHub[https://github.com/FIWARE/context.Orion-LD/issues/1620#issuecomment-2176990939], or unsubscribe[https://github.com/notifications/unsubscribe-auth/BDNMUOI4ENRIADGOFNHDKN3ZICPWRAVCNFSM6AAAAABI2M3KWCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNZWHE4TAOJTHE]. You are receiving this because you authored the thread. [Tracking image][https://github.com/notifications/beacon/BDNMUOPNHKVY4WGKPH527U3ZICPWRA5CNFSM6AAAAABI2M3KWCWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTUBYI7NW.gif]
orionld.log Attached is the log file from yesterday, I do not see any errors for cratedb/postgres
Ok, weird. Where does the data go???
It connects to your crateDB, asks for its version (14.0) and all seems ok. Only, the data isn't there ... weird.
Let's turn on some traces.
Use the following CLI param:
-t 207,208
It might also be quite useful to check the log of CrateDB. The error reporting of the postgres driver is far from satisfying. I remember getting next to zero errors from the driver, even when things were failing. I had to copy/paste the SQL commands to the command line to get the errors
Ok thanks for this. I restarted orionld with CLI, and I'm looking at the crateDB logs too, nothing there from the orionLD ip. If I'm correct, creating an entity in orionld should create some data? Or the data is created when attribute values are updated?
I see in the terminal that orionLd is trying to insert data into attributes and entities tables... Should orionLd create if they do not exists?
time=Wednesday 19 Jun 10:03:03 2024.446Z | lvl=TMP | corr=N/A | trans=N/A | from=N/A | srv=N/A | subsrv=N/A | comp=Orion | op=mhdConnectionInit.cpp[1073]:mhdConnectionInit | msg=------------------------- Servicing NGSI-LD request 002: POST /ngsi-ld/v1/entities -------------------------- time=Wednesday 19 Jun 10:03:03 2024.452Z | lvl=DEBUG | corr=N/A | trans=N/A | from=N/A | srv=N/A | subsrv=N/A | comp=Orion | op=pgCommands.cpp[59]:pgCommands | msg=SQL: INSERT INTO entities(instanceId,ts,opMode,id,type) VALUES ('urn:ngsi-ld:attribute:instance:1e0a34a2-2e23-11ef-85eb-00163eee2746', '2024-06-19T10:03:03.446Z', 'Create', 'urn:ngsi-ld:Skelleftea:Campus:VirtualSensor:004', 'https://uri.etsi.org/ngsi-ld/default-context/VirtualSensor004'); time=Wednesday 19 Jun 10:03:03 2024.470Z | lvl=DEBUG | corr=N/A | trans=N/A | from=N/A | srv=N/A | subsrv=N/A | comp=Orion | op=pgCommands.cpp[59]:pgCommands | msg=SQL: INSERT INTO attributes(instanceId,id,opMode,entityId,observedAt,subProperties,unitCode,datasetId,valueType,text,boolean,number,datetime,compound,geoPoint,geoMultiPoint,geoPolygon,geoMultiPolygon,geoLineString,geoMultiLineString,ts) VALUES ('urn:ngsi-ld:attribute:instance:1e0a35ba-2e23-11ef-85eb-00163eee2746', 'https://uri.etsi.org/ngsi-ld/status', 'Create', 'urn:ngsi-ld:Skelleftea:Campus:VirtualSensor:004', '2024-06-18T12:00:00Z', false, null, 'None', 'String', 'OK', null, null, null, null, null, null, null, null, null, null, '2024-06-19T10:03:03.446Z'),('urn:ngsi-ld:attribute:instance:1e0a36a0-2e23-11ef-85eb-00163eee2746', 'https://uri.etsi.org/ngsi-ld/name', 'Create', 'urn:ngsi-ld:Skelleftea:Campus:VirtualSensor:004', null, false, null, 'None', 'String', 'ER023894738sSR', null, null, null, null, null, null, null, null, null, null, '2024-06-19T10:03:03.446Z'),('urn:ngsi-ld:attribute:instance:1e0a377c-2e23-11ef-85eb-00163eee2746', 'https://uri.etsi.org/ngsi-ld/default-context/PM1', 'Create', 'urn:ngsi-ld:Skelleftea:Campus:VirtualSensor:004', '2024-06-18T12:00:00Z', false, 'Float', 'None', 'Number', null, null, 2.300000, null, null, null, null, null, null, null, null, '2024-06-19T10:03:03.446Z'),('urn:ngsi-ld:attribute:instance:1e0a389e-2e23-11ef-85eb-00163eee2746', 'https://uri.etsi.org/ngsi-ld/default-context/N02', 'Create', 'urn:ngsi-ld:Skelleftea:Campus:VirtualSensor:004', '2024-06-18T12:00:00Z', false, 'Float', 'None', 'Number', null, null, 2.200000, null, null, null, null, null, null, null, null, '2024-06-19T10:03:03.446Z'),('urn:ngsi-ld:attribute:instance:1e0a3970-2e23-11ef-85eb-00163eee2746', 'location', 'Create', 'urn:ngsi-ld:Skelleftea:Campus:VirtualSensor:004', null, false, null, 'None', 'GeoPoint', null, null, null, null, null, ST_GeomFromText('POINT(-3.803562 43.462966 0.000000)'), null, null, null, null, null, '2024-06-19T10:03:03.446Z');
ok, good. With that we see that the broker is trying to insert the historical data. We also know that the driver reports no error, so, the broker believes all is OK. However, something goes wrong somewhere. Two options:
If I'm correct, creating an entity in orionld should create some data? Or the data is created when attribute values are updated?
Yes, each and every create/update/delete on an entity/attribute should get recorded in Crate/postgres. Are you using tenants? With some luck, you're looking for it in the wrong DB ... :)) Yeah, I know, I'm grasping :)
I see in the terminal that orionLd is trying to insert data into attributes and entities tables... Should orionLd create if they do not exists?
Long time ago I implemented this but, I believe the broker creates the tables. I'll check the source code.
Skellefteå? I'm Swedish, born and raised in Västerås.
Verified, the DB is created in run-time and then the tables are created. Only way this could work as the broker supports creation of tenants "on the fly".
Ok, so I got psql, I pasted the SQL on the CLI and I got reply from crateDB 'entities' unknown. means that the table is not there. CrateDB uses schemas instead of databases, so the default schema is DOC and it has translation service for postgres that all tables are created in this schema. Hope I'm making sense. admin@ltuorion:~$ psql -U developer -h ltudbgrafana.one.cloud Password for user developer: psql (14.12 (Ubuntu 14.12-0ubuntu0.22.04.1), server 14.0) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) Type "help" for help.
developer=> INSERT INTO entities(instanceId,ts,opMode,id,type) VALUES ('urn:ngsi-ld:attribute:instance:1e0a34a2-2e23-11ef-85eb-00163eee2746', '2024-06-19T10:03:03.446Z', 'Create', 'urn:ngsi-ld:Skelleftea:Campus:VirtualSensor:004', 'https://uri.etsi.org/ngsi-ld/default-context/VirtualSensor004'); ERROR: Relation 'entities' unknown CONTEXT: io.crate.metadata.Schemas.resolveTableInfo(Schemas.java:132) io.crate.analyze.InsertAnalyzer.analyze(InsertAnalyzer.java:114) io.crate.analyze.Analyzer$AnalyzerDispatcher.visitInsert(Analyzer.java:516) io.crate.analyze.Analyzer$AnalyzerDispatcher.visitInsert(Analyzer.java:239) io.crate.sql.tree.Insert.accept(Insert.java:102) io.crate.analyze.Analyzer.analyze(Analyzer.java:222) io.crate.action.sql.Session.analyze(Session.java:321) io.crate.protocols.postgres.PostgresWireProtocol.handleSingleQuery(PostgresWireProtocol.java:797) io.crate.protocols.postgres.PostgresWireProtocol.lambda$handleSimpleQuery$6(PostgresWireProtocol.java:787) java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2341) io.crate.protocols.postgres.PostgresWireProtocol.handleSimpleQuery(PostgresWireProtocol.java:787) io.crate.protocols.postgres.PostgresWireProtocol$MessageHandler.dispatchMessage(PostgresWireProtocol.java:339) io.crate.protocols.postgres.PostgresWireProtocol$MessageHandler.dispatchState(PostgresWireProtocol.java:329) io.crate.protocols.postgres.PostgresWireProtocol$MessageHandler.channelRead0(PostgresWireProtocol.java:297) io.crate.protocols.postgres.PostgresWireProtocol$MessageHandler.channelRead0(PostgresWireProtocol.java:281) io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
hmm please excuse my ignorance, what are tenants?
Oh that's interesting, how come you ended up in Spain - is that correct if I'm right? I'm working on Fiware project for the Lulea technical university, Skellefea campus.
So looks like the tables were not created. Is that something to do with the tenants? I'm running the service via systemctl with this execstart command: orionld -port 1027 -t 207,208 -ipv4 -https -cert /home/admin/cert/fullchain.pem -key /home/admin/cert/privkey.pem -mongocOnly -troe -troeHost ** -troePort 5432 -troeUser * -troePwd ****
hmm please excuse my ignorance, what are tenants?
It's about data separation, each tenant has a different database, both in mongo and postgres.
Oh that's interesting, how come you ended up in Spain - is that correct if I'm right? I'm working on Fiware project for the Lulea technical university, Skellefea campus.
Met a girl in Madrid back in 1992. Moved there in 1995.
So looks like the tables were not created. Is that something to do with the tenants? I'm running the service via systemctl with this execstart command: orionld -port 1027 -t 207,208 -ipv4 -https -cert /home/admin/cert/fullchain.pem -key /home/admin/cert/privkey.pem -mongocOnly -troe -troeHost ** -troePort 5432 -troeUser * -troePwd **
So, by default, the broker doesn't use tenants (-multiservice
turns on that service).
Hence, no tenants.
(you'd also have to use the HTTP header "NGSILD-Tenant" for a tenant to be used)
So, where on earth is the data? No errors in the crate log. You said you see nothing at all from Orion-LD in the crate log ... But, the broker seems to connect OK to Crate !!!
Start the broker with another troe password, or user or IP ... Play with that to see errors. Just to verify that if something goes wrong with the postgres connection on startup, the broker refuses to start. And, as it starts just fine, the connection to postgres is just fine.
That is step 01.
Step 02, I'll implement something ugly, just for you and just for debugging. Not sure exactly what, we'll see. Can't do that today though, I'm in Warsaw for a European project I'm in. I can chat a little while in meetings but no more, I'm afraid. I'll be back home (in Asturias) this Friday.
ERROR: Relation 'entities' unknown
What postgres database are you on? The default db is "orion". It can be changed and when tenants are in use, the db name is set accordingly. However, you use none of all that so, the db must be "orion".
Thanks for the feedback.
Ok, I get about the tenants. I see that in orionLD is storing data in mongo but not historical data. Its using the same collection as orionNGSI as it was already setup previously.
Oh that's interesting. That's been a long time - I'm sure you still visit Sweden!
I just did a quick log/error check by giving the incorrect password and both Orion and Crate logged it. But nothing is logged when there is an issue with sql statement.
I'll restart the service with tenants and play with that.
ERROR: Relation 'entities' unknown
What postgres database are you on? The default db is "orion". It can be changed and when tenants are in use, the db name is set accordingly. However, you use none of all that so, the db must be "orion".
CrateDB uses schemas, instead of databases, the default schema is DOC, so maybe I'll have to create a schema as 'orion; https://cratedb.com/docs/crate/reference/en/latest/interfaces/postgres.html#database-selection
CrateDB only support schemas / namespaces, but no dedicated databases. You can however restrict access of individual users to specific schemas. Schemas are created implicitly on table creation and cannot be created explicitly. If a schema did not exist yet, it will be created.
These are the schemas present:
cr> show SCHEMAS; +--------------------+ | schema_name | +--------------------+ | blob | | doc | | information_schema | | pg_catalog | | sys | +--------------------+ SHOW 5 rows in set (0.001 sec)
CrateDB uses schemas, instead of databases
ok, perhaps this explains everything. Not good though that the crate logs say nothing and the driver also not :(
error check by giving the incorrect password and both Orion and Crate logged it
Good to hear that "other errors" are logged. At least now we know the broker is actually contacting the db.
With some luck you can fix things with those schemas. The bad news though is that with cratedb, the db automatic creation won't work :( Probably not too important.
Ok I managed to create a schema, these are automatically created when a table is created: So, I used the table references from here: https://github.com/FIWARE/context.Orion-LD/blob/develop/database/sql/initial.sql and then I ran the following sql command via crash on CrateDB: CREATE TABLE IF NOT EXISTS orion.entities ( instanceId TEXT PRIMARY KEY, ts TIMESTAMP NOT NULL, opMode TEXT, id TEXT NOT NULL, type TEXT NOT NULL);
cr> select * from orion.entities;
+---------------------------------------------------------------------+---------------+--------+-------------------------------------------------+---------------------------------------------------------------+ | instanceid | ts | opmode | id | type | +---------------------------------------------------------------------+---------------+--------+-------------------------------------------------+---------------------------------------------------------------+ | urn:ngsi-ld:attribute:instance:19138018-2e49-11ef-bfd4-00163eee2746 | 1718807695993 | Create | urn:ngsi-ld:Skelleftea:Campus:VirtualSensor:155 | https://uri.etsi.org/ngsi-ld/default-context/VirtualSensor155 | | urn:ngsi-ld:attribute:instance:c5b0ffee-2e49-11ef-aa47-00163eee2746 | 1718807985595 | Create | urn:ngsi-ld:Skelleftea:Campus:VirtualSensor:156 | https://uri.etsi.org/ngsi-ld/default-context/VirtualSensor156 | +---------------------------------------------------------------------+---------------+--------+-------------------------------------------------+---------------------------------------------------------------+ SELECT 2 rows in set (0.013 sec) cr>
Now, I am unable to create the attributes table as this field definition is not supported: geoPoint GEOGRAPHY(POINTZ, 4326), geoPolygon GEOGRAPHY(POLYGON, 4326), geoMultiPolygon GEOGRAPHY(MULTIPOLYGON, 4326), geoLineString GEOGRAPHY(LINESTRING, 4326), geoMultiLineString GEOGRAPHY(MULTILINESTRING, 4326),
In our use case the only field we will need from the above is the geoPoint, which I believe is a combination of latitude and longitude. however there is no geography data type in crate, but there is GEO_POINT which takes lat and log as an array, do you think this will work? https://cratedb.com/docs/crate/reference/en/master/general/ddl/data-types.html#geometric-points
Thank you once again for your help.
Oops, that's not good ...While I of course could implement an exception here (not sure when I'd ever have time for a thing like that), it's not only the broker involved. I explain: Orion-LD pushes the historical data but another generic enabler. Mintaka, takes care of the querying.
I'd strongly recommend you forget about CrateDB for this and install a normal postgres instead.
Ok thanks for the heads up Ken! That's disappointing but its better to know that crateDB may not work. I'll scrap it and go along with postgres.
I've installed postgres, with postgis and timescaledb. Now temporal values are being stored in postgres- that's great. Still, I'm not sure how do I query temporal values? Does mintaka needs to be installed as well? I do not see any instructions here: https://github.com/FIWARE/context.Orion-LD/blob/develop/doc/manuals-ld/installation-guide-ubuntu-22.04.md
Yes, you need to install Mintaka as well . Might be I haven't documented that too well ... https://github.com/FIWARE/mintaka
Thanks Ken! I'll work on that.
Hi @kzangeli Looks like I'm stuck again with Mintaka. I got the instructions to build it from the docker file (on ubuntu 22.04) and this is the process I followed:
`https://github.com/FIWARE/mintaka/blob/main/docker/Dockerfile
Install Java and Maven sudo apt update sudo apt install -y openjdk-17-jdk maven
Verify installations java -version openjdk version "17.0.11" 2024-04-16 OpenJDK Runtime Environment (build 17.0.11+9-Ubuntu-122.04.1) OpenJDK 64-Bit Server VM (build 17.0.11+9-Ubuntu-122.04.1, mixed mode, sharing)
mvn -version Apache Maven 3.6.3 Maven home: /usr/share/maven Java version: 17.0.11, vendor: Ubuntu, runtime: /usr/lib/jvm/java-17-openjdk-amd64 Default locale: en_US, platform encoding: UTF-8
download latest mintaka version wget https://github.com/FIWARE/mintaka/archive/refs/tags/0.6.6.tar.gz
Navigate to project directory cd /git/mintaka-0.6.6
Set project version mvn versions:set -DnewVersion=0.6.6
Build project mvn clean install -DskipTests
Navigate to target directory cd target
Run the JAR file java -jar mintaka-0.6.6.jar -datasources.default.username -datasources.default.password `
Now I get the error: `~/git/mintaka-0.6.6/target$ java -jar mintaka-0.6.6.jar -datasources.default.username -datasources.default.password SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/home/admin/git/mintaka-0.6.6/target/mintaka-0.6.6.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/home/admin/git/mintaka-0.6.6/target/lib/logback-classic-1.2.11.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
| \/ (_) | | | |\/| | |/ | '/ | ' \ / ` | | | | | | | | | | (| | | () | | | | (| | || | | || |||_|_| _/|| ||_,|_,|\| Micronaut (v3.6.3)
08:04:41.213 [main] WARN i.m.context.DefaultBeanContext - The bean created event listener io.micronaut.transaction.jdbc.TransactionAwareDataSource will not be executed because one or more other bean created event listeners inject javax.sql.DataSource: org.fiware.mintaka.persistence.tenancy.JpaConfigurationCreatedEventListener --> org.fiware.mintaka.persistence.tenancy.MultiTenantDatasourceConnectionProviderImpl --> javax.sql.DataSource Change at least one point in the path to be lazy initialized by injecting a provider to avoid this issue 08:04:44.474 [main] WARN o.h.t.d.j.JavaTypeDescriptorRegistry - HHH000481: Encountered Java type [class java.lang.Object] for which we could not locate a JavaTypeDescriptor and which does not appear to implement equals and/or hashCode. This can lead to significant performance problems when performing equality/dirty checking involving this Java type. Consider registering a custom JavaTypeDescriptor or at least implementing equals/hashCode. 08:04:44.489 [main] WARN o.h.t.d.j.JavaTypeDescriptorRegistry - HHH000481: Encountered Java type [class java.lang.Object] for which we could not locate a JavaTypeDescriptor and which does not appear to implement equals and/or hashCode. This can lead to significant performance problems when performing equality/dirty checking involving this Java type. Consider registering a custom JavaTypeDescriptor or at least implementing equals/hashCode. 08:04:46.235 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Bean definition [org.fiware.mintaka.context.$LdContextCache$Definition$Intercepted] could not be loaded: Error instantiating bean of type [org.fiware.mintaka.context.$LdContextCache$Definition$Intercepted]
Message: Multiple possible bean candidates found: [io.micronaut.aop.InterceptorRegistry, io.micronaut.aop.InterceptorRegistry] Path Taken: new $LdContextCache$Definition$Intercepted(ContextProperties contextProperties,BeanResolutionContext $beanResolutionContext,BeanContext $beanContext,Qualifier $qualifier,List $interceptors) io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [org.fiware.mintaka.context.$LdContextCache$Definition$Intercepted] could not be loaded: Error instantiating bean of type [org.fiware.mintaka.context.$LdContextCache$Definition$Intercepted]
Message: Multiple possible bean candidates found: [io.micronaut.aop.InterceptorRegistry, io.micronaut.aop.InterceptorRegistry] Path Taken: new $LdContextCache$Definition$Intercepted(ContextProperties contextProperties,BeanResolutionContext $beanResolutionContext,BeanContext $beanContext,Qualifier $qualifier,List $interceptors) at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1921) at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:245) at io.micronaut.context.DefaultBeanContext.readAllBeanDefinitionClasses(DefaultBeanContext.java:3326) at io.micronaut.context.DefaultBeanContext.finalizeConfiguration(DefaultBeanContext.java:3684) at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:341) at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:190) at io.micronaut.runtime.Micronaut.start(Micronaut.java:75) at io.micronaut.runtime.Micronaut.run(Micronaut.java:323) at io.micronaut.runtime.Micronaut.run(Micronaut.java:309) at org.fiware.mintaka.Application.main(Application.java:29) Caused by: io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type [org.fiware.mintaka.context.$LdContextCache$Definition$Intercepted]
Message: Multiple possible bean candidates found: [io.micronaut.aop.InterceptorRegistry, io.micronaut.aop.InterceptorRegistry]
Path Taken: new $LdContextCache$Definition$Intercepted(ContextProperties contextProperties,BeanResolutionContext $beanResolutionContext,BeanContext $beanContext,Qualifier $qualifier,List $interceptors)
at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2367)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2305)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2251)
at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3016)
at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
at io.micronaut.context.DefaultBeanContext.findOrCreateSingletonBeanRegistration(DefaultBeanContext.java:2918)
at io.micronaut.context.DefaultBeanContext.loadContextScopeBean(DefaultBeanContext.java:2746)
at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1915)
... 9 common frames omitted
Caused by: io.micronaut.context.exceptions.NonUniqueBeanException: Multiple possible bean candidates found: [io.micronaut.aop.InterceptorRegistry, io.micronaut.aop.InterceptorRegistry]
at io.micronaut.context.DefaultBeanContext.findConcreteCandidate(DefaultBeanContext.java:2472)
at io.micronaut.context.DefaultApplicationContext.findConcreteCandidate(DefaultApplicationContext.java:484)
at io.micronaut.context.DefaultBeanContext.lastChanceResolve(DefaultBeanContext.java:3249)
at io.micronaut.context.DefaultBeanContext.findConcreteCandidateNoCache(DefaultBeanContext.java:3140)
at io.micronaut.context.DefaultBeanContext.findConcreteCandidate(DefaultBeanContext.java:3058)
at io.micronaut.context.DefaultBeanContext.findBeanDefinition(DefaultBeanContext.java:788)
at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2790)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1617)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:867)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:859)
at io.micronaut.aop.chain.InterceptorChain.resolveInterceptors(InterceptorChain.java:205)
at io.micronaut.aop.chain.InterceptorChain.resolveAroundInterceptors(InterceptorChain.java:125)
at org.fiware.mintaka.context.$LdContextCache$Definition$Intercepted.
Note: when I was compiling the project, I set the mvn version to mvn versions:set -DnewVersion=0.0.1
by mistake as I copied that from the docker file. However, I then changed it to mvn versions:set -DnewVersion=0.6.6
as that was the mintaka version I downloaded - would this have caused an issue?
Hello I followed this guide to install Orion LD: doc/manuals-ld/installation-guide-ubuntu-22.04.md I am using Mongo 7.0 and I installed mongo-c-driver-1.24.3 instead of mongo-c-driver-1.22 as mentioned in the documentation.
However, when I run orionld -fg, I get this error:
time=Wednesday 05 Jun 10:16:00 2024.829Z | lvl=TMP | corr=N/A | trans=N/A | from=N/A | srv=N/A | subsrv=N/A | comp=Orion | op=mongocInit.cpp[300]:mongocInit | msg=Connecting to mongo for the C driver (URI: mongodb://localhost/) time=Wednesday 05 Jun 10:16:00 2024.858Z | lvl=TMP | corr=N/A | trans=N/A | from=N/A | srv=N/A | subsrv=N/A | comp=Orion | op=mongoConnectionPool.cpp[313]:mongoConnectionPoolInit | msg=Connecting to mongo for the C++ legacy driver time=Wednesday 05 Jun 10:16:00 2024.871Z | lvl=ERROR | corr=N/A | trans=N/A | from=N/A | srv=N/A | subsrv=N/A | comp=Orion | op=mongoSubCache.cpp[596]:mongoSubCacheRefresh | msg=Runtime Error (exception in nextSafe(): nextSafe(): { $err: "OP_QUERY is no longer supported. The client driver may require an upgrade. For more details see https://dochub.mongodb.org/core/legacy-opcode-removal", code: 5739101, ok: 0.0 } at mongoSubCacheRefresh:594 - query: {}) terminate called after throwing an instance of 'mongo::UserException' what(): nextSafe(): { $err: "OP_QUERY is no longer supported. The client driver may require an upgrade. For more details see https://dochub.mongodb.org/core/legacy-opcode-removal", code: 5739101, ok: 0.0 } Aborted
My question is that if I update the driver to 1.27 will this work, or is mongo C driver 1.27 supported by Orion NGSI LD?Thanks