2017-05-10 14 views
0

修改:我使用Jboss 7服務器和Oracle 10g作爲我的web應用程序,但是當我啓動服務器應用程序正常工作但2或3小時後正在變得緩慢。銷燬無法成功匹配的連接:在與數據庫連接時發生jboss錯誤

我猜對了。 1.數據庫和jboss服務器之間沒有正確的連接,所以沒有獲取數據,所以導致它變慢。在JBoss服務器我獨立,full.xml文件

數據源信息如下:

<datasources> 
       <datasource jndi-name="java:/TTKConnectionDataSource" pool-name="TTKConnectionDataSourcePool" enabled="true" use-java-context="true" use-ccm="false"> 
        <connection-url>jdbc:oracle:thin:@10.1.0.112:1521:vidaltest</connection-url> 
        <driver-class>oracle.jdbc.OracleDriver</driver-class> 
        <driver>oracle</driver> 
        <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> 
        <pool> 
         <min-pool-size>5</min-pool-size> 
         <max-pool-size>150</max-pool-size> 
         <prefill>true</prefill> 
         <use-strict-min>true</use-strict-min> 
         <flush-strategy>FailingConnectionOnly</flush-strategy> 
        </pool> 
        <security> 
         <user-name>appln</user-name> 
         <password>appln</password> 
        </security> 
        <validation> 
         <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/> 
         <validate-on-match>true</validate-on-match> 
         <background-validation-millis>300000</background-validation-millis> 
         <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/> 
         <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/> 
        </validation> 
        <timeout> 
         <idle-timeout-minutes>10</idle-timeout-minutes> 
        </timeout> 
       </datasource> 

和錯誤時減慢服務器的什麼我得到:

11:31:04,689 WARN [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (http-web-10) IJ000612: Destroying connection that could not be successfully matched: org[email protected]323ff8fa[state=DESTROYED managed conn[email protected]62b2c9f connection handles=0 lastUse=1494391408674 trackByTx=false [email protected]547ac048 pool internal [email protected][pool=TTKConnectionDataSourcePool] [email protected][connectionListener=323ff8fa connectionManager=488aa6d1 warned=false currentXid=null] txSync=null] 
11:37:09,075 INFO [com.ttk.action.claims.TTKListener] (http-web-20) Session is created sessionCreated 
11:37:09,078 ERROR [org.apache.struts.actions.DispatchAction] (http-web-20) Request[/LoginAction] does not contain handler parameter named 'mode'. This may be caused by whitespace in the label text. 
11:46:35,964 WARN [org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory] (http-web-10) Destroying connection that is not valid, due to the following exception: [email protected]: java.sql.SQLException: pingDatabase failed status=-1 
    at org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker.isValidConnection(OracleValidConnectionChecker.java:74) [ironjacamar-jdbc-1.0.12.Final.jar:1.0.12.Final] 

05: Connection error occured: org[email protected]38b370[state=NORMAL managed conn[email protected]a8c7e2d connection handles=0 lastUse=1494390662156 trackByTx=false [email protected]547ac048 pool internal [email protected][pool=TTKConnectionDataSourcePool] [email protected][connectionListener=38b370 connectionManager=488aa6d1 warned=false currentXid=null] txSync=null]: java.sql.SQLException: pingDatabase failed status=-1 

,當我重新啓動服務器而不是連接在服務器再次變慢後最多2或3小時,請告訴我在這個問題上有哪些可能性需要解決。

在此先感謝。

對不起,我再次遇到這個問題,究竟發生了什麼?當我的服務器變慢時,它不允許我登錄其繼續緩衝,因爲它沒有連接到我的數據庫,因爲我認爲或可能是它沒有獲得連接對象。並在經過一段時間的緩衝後發出警告信息,我上面提到的「破壞無法成功匹配的連接」。比之後,如果我會嘗試登錄應用程序比花費時間獲取登錄或最後一個選項我需要重新啓動我的服務器,這是不是最好的有史以來。

回答

1

當JBoss外部關閉連接時,WARN消息並不常見。

該警告表明JBoss獲得了Oracle JDBC驅動程序來ping數據庫以確保連接仍然有效,並且它報告沒有,所以JBoss破壞了連接。然後,JBoss將創建一個新的應用程序,因此理論上應該不會導致任何實際問題。

方法「org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker.isValidConnection()」引發此異常。方法isValidConnection()在內部調用OracleConnection的pingDatabase()[1]方法。它關閉數據庫它返回-1,參考[2]。這個問題是Oracle驅動程序的一個已知問題,當它與網絡或數據庫有問題時可以看到,但與JBoss無關。

這是一種已知類型的錯誤,指示您的Oracle數據庫或偶爾與網絡有關的問題。

我會問你檢查JBoss節點和數據庫之間的網絡連接是否穩定。

[1] https://docs.oracle.com/cd/E18283_01/appdev.112/e13995/oracle/jdbc/OracleConnection.html#pingDatabase__

[2] https://docs.oracle.com/cd/E18283_01/appdev.112/e13995/oracle/jdbc/OracleConnection.html#DATABASE_CLOSED

+0

阿努普可以請你建議我如何檢查網絡連接是否穩定JBoss的節點和數據庫之間。 – rishabhkeshari123

+1

- 用通常的方式測試網絡,如ping,telnet,ssh ...連接測試。 - 檢查您的DNS名稱解析是否正常工作;如有疑問,請使用IP地址而不是主機名。 - 使用Oracle tnsping實用程序或SQL * plus測試與Oracle數據庫的連接是否正常。 注意:需要安裝本地Oracle客戶端。 –

+0

檢查了一切正常,但今天當我在早上再次嘗試同樣的問題,我面臨,我的web應用程序不允許登錄自己 – rishabhkeshari123