誤って新規作成してしまった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.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リンクを使用しておりますが正常に処理されます。
No.2
- 回答日時:
>障害情報を早速みてみたいのですが
>どこに出力されるものなのでしょうか?
出力されているというか、Oracle社が公開している障害情報という意味ですね。
http://support.oracle.co.jp/
ただし、サポート契約してないと、たいした情報は出てきませんが。
この回答への補足
これは失礼しました。
ログファイルかなにかと思い勘違いをしておりました。
URLを参考にさせいただいたのですが
ご指摘の通り、サポート契約をしていない状態では
本事象の解決につながるような情報は取得できないようです。
No.3
- 回答日時:
こんにちは。
実際に見てみないと、詳しい事がわかりませんが・・・、
とりあえず問題を切り分けていくべきでしょう。
oo4oを介しない場合はどうなのか?
クライアントは、特定のPCでのオペレーションで起こるのか?
「ある処理」とは、ある特定の処理のみで起こるのか?
(この場合、SQLに問題がないのか?)
設計上、デッドロックの回避はおこなわれているのか?
などなど・・・。
手間ですが、一つずつ潰していくしかないでしょう・・・。
(^^ゞ
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トレースは取ることが出来ます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ノートパソコン ESETの初期インストールの仕方 1 2022/10/14 08:26
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- その他(プログラミング・Web制作) マウスオーバー→ホイール回転でスクロールできない 2 2022/10/31 10:06
- サーバー ログオンユーザーがいない場合に自動再起動 1 2022/09/28 09:53
- MySQL AWSのRDSを無料枠で使用しておりますが、2日前にDBインスタンスを作成し、現在確認したらDBイン 1 2022/07/19 23:49
- サーバー FTPサーバについて詳しい方(アクセス権のないディレクトリを非表示にする方法) 4 2022/08/22 22:33
- アプリ 某クラウドソーシングサービスの請負契約のキャンセル後に請求された遅延損害金 1 2022/04/08 00:29
- PHP PHP でメールフォームを作成したい 1 2022/05/04 22:28
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Oracleへのリンクサーバー設定...
-
正しいSQLなのに「ORA-00936: ...
-
SIDとSERVICE_NAMEの違いとは?
-
東方紅魔郷
-
倒産した18禁ゲーム会社のパ...
-
住所コード11桁の住所データ...
-
Windows Storeを使わずに付箋を...
-
「ORA-6413 接続がオープンして...
-
LaTeXマクロのemathを使っても...
-
突然オラクルへ接続できなくな...
-
iniファイル読み込み失敗という...
-
SYSユーザーでログインしたい
-
.NET Frameworkがコントロール...
-
AWS初学者です。 AWSの学習を終...
-
Oracle11g SQLPlusログインにつ...
-
DB2で SQL1032N start databas...
-
ObjectBrowserでエクスポート
-
どのセッションが重いのかを知...
-
ソケット通信で接続クライアン...
-
OracleやMySQLなどに接続開発で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正しいSQLなのに「ORA-00936: ...
-
QNDを使うとクライアント側の情...
-
Oracle11gの接続について大至急...
-
Oracleへのリンクサーバー設定...
-
ACCESSからのODBC接続について
-
sqlplusで接続できない
-
SQL Plus での処理が重い
-
インストール後の最初の作業を...
-
Oracleがインストールされてい...
-
vbからoracleへの接続
-
Windows 10 Home で、SQL Serve...
-
Oracleの対応OSについて
-
1台のPCに8iと10gをインストー...
-
oracleクライアントのバージョ...
-
Oracle11gのサーバ版とクライア...
-
Mysql+PHP+Apache/サーバークラ...
-
Oracle DataBaseのコピー
-
SIDとSERVICE_NAMEの違いとは?
-
ORA-12170のエラーについて
-
突然オラクルへ接続できなくな...
おすすめ情報