誤って新規作成してしまったQNo.1340574は後ほど削除します。^^;
1、システム構成
(1)クライアント(Windows XP Professional)
(1)VB6で作成した業務プログラム
(2)oo4o(Oracle Object For Windows)
(2)サーバ(HP-UX9000/800)
(1)Oracle(DBMS)
(ハードウェアが5台あり、ハードウェア毎にインスタンスが1つ作成済み。)
(各インスタンスには、複数のユーザを作成済み。)
(便宜上、各インスタンスをA,B,C,D,Eと呼ぶ。)
2、発生している問題
クライアントの業務プログラムからoo4oを
利用してDBアクセスを行っておりますが
ある処理で、サーバからの応答がなくなり
クライアントプログラムが応答なしとなります。
この状態で、v$session,v$lockの内容を確認したところ
ユーザテーブルに対しての参照SQLのセションがアクティブの残っており
更に、トランザクション・エンキュに対してのロックも残っている状態まで
確認することができました。
(また、30分程度待つことで、セションが消滅します。)
また、サーバがこの状態になると
別クライアントから同様の処理を実行するたびに
クライアントプログラムが応答なしとなり
アクティブのセションが残ってしまいます。
また、サーバに接続するクライアントが少ない場合には発生していないようです。
(開発環境では再現しません)
3、質問
もう、正直いって自分の知識だけでは、もう解析方法が残っておりません。
なにかアドバイスはありませんでしょうか?
もしくは具体的に「コレをみろ!」とか「コレを使え!」とか
ありましたら、教えてください。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
障害情報は主にalert.logと呼ばれるものに出力されます。
まず概要がalert.logに出力され詳細がトレースファイルに出力されます。
HP-UXということでデフォルトならば
$ORACLE_BASE/admin/{ORACLE_SID}/bdumpにalert.logが出力されます。デッドロックなど何らかの障害が発生している場合にはこちらに表示されます。
またロックと疑ってかかるのであればv$lockやv$locked_objectが有効な情報源となります。
8iであればSTATSPACK、セッションが特定できているのであればSQLトレースなども有効です。
アプリから起動されるセッションでもログイントリガに
alter session set sql_trace=trueを仕込めば簡単にSQLトレースは取ることが出来ます。
No.3
- 回答日時:
こんにちは。
実際に見てみないと、詳しい事がわかりませんが・・・、
とりあえず問題を切り分けていくべきでしょう。
oo4oを介しない場合はどうなのか?
クライアントは、特定のPCでのオペレーションで起こるのか?
「ある処理」とは、ある特定の処理のみで起こるのか?
(この場合、SQLに問題がないのか?)
設計上、デッドロックの回避はおこなわれているのか?
などなど・・・。
手間ですが、一つずつ潰していくしかないでしょう・・・。
(^^ゞ
No.2
- 回答日時:
>障害情報を早速みてみたいのですが
>どこに出力されるものなのでしょうか?
出力されているというか、Oracle社が公開している障害情報という意味ですね。
http://support.oracle.co.jp/
ただし、サポート契約してないと、たいした情報は出てきませんが。
この回答への補足
これは失礼しました。
ログファイルかなにかと思い勘違いをしておりました。
URLを参考にさせいただいたのですが
ご指摘の通り、サポート契約をしていない状態では
本事象の解決につながるような情報は取得できないようです。
No.1
- 回答日時:
Oracleのバージョンは?特にクライアントはXPに対応してるバージョンですか?
v$sessionみてるんでしたらどのセッションがロックをかけっぱにしてるかわかるかと。
クライアントなのか、DBリンクなのか位は調べないと。
クライアントだったら該当の端末のタスクマネージャをチェック。DBリンクだったら、障害情報をチェックかな?
この回答への補足
迅速な回答ありがとうございます。
障害情報を早速みてみたいのですが
どこに出力されるものなのでしょうか?
(質問ばかりで申し訳ありません^^;)
>Oracleのバージョンは?特にクライアントはXPに対応してるバージョンですか?
DBMSはOracle8iです。
クライアントのoo4oはXPに対応しています。
(OracleClient Ver9.2のものを使用しております。)
>v$sessionみてるんでしたらどのセッションがロックをかけっぱにしてるかわかるかと。
セションは特定しております。そのときに解析されているSQLも判明しているのですが、セションがアクティブのままのため、DBMSでSQL解析などの処理が走っていると考えております。また、ロックはトランザクション・エンキュにのみかかっています。
>クライアントなのか、DBリンクなのか位は調べないと。
クライアントはDB処理の結果待ちとなっておりますので、DBリンクを利用した、DBアクセスが怪しいと考えております。また、他のプログラムでも同様DBリンクを使用しておりますが正常に処理されます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Oracleへのリンクサーバー設定...
-
QNDを使うとクライアント側の情...
-
正しいSQLなのに「ORA-00936: ...
-
インストール後の最初の作業を...
-
OracleDBの環境がなくてもSQL実...
-
vbからoracleへの接続
-
PCが勝手にシャットダウン
-
SIDとSERVICE_NAMEの違いとは?
-
DB2で SQL1032N start databas...
-
Windows Storeを使わずに付箋を...
-
SQLサーバー認証でログインを作...
-
OraOps10.dllのエラーについて
-
.NET Frameworkがコントロール...
-
oracleのメモリ使用量が97%ほど...
-
ORAー12560:TNS:protocol adap...
-
SQL*PLUSにてデータベース名表示
-
Oracle10g・・ODBCで接続できない
-
オラクルに接続できない
-
突然オラクルへ接続できなくな...
-
オープン時にエラーが出て接続...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正しいSQLなのに「ORA-00936: ...
-
Oracleへのリンクサーバー設定...
-
sqlplusで接続できない
-
QNDを使うとクライアント側の情...
-
Oracle11gの接続について大至急...
-
ACCESSからのODBC接続について
-
Windows 10 Home で、SQL Serve...
-
SQL Plus での処理が重い
-
Oracleクライアントの共存について
-
sql plusのダウンロードとイン...
-
インストール後の最初の作業を...
-
Oracle9i クライアントをWindow...
-
11gサーバーに10gクライアント...
-
PHP4によるOracleへの接続
-
vbからoracleへの接続
-
Oracleがインストールされてい...
-
PCが勝手にシャットダウン
-
インストールについて
-
oracleクライアントのバージョ...
-
Oracleインストール
おすすめ情報