bug现场谜之报错也识趣-客户一上班报错就消失了!

手把手教你配置人大金仓JDBC连接:用currentSchema参数解决表名冲突(附public模式示例) 本文详细解析了人大金仓数据库JDBC连接中`currentSchema`参数的应用,解决表名冲突问题。通过实战示例展示如何配置多模式管理,特别针对`sys_user`等系统表与用户表冲突场景,提供Spring Boot、多租户等环境的配置方案,帮助开发者高效管理数据库模式。 阅读详情

1. bug现场情况

部署的是Java应用,容器中间件使用的是IBM WebSphere,数据库使用的是IBM DB2,数据源使用的是容器中间件提供的JNDI数据源服务。

程序在上班前的一段时间点击报错mybatis查询失败(sqlcode=-774 sqlstate=2D522),上班之后就恢复正常了。生产环境的日志没有有效的信息,全是-774的报错,而把报错的sql拿出来在数据库执行没有问题,并且同样的sql在客户上班后系统中执行没有问题。

粗略在网上查一下,DB2数据库sqlcode=-774的含义是:Explanation: Statement cannot be executed within a compound SQL statement.,意思是“语句不能在复合sql中执行”;sqlstate=2D522的含义是: “ATOMIC 复合语句中不允许 COMMIT 和 ROLLBACK”。初步的判断可能和数据库的事务相关。

2. 尝试破案

日志中没有有效的报错信息,只能先观察程序表象。发现,报错的现象在中午13:00之后是能够稳定复现的,在14:30之后就稳定消失。问题出现的时候,随意刷新页面就会报错,具体后台就是-774,也就是mybatis执行sql不成功。而14:30之后,随便刷新页面都不会出现问题,即使客户端并发多个请求造成响应慢但是也不会出现报错-774。如果在报错这段时间重启了应用程序,则报错就会消失。

从以上信息,大概估计,问题应该是出现在了数据库连接池上。在某个时刻,程序用数据库连接池中的连接执行了某些操作,该数据库连接就处于了“异常”状态,其他任何功能用到该“异常”数据库连接执行sql时,就会报错,不是数据库有什么问题,而是连接数据库的数据库连接有问题。这样设想也解释了两点,第一:为什么同样的sql、同一时刻在程序中执行就会报错,而拿出来到数据库客户端中执行就没有问题;第二:程序报错的时候重启,重启后为什么就正常了。原因都是报错来自于用到了数据库连接池中“异常”的数据库连接。

那具体是什么样的操作造成了数据库连接池连接的异常呢?正常在日志中应该有所体现才对,生产环境IBM Websphere的日志太不方便看了,并且也没法设置参数重启进行监控。研究决定将生产环境迁移出来一份作为测试环境。原来容器中间件为IBM WebSphere迁移到Tomcat上。

迁移完成后程序运行一段时间后查看日志,发现最先开始报错的日志有如下内容:Processing was cancelled ... SQLSTATE=57014,日志显示在执行一个存储过程的时候,由于某种原因(可能是时间过长)客户端主动取消了。后来在网上查到了IBM官方的一个帖子:www.ibm.com/support/pag…。心里一下子豁然开朗了,这不就是DB2的一个bug吗?

IBM官方帖子说:“在DB2版本9上有一个bug,如果你在一个数据库连接中执行一个存储过程,因为某种原因客户端取消了,这时候在这个连接上执行的任何sql都会报错-774”。官方还提供了bug的补丁包。果然,找到报错的存储过程,处理之后,后续程序就没有出现过问题了。

这下找到了是什么样的操作导致数据库连接池中的连接“异常”了,就是DB2数据库的一个bug(存储过程被客户端取消后,使用同一连接执行sql都会报错-774),DB2在后续高版本上解决了这个bug。

3. 破案绊脚石

3.1 Tomcat JNDI容器数据源的配置

1). 配置server.xml中Resource。在GlobalNamingResources节点下增加节点Resource:

  </GlobalNamingResources>
    ...
    <Resource name="jdbc/court" global="jdbc/court"
        auth="Container"
        type="javax.sql.DataSource"
        driverClassName="com.ibm.db2.jcc.DB2Driver"
        url="jdbc:db2://xxx.xxx.xxx.xxx:50000/xxx:currentSchema=xxx;currentFunctionPath=xxx;"
        username=""
        password=""
        maxActive="20"
        initialSize="0"
        minIdle="0"
        maxIdle="8"
        maxWait="10000"
        timeBetweenEvictionRunsMills="30000"
        minEvictableIdleTimeMillis="60000"
        testWhileIdle="true"
        validationQuery="select current date from sysibm.sysdummy1"
        maxAge="600000"
        rollbackOnReturn="true"
        factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"/>
    ...
  </GlobalNamingResources>

2). 配置context.xml。在Context节点下增加节点ResourceLink:

<Context>
  <ResourceLink global="jdbc/court" name="jdbc/court" auth="Container" type="javax.sql.DataSource" />
</Context>

3). 配置数据源applicationContext.xml:

<bean id="datasource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
        <value>java:comp/env/jdbc/court</value>
    </property>
</bean>

3.2 项目字符编码配置

由于解决问题的项目是10年前的老项目,因此项目的字符编码使用的是GBK。在迁移项目的过程中本地启动项目发现乱码,于是就尝试将xml文件的编码从GBK改为utf8。但是xml文件太多了,没有有效的工具能批量将GBK编码改为utf8编码。

实际上这个解决编码问题的思路方向走错了,如果原来项目使用的是GBK编码,那么迁移过也要使用GBK编码,而不是尝试将原来文本文件的字符编码进行修改。JVM参数指定项目字符编码的参数是:-Dfileencoding=GBK。

3.3 DB2数据库迁移

DB2数据库之前没有接触过,迁移一个DB2数据库到新的服务器上也没有什么经验。走了一些弯路,主要问题是迁移表缺失、数据量不匹配。需要注意的问题是:

  1. db2lookup生成的迁移sql在目标db2服务上执行时,如果缺失表空间等元信息可能就会报错;一些sql语句可能在不同配置的环境上执行不了。关键是要验证表是否完整的迁移了,这一步是基础工作,非常重要。
  2. 一些表因为触发器、外键约束等的存在直接使用db2move命令迁移数据可能会不成功,这些表需要做单独的处理。

3.4 第一次听说currentFunctionPath这玩意

之前知道一些数据库的jdbcurl上支持配置一个currentSchema,表示默认查询的模式名,如果在jdbcurl配置上默认的schema,在程序中的sql可以省去查询语句表名前的schema。

迁移的程序启动后报错一个function找不到,但实际上数据库中该函数是存在的,将sql中函数前面加上模式名就可以调用成功。如果要将一个个函数都加上模式名实在太傻太累了,实际上这个方法是走偏了,应该上官网上找一找DB2的jdbcurl支持的参数,还真有currentFunctionPath这样的参数。有时候需要限定问题真正出现的范围,往这个范围查找。不然不从根本上解决问题会带来更多的问题或者非常大的工作量。

4. 总结

  1. 再着急的工作也一定要有个整体的方案,一些基础性的工作(例如数据迁移)是着急不来的,反而越着急,越会出问题,越影响整个进度。做整体方案的时候,那些脑海中一闪而过的担忧要仔细分析,不能心存侥幸心理、或者说后面再说。有些事情前期做成本很小,到了后期再做就会走非常多的弯路。
  2. 对于自己不熟悉的技术,一定要好好看看官网解释,不要随便找到一个网络上的命令就直接用,你们的场景可能是不太一样的,所需要的参数可能也是不同的,最好弄懂每个命令/参数的含义,不能着急,否则做了也会是有问题的。
  3. 问题一定是有原因的,可以暂时不去追根溯源,但要坚信肯定不是玄学。利用自己的知识将原因锁定在一定的范围内,大胆猜测、查资料、排查。
  4. 解决问题不能只解决表象,只解决表象可能还有大量问题等着你,实际上还是没有找到解决问题的途径。稳住参照3揪出来问题的元凶,就舒服了。
在Centos上从零开始部署并运行TinyWebServer服务器,过程记录(非常详细) TinyWebServer是个什么项目?它是Linux下C++轻量级Web服务器,助力初学者快速实践网络编程,搭建属于自己的服务器。使用线程池+非阻塞socket+epoll(ET和LT均实现) +事件处理(Reactor和模拟Proactor均实现) 的并发模型使用状态机解析HTTP请求报文,支持解析GET和POST请求访问服务器数据库实现web端用户注册、登录功能,可以请求服务器图片和视频文件实现同步/异步日志系统,记录服务器运行状态。...... 阅读详情

相关推荐

秋叶ComfyUI整合包:一键部署AI绘画工作流,解决环境配置难题

在AI绘画和生成式AI领域,Stable Diffusion作为开源的扩散模型,为图像生成提供了强大的技术基础。其核心原理是通过学习数据分布,对随机噪声进行逐步去噪,最终生成高质量的图像。这项技术的价值在于极大地降低了专业图像创作的门槛,并推动了AIGC(人工智能生成内容)在艺术设计、游戏开发、广告营销等场景的广泛应用。然而,其典型工作流实现工具ComfyUI,在实际部署中常因Python环境、PyTorch版本与CUDA驱动之间的复杂依赖关系而受阻,尤其是面对NVIDIA 30系、40系及未来50系等不同

优快云头条 675

db2设置默认schema_dataSource配置jdbc连接db2源url项指定currentSchema

1、jdbc连接字符串中指定当前schema要连接的目标库的schema名为DB2INST1,而在jdbc连接db2的字符串中不指定currentSchema的话,分配给用户的schema可能不是DB2INST1,而是DB2ADMIN,这时候程序的数据库操作会报sqlstate=42704的错误,因此需要在jdbc数据源连接设置中带上currentSchema设置具体如下:factory="org...

weixin_39900468的博客 4049

光模块数字诊断监控(DDM)功能

DDM(Digital Diagnostic Monitoring)数字诊断监控,由行业组织SFF Committee制定,遵循SFF-8472多源协议定义的标准参数而工作,规范了光模块和网络设备的软硬件所需遵循的标准数值或范围,确保了网络设备供应商和光模块供应商之间所提供产品的互操作性不同。:通过监测激光器的偏置电流来预测激光器的劣化,从而确保在故障发生之前将业务切换到备用链路上或替换有可能故障的光模块,因此起到了预测光模块寿命的作用。光模块DDM信息可以通过SNMP读取光模块的接收光功率和发射光功率。.

光模块的博客 2301

db2 使用jdbc建立连接时,指定schema,schema不存在也会连接成功

DB2连接问题

Day_Breaking的博客 1420

拉普拉斯矩阵

1、预备知识 拉普拉斯矩阵定义为:L=D-W。其中,D为度矩阵,W为权重矩阵。 (1)D是对角矩阵,对角线上的元素时节点的度,即所有与该节点相关联的边的权重之和;对角线以外的元素为0。有向图的对角矩阵分为 出度矩阵 和 入度矩阵。 图1.1 无向图中的度矩阵 (2)W在无向图中是对称矩阵,在有向图中是非对称矩阵。 ...

zzhe 1万+

从零构建机械臂规划栈:Pinocchio、OMPL与Ruckig的工程化融合实践

本文详细介绍了如何从零构建机械臂规划栈,通过融合Pinocchio、OMPL和Ruckig三大核心组件,实现高性能的机械臂运动规划与轨迹生成。文章深入探讨了技术选型、工程架构设计及实战优化技巧,特别针对逆解、路径规划和轨迹平滑等关键环节提供了实用解决方案,适用于工业场景中的高实时性需求。

weixin_29072299的博客 433

添加currentSchema后,该模式下表报不存在

添加currentSchema后,该模式下表报不存在

HighGO 2338

告别SquareLine!用免费的NXP GUI-Guider为海思3516AV300开发LVGL界面(附完整移植流程)

本文详细介绍了如何利用免费的NXP GUI-Guider工具为海思Hi3516AV300开发LVGL界面,包括环境配置、代码移植和性能优化等全流程实战指南。特别针对二维码组件缺失等常见问题提供解决方案,帮助开发者零成本构建高效嵌入式GUI系统。

weixin_28292761的博客 417

使用 jdbc 实现一个用户访问多个 schema 下的表

一、想实现这样的场景 假设我们在做一个工具,工具有两个模块,一个模块是数据源模块,一个模块是数据查询模块。 数据源模块负责配置一些 url,用户名,密码之类的参数,数据查询模块使用这些参数,去查询数据。 假设现在有一个数据库,有好多 schema,每一个 schema 都有可能被查询,这个时候,得要去数据源那边,为每一个 schema 配置一个连接参数。 二、这是我们不想要的,如何优化 可以使用 alter session set current_schema = my_schema 这样的语法,在一个用户

天道酬勤 3170

核心面试聚焦:业务问题+系统问题+设计题---字节、阿里、美团等整理统计

业务系统及其他相关面试问题整理:线上相关问题排查+高并发系统的限流+高并发秒杀系统设计+负载均衡+一个网站有 20 亿 url 存在一个黑名单中,这个黑名单要怎么存?若此时随便输入一个 url,你如何快速判断该 url 是否在这个黑名单中?并且需在给定内存空间(比如:500M)内快速判断出?

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 172万+

ADT MCP Server 把 ABAP 开发带进 Agent 模式

今天讨论 ADT MCP Server,不能只把它看成 Visual Studio Code 里多出来的一个开关。它真正有意思的地方,在于它把 ABAP 后端开发里那些原本需要手工点击、手工创建、手工激活、手工查服务元数据的动作,包装成一组可以被 GitHub Copilot 这类 coding agent 调用的工具。SAP 在 RAP130 练习里把它描述为运行在 ADT for Visual Studio Code 扩展内部的本地 HTTP Server,它实现的是 Model Context Pro

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 185

pg库 currentSchema 属性遇到的巨坑,relation “xxx“ does not exist

今天遇到了postgresql的jdbc的一个巨坑,记录一下 今天项目部署到服务器上后,访问接口,一直报错:relation "表名" does not exist 然后发现未指定schema,导致默认查询了public 于是我在jdbc配置中设置了currentSchema来指定默认schema,但是这里问题就来了,上述的问题没有被解决!!! 最终我发现在jdbc参数中,把currentSchema属性放到最前面就可以了!!!!!! pg库版本12.1 驱动42.2.23 ...

qq_40465489的博客 9871

机器学习实战7-基于机器学习算法预测相亲成功率

大家好,我是微学AI,今天给大家介绍一下机器学习实战7-基于机器学习算法预测相亲成功率,随着社会的发展,大家都忙于事业,对自己的终身大事就耽搁了,相亲是一种传统的寻找伴侣的方式,随着时代的发展,相亲的方式也在不断地改变。在这个过程中,了解相亲双方的信息以及预测相亲是否成功变得越来越重要。本文将介绍如何使用随机森林算法对相亲成功进行预测,通过分析男女双方的房子、车子、长相、家庭条件、父母情况、生活习惯、学历、性格、兴趣等因素,来预测相亲是否成功。

微学AI的博客 3038

jdbc中关于postgresql schema的配置

jdbc中关于postgresql schema的配置 ##9.4以前的版 jdbc:postgresql://localhost:5432/mydatabase?searchpath=myschema ##9.3以后的版 jdbc:postgresql://localhost:5432/mydatabase?currentSchema=myschema ...

三月神的专栏 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

PostgreSQL智慧碎片|微观案例 |宏观收获

精选10个小案例:分区键妙用表达式、默认权限的小误解、普通用户禁用触发器失败、数据库管道操作安全问题、多种方式灵活设置search_pathchar、字段使用bpchar转型走索引

多米爸比的专栏 975

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Oracle(三)jdbc,系统函数,事物,约束,sequence,index

Java连接oracle        Java直连核心代码:class.froName(“oracle.jdbc.driver.OracleDriver”);        Connectionct = DriverManager.getConnection(“jdbc:oracle:thin:@127.0.0.1:1521:数据库名”,“scott“,”tiger”);   Sql函数

JasonZi的博客 538

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

db2 jdbc连接字符串中 指定currentSchema

场景:连接DB2数据库的,jdbc的连接字符串中没有给当前的数据源用户指定默认的schema,而当前的数据源用户下可能有多个schema,则会使用数据源用户默认的schema. 例如:admin用户的默认shema是admin,但是我们需要连接的schema是db2inst1,这时候,使用sql操作数据库的时候,会报42704的错. 解决方案如下:为当前的连接执行默认的schema是db2ins...

weixin_47384813的博客 301

jdbc url配置currentSchema参数

配置currentSchema参数,可以在会话级覆盖并指定检索数据库对象的schema顺序及范围,可以减少对象检索的资源消耗,提高sql执行效率。但是配置currentSchema参数时,需要注意除了配置应用系统本身需要的schema,还需要将public配置在参数值最前面,因为很多系统对象都默认创建在public下,否则可能会出现对象不存在的错误。其中currentSchema参数可以指定连接会话检索数据库对象的schema顺序及范围,若不指定,则按照数据库search_path参数顺序检索。

HighGO 183

张三进阶之路 | Jmeter 实战 JDBC配置

在使用JMeter进行接口压力测试时,有时需要批量生成测试数据,这时可以使用JMeter连接数据库以创建相应的测试数据。测试结束后,还需要对测试数据进行还原或删除,以清理不必要的数据。这些操作都涉及到连接数据库并执行SQL语句。

940

oracle current_schema参数详解

用户A包含表TBL,如果用户A将TBL的访问权限给用户B(grant select any table to B),则在用户B中要想引用用户A的表,不使用同义词,则需要用select * from A.TBL; 之所以这里需要使用A.TBL的格式,是因为TBL表属于用户A的schema,做个比喻,schema(译文方案)好比一个容器,存放的是一系列数据库对象,从官方文档的介绍说明: “A sc...

rungong123的专栏 3651

DB2 FUNCTION【DB2中增加自定义函数】

1.SQL语句:直接利用SQL语句创建DB2函数 SET SCHEMA DB2INFO; SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","DB2INFO"; CREATE FUNCTION "DB2INFO"."CONVERTYMD" ("SSRC" VARCHAR(30), "SMO

WALK ON 4003

Processing was cancelled due to an interrupt.

环境:liberty 数据库:db2 遇到错误 com.ibm.db2.jcc.a.SqlException: Processing was cancelled due to an interrupt. 使用中,为同时请求的数据库连接数量过多,被系统设置强行中断。 修改办法如图,修改Maximum Connections数量

weixin_39461180的博客 1187

DB2 不指定Schema调用存储过程失败 SQLCODE=-440, SQLSTATE=42884

■ 现象DB2,Schema和访问DB的用户名不一致。调用存储过程时必须指定Schema,否则Error。 ■ 错误代码存储过程 SET SCHEMA = "QUOT"; SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","DB2INST1"; CREATE PROCEDURE C...

weixin_33726943的博客 7684

Java(61):Java访问mysql/postgres数据库示例(连接调试用)

Java访问mysql/postgres数据库示例(为了封装做连接调试用) Java对于jdbc对数据库的封装,封装方法参考: 1、Java(32):Java对于jdbc对数据库的封装(Bean)https://blog.youkuaiyun.com/fen_fen/article/details/120518266 2、Java(31):Java对于jdbc对数据库的封装[2]https://blog.youkuaiyun.com/fen_fen/article/details/120469074 3、Java(23):

fen_fen的专栏 1458
上一篇: SpringBoot2.x 自动化生成代码整合Mybatis
下一篇: 裸辞学习90天,轻松收获阿里美团Offer,掌握这些你也可以(Java岗)
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值