数据源接入异常问题梳理
究极问题:为什么Navicat等第三方工具可正常执行的sql,平台不能支持或执行异常
技巧一:sql不执行的时候,需要查看控制台网络请求,确定是否与回调进行绑定
技巧二:对于sql执行失败等问题,先检查sql书写,EasyV在技术层面是通过原生驱动去与数据库建立连接,支持常规使用。
检查SQL!!!!
检查SQL!!!!
检查SQL!!!!
技巧三:与负责的客户成功同学还原问题场景,明确出现问题的数据源类型、调用方式、并提供问题复现的数据源连接配置,客户成功同学会与技术反馈
另,目前达梦官方驱动存在问题,内置函数使用效果不佳,已与达梦官方沟通并反复催过,无果。
问题一:如何判断数据源功能是否异常
通过控制台网络请求,查看接口返回
死死盯住success字段即可
- 返回true表示我放功能没有问题,能正常返回
- 返回false,则表示功能出现异常,若此时大屏有数据,则使用的是redis缓存数据; 可根据message字段进一步确认,可截图反馈
问题二:是否支持数据源内置函数调用
从使用情况反馈来看,目前除达梦数据源使用内置函数出现问题,其他数据源暂未发现问题
(大部分情况反馈为sql书写错误,内置函数使用格式不对导致)
例如:
支持DATADIFF 、CONVERT等内置函数
问题三:是否支持数据源视图
对于数据源,采用的是原生驱动,存在navicat等第三方工具正常,但平台异常情况;实际测试是支持视图的,但需要注意sql语句书写
问题四:连接sql server数据源出现: cannot call write after a stream was destroyed
涉及到连接参数是否加密问题,目前saas情况为:
走默认情况,没有单独配置, 如果独立部署出现该问题,则表明用户的sql server实例在 Windows Azure 上,需要单独处理,解决方案如下:
参考链接:https://blog.csdn.net/weixin_43776965/article/details/106050649
问题五:API数据源请求数据抛出"unable to verify the first certificate"错误信息
一般认为是自签的https证书安全等级不够导致,建议先自查。网站(https://csr.chinassl.net/ssl-checker.html)(若出现以下情况,需要客户自己完善下证书(补充一下中级证书)即可
域名证书规范案例:
问题六:MQTT接入失败
可使用MQTT Web Toolkit自行测试数据源是否可正常连接
使用方法👇
问题七:TLS 协议不支持1.0
问题现象:连接sql server2012时,提示“ad to connect to 32.61.189.55:1433 - 140243487922048:error:1425F102-SSL routinesssi choose, client version:unsupported
解决方案:
- 独立部署
通过修改easyv-ds启动引用的配置文件在node_args后面最加 '--tls-min-v1.0'配置,并重启应用
const app = process.env.APP || 'APP_NAME'
module.exports = {
name: app,
script: 'index.js',
args: '-c config.js',
env: {
DB2CODEPAGE: 1208,
npm_package_version: require('./package.json').version,
},
// 支持tls协议1.0
node_args: ['--heapsnapshot-signal=SIGUSR1','--tls-min-v1.0'],
instances: 1,
exec_mode: 'cluster',
max_memory_restart: '2048M',
out_file: './logs/pm2-out.log',
error_file: './logs/pm2-error.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss',
}
如果是浏览器端报错,不支持tls协议1.0 ,可以通过nginx配置ssl参数处理
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
- SaaS线上用户
疑似客户环境数据库使用TLS 1.1,可以尝试安装sql server补丁以支持TLS 1.2及以上,官方说明
参考资料: