2016-07-21 24 views
0
JBoss as7.1.1 
MS SQL Server 2012 

私のJBossで以下のデータソースを設定していますが、データベースに接続する際に問題が発生することがあります。JBossがデータベースに接続できない場合があります

<datasource jta="false" jndi-name="java:jboss/WebDataSource" pool-name="WebDataSource" enabled="true" use-ccm="false"> 
    <connection-url>jdbc:sqlserver://proddbserver:1433;DATABASENAME=proddb;sendStringParametersAsUnicode=false;</connection-url> 
    <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class> 
    <driver>sqljdbc4.jar</driver> 
    <new-connection-sql>SELECT 1</new-connection-sql> 
    <pool> 
     <min-pool-size>100</min-pool-size> 
     <max-pool-size>300</max-pool-size> 
     <prefill>false</prefill> 
     <use-strict-min>false</use-strict-min> 
     <flush-strategy>FailingConnectionOnly</flush-strategy> 
    </pool> 
    <security> 
     <user-name>user</user-name> 
     <password>pwd</password> 
    </security> 
    <validation> 
     <check-valid-connection-sql>SELECT 1</check-valid-connection-sql> 
     <validate-on-match>true</validate-on-match> 
     <background-validation>true</background-validation> 
     <background-validation-millis>300000</background-validation-millis> 
     <use-fast-fail>true</use-fast-fail> 
    </validation> 
    <statement> 
     <share-prepared-statements>false</share-prepared-statements> 
    </statement> 
</datasource> 

データベース接続がない場合、私は私がポータルにログインしようとした場合、それはcouldn以来、ポータル戻り」、すぐにエラーメッセージをバックアップ、テスト用DBを指している私の地元のJBossで同じセットアップを試してみましたデータベースとの対話は、ポータルにログインしようとすると、プロダクションでは試行錯誤し続けます。

私のローカル環境では、ネットワークケーブルを抜いて、db接続のあるページにアクセスしようとしましたが、 に接続できませんでした。ネットワークケーブルを差し込み、ページにアクセスしてデータを正常に取得できました。また、データベースを停止して再試行しても、ポータルから正常にアクセスできます。

生産のJBossの再起動は、この問題を修正します。何が問題なの?再起動せずに利用可能な他の修正はありますか?私は、このトピックに関連記事非常に多くのを確認し、代わりに「チェックイン有効を接続-SQL」の有効な接続チェッカー」を使用してのようないくつかの違いがある気づき、「検証・オン・マッチ」とき「の背景を必要とされていません-validation 'は真です。

別のJBossは、ロードバランスしている別のWindowsサーバで同じコードベースとデータソースの設定を持つ、完全に正常に動作します。

+0

カットオフの接続のいくつかの種類のように聞こえます。運用環境にはファイアウォールがありますか?それは接続を切断する可能性がありますが、Jbossはそれを認識せずに使用しようとしています...決してdbサーバの応答を得ません。 – Guillermo

答えて

0

デシベルサーバーに接続しているサーバーた問題は、異なるネットワークであり、この接続の問題は、他のプロセスによって詰まる ネットワーク帯域幅によって引き起こされました。この接続の問題は、特定の時点で発生していたので、問題があった場合のヒントが になりました。帯域幅のほとんどを消費しているプログラムは、時間外に実行するように延期されました。これは、この が問題を解決したと信じています。

同時に、上記の修正を行う前に、私はまた、5分〜1分、

<background-validation-millis>60000</background-validation-millis>  

ない、これはとにかくで助けた場合、確かに「データソース」の設定を更新しました。しかし、私が気づいたのは、この変更の前に、JBossのDBプールが非常に速く満たされていて、JBossがクラッシュし、このデータソース設定の更新が行われなかったことです。

修正のどちらかが、問題を解決している可能性があります。

関連する問題