注册

【求助】报错:Connection has been switched

AwesomeTom 2023/12/12 1895 2

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

【DM版本】:

select * from v$instance;
NAME INSTANCE_NAME INSTANCE_NUMBER HOST_NAME SVR_VERSION DB_VERSION START_TIME STATUS$ MODE$ OGUID DSC_SEQNO DSC_ROLE BUILD_VERSION BUILD_TIME DMSERVER DMSERVER 1 ca62798c02e2 DM Database Server x64 V8 DB Version: 0x7000c 2023-12-08 17:50:59 OPEN NORMAL 0 0 NULL 1-3-26-2023.07.26-197096-20046-ENT Aug 1 2023 16:35:32

使用docker安装的达梦单机数据库

docker images dm8_single dm8_20230808_rev197096_x86_rh6_64 ab98e2f4a568

docker 版本:

root@ecm-bvb67dp-0003:~# docker -v Docker version 20.10.18, build b40c2f6

docker命令:

docker run -d \ -p 5236:5236 \ -p 5336:5336 \ -p 5436:5436 \ -p 5536:5536 \ -p 45331:45331 \ --restart=always \ --name dm8_prod \ --privileged=true \ -e PAGE_SIZE=16 \ -e LD_LIBRARY_PATH=/opt/dmdbms/bin \ -e EXTENT_SIZE=32 \ -e BLANK_PAD_MODE=1 \ -e LOG_SIZE=1024 \ -e UNICODE_FLAG=1 \ -e LENGTH_IN_CHAR=1 \ -e INSTANCE_NAME=dm8_prod \ -v /data/dm8_prod:/opt/dmdbms/data \ dm8_single:dm8_20230808_rev197096_x86_rh6_64

【操作系统】:

root@ecm-bvb67dp-0001:/home# hostnamectl Static hostname: ecm-bvb67dp-0001 Icon name: computer-vm Chassis: vm Machine ID: 186f3198bc334ec89e829c9b3bee5bca Boot ID: 00c0e403fffa49e6af32f24a8723c8f4 Virtualization: kvm Operating System: Ubuntu 18.04.5 LTS Kernel: Linux 4.15.0-137-generic Architecture: x86-64

【CPU】:

root@ecm-bvb67dp-0001:/home# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 8 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 85 Model name: Intel Xeon Processor (Cascadelake) Stepping: 5 CPU MHz: 2999.998 BogoMIPS: 5999.99 Hypervisor vendor: KVM Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 4096K L3 cache: 16384K NUMA node0 CPU(s): 0-7 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat umip pku ospke avx512_vnni md_clear arch_capabilities

【驱动版本】:

DmJdbcDriver18.jar 包中 MANIFEST.MF信息:

Manifest-Version: 1.0 Ant-Version: Apache Ant 1.9.16 Created-By: 11.0.13+8 (Eclipse Adoptium) Implementation-Vendor: DAMENG Implementation-Title: Dameng JDBC driver classes for use with JDK1.8 Implementation-Version: - 8.1.3.12 - Production Driver-name: dm.jdbc.driver.DmDriver Build-Time: 2023.04.17 Main-Class: dm.jdbc.driver.DmDriver Premain-Class: dm.jdbc.stat.support.WebServer Svn-Revision: 16823 Branch-Id:

【问题描述】*:

我们的业务场景是做数据清洗,有一个定时任务查询几张数据量很大的表,每张表大概200来万条数据,每次任务运行到接近一个小时的时候就会报这个错误,但是又不知道错在哪里。还有一个情况也会报这个错误,就是 where 条件 in的时候,in的字段太多,>= 100条就会出现这个错误,针对后者我们将代码逻辑改了一次性不in 太多的字段,但是前者我们就不知道问题出在哪里了,附上报错的堆栈信息:

Cause: dm.jdbc.driver.DMException: Connection has been switched ; uncategorized SQLException; SQL state []; error code [20000]; Connection has been switched; nested exception is dm.jdbc.driver.DMException: Connection has been switched at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:89) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440) at com.sun.proxy.$Proxy71.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223) at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173) at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78) at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) at com.sun.proxy.$Proxy108.querySplitTableByCondition(Unknown Source) at sun.reflect.GeneratedMethodAccessor278.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
回答 0
暂无回答
扫一扫
联系客服