Oracle JDBC連接BUG解決方案
前兩天接到一個(gè)工作,某網(wǎng)站無(wú)法訪問了,重啟后也一直掛在哪里,起不來(lái)。
我剛開始懷疑是程序配置問題,后來(lái)發(fā)現(xiàn),只要初始化Spring內(nèi)容服務(wù)就起不來(lái)??戳艘幌聅pring配置文件里面配置了兩個(gè)數(shù)據(jù)源,都是由tomcat管理的jndi數(shù)據(jù)源。查看了一下發(fā)現(xiàn)有一個(gè)數(shù)據(jù)源有問題,使用小程序測(cè)試,發(fā)現(xiàn)無(wú)法連接該數(shù)據(jù)庫(kù),同時(shí)也發(fā)現(xiàn)一個(gè)問題,程序一直掛在哪里,是否能連接卻不再返回結(jié)果。
網(wǎng)上也有人遇到過這類問題,看來(lái)都沒有很好的解決方案,當(dāng)然,我也沒有。
我現(xiàn)在只是說明一下問題,并復(fù)現(xiàn)一下場(chǎng)景。
你可以使用附件內(nèi)調(diào)試工具或自己下載一個(gè)TCP調(diào)試工具,然后開啟一個(gè)端口,然后寫一個(gè)小程序把這個(gè)端口當(dāng)成Oracle服務(wù)端口去訪問。
package com; import java.sql.Connection; import java.util.Properties; import oracle.jdbc.driver.OracleDriver; /** * 數(shù)據(jù)庫(kù)連接對(duì)象管理類 * @說明 * @author cuisuqiang * @version 1.0 * @since */ public class ConnectionManager { private static final String url = "jdbc:oracle:thin:@192.168.1.155:1521:orcl"; private static final String username = "scott"; private static final String userpass = "bi123"; public static void main(String[] args) throws Exception { Connection conn = getConnection("1"); if (null != conn) { System.out.println(conn.toString()); } else { System.out.println("NO LINK"); } } public static Connection getConnection(String tar) { Connection conn = null; try { OracleDriver driver = new OracleDriver(); Properties properties = new Properties(); properties.put("user", username); properties.put("password", userpass); conn = driver.connect(url, properties); } catch (Exception e) { e.printStackTrace(); } return conn; } }
看服務(wù)窗口:
可以看到,程序發(fā)來(lái)了登錄信息,但是我們不回復(fù),然后就會(huì)看到,程序死在了:
conn = driver.connect(url, properties);
獲得連接這里!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
android中判斷服務(wù)或者進(jìn)程是否存在實(shí)例
本篇文章主要介紹了android中判斷服務(wù)或者進(jìn)程是否存在實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-05-05Spring Cloud學(xué)習(xí)教程之Zuul統(tǒng)一異常處理與回退
Spring Cloud Zuul對(duì)異常的處理整體來(lái)說還是比較方便的,流程也比較清晰,下面這篇文章主要給大家介紹了關(guān)于Spring Cloud學(xué)習(xí)教程之Zuul統(tǒng)一異常處理與回退的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04SpringBoot中HttpSessionListener的簡(jiǎn)單使用方式
這篇文章主要介紹了SpringBoot中HttpSessionListener的簡(jiǎn)單使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03將java項(xiàng)目打包成exe可執(zhí)行文件的完整步驟
最近項(xiàng)目要求,需要將java項(xiàng)目生成exe文件,下面這篇文章主要給大家介紹了關(guān)于如何將java項(xiàng)目打包成exe可執(zhí)行文件的相關(guān)資料,文章通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06springboot整合企微webhook機(jī)器人發(fā)送消息提醒
這篇文章主要為大家介紹了springboot整合企微webhook機(jī)器人發(fā)送消息提醒,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12使用spring通過aop獲取方法參數(shù)和參數(shù)值
這篇文章主要介紹了使用spring通過aop獲取方法參數(shù)和參數(shù)值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09HTTP基本認(rèn)證(Basic Authentication)的JAVA實(shí)例代碼
下面小編就為大家?guī)?lái)一篇HTTP基本認(rèn)證(Basic Authentication)的JAVA實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-11-11scala+redis實(shí)現(xiàn)分布式鎖的示例代碼
這篇文章主要介紹了scala+redis實(shí)現(xiàn)分布式鎖的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06java實(shí)現(xiàn)航空用戶管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)航空用戶管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07