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
