Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Orion LD with mongo 7.0 #1620

Open
jrobinedwards opened this issue Jun 5, 2024 · 38 comments
Open

Orion LD with mongo 7.0 #1620

jrobinedwards opened this issue Jun 5, 2024 · 38 comments

Comments

@jrobinedwards
Copy link

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
Copy link
Author

jrobinedwards commented Jun 11, 2024

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
Copy link
Collaborator

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
Copy link
Author

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
Copy link

See also #1062

@jrobinedwards
Copy link
Author

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

@jrobinedwards
Copy link
Author

jrobinedwards commented Jun 12, 2024

@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
Copy link
Collaborator

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
Copy link
Author

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

@kzangeli
Copy link
Collaborator

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
Copy link
Author

jrobinedwards commented Jun 17, 2024

@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
Copy link
Collaborator

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
Copy link
Author

Thank you, I'll do that for now!

@jrobinedwards
Copy link
Author

jrobinedwards commented Jun 17, 2024

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
Copy link
Collaborator

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

@jrobinedwards
Copy link
Author

jrobinedwards commented Jun 19, 2024 via email

@jrobinedwards
Copy link
Author

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

@kzangeli
Copy link
Collaborator

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
Copy link
Collaborator

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Collaborator

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
Copy link
Collaborator

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
Copy link
Collaborator

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
Copy link
Collaborator

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
Copy link
Author

jrobinedwards commented Jun 19, 2024

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
Copy link
Collaborator

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
Copy link
Collaborator

kzangeli commented Jun 19, 2024

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
Copy link
Author

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
Copy link
Author

jrobinedwards commented Jun 19, 2024

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
Copy link
Collaborator

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
Copy link
Author

jrobinedwards commented Jun 19, 2024

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
Copy link
Collaborator

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
Copy link
Author

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
Copy link
Author

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
Copy link
Collaborator

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

@jrobinedwards
Copy link
Author

Thanks Ken! I'll work on that.

@jrobinedwards
Copy link
Author

jrobinedwards commented Jun 24, 2024

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants