數據連接問題

最近項目上遇到一個問題

場景是:應用程序主機和數據庫主機不在同一個網段(只能通過公網的方式進行訪問),各自主機外圍都有各自防護牆。此種情況,可能帶來,數據庫連接問題,而導致程序更新不成功。


1)方式一數據連接,採用tocmat的配置的數據源。(連接斷,容易出錯,導致數據庫操作失敗)

<Resource
      name="DS_TEST"
      type="javax.sql.DataSource"
      password="123456"
      driverClassName="oracle.jdbc.OracleDriver"
      maxIdle="10"
      maxWait="3000"
      validationQuery=""
      username="dbtest"
      url="jdbc:oracle:thin:@*.*.*.*:1521:TEST"
      maxActive="50"/>

2)方式二c3p0連接池的方式。(數據池,有嘗試連接,建議採用)

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<!--當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數。Default: 3 --> 
<property name="acquireIncrement">3</property>

<!--定義在從數據庫獲取新連接失敗後重復嘗試的次數。Default: 30 --> 
<property name="acquireRetryAttempts">30</property>

<!--兩次連接中間隔時間,單位毫秒。Default: 1000 --> 
<property name="acquireRetryDelay">1000</property>

<!--當連接池用完時客戶端調用getConnection()後等待獲取新連接的時間,超時後將拋出 SQLException,如設爲0則無限期等待。單位毫秒。Default: 0 -->
<property name="checkoutTimeout">1000</property>

<!--每60秒檢查所有連接池中的空閒連接。Default: 0 --> 
<property name="idleConnectionTestPeriod">30</property>

<!--初始化時獲取三個連接,取值應在minPoolSize與maxPoolSize之間。Default: 3 --> 
<property name="initialPoolSize">5</property>

<!--最大空閒時間,60秒內未使用則連接被丟棄。若爲0則永不丟棄。Default: 0 --> 
<property name="maxIdleTime">60</property>

<!--連接池中保留的最大連接數。Default: 30 --> 
<property name="maxPoolSize">30</property>
</default-config>
</c3p0-config>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章