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
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 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/53b0e83f37aa9a8f9c06a67fb7a948487efe1a6941d4b9fae1404858@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/ > >
