問題背景:我需要插入一條數(shù)據(jù)并且返回主鍵id,mysql沒有問題,oracle多次插入報(bào)錯(cuò)丟失參數(shù),重啟服務(wù)器后又可以插入幾條
long meterId = updateWithReturnKey(addSql.toString(), paramMaps, new String[] { "F_METERID"}).longValue();
@Override
public Number updateWithReturnKey(final String sqlString, Map<String, ?> paramMaps, String[] keyColumnNames) {
KeyHolder generatedKeyHolder = new GeneratedKeyHolder();
int rowAffected = -1;
try {
rowAffected = getNamedParameterJdbcTemplate().update(sqlString, new MapSqlParameterSource(paramMaps),
generatedKeyHolder, keyColumnNames);
} catch (DataAccessException e) {
SystemLogger.error("GenericDaoJdbc-updateWithReturnKey-Exception:" + StringUtils.getStackMessage(e));
}
return rowAffected > 0 ? generatedKeyHolder.getKey() : -1L;
}
德魯伊數(shù)據(jù)源配置
druid.url=jdbc:oracle:thin保密
druid.driverClassName=oracle.jdbc.driver.OracleDriver
druid.username= 保密
druid.password=保密
druid.filters=stat
druid.maxActive=20
druid.initialSize=1
druid.maxWait=60000
druid.minIdle=10
druid.timeBetweenEvictionRunsMillis=60000
druid.minEvictableIdleTimeMillis=300000
druid.validationQuery=SELECT 'x'
druid.testWhileIdle=true
druid.testOnBorrow=false
druid.testOnReturn=false
druid.maxOpenPreparedStatements=100
druid.removeAbandoned=true
druid.removeAbandonedTimeout=1800
druid.logAbandoned=true
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close">
<property name="url" value="${druid.url}" />
<property name="username" value="${druid.username}" />
<property name="password" value="${druid.password}" />
<property name="driverClassName" value="${druid.driverClassName}" />
<property name="filters" value="${druid.filters}" />
<property name="maxActive" value="${druid.maxActive}" />
<property name="initialSize" value="${druid.initialSize}" />
<property name="maxWait" value="${druid.maxWait}" />
<property name="minIdle" value="${druid.minIdle}" />
<property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" />
<property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" />
<property name="validationQuery" value="${druid.validationQuery}" />
<property name="testWhileIdle" value="${druid.testWhileIdle}" />
<property name="testOnBorrow" value="${druid.testOnBorrow}" />
<property name="testOnReturn" value="${druid.testOnReturn}" />
<property name="maxOpenPreparedStatements" value="${druid.maxOpenPreparedStatements}" />
<property name="removeAbandoned" value="${druid.removeAbandoned}" /> <!-- 打開removeAbandoned功能 -->
<property name="removeAbandonedTimeout" value="${druid.removeAbandonedTimeout}" /> <!-- 1800秒,也就是30分鐘 -->
<property name="logAbandoned" value="${druid.logAbandoned}" /> <!-- 關(guān)閉abanded連接時(shí)輸出錯(cuò)誤日志 -->
</bean>
產(chǎn)生問題的環(huán)境中的配置信息:
1:多數(shù)據(jù)源;
2:數(shù)據(jù)源有mysql,有oracle;
3:數(shù)據(jù)源默認(rèn)為mysql,mysql測(cè)試正常;切換數(shù)據(jù)源到oracle插入數(shù)據(jù)只能插入一條。插入第二條是就是報(bào)出這個(gè)錯(cuò)誤重啟服務(wù)便可以再次插入一條數(shù)據(jù);
排查問題過程:
1.sql直接插入并無異常;
2.mysql測(cè)試沒有異常
https://segmentfault.com/q/10...
http://www.zhimengzhe.com/shu...
根據(jù)這位前輩從德魯伊換了c3p0依然報(bào)錯(cuò),只是部分插入語句由第二次插入報(bào)錯(cuò),變成了第3次報(bào)錯(cuò),還有些從第五次報(bào)錯(cuò)變成了第9次報(bào)錯(cuò)。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問,美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。