Hello,
org.h2.util.JdbcUtils is utility class with all static methods and
configured via System.properties. So it system wide resource. It is
incorrect inject Ignite specific settings in it.
this - value: org.apache.ignite.internal.IgniteKernal #1
<- grid - class: org.apache.ignite.internal.GridKernalContextImpl,
value: org.apache.ignite.internal.IgniteKernal #1
<- ctx - class:
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing, value:
org.apache.ignite.internal.GridKernalContextImpl #2
<- this$0 - class:
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$10, value:
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing #2
<- serializer - class: org.h2.util.JdbcUtils, value:
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$10 #1
<- [5395] - class: java.lang.Object[], value:
org.h2.util.JdbcUtils class JdbcUtils
<- elementData - class: java.util.Vector, value:
java.lang.Object[] #37309
<- classes - class: sun.misc.Launcher$AppClassLoader, value:
java.util.Vector #31
<- contextClassLoader (thread object) - class:
java.lang.Thread, value: sun.misc.Launcher$AppClassLoader #1
1. It cause problems, if it need to work with H2 databases from same JVM
where ignite run.
2. It cause problems, when some Ignites run in same JVM
3. It makes closed IgniteKernal reachable from GC root.
I think it is bad architecture solution to use this class and use H2
related system properties at all.
Andrey.