[midPoint] MySQL configuration for 3.0

Deepak Natarajan dnataraj at trilobytesystems.com
Tue Aug 26 20:26:27 CEST 2014


Hi Ivan -

Hmmm. My configuration looks like yours, albeit with MySQL.

1. I have mysql-connector-java-5.1.28-bin.jar in <tc>/lib

2. My <tc>/conf/context.xml :

<Context>

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <ResourceLink name="jdbc/midpointDS" global="jdbc/midpointDS"
type="javax.sql.DataSource"/>
...
...
</Context>

3. My <tc>/conf/server.xml

  <GlobalNamingResources>


    <Resource name="jdbc/midpointDS" auth="Container"
type="javax.sql.DataSource"
        username="xx" password="xx"
        url="jdbc:mysql://localhost:3306/midpoint"
        driverClassName="com.mysql.jdbc.Driver"
        accessToUnderlyingConnectionAllowed="true"
        initialSize="5" maxWait="5000"
        maxActive="30" maxIdle="5"
        validationQuery="select 1"
        poolPreparedStatements="true"/>

  </GlobalNamingResources>

4. midpoint's config :

        <repository
	<repositoryServiceFactoryClass>com.evolveum.midpoint.repo.sql.SqlRepositoryFactory</repositoryServiceFactoryClass>
            <embedded>false</embedded>

<hibernateDialect>com.evolveum.midpoint.repo.sql.util.MidPointMySQLDialect</hibernateDialect>
            <hibernateHbm2ddl>validate</hibernateHbm2ddl>
            <dataSource>java:comp/env/jdbc/midpointDS</dataSource>
        </repository>


and when I redeploy/restart, I get the same error - see attached log file.

In any case, I am able to work around this by specifying the details of
the jdbc connection - username, driver class etc. as below :

        <repository>

<repositoryServiceFactoryClass>com.evolveum.midpoint.repo.sql.SqlRepositoryFactory</repositoryServiceFactoryClass>
            <embedded>false</embedded>

<hibernateDialect>com.evolveum.midpoint.repo.sql.util.MidPointMySQLDialect</hibernateDialect>
            <hibernateHbm2ddl>validate</hibernateHbm2ddl>
            <dataSource>java:comp/env/jdbc/midpointDS</dataSource>
            <jdbcUrl>jdbc:mysql://localhost:3306/midpoint</jdbcUrl>
            <driverClassName>com.mysql.jdbc.Driver</driverClassName>
            <jdbcUsername>xx</jdbcUsername>
            <jdbcPassword>xx</jdbcPassword>
        </repository>

And, when I do go to configure/about, I actually see the DS! - I didnt
check this previously. So I guess it IS using the DS after all?

Thanks for your help!

BR/Deepak

Ivan Noris wrote:
> Hi Deepak,
> 
> my working configuration for Repository (Task Manager/cluster not
> working yet) and Postgresql (I don't have mysql handy now):
> 
> 1. postgresql JDBC driver is in <tomcat>/lib directory for datasource to
> work
> 2. <tomcat>/conf/context.xml:
> . . .
> <Context>
> 
>     <!-- Default set of monitored resources -->
>     <WatchedResource>WEB-INF/web.xml</WatchedResource>
>     <ResourceLink name="*jdbc/midpointDS*"
>                   global="*jdbc/midpointDS*"
>                   type="javax.sql.DataSource"/>
> 
> . . .
> 
> 3. <tomcat>/conf/server.xml:
> . . .
>   <GlobalNamingResources>
> . . .
>     <Resource name="*jdbc/midpointDS*" auth="Container"
> type="javax.sql.DataSource"
>         username="username" password="password"
>         url="jdbc:postgresql://localhost/midpoint"
>         driverClassName="org.postgresql.Driver"
>         accessToUnderlyingConnectionAllowed="true"
>         initialSize="5" maxWait="5000"
>         maxActive="30" maxIdle="5"
>         validationQuery="select 1"
>         poolPreparedStatements="true"/>
>   </GlobalNamingResources>
> . . .
> 
> 4. midpoint's config.xml:
> 
>     <repository>
>       <embedded>false</embedded>
>      
> <repositoryServiceFactoryClass>com.evolveum.midpoint.repo.sql.SqlRepositoryFactory</repositoryServiceF
>      
> <hibernateDialect>com.evolveum.midpoint.repo.sql.util.MidPointPostgreSQLDialect</hibernateDialect>
>       <hibernateHbm2ddl>validate</hibernateHbm2ddl>
>       *<dataSource>java:comp/env/jdbc/midpointDS</dataSource>*
>     </repository>
> 
> After starting, Configuration - About shows:
> Additional details
> dataSource     java:comp/env/jdbc/midpointDS
> 
> so the Datasource is being used.
> 
> I will still have to configure Task Manager, but this is a quick report
> so you can test it (with MySQL).
> I will update the wiki page after that.
> 
> Best regards,
> Ivan
> 
> On 08/26/2014 05:49 PM, Deepak Natarajan wrote:
>> Hi Ivan -
>>
>> I'm sorry, in my reply I pasted from the wiki, to make my point (i.e I
>> am using the configuration as described).
>>
>> The one in my file is (and which is working correctly now that I added
>> in the additional fields of username, password, url and driverclass:
>>
>>         <repository>
>>
>> <repositoryServiceFactoryClass>com.evolveum.midpoint.repo.sql.SqlRepositoryFactory</repositoryServiceFactoryClass>
>>             <embedded>false</embedded>
>>
>> <hibernateDialect>com.evolveum.midpoint.repo.sql.util.MidPointMySQLDialect</hibernateDialect>
>>             <hibernateHbm2ddl>validate</hibernateHbm2ddl>
>>             <dataSource>java:comp/env/jdbc/midpointDS</dataSource>
>>             <jdbcUrl>jdbc:mysql://localhost:3306/midpoint</jdbcUrl>
>>             <driverClassName>com.mysql.jdbc.Driver</driverClassName>
>>             <jdbcUsername>x</jdbcUsername>
>>             <jdbcPassword>x</jdbcPassword>
>>             <!-- <asServer>true</asServer> -->
>>             <!--
>>             <baseDir>${midpoint.home}</baseDir>
>>             -->
>>         </repository>
>>
>> So yes, it is the same DS as I have configured in my Tomcat instance :
>>
>>   <GlobalNamingResources>
>>     <!-- Editable user database that can also be used by
>>          UserDatabaseRealm to authenticate users
>>     -->
>>     <Resource name="UserDatabase" auth="Container"
>>               type="org.apache.catalina.UserDatabase"
>>               description="User database that can be updated and saved"
>>               factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
>>               pathname="conf/tomcat-users.xml" />
>>
>>     <Resource name="jdbc/midpointDS" auth="Container"
>> type="javax.sql.DataSource"
>>         username="x" password="x"
>>         url="jdbc:mysql://localhost:3306/midpoint"
>>         driverClassName="com.mysql.jdbc.Driver"
>>         accessToUnderlyingConnectionAllowed="true"
>>         initialSize="5" maxWait="5000"
>>         maxActive="30" maxIdle="5"
>>         validationQuery="select 1"
>>         poolPreparedStatements="true"/>
>>
>>   </GlobalNamingResources>
>>
>> which is the same in the context.xml
>>
>> -deepak
>>
>> Ivan Noris wrote:
>>> Hi Deepak,
>>>
>>> it seems you are referencing bad datasource.
>>>
>>> Shouldn't it be "jdbc/mysql" based on your configuration pasted earlier
>>> in this thread?
>>> Anyway it must be the same as in the datasource configuration in Tomcat.
>>>
>>> Regards,
>>> Ivan
>>>
>>> On 08/26/2014 05:07 PM, Deepak Natarajan wrote:
>>>> Argh - I should have noticed this, sorry. Didn't spot this change in
>>>> Vilo's email. This got rid of that error - however, I subsequently get
>>>> these :
>>>>
>>>> Caused by: com.evolveum.midpoint.util.exception.SystemException: JDBC
>>>> driver must be specified (either explicitly or in SQL repository
>>>> configuration)
>>>>
>>>> Caused by: com.evolveum.midpoint.util.exception.SystemException: JDBC
>>>> URL must be specified (either explicitly or in SQL repository
>>>> configuration).
>>>>
>>>> Caused by: com.evolveum.midpoint.util.exception.SystemException: JDBC
>>>> user name must be specified (either explicitly or in SQL repository
>>>> configuration).
>>>>
>>>> So the configuration prescribed here :
>>>>
>>>> <configuration>
>>>>     <midpoint>
>>>>         <repository>
>>>>
>>>> <repositoryServiceFactoryClass>com.evolveum.midpoint.repo.sql.SqlRepositoryFactory</repositoryServiceFactoryClass>
>>>>             <embedded>false</embedded>
>>>>
>>>> <hibernateDialect>com.evolveum.midpoint.repo.sql.util.MidPointMySQLDialect</hibernateDialect>
>>>>             <hibernateHbm2ddl>validate</hibernateHbm2ddl>
>>>>             <dataSource>java:comp/env/jdbc/mysql</dataSource>
>>>>         </repository>
>>>>     </midpoint>
>>>> </configuration>
>>>>
>>>> does not work, I had to pretty much add in the rest of it (essentially
>>>> what I had before moving to the DS configuration -
>>>> https://wiki.evolveum.com/display/midPoint/MySQL). So I'm not sure if
>>>> the DS is really being used, if you know what I mean...?
>>>>
>>>> Thanks
>>>> -deepak
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> midPoint mailing list
>>>> midPoint at lists.evolveum.com
>>>> http://lists.evolveum.com/mailman/listinfo/midpoint
> 
> -- 
>   Ing. Ivan Noris
>   Senior Identity Management Engineer
>   evolveum.com
>   ___________________________________________
>            "Idem per idem - semper idem Vix."
> 
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> http://lists.evolveum.com/mailman/listinfo/midpoint

-- 
Deepak Natarajan
Director

Trilobyte Systems ApS

Falkoner Alle 1, 3            Fredrikinkatu 61A, 6th Floor
2000 Frederiksberg         Business Center Papula
Denmark                          00100 Helsinki
                                        Finland

Tel : +45 29375068
http://www.trilobytesystems.com


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: idm-db-err.log
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20140826/6754763c/attachment.ksh>


More information about the midPoint mailing list