[midPoint] Where does one configure datasources in midPoint 4.0.2?

Richard Frovarp richard.frovarp at ndsu.edu
Thu May 14 22:54:06 CEST 2020


I've spent some time wildly trying to guess as to how to make this work.

First, with midPoint 4.0.2, Configuration example 1 is wrong:

https://wiki.evolveum.com/display/midPoint/Using+MidPoint+with+embedded+Tomcat


midpoint.log:2020-05-14 12:49:00,550 [] [main] WARN (org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext): Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatEmbeddedServletContainerFactory' defined in class path resource [com/evolveum/midpoint/web/boot/EmbeddedTomcatAutoConfiguration$EmbeddedTomcat.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.evolveum.midpoint.web.boot.MidPointSpringApplication$ServerCustomization': Unsatisfied dependency expressed through field 'sessionTimeout'; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: "120m"

If I drop the 'm' off of the entry, it doesn't throw an error. No idea if it is working at this point. Going to guess that example 2 is also wrong.

I've moved off of trying to use the datasource for the main DB connection. I am quite interested in using it for connectors. In particular the DatabaseTableConnector

I've tried this:

warehouse.datasource.url: jdbc:mysql://localhost/warehouse
warehouse.datasource.username: midpoint
warehouse.datasource.password: <password>
warehouse.datasource.driver-class-name: com.mysql.jdbc.Driver
warehouse.datasource.name: jdbc/warehouse
warehouse.datasource.type: javax.sql.DataSource

Then I get the following as an error:

org.identityconnectors.framework.common.exceptions.ConnectorException(javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial)->javax.naming.NoInitialContextException(Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial)

This says you need to do a change in embedded Tomcat, but the main application is already using a datasource, so I'm not sure. I am quite familiar with setting up JNDI via context files, however no experience with Spring Boot.
<https://stackoverflow.com/questions/24941829/how-to-create-jndi-context-in-spring-boot-with-embedded-tomcat-container>https://stackoverflow.com/questions/24941829/how-to-create-jndi-context-in-spring-boot-with-embedded-tomcat-container


On Thu, 2020-05-14 at 11:53 -0500, Jason Everling wrote:
Maybe https://howtodoinjava.com/spring-boot2/datasource-configuration/

From: Keith Hazelton<mailto:hazelton at internet2.edu>
Sent: Thursday, May 14, 2020 11:28 AM
To: midPoint General Discussion<mailto:midpoint at lists.evolveum.com>
Subject: Re: [midPoint] Where does one configure datasources in midPoint 4.0.2?

This email is a followup on how we could potentially improve documentation on datasource configuration for embedded Tomcat versions of midPoint.

First, note that the Evolveum documentation on "Using midPoint with Embedded Tomcat",  includes the following under "Configuration" https://wiki.evolveum.com/display/midPoint/Using+MidPoint+with+embedded+Tomcat,"

"MidPoint configuration is done as usual in config.xml file located in midpoint.home. Configuration for embedded tomcat can be done in two places. Default configuration file name application.yml is located on classpath (admin-gui/src/main/resources folder). Custom configuration file application.yml can be placed to midpoint.home folder.
...
"Following table shows list of available properties that can be used to configure tomcat (e.g. http/https ports, session timeouts, logging, max-post-size, etc.)."

The mentioned table does not mention datasource in its example of "available properties":

It looks like the datasource settings in question are discussed only in Spring documentation on "Common Application properties", https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html

That site includes page after page of datasource settings, under the "Data Properties" section.

QUESTION: Do we know which of these properties need to be set, and to what values, to solve the problem under discussion? If we do, that could be the basis for improved documentation.

           --Keith

From: midPoint <midpoint-bounces at lists.evolveum.com> on behalf of Petr Gašparík - AMI Praha a.s. <petr.gasparik at ami.cz>
Sent: Thursday, May 14, 2020 4:15 AM
To: midPoint General Discussion <midpoint at lists.evolveum.com>
Subject: Re: [midPoint] Where does one configure datasources in midPoint 4.0.2?

This should be definitely better documented, as embedded Tomcat is recommended, and in the near future the only one supported option.

--

s pozdravem

Petr Gašparík
konzultant IT bezpečnosti

gsm: [+420] 603 523 860
e‑mail: petr.gasparik at ami.cz<mailto:petr.gasparik at ami.cz>

AMI Praha a.s.
Pláničkova 11, 162 00 Praha 6

tel.: [+420] 274 783 239 | web: www.ami.cz<https://www.ami.cz>

[AMI Praha a.s.]

Textem tohoto e‑mailu podepisující neslibuje uzavřít ani neuzavírá za společnost AMI Praha a.s.
jakoukoliv smlouvu. Každá smlouva, pokud bude uzavřena, musí mít výhradně písemnou formu.

Tento e‑mail je určen výhradně pro potřeby jeho adresáta/ů a může obsahovat důvěrné nebo osobní
informace. Nejste‑li zamýšleným příjemcem, je zakázáno jakékoliv zveřejňování, zprostředkování
nebo jiné použití těchto informací. Pokud jste obdrželi e‑mail neoprávněně, informujte o tom prosím
odesílatele a vymažte neprodleně všechny kopie tohoto e‑mailu včetně všech jeho příloh. Nakládáním
s neoprávněně získanými informacemi se vystavujete riziku právního postihu.


čt 14. 5. 2020 v 11:02 odesílatel Pavol Mederly <mederly at evolveum.com<mailto:mederly at evolveum.com>> napsal:

Richard,

I believe that even for embedded Tomcat (used when running in standalone mode) you can configure data sources, probably by setting up things in application.yml file.

Best regards,

Pavol Mederly

Software developer

evolveum.com<http://evolveum.com>
On 13/05/2020 19:22, Jason Everling wrote:

Yeah that was kind of what I meant by container, I believe its using Tomcat as the backend, or Jetty? In any case, you should still be able to create them, we don’t use that method so someone else would have to chime in on configuring them.



From: Richard Frovarp<mailto:richard.frovarp at ndsu.edu>
Sent: Tuesday, May 12, 2020 12:07 PM
To: midpoint at lists.evolveum.com<mailto:midpoint at lists.evolveum.com>
Subject: Re: [midPoint] Where does one configure datasources in midPoint 4.0.2?



Not running in a container. Just did the download and run using the

start.sh script in the tarball.



On Tue, 2020-05-12 at 11:51 -0500, Jason Everling wrote:

> Are you running container? I thought there was settings for them if

> using container, maybe someone here has examples for containers. We

> still use tomcat with global datasources so I cant speak to

> container’d deployment

>

> From: Richard Frovarp

> Sent: Tuesday, May 12, 2020 11:18 AM

> To: midpoint at lists.evolveum.com<mailto:midpoint at lists.evolveum.com>

> Subject: Re: [midPoint] Where does one configure datasources in

> midPoint 4.0.2?

>

> So unless I'm running this directly through Tomcat I can't do

> datasource how it comes normally?

>

> I'm getting these:

>

> 2020-05-12 11:11:52,084 [REPOSITORY] [midPointScheduler_Worker-3]

> WARN (com.zaxxer.hikari.pool.PoolBase): HikariPool-1 - Failed to

> validate connection com.mysql.jdbc.JDBC4Connection at 5bce37af (No

> operations allowed after connection closed.). Possibly consider using

> a shorter maxLifetime value.

>

> Which I don't see a setting on how to address that via config.xml. I

> know that 4.1 deprecates MariaDB and I'll need to change to

> PostgreSQL. I was kind of hoping to use datasource so that I can skip

> providing passwords to a lot of resources that will be reading data

> in from the same DB.

>

> On Tue, 2020-05-12 at 11:04 -0500, Jason Everling wrote:

> > Those examples are for tomcat native datasource configuration,

> > standard configuration is done in config.xml in midpoint.home

> > directory,

> >

> >     <repository>

> >

> > <repositoryServiceFactoryClass>com.evolveum.midpoint.repo.sql.SqlRe

> > positoryFactory</repositoryServiceFactoryClass>

> >       <database>sqlserver</database>

> >       <jdbcUsername>midpoint</jdbcUsername>

> >       <jdbcPassword>password</jdbcPassword>

> >

> > <jdbcUrl>jdbc:sqlserver://localhost:1433;database=midpoint</jdbcUrl

> > >

> >     </repository>

> >

> > From: Richard Frovarp

> > Sent: Tuesday, May 12, 2020 9:40 AM

> > To: midpoint at lists.evolveum.com<mailto:midpoint at lists.evolveum.com>

> > Subject: [midPoint] Where does one configure datasources in

> > midPoint 4.0.2?

> >

> > I've read the documentation here:

> >

> > https://wiki.evolveum.com/display/midPoint/Repository+Configuration

> > #Rep

> > ositoryConfiguration-Datasourceconfiguration

> >

> > But that doesn't give a current answer. Grepping through everything

> > looking for the bits I think might exist in files doesn't give me a

> > result.

> >

> > I'm getting a variety of connection problems, likely due to

> > timeouts,

> > and it looks like the only way to set those is via a datasource.

> >

> > Thanks,

> > Richard

> > _______________________________________________

> > midPoint mailing list

> > midPoint at lists.evolveum.com<mailto:midPoint at lists.evolveum.com>

> > https://lists.evolveum.com/mailman/listinfo/midpoint

> >

> > _______________________________________________

> > midPoint mailing list

> > midPoint at lists.evolveum.com<mailto:midPoint at lists.evolveum.com>

> > https://lists.evolveum.com/mailman/listinfo/midpoint

>

>

>

> _______________________________________________

> midPoint mailing list

> midPoint at lists.evolveum.com<mailto:midPoint at lists.evolveum.com>

> https://lists.evolveum.com/mailman/listinfo/midpoint

_______________________________________________

midPoint mailing list

midPoint at lists.evolveum.com<mailto:midPoint at lists.evolveum.com>

https://lists.evolveum.com/mailman/listinfo/midpoint





_______________________________________________

midPoint mailing list

midPoint at lists.evolveum.com<mailto:midPoint at lists.evolveum.com>

https://lists.evolveum.com/mailman/listinfo/midpoint
_______________________________________________
midPoint mailing list
midPoint at lists.evolveum.com<mailto:midPoint at lists.evolveum.com>
https://lists.evolveum.com/mailman/listinfo/midpoint


_______________________________________________

midPoint mailing list

midPoint at lists.evolveum.com<mailto:midPoint at lists.evolveum.com>

https://lists.evolveum.com/mailman/listinfo/midpoint

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20200514/9813f2dd/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CD1BBBF4D29A4AC384AF6E721AFBE93C.png
Type: image/png
Size: 144 bytes
Desc: CD1BBBF4D29A4AC384AF6E721AFBE93C.png
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20200514/9813f2dd/attachment.png>


More information about the midPoint mailing list