Hi Igniters:
  I have a very strange problem. I have two code environment:One is the 
simplest program (a "Hello world" program),can execute SQL statements 
correctly。Another code environment is the formal system, which use Spring Boot 
and a custom class loader named CAFClassLoader.  The DML statement cannot be 
executed on formal system , but the DQL statement can be executed (‘select 
......’ is OK ). Part of error messages are as follows.


What makes me confused is that the code of the two environments is the same!   
I really can't figure out why. Does anyone know why? Attached is the code and 
complete error information.


Error message
Caused by: java.sql.SQLException: Failed to update keys (retry update if 
possible).: [2]
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlBatchSender.processPage(DmlBatchSender.java:248)
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlBatchSender.sendBatch(DmlBatchSender.java:196)
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlBatchSender.add(DmlBatchSender.java:124)
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlUtils.doUpdate(DmlUtils.java:255)
        ... 143 more
Caused by: class 
org.apache.ignite.internal.processors.query.IgniteSQLException: Failed to 
update keys (retry update if possible).: [2]
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlUtils.doUpdate(DmlUtils.java:280)
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlUtils.processSelectResult(DmlUtils.java:171)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeUpdateNonTransactional(IgniteH2Indexing.java:2899)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeUpdate(IgniteH2Indexing.java:2753)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeUpdateDistributed(IgniteH2Indexing.java:2683)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeDml(IgniteH2Indexing.java:1186)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.querySqlFields(IgniteH2Indexing.java:1112)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2779)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2775)
        at 
org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:3338)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.lambda$querySqlFields$2(GridQueryProcessor.java:2795)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuerySafe(GridQueryProcessor.java:2833)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2769)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2696)
        at 
org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:819)
        ... 128 more
Caused by: java.sql.SQLException: Failed to update keys (retry update if 
possible).: [2]
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlBatchSender.processPage(DmlBatchSender.java:248)
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlBatchSender.sendBatch(DmlBatchSender.java:196)
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlBatchSender.add(DmlBatchSender.java:124)
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlUtils.doUpdate(DmlUtils.java:255)
        ... 143 more
Caused by: class 
org.apache.ignite.internal.processors.cache.CachePartialUpdateCheckedException: 
Failed to update keys (retry update if possible).: [2]
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.onPrimaryError(GridNearAtomicAbstractUpdateFuture.java:397)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.onPrimaryResponse(GridNearAtomicUpdateFuture.java:413)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.onSendError(GridNearAtomicAbstractUpdateFuture.java:489)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.sendSingleRequest(GridNearAtomicAbstractUpdateFuture.java:326)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.map(GridNearAtomicUpdateFuture.java:814)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.mapOnTopology(GridNearAtomicUpdateFuture.java:666)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.map(GridNearAtomicAbstractUpdateFuture.java:249)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAll0(GridDhtAtomicCache.java:1130)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.invokeAll(GridDhtAtomicCache.java:975)
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlBatchSender.processPage(DmlBatchSender.java:227)
        ... 146 more
        Suppressed: class org.apache.ignite.IgniteCheckedException: Failed to 
update keys on primary node.
                at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.UpdateErrors.addFailedKeys(UpdateErrors.java:124)
                at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse.addFailedKeys(GridNearAtomicUpdateResponse.java:340)
                at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.onSendError(GridNearAtomicAbstractUpdateFuture.java:487)
                ... 153 more
                Suppressed: class org.apache.ignite.IgniteCheckedException: 
Failed to deploy class for local deployment 
[clsName=org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor$ModifyingEntryProcessor,
 ldr=io.iec.edp.caf.app.manager.classloader.CAFClassLoader@544fa968]
                        at 
org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager.registerClass(GridCacheDeploymentManager.java:666)
                        at 
org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager.registerClass(GridCacheDeploymentManager.java:604)
                        at 
org.apache.ignite.internal.processors.cache.GridCacheMessage.prepareObject(GridCacheMessage.java:248)
                        at 
org.apache.ignite.internal.processors.cache.GridCacheMessage.marshalCollection(GridCacheMessage.java:521)
                        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicFullUpdateRequest.prepareMarshal(GridNearAtomicFullUpdateRequest.java:376)
                        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onSend(GridCacheIoManager.java:1210)
                        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1245)
                        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1296)
                        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.sendSingleRequest(GridNearAtomicAbstractUpdateFuture.java:312)
Console logging handler is not configured.
[19:43:04]    __________  ________________
[19:43:04]   /  _/ ___/ |/ /  _/_  __/ __/
[19:43:04]  _/ // (7 7    // /  / / / _/
[19:43:04] /___/\___/_/|_/___/ /_/ /___/
[19:43:04]
[19:43:04] ver. 2.9.0#20201015-sha1:70742da8
[19:43:04] 2020 Copyright(C) Apache Software Foundation
[19:43:04]
[19:43:04] Ignite documentation: http://ignite.apache.org
[19:43:04]
[19:43:04] Quiet mode.
[19:43:04]   ^-- Logging by 'JavaLogger [quiet=true, config=null]'
[19:43:04]   ^-- To see **FULL** console log here add -DIGNITE_QUIET=false or 
"-v" to ignite.{sh|bat}
[19:43:04]
[19:43:04] OS: Windows 10 10.0 amd64
[19:43:04] VM information: OpenJDK Runtime Environment 1.8.0_222-b10  OpenJDK 
64-Bit Server VM 25.222-b10
[19:43:04] Please set system property '-Djava.net.preferIPv4Stack=true' to 
avoid possible problems in mixed environments.
[19:43:04] Initial heap size is 254MB (should be no less than 512MB, use 
-Xms512m -Xmx512m).
[19:43:04] Configured plugins:
[19:43:04]   ^-- None
[19:43:04]
[19:43:04] Configured failure handler: [hnd=StopNodeOrHaltFailureHandler 
[tryStop=false, timeout=0, super=AbstractFailureHandler 
[ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, 
SYSTEM_CRITICAL_OPERATION_TIMEOUT]]]]
[19:43:06] Message queue limit is set to 0 which may lead to potential OOMEs 
when running cache operations in FULL_ASYNC or PRIMARY_SYNC modes due to 
message queues growth on sender and receiver sides.
[19:43:06] Security status [authentication=off, sandbox=off, tls/ssl=off]
[19:43:08] REST protocols do not start on client node. To start the protocols 
on client node set '-DIGNITE_REST_START_ON_CLIENT=true' system property.
[19:43:11] Default character encoding is GBK. Specify UTF-8 character encoding 
by setting -Dfile.encoding=UTF-8 JVM parameter. Differing character encodings 
across cluster may lead to erratic behavior.
[19:43:11] Nodes started on local machine require more than 80% of physical RAM 
what can lead to significant slowdown due to swapping (please decrease JVM heap 
size, data region size or checkpoint buffer size) [required=12571MB, 
available=16254MB]
[19:43:11] Performance suggestions for grid  (fix if possible)
[19:43:11] To disable, set -DIGNITE_PERFORMANCE_SUGGESTIONS_DISABLED=true
[19:43:11]   ^-- Enable G1 Garbage Collector (add '-XX:+UseG1GC' to JVM options)
[19:43:11]   ^-- Set max direct memory size if getting 'OOME: Direct buffer 
memory' (add '-XX:MaxDirectMemorySize=<size>[g|G|m|M|k|K]' to JVM options)
[19:43:11]   ^-- Disable processing of calls to System.gc() (add 
'-XX:+DisableExplicitGC' to JVM options)
[19:43:11] Refer to this page for more performance suggestions: 
https://apacheignite.readme.io/docs/jvm-and-system-tuning
[19:43:11]
[19:43:11] To start Console Management & Monitoring run ignitevisorcmd.{sh|bat}
[19:43:11]
[19:43:11] Ignite node started OK (id=09124ac5)
[19:43:11] Topology snapshot [ver=12, locNode=09124ac5, servers=1, clients=1, 
state=ACTIVE, CPUs=8, offheap=2.5GB, heap=9.5GB]
[19:43:11]   ^-- Baseline [id=0, size=1, online=1, offline=0]
javax.cache.CacheException: Failed to update keys (retry update if possible).: 
[2]
        at 
org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:834)
        at 
org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:767)
        at 
org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.query(GatewayProtectedCacheProxy.java:424)
        at 
com.inspur.gs.scm.sd.qdptestcache0603.qdpcachevo0603.voactions.QueryCacheVOAction.execute(QueryCacheVOAction.java:177)
        at 
com.inspur.edp.bff.spi.AbstractFSAction.deal(AbstractFSAction.java:62)
        at 
com.inspur.edp.bff.spi.assembler.AbstractExtendQueryAssembler.doQuery(AbstractExtendQueryAssembler.java:48)
        at 
com.inspur.edp.bff.core.action.query.QueryAction.execute(QueryAction.java:82)
        at 
com.inspur.edp.bff.spi.AbstractFSAction.deal(AbstractFSAction.java:62)
        at 
com.inspur.edp.bff.core.manager.ActionExecutor.lambda$executeAction$0(ActionExecutor.java:44)
        at 
com.inspur.edp.bff.core.manager.ActionExecutor.executeAction(ActionExecutor.java:58)
        at 
com.inspur.edp.bff.core.manager.FSManager.executeAction(FSManager.java:203)
        at com.inspur.edp.bff.core.manager.FSManager.query(FSManager.java:401)
        at 
com.inspur.edp.sgf.adapter.viewmodel.BasicActionAdapter.query(BasicActionAdapter.java:164)
        at 
com.inspur.edp.sgf.adapter.viewmodel.ViewModelAdapter.invokeExtendQuery(ViewModelAdapter.java:315)
        at 
com.inspur.edp.sgf.adapter.viewmodel.ViewModelAdapter.invoke(ViewModelAdapter.java:115)
        at 
com.inspur.edp.sgf.core.manager.EapiInovkerMananger.invoke(EapiInovkerMananger.java:56)
        at 
com.inspur.edp.sgf.core.service.InvokeServiceImpl.invokeByJsonNode(InvokeServiceImpl.java:49)
        at 
com.inspur.edp.sgf.api.service.ServiceInvoker.invokeByJsonNode(ServiceInvoker.java:27)
        at 
com.inspur.gs.scm.sd.qdptestcache0603.rest.qdpCacheVO0603DynamicService.extend_Query(qdpCacheVO0603DynamicService.java:173)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179)
        at 
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201)
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104)
        at 
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
        at 
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
        at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
        at 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:265)
        at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
        at 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:225)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:298)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPut(AbstractHTTPServlet.java:234)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:663)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:273)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at 
io.iec.edp.caf.boot.context.CAFContextFilter.doFilterInternal(CAFContextFilter.java:158)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)
        at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)
        at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at 
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at 
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at 
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at 
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at 
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at 
io.iec.edp.caf.security.core.spring.filter.CafSecurityAuthenticationPlanExecutionFilter.doFilterInternal(CafSecurityAuthenticationPlanExecutionFilter.java:68)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at 
io.iec.edp.caf.security.core.spring.filter.CafSecurityPostAuthenticationProcessorFilter$CafSecurityVirtualFilterChain.doFilter(CafSecurityPostAuthenticationProcessorFilter.java:109)
        at 
io.iec.edp.caf.security.core.spring.filter.CafSecurityPostAuthenticationProcessorFilter.doFilterInternal(CafSecurityPostAuthenticationProcessorFilter.java:52)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at 
io.iec.edp.caf.security.core.spring.filter.CafSecurityCredentialsExtractFilter.doFilterInternal(CafSecurityCredentialsExtractFilter.java:151)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at 
org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at 
org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:92)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at 
org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92)
        at 
org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at 
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at 
org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at 
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
        at 
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
        at 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
        at 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at 
org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at 
org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at 
org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:141)
        at 
org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:82)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at 
org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:109)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
        at 
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
        at 
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
        at 
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:887)
        at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1684)
        at 
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)
Caused by: class 
org.apache.ignite.internal.processors.query.IgniteSQLException: Failed to 
update keys (retry update if possible).: [2]
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlUtils.doUpdate(DmlUtils.java:280)
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlUtils.processSelectResult(DmlUtils.java:171)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeUpdateNonTransactional(IgniteH2Indexing.java:2899)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeUpdate(IgniteH2Indexing.java:2753)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeUpdateDistributed(IgniteH2Indexing.java:2683)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeDml(IgniteH2Indexing.java:1186)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.querySqlFields(IgniteH2Indexing.java:1112)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2779)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2775)
        at 
org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:3338)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.lambda$querySqlFields$2(GridQueryProcessor.java:2795)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuerySafe(GridQueryProcessor.java:2833)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2769)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2696)
        at 
org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:819)
        ... 128 more
Caused by: java.sql.SQLException: Failed to update keys (retry update if 
possible).: [2]
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlBatchSender.processPage(DmlBatchSender.java:248)
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlBatchSender.sendBatch(DmlBatchSender.java:196)
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlBatchSender.add(DmlBatchSender.java:124)
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlUtils.doUpdate(DmlUtils.java:255)
        ... 143 more
Caused by: class 
org.apache.ignite.internal.processors.cache.CachePartialUpdateCheckedException: 
Failed to update keys (retry update if possible).: [2]
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.onPrimaryError(GridNearAtomicAbstractUpdateFuture.java:397)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.onPrimaryResponse(GridNearAtomicUpdateFuture.java:413)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.onSendError(GridNearAtomicAbstractUpdateFuture.java:489)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.sendSingleRequest(GridNearAtomicAbstractUpdateFuture.java:326)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.map(GridNearAtomicUpdateFuture.java:814)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.mapOnTopology(GridNearAtomicUpdateFuture.java:666)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.map(GridNearAtomicAbstractUpdateFuture.java:249)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAll0(GridDhtAtomicCache.java:1130)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.invokeAll(GridDhtAtomicCache.java:975)
        at 
org.apache.ignite.internal.processors.query.h2.dml.DmlBatchSender.processPage(DmlBatchSender.java:227)
        ... 146 more
        Suppressed: class org.apache.ignite.IgniteCheckedException: Failed to 
update keys on primary node.
                at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.UpdateErrors.addFailedKeys(UpdateErrors.java:124)
                at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse.addFailedKeys(GridNearAtomicUpdateResponse.java:340)
                at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.onSendError(GridNearAtomicAbstractUpdateFuture.java:487)
                ... 153 more
                Suppressed: class org.apache.ignite.IgniteCheckedException: 
Failed to deploy class for local deployment 
[clsName=org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor$ModifyingEntryProcessor,
 ldr=io.iec.edp.caf.app.manager.classloader.CAFClassLoader@544fa968]
                        at 
org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager.registerClass(GridCacheDeploymentManager.java:666)
                        at 
org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager.registerClass(GridCacheDeploymentManager.java:604)
                        at 
org.apache.ignite.internal.processors.cache.GridCacheMessage.prepareObject(GridCacheMessage.java:248)
                        at 
org.apache.ignite.internal.processors.cache.GridCacheMessage.marshalCollection(GridCacheMessage.java:521)
                        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicFullUpdateRequest.prepareMarshal(GridNearAtomicFullUpdateRequest.java:376)
                        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onSend(GridCacheIoManager.java:1210)
                        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1245)
                        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1296)
                        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.sendSingleRequest(GridNearAtomicAbstractUpdateFuture.java:312)
package hutianyue;
import com.inspur.edp.qdp.cache.config.QdpCacheConfigImp;
import com.inspur.edp.qdp.cache.service.QdpCacheServiceIgnite;
import com.inspur.edp.qdp.cluster.service.QdpClusterServiceIgnite;
import com.inspur.edp.qdp.config.api.cache.IQdpCache;
import com.inspur.edp.qdp.config.api.cache.IQdpCacheConfig;
import com.inspur.edp.qdp.config.api.cache.IQdpCacheService;
import com.inspur.edp.qdp.config.config.*;
import hutianyue.model.QDPDemoModel;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.IgniteDataStreamer;
import org.apache.ignite.Ignition;
import org.apache.ignite.cache.CacheAtomicityMode;
import org.apache.ignite.cache.CacheMode;
import org.apache.ignite.cache.QueryEntity;
import org.apache.ignite.cache.QueryIndex;
import org.apache.ignite.cache.affinity.AffinityKey;
import org.apache.ignite.cache.query.FieldsQueryCursor;
import org.apache.ignite.cache.query.SqlFieldsQuery;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.spi.deployment.uri.UriDeploymentSpi;

import java.util.*;

public class TestCache {
    public static void main(String[] args){
        Object obj = Math.ceil(50/20);
        Ignite ignite = null;
        try {
            UriDeploymentSpi deploymentSpi = new UriDeploymentSpi();
            ArrayList<String> uriList = new ArrayList<>();
            
uriList.add("file://freq=2000@localhost/d:/apache-ignite-2.9.0-bin/hot/user_libs");
            deploymentSpi.setUriList(uriList);

            QdpIgniteConfiguration qdpIgniteConfiguration = 
QDPIgnite.getConfig().getQdpIgniteConfiguration();
            qdpIgniteConfiguration.getIcfg().setDeploymentSpi(deploymentSpi);
            ignite = 
QDPIgnite.getInstance().getConnection(qdpIgniteConfiguration);


            CacheConfiguration config3 = getCacheConfig();
            CacheConfiguration config6 = getAffCacheConfig();

            IgniteCache cache3 = ignite.getOrCreateCache(config3);
            IgniteCache cache6 = ignite.getOrCreateCache(config6);

            ArrayList<Long> keyList = new ArrayList<>();
            ArrayList<QDPDemoModel> valueList = new ArrayList<>();
            ArrayList<Long> affiList = new ArrayList<>();
            for(int i = 0; i< 100; i++){
                QDPDemoModel demo = new QDPDemoModel();
                demo.setKey((long)i);
                demo.setId(UUID.randomUUID().toString());
                demo.setVersion(new Date());
                demo.setCode("test_code_" + i);
                demo.setName("test_name_" + i);
                demo.setValue(i);
                keyList.add((long) i);
                valueList.add(demo);
                cache3.put((long)i, demo);
                if(i < 20)
                    affiList.add(1l);
                else
                    affiList.add(2l);
            }

            IgniteDataStreamer<AffinityKey<Long>, QDPDemoModel> stmr = 
Ignition.ignite().dataStreamer(config6.getName());

            stmr.allowOverwrite(true);
            for(int i = 0; i< keyList.size(); i++){
                stmr.addData(new AffinityKey<>(keyList.get(i), 
affiList.get(i)), valueList.get(i));
            }
            stmr.keepBinary();
            stmr.close();

            String selectSql = "select QDPDemoTable.name from 
QDPDemoSchema.QDPDemoTable where QDPDemoTable.code = ?";
            Object[] param = {"test_code_1"};
            FieldsQueryCursor<List<Object[]>> rs = cache3.query(new 
SqlFieldsQuery(selectSql).setArgs(param));

            IgniteCache cache4 = ignite.cache("testConfigCache");

            ArrayList<String> names = new ArrayList();
            for(String name : ignite.cacheNames()){
                System.out.println(name);
                names.add(name);
            }

            // this statement can not execute
            String updateSql = "update QDPDemoSchema.QDPDemoTable set 
QDPDemoTable.name = 'newtest_name_2' where QDPDemoTable.code = 'test_code_2'";
            cache3.query(new SqlFieldsQuery(updateSql)).getAll();

            IgniteCache cache5 = ignite.getOrCreateCache(config3);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static CacheConfiguration getCacheConfig(){
        CacheConfiguration config3 = new CacheConfiguration();
        config3.setName("testConfigCache");

        QueryEntity entity = new QueryEntity();
        entity.setTableName("QDPDemoTable");
        LinkedHashMap<String, String> propMap = new LinkedHashMap();
        propMap.put("key", Long.class.getName());
        propMap.put("id", String.class.getName());
        propMap.put("version", Date.class.getName());
        propMap.put("name", String.class.getName());
        propMap.put("code", String.class.getName());
        propMap.put("value", Integer.class.getName());

        LinkedHashMap<String, Boolean> indexFiled = new LinkedHashMap();
        indexFiled.put("id", true);
        QueryIndex index = new QueryIndex();
        index.setName("demo_index");
        index.setFields(indexFiled);

        entity.setFields(propMap);
        entity.setKeyType(Long.class.getName());
        entity.setValueType(QDPDemoModel.class.getName());
        entity.setIndexes(Collections.singleton(index));

        config3.setSqlSchema("QDPDemoSchema");
        config3.setBackups(1);
        config3.setCacheMode(CacheMode.PARTITIONED);
        config3.setAtomicityMode(CacheAtomicityMode.ATOMIC);
        config3.setGroupName("QDPTestGroup");
        config3.setQueryEntities(Collections.singleton(entity));
        config3.setDataRegionName("Default_Region");

        return config3;
    }

    public static CacheConfiguration getAffCacheConfig(){
        CacheConfiguration config3 = new CacheConfiguration();
        config3.setName("testAffConfigCache");

        QueryEntity entity = new QueryEntity();
        entity.setTableName("QDPDemoTableAff");
        LinkedHashMap<String, String> propMap = new LinkedHashMap();
        propMap.put("key", Long.class.getName());
        propMap.put("id", String.class.getName());
        propMap.put("version", Date.class.getName());
        propMap.put("name", String.class.getName());
        propMap.put("code", String.class.getName());
        propMap.put("value", Integer.class.getName());

        LinkedHashMap<String, Boolean> indexFiled = new LinkedHashMap();
        indexFiled.put("id", true);
        QueryIndex index = new QueryIndex();
        index.setName("demo_indexAff");
        index.setFields(indexFiled);

        entity.setFields(propMap);
        entity.setKeyType(AffinityKey.class.getName());
        entity.setValueType(QDPDemoModel.class.getName());
        entity.setIndexes(Collections.singleton(index));

        config3.setSqlSchema("QDPDemoSchema");
        config3.setBackups(1);
        config3.setCacheMode(CacheMode.PARTITIONED);
        config3.setAtomicityMode(CacheAtomicityMode.ATOMIC);
        config3.setGroupName("QDPTestGroup");
        config3.setQueryEntities(Collections.singleton(entity));
        config3.setDataRegionName("Default_Region");

        return config3;
    }
}

Reply via email to