QA@IT

Webサーバ上の ASP.net からDBサーバ上の Oracle を参照できません r2

4056 PV

WindowsServer2008 SP2 32bit + IIS7 の Webサーバに ASP.net のシステムを置き、WindowsServer2008 64bit + Oracle11g の DBサーバに接続する機器構成です。
ASP.net からはデータモデルを介して ODP.net で接続しています。

Webサーバ内のIEでサイトを開くとデータベースに接続して値を表示できるのですが、他の端末からだとエラーが発生します。

例)DBサーバを「D」、Webサーバを「W」、他のPCを「C」として次のように問題が発生します。
× C → W → D
× D → W → D
○ W → W → D

Webサーバ上の IIS および ASP.net を疑って下記質問をしていたのですが、状況が変わって今度は DB の方を疑ったために改めて質問を起こしました。
http://qa.atmarkit.co.jp/q/3647

■ エラーメッセージ

クエリ 'GetMST_PROPULSION_DIVISION_DEVICEByClientIp' の Load 操作に失敗しました。基になるプロバイダーが Open で失敗しました。 InnerException メッセージ: ORA-12520: TNS:listener could not find available handler for requested type of server

   場所 System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
   場所 System.Data.EntityClient.EntityConnection.Open()
   場所 System.Data.Objects.ObjectContext.EnsureConnection()
   場所 System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
   場所 System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
   場所 System.Data.Objects.ObjectQuery`1.GetEnumeratorInternal()
   場所 System.Data.Objects.ObjectQuery.System.Collections.IEnumerable.GetEnumerator()
   場所 System.ServiceModel.DomainServices.Server.DomainService.Enumerate[T](IEnumerable enumerable, Int32 estimatedResultCount)
   場所 System.ServiceModel.DomainServices.Server.DomainService.Query(QueryDescription queryDescription, IEnumerable`1& validationErrors, Int32& totalCount)
   場所 System.ServiceModel.DomainServices.Hosting.QueryProcessor.Process[TEntity](DomainService domainService, DomainOperationEntry queryOperation, Object[] parameters, ServiceQuery serviceQuery, IEnumerable`1& validationErrors, Int32& totalCount)
   場所 System.ServiceModel.DomainServices.Hosting.QueryOperationBehavior`1.QueryOperationInvoker.InvokeCore(Object instance, Object[] inputs, Object[]& outputs)

■ エラー発生状況
DBサーバー上の Oracle に高い負荷をかけ続けた上で Webサーバから DB に接続できない状況(ORA-12520)を作り、DBサーバからWeb参照をしてみました。
結果は上記エラーとなりました。
これまでWebサーバ以外からサイトを開いた際にはDBのプロセスは増えなかったためにそもそもOracleに接続できていないのだと考えていたのですが、このエラーが出る以上は Oracle の方で制限をかけているように思われます。

DB の負荷が高くない状態では Webサーバからサイトを開いたときだけ DB 参照が出来ているのですが、どういったことが考えられるでしょうか?

Oracle に詳しい方に教えていただければ幸いです。

よろしくお願いいたします。

  • 本当に状況が変わっているのでしょうか? まず、先のスレッドの質問「運用環境での認証方式、クライアント ⇒ Web サーバー、Web サーバー ⇒ DB サーバーへのアクセス権、クレデンシャルを渡す方法など、Windows システム全体としてどのように動くプランになっているのでしょうか?」に答えられませんか? -
  • このようなやり方(スレッドを乱立して同じ問題の質問をする)はこのサイトでは許されているのかどうか分かりませんが、少なくともマナー的にはどうかと思いますよ。 -
  • これは以前の質問で言うところの「検証環境」で起きているのでしょうか。「本番環境」で起きているのでしょうか。 -
  • 乱立させるのは私も好ましくないと思います。このサイトでは質問の修正・自己回答などもできますし、少なくとも過去の質問を自己回答で説明してクローズするなどされた方が良いかと。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。