- PR -

Oracle接続時に最初の1回のみエラー発生

1
投稿者投稿内容
さくら
ベテラン
会議室デビュー日: 2004/02/12
投稿数: 76
投稿日時: 2004-04-26 12:15
現在、Windows2000,Oracle9i,ASP.NETを使用して
WEBアプリの開発を行なっています。

毎晩夜中にWEBサーバとDBサーバの電源を落とし、
次の日の明け方にWEBサーバとDBサーバの電源を入れ、
出社した朝に開発したWEBアプリからSQL文を発行した際に
必ずといっていいほどOracleエラーが発生します。
エラー内容の8割ぐらいは
「ORA-12571: TNS: パケット・ライターに障害が発生しました」
で残り2割が
「ORA-03113: 通信チャネルでend-of-fileが検出されました」
「ORA-03114: Oracleに接続されていません」
です。
最初にOracleと接続を試みた場合にのみエラーが発生し、
1回エラーが出て、それから再接続してつながってから後は
エラーが発生することはありません。

同じ経験をされた方や、何か情報をお持ちの方がおられましたら
どうぞご教授願います。よろしくお願い致します。
Dr.Doraemon
ぬし
会議室デビュー日: 2002/03/23
投稿数: 265
投稿日時: 2004-04-26 12:55
お疲れ様です。

私は、asp.netはわからないのですが、エラーを見る限りプログラム側がOracleのコネクションを保持したままであることが起因しているのではないかと思います。
 コネクションプールとルータ越えをしたりしたときによく見るエラーです。

 つまり、ASP.NET側で、Oracleに接続した際に、そのコネクションを保持し、それを使い回すような形になっていて、夜にDBサーバを再起動したときに、OracleとASP.NETのセッションがなくなるのですが、なんらかの形でASP.NET側が前のセッションを持ち続けてそれで接続にいこうとしているのではないかと思います。
 確認事項としては、WEBサーバ(この場合Webアプリケーションサーバ)は本当に再起動されているかということと、コネクションがどういった形がで残っていないかになると思います。
 また、Oracleの起動には時間がかかるでしょうから、OracleDBサーバを朝4時に起動して、Webアプリサーバを朝5時に起動するなど時間差をつけてテストをしてみてください。

 まずは、原因調査からですね。
はにまる
ぬし
会議室デビュー日: 2003/12/19
投稿数: 969
お住まい・勤務地: 誤字脱字の国
投稿日時: 2004-04-26 13:05
非技術者のはにまるです。

 WEB系は、解らないので「引っ込んでろ!」と言われそうですが、
 基本的な事を少々。

 障害が発生した場合、その現象確認と発生パターンを掴む必要があります。
 これは、OKの様ですね。

 ここで、ある程度経験を持っていれば、予測は付くと思いますので
 何方かが返答されるかもしれませんが、
 返答が無かった場合、及びさくらさん自身のスキルアップの為に、
 次のステップに進みましょう。

 次のステップは障害の発生箇所を調べる事です。

 WEBサーバとDBサーバの話が上がっていますが、
 朝の起動時に、WEBサーバでは無くSQL*Plus等からSQL文を発行すると、どうなるでしょう?
 
 これでWEBサーバ及びASPが関係するか否かが解ります。

 次にWEBサーバ及びASPの問題でなければ、サーバからListenerを経由せずにOracleへ
 問い合わせることで、Listenerの問題かわかります。

 この様に影響するものを少しずつ排除して、障害箇所を特定すると
 皆さんもヒントが出し易いと思います。

 この調査を1日1回(朝)だけしか出来無いのであれば、
 計画的にどこから調査するか?を考える事も必要と思います。
 
# 編集-追記
 あだ、既にDr.Doraemonさんの方で良き返答をされていましたね。^^;


[ メッセージ編集済み 編集者: はにまる 編集日時 2004-04-26 13:08 ]
1

スキルアップ/キャリアアップ(JOB@IT)