[英]How to get the current connection url?
我正在使用spring jdbc。 如何獲得Oracle數據庫的當前Connection對象? 我正在將連接池與JBOSS Wildfly服務器一起使用。 我使用以下代碼在DaoImp中獲取連接網址:
Connection con;
try {
con = getJdbcTemplate().getDataSource().getConnection();
dataSource.getConnection().getMetaData().getURL();
connectionUrl = con.getMetaData().getURL();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
如果我在setJdbcTemplate方法中編寫了相同的代碼,那么我無法在那獲得連接。錯誤如下
在我的setJdbcTemplate方法中,在配置的阻止超時(0 [ms])中沒有托管連接可用
public void setDataSource(DataSource dataSource){
this.dataSource = dataSource;
setJdbcTemplate(new JdbcTemplate(this.dataSource));
setNamedParamdbcTemplate(new NamedParameterJdbcTemplate(this.dataSource));
if(connectionUrl==null){
Connection con;
try {
con = getJdbcTemplate().getDataSource().getConnection();
connectionUrl = con.getMetaData().getURL();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
您可以在-ds.xml文件中指定最大和最小連接池大小。
<!--pooling parameters-->
<min-pool-size>5</min-pool-size>
<max-pool-size>100</max-pool-size>
<blocking-timeout-millis>5000</blocking-timeout-millis>
嘗試增加ds.xml文件中的阻止超時。 請參閱在JBOSS中配置數據源
blocking-timeout-millis:此元素指定在引發異常之前等待連接時要阻塞的最長時間(以毫秒為單位)。 請注意,這僅在等待連接許可時才阻塞,並且如果創建新連接花費的時間過長,則永遠不會拋出異常。 默認值為5000。
-簽出所有連接后等待連接可用的時間長度(默認值為5000 == 5秒,從3.2.4開始為30000 == 30秒)
<blocking-timeout-millis>5000</blocking-timeout-millis>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.