2

Oracle WeblogicServer11gでWebアプリケーションを実行しています。アプリケーションサーバーで定義されたデータソースを使用してOracleデータベース(11gも)に接続します。そのクラスは

oracle.jdbc.xa.client.OracleXADataSource

  • 何らかの理由でデータベースが存在しなくなってから戻ってきた場合、アプリケーションは正常に実行されています(データベースにアクセスしようとすると例外が発生しますが、これは問題なく、データベースが戻ったときに新しい接続を再び取得できます)

  • ただし、weblogicサーバーの起動中にデータベースがダウンした場合データソースはサーバーにデプロイされず、アプリケーションは使用可能なデータソースがないために例外をスローし、デプロイメントは失敗としてマークされ、もちろんこれを自動的に修復するものはありません。

サーバーの起動時にデータベースが存在しない場合でも、データソースをデプロイする方法はありますか?(データベースが戻ったときにアプリケーションが使用可能になるように)

4

3 に答える 3

1

有効なデータソースなしでアプリケーションをデプロイする必要があるのはなぜですか?

データソースを偽造する (同じ JNDI 名でダミーのデータソースを作成する) 可能性があり、アプリケーションが起動時にデータソース スキーマを検証しないと仮定すると、半機能の実行中のアプリケーションが得られます (最初の DB 対話で失敗します)。

実際のデータソースが稼働中の場合、それに切り替えることはできません。アプリケーション サーバーを再起動する必要があります。

アップデート:

J2EE 仕様 (1.5 バージョン) に従って、リソースはデプロイ プロセス中にバインドされます。ダミー/アクティブなデータソースを返すカスタム ファクトリを実装することは可能だと思います。実装する価値はありますか?;)

EE.5.6.2 配備者の責任

リソース・マネージャー接続ファクトリー参照を、運用環境に存在するリソース・マネージャー接続ファクトリーにバインドします。デプロイヤは、たとえば、JNDI LinkRef メカニズムを使用して、リソース マネージャ接続ファクトリの実際の JNDI 名へのシンボリック リンクを作成できます。リソース マネージャの接続ファクトリ タイプは、res-type 要素で宣言されたタイプと互換性がある必要があります。

于 2012-06-04T14:48:09.700 に答える
0

"Initial Capacity" http://docs.oracle.com/cd/E14571_01/web.1111/e13814/jdbc_tuning.htm#i1028616を 0 に設定します。起動時の weblogic は接続を作成しようとはしません。 DBは利用できません。

于 2014-11-04T23:53:09.410 に答える
0

探しているオプションは「接続作成の再試行」です。このリンクを確認してください

これが設定されている場合、データ ソースの作成時にデータベースが使用できない場合、WebLogic Server は指定した秒数の経過後にプールで接続の作成を再試行し、成功するまで接続の作成を試行し続けます。このオプションが適用されます。サーバーの起動時にデータ ソースが作成されるときに作成される接続に ..."

于 2012-06-08T06:47:25.290 に答える