<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi Deepak,<br>
    <br>
    in your log (attached to your last mail) the final exception is:<br>
    <br>
    <pre wrap="">Caused by: com.evolveum.midpoint.util.exception.SystemException: JDBC driver must be specified (either explicitly or in SQL repository configuration)
        at com.evolveum.midpoint.wf.impl.WfConfiguration.notEmpty(WfConfiguration.java:201) ~[workflow-impl-3.0.jar:na]
        at com.evolveum.midpoint.wf.impl.WfConfiguration.validate(WfConfiguration.java:193) ~[workflow-impl-3.0.jar:na]
        at com.evolveum.midpoint.wf.impl.WfConfiguration.initialize(WfConfiguration.java:165) ~[workflow-impl-3.0.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_45]</pre>
    <br>
    This implies that workflow is enabled. And it's failing to use
    datasource.<br>
    <br>
    Further, I see:<br>
    <br>
    <br>
    2014-08-26 18:19:25,703 [RMI TCP Connection(2)-127.0.0.1] INFO 
    (c.e.midpoint.repo.sql.CompositeDataSource): Loading datasource.<br>
    2014-08-26 18:19:25,703 [RMI TCP Connection(2)-127.0.0.1] INFO 
    (c.e.midpoint.repo.sql.CompositeDataSource): JDNI datasource present
    in configuration, looking for 'java:comp/env/jdbc/midpointDS'.<br>
    <br>
    So repository IS using datasource.<br>
    <br>
    Then:<br>
    <br>
    2014-08-26 18:19:28,458 [RMI TCP Connection(2)-127.0.0.1] INFO 
    (c.e.midpoint.task.quartzimpl.Initializer): Task Manager: Quartz Job
    Store: in-memory, NOT clustered. Threads: 10<br>
    <br>
    So task manager is using memory, not database (that's why you didn't
    have the error that I do).<br>
    <br>
    So, the problem is probably caused by workflow+datasource
    combination, not repository. I'm not using workflow in my setup.<br>
    <br>
    Just to be sure: are you using the workflow in your setup or it can
    be disabled (that would work around the problem)?<br>
    <br>
    If the combination datasource+jdbc url+user+password works, I would
    speculate that repository is using datasource and workflow is
    inheriting the jdbc url+user+password parameters.<br>
    <br>
    Regards,<br>
    Ivan<br>
    <br>
    <div class="moz-cite-prefix">On 08/26/2014 08:26 PM, Deepak
      Natarajan wrote:<br>
    </div>
    <blockquote cite="mid:53FCD153.8020604@trilobytesystems.com"
      type="cite">
      <pre wrap="">
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:
</pre>
      <blockquote type="cite">
        <pre wrap="">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:
</pre>
        <blockquote type="cite">
          <pre wrap="">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:
</pre>
          <blockquote type="cite">
            <pre wrap="">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:
</pre>
            <blockquote type="cite">
              <pre wrap="">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 -
<a class="moz-txt-link-freetext" href="https://wiki.evolveum.com/display/midPoint/MySQL">https://wiki.evolveum.com/display/midPoint/MySQL</a>). So I'm not sure if
the DS is really being used, if you know what I mean...?

Thanks
-deepak



_______________________________________________
midPoint mailing list
<a class="moz-txt-link-abbreviated" href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a>
<a class="moz-txt-link-freetext" href="http://lists.evolveum.com/mailman/listinfo/midpoint">http://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
            </blockquote>
          </blockquote>
        </blockquote>
        <pre wrap="">
-- 
  Ing. Ivan Noris
  Senior Identity Management Engineer
  evolveum.com
  ___________________________________________
           "Idem per idem - semper idem Vix."

_______________________________________________
midPoint mailing list
<a class="moz-txt-link-abbreviated" href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a>
<a class="moz-txt-link-freetext" href="http://lists.evolveum.com/mailman/listinfo/midpoint">http://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
      </blockquote>
      <pre wrap="">
</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
midPoint mailing list
<a class="moz-txt-link-abbreviated" href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a>
<a class="moz-txt-link-freetext" href="http://lists.evolveum.com/mailman/listinfo/midpoint">http://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
  Ing. Ivan Noris
  Senior Identity Management Engineer
  evolveum.com
  ___________________________________________
           "Idem per idem - semper idem Vix."
</pre>
  </body>
</html>