Sounds like this issue worth new release, isn't it?
On Fri, Jun 29, 2018 at 12:38 PM Francesco Chicchiriccò
<[email protected]> wrote:
>
> FYI: https://issues.apache.org/jira/browse/OPENJPA-2742
>
> Regards.
>
> On 28/06/2018 15:56, Francesco Chicchiriccò wrote:
> > On 28/06/2018 15:53, Francesco Chicchiriccò wrote:
> >> On 28/06/2018 15:26, Jonathan Gallimore wrote:
> >>> Is there an easy way to try it out? I'd be interested in giving it a
> >>> go.
> >>
> >> You need to run the SchemaTool or the MappingTool from commandline - see
> >>
> >> http://openjpa.apache.org/builds/3.0.0/apache-openjpa/docs/ref_guide_mapping.html#ref_guide_mapping_mappingtool_examples
> >>
> >>
> >> or
> >>
> >> http://openjpa.apache.org/builds/3.0.0/apache-openjpa/docs/ref_guide_schema_schematool.html
> >>
> >>
> >> and pass the argument
> >>
> >> -rollbackBeforeDDL false
> >>
> >> (as it defaults to true).
> >> Alternatively, set something like as
> >>
> >> <property name="openjpa.jdbc.SynchronizeMappings"
> >> value="buildSchema(RollbackBeforeDDL=false)"/>
> >>
> >> in your persistence.xml.
> >>
> >> Without the patch (and the additional setting
> >> RollbackBeforeDDL=false), MySQL JDBC driver prior to 8 raises
> >> exception about connection closed during schema synchronization upon
> >> access to the first EntityManager instance.
> >
> > Sorry, I realize it is not clear: the MySQL JDBC driver (any version)
> > will raise the exception, but for versions prior to 8 you have the
> > chance to add "relaxAutocommit=true" to the JDBC URL as a workaround.
> > With version 8, this option was removed.
> >
> > Regards.
> >
> >>> On Thu, Jun 28, 2018 at 2:25 PM, Romain Manni-Bucau
> >>> <[email protected]> wrote:
> >>>
> >>>> Patch looks aligned to what i had in mind.
> >>>>
> >>>> +1
> >>>>
> >>>> Romain Manni-Bucau
> >>>> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> >>>> <https://rmannibucau.metawerx.net/> | Old Blog
> >>>> <http://rmannibucau.wordpress.com> | Github <https://github.com/
> >>>> rmannibucau> |
> >>>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> >>>> <https://www.packtpub.com/application-development/java-
> >>>> ee-8-high-performance>
> >>>>
> >>>>
> >>>> Le jeu. 28 juin 2018 à 15:23, Francesco Chicchiriccò
> >>>> <[email protected]>
> >>>> a écrit :
> >>>>
> >>>>> Hi,
> >>>>> I was trying to open a issue and attach my proposed patch there for
> >>>>> review, but JIRA appears to be unaccessible right now...
> >>>>>
> >>>>> Anyway, you can find the patch (against trunk) at
> >>>>>
> >>>>> https://paste.apache.org/qPBh
> >>>>>
> >>>>> I have tried with MySQL 8 and it works just fine.
> >>>>>
> >>>>> Please let me have your feedback before I commit it.
> >>>>> Regards.
> >>>>>
> >>>>> On 27/06/2018 17:42, Romain Manni-Bucau wrote:
> >>>>>> add a field _skipAutoCommit (find a better name ;)), add a setter
> >>>>>> setSkipAutoCommit, call the setter in static utilities (run and
> >>>>>> main I
> >>>>>> think), finally use the boolean and you are done
> >>>>>>
> >>>>>> Le mer. 27 juin 2018 à 17:40, Francesco Chicchiriccò <
> >>>>> [email protected]>
> >>>>>> a écrit :
> >>>>>>
> >>>>>>> On 27/06/2018 17:32, Romain Manni-Bucau wrote:
> >>>>>>>> Hi Francesco,
> >>>>>>>>
> >>>>>>>> this is overall quite weird and I think other things will be
> >>>>>>>> broken
> >>>>> since, for instance, EE will try to do the same in all servers.
> >>>>>>>> Anyway, for the config flag, the dictionary (_dict) can be a
> >>>>>>>> location
> >>>>> but I would prefer the schematool itself (like we already have
> >>>>> droptables
> >>>>> etc)
> >>>>>>> +1
> >>>>>>> (but I have no idea about how to do that...)
> >>>>>>>
> >>>>>>> Regards.
> >>>>>>>
> >>>>>>>> Le mer. 27 juin 2018 à 17:28, Francesco Chicchiriccò <
> >>>>> [email protected]> a écrit :
> >>>>>>>> Hi all,
> >>>>>>>> I am resurrecting this old thread (for which I have found an even
> >>>> older
> >>>>>>>> reference [1]), because I have recently tried with the latest 8.x
> >>>> MySQL
> >>>>>>>> JDBC driver, which has removed the 'relaxAutoCommit' option
> >>>>>>>> [2]; as a
> >>>>>>>> result, now I am stuck exactly with the same error explained
> >>>>>>>> below.
> >>>>>>>>
> >>>>>>>> I have tried by locally removing the lines
> >>>>>>>>
> >>>>>>>>
> >>>>> https://github.com/apache/openjpa/blob/2.4.x/openjpa-
> >>>> jdbc/src/main/java/org/apache/openjpa/jdbc/schema/
> >>>> SchemaTool.java#L1254-L1269
> >>>>>>>> and everything works like a charm.
> >>>>>>>>
> >>>>>>>> What would be the simplest way to make the lines above optional by
> >>>>>>>> configuration?
> >>>>>>>>
> >>>>>>>> Regards.
> >>>>>>>>
> >>>>>>>> [1]
> >>>>> https://lists.apache.org/thread.html/53b0e83f37aa9a8f9c06a67fb7a948
> >>>> 487efe1a6941d4b9fae1404858@1394724819@%3Cusers.openjpa.apache.org%3E
> >>>>>>>> [2]
> >>>>> https://dev.mysql.com/doc/connector-j/8.0/en/connector-
> >>>> j-properties-changed.html
> >>>>>>>> On 13/06/2017 12:57, Romain Manni-Bucau wrote:
> >>>>>>>>
> >>>>>>>> My memory can be corrupted but what i had in mind was to add a
> >>>>>>>> flag
> >>>> to
> >>>>> say to use autocommit or not (let's call it schemaToolMode =
> >>>>> {AUTOCOMMIT,
> >>>>>>>> COMMIT, BOTH}) and then in the persistence.xml
> >>>>>>>> you can configure the dictionnary with this schemaToolMode
> >>>>>>>> property
> >>>>> (don't recall if getters/setters are mandatory but not a real
> >>>>> blocker ;))
> >>>>>>>> 2017-06-13 12:44 GMT+02:00 Francesco Chicchiriccò <
> >>>> [email protected]
> >>>>>> :
> >>>>>>>> On 13/06/2017 12:37, Romain Manni-Bucau wrote:
> >>>>>>>>
> >>>>>>>> Hi Francesco,
> >>>>>>>>
> >>>>>>>> kind of have the same analyzis as you. Only mitigation I can do is
> >>>>> some pool enforce the autocommit mode and therefore autocommit is
> >>>>> ignored
> >>>>> and you still need commit(). Anyway since we have the dictionnary
> >>>>> i guess
> >>>>> we can add a setting there?
> >>>>>>>>>>> Hi Romain,
> >>>>>>>>>>> this makes sense to me, even though I have no idea about how to
> >>>>> reference a specific Dictionary setting from SchemaTool...
> >>>>>>>>>>> Regards.
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> 2017-06-13 12:32 GMT+02:00 Francesco Chicchiriccò <
> >>>>> [email protected]>:
> >>>>>>>>>>> Hi all
> >>>>>>>>>>> at Syncope we have recently switched the application-managed db
> >>>>> pool to HikariCP [1]; our (quite intensive, I'd say) tests with H2
> >>>>> and
> >>>>> PostgresQL showed no issues at all.
> >>>>>>>>>>> Today I am testing MySQL and run unfortunately into a blocking
> >>>>> issue: when running the OpenJPA SchemaTool as part of Syncope webapp
> >>>>> initialization, an
> >>>>>>>>>>> exception is reported by HikariCP:
> >>>>>>>>>>>
> >>>>>>>>>>> MySQLNonTransientConnectionException: Can't call rollback when
> >>>>>>>>>>> autocommit=true
> >>>>>>>>>>>
> >>>>>>>>>>> No tables are created, and the OpenJPA initialization fails.
> >>>>>>>>>>>
> >>>>>>>>>>> The reported stacktrace points to [2], from which I would
> >>>>>>>>>>> say that
> >>>>> the exception is quite right. The strange thing is that when using
> >>>>> other
> >>>>>>>>>>> connection pool libraries as Commons DBCP2, everything works
> >>>>>>>>>>> fine.
> >>>>>>>>>>>
> >>>>>>>>>>> Can someone explain why rollback is explicitly invoked after
> >>>> setting
> >>>>>>>>>>> autocommit to true? (same applies to the commit statement few
> >>>> lines
> >>>>>>>>>>> below).
> >>>>>>>>>>>
> >>>>>>>>>>> Shouldn't it be better to make such behavior optional, anyway?
> >>>>>>>>>>>
> >>>>>>>>>>> FYI, I have temporarily solved my issue by adding
> >>>>>>>>>>>
> >>>>>>>>>>> relaxAutoCommit=true
> >>>>>>>>>>>
> >>>>>>>>>>> to the JDBC URL, and all the integration tests run fine.
> >>>>>>>>>>>
> >>>>>>>>>>> Please let me have your feedback, thanks.
> >>>>>>>>>>> Regards.
> >>>>>>>>>>>
> >>>>>>>>>>> [1] https://issues.apache.org/jira/browse/SYNCOPE-1084
> >>>>>>>>>>> [2]
> >>>>> https://github.com/apache/openjpa/blob/2.4.x/openjpa-
> >>>> jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java#L1267
> >>>>
> >>
> >>
> >
>
> --
> Francesco Chicchiriccò
>
> Tirasa - Open Source Excellence
> http://www.tirasa.net/
>
> Member at The Apache Software Foundation
> Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
> http://home.apache.org/~ilgrosso/
>


-- 
WBR
Maxim aka solomax

Reply via email to