FIWARE / context.Orion-LD

Context Broker and CEF building block for context data management which supports both the NGSI-LD and the NGSI-v2 APIs
https://www.etsi.org/deliver/etsi_gs/CIM/001_099/009/01.06.01_60/gs_CIM009v010601p.pdf
GNU Affero General Public License v3.0
50 stars 43 forks source link

Orion LD with mongo 7.0 #1620

Open jrobinedwards opened 3 months ago

jrobinedwards commented 3 months ago

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

jrobinedwards commented 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

kzangeli commented 3 months ago

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.

jrobinedwards commented 3 months ago

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

rschwebel commented 3 months ago

See also #1062

jrobinedwards commented 3 months ago

Thanks for the heads up @rschwebel, I see that a lot of work needs to be done.

jrobinedwards commented 3 months ago

@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?

kzangeli commented 3 months ago

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?

jrobinedwards commented 3 months ago

@kzangeli thanks for this. So I see that I may not need cygnus as long a I have postgres installed.

kzangeli commented 3 months ago

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.

jrobinedwards commented 3 months ago

@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.

kzangeli commented 3 months ago

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 ...

jrobinedwards commented 3 months ago

Thank you, I'll do that for now!

jrobinedwards commented 3 months ago

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?

kzangeli commented 3 months ago

No that should be all. Let's have a look at the logfile. Something must be failing. cat /tmp/orionld.log

jrobinedwards commented 3 months ago

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]

jrobinedwards commented 3 months ago

orionld.log Attached is the log file from yesterday, I do not see any errors for cratedb/postgres

kzangeli commented 3 months ago

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

kzangeli commented 3 months ago

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

jrobinedwards commented 3 months ago

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?

jrobinedwards commented 3 months ago

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?

jrobinedwards commented 3 months ago

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');

kzangeli commented 3 months ago

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:

  1. Copy-paste the sql command in the pgsql command line tool
  2. Check the CrateDB logs
kzangeli commented 3 months ago

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 :)

kzangeli commented 3 months ago

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.

kzangeli commented 3 months ago

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".

jrobinedwards commented 3 months ago

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 ****

kzangeli commented 3 months ago

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.

kzangeli commented 3 months ago

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".

jrobinedwards commented 3 months ago

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.

jrobinedwards commented 3 months ago

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)

kzangeli commented 3 months ago

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.

jrobinedwards commented 3 months ago

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.

kzangeli commented 3 months ago

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.

jrobinedwards commented 3 months ago

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.

jrobinedwards commented 3 months ago

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

kzangeli commented 3 months ago

Yes, you need to install Mintaka as well . Might be I haven't documented that too well ... https://github.com/FIWARE/mintaka

jrobinedwards commented 3 months ago

Thanks Ken! I'll work on that.

jrobinedwards commented 3 months ago

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.(Unknown Source) at org.fiware.mintaka.context.$LdContextCache$Definition$Intercepted$Definition.build(Unknown Source) at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2354) ... 16 common frames omitted `

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?