• ベストアンサー

自作アプリが何をしているか知りたい。

毎度お世話になります。 この度大変困窮しており お力を拝借したい考えです。 現状ODBCで接続している Win上の自作アプリから RedHatLinux9上のpostgreSQL7.1.2のDBで 一部のデータを管理しています。 思うに該当のアプリは 単にSQL文を発行しているだけだと 推測しております。 そこでアプリがDBに どんなSQL文を発行しているか 知りたいと考えております。 何らかの方法で発行されているSQL文を記録するか 垣間見る方法はありませんでしょうか。 もしくはデータが 変更されたり追加されたテーブルを 知る方法でもかまいません。 よろしくお願いいたします。 追記:自作アプリの製作者はもうおらず、 ソースやドキュメントもありません。

質問者が選んだベストアンサー

  • ベストアンサー
noname#86752
noname#86752
回答No.1

ドキュメントはまだしもソースがないのは難儀ですね。 とりあえず参考URLにログの取り方が書いてあります。 最初の前提条件を無視してやってみて、だめだったらソースからビルドしなおしになりそうです。 (そうなったらテスト用の環境を用意しないと怖いですね)

参考URL:
http://ml.postgresql.jp/pipermail/pgsql-jp/2003-November/015217.html
nono_taro
質問者

お礼

アドバイスありがとうございます。 ログの例を見ていると 望んでいるものが記録できそうです。 前提条件を無視してやってみましたが どうやらSYSLOGのオプションは付加されていないようで ログが取得できませんでした。 一度テスト環境を作って ビルドしなおしてみたいと思います。

nono_taro
質問者

補足

7.1.2をコンパイルしようと思ったのですが RedHat9上ではコンパイルできませんでした。 ※現行はrpmパッケージで インストールがなされているようです。 しかたなく7.4.6を拾ってきたところ コンパイルできたので ひとまずはこちらで検証を取ってみております。 早速syslogを有効にしたところ ログの蓄積を確認できました。 アプリも特に問題なく動作しているようですし ログもよさそうな内容です。 これなら調査が出来そうです。 本サーバでログを取ると 過激にログが溜まり調査どころではないので このまま試験環境で進めたいと思います。 この度はまことにありがとうございました。

その他の回答 (1)

回答No.2

下の参考URLのlog_statementをtrueにするではだめですか?

参考URL:
http://www.postgresql.jp/document/pg746doc/html/runtime-config.html#RUNTIME-CONFIG-LOGGING
nono_taro
質問者

お礼

「log_statement」の件ありがとうございました。 今7.1.2と7.4.6を比較して検証を取っております。 現状の7.1.2には「log_statement」の項は無いようで 代わりに「syslog」の項のみが数行ありました。 # Syslog # #ifdef ENABLE_SYSLOG #syslog = 0 # range 0-2 #syslog_facility = 'LOCAL0' #syslog_ident = 'postgres' #endif 動作などは同じ物が期待できそうですが 「--enable-syslog」が効いてないようなので 動作しませんでした。

関連するQ&A

  • XPで動いていたアプリが7(64)では動かない

    今まで WindowsXPで使用していた自作アプリがWindows7(64)では 起動時に 「[Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバが見つかりません。」 のメッセージが表示され エラーになってしまいます。 ODBC Driverとあるので コントロールパネル 管理ツール データソース のODBCデータソースアドミニスレーターの ドライバタブを見てみると SQL Serverしか はいっていません Officeのインストール方法かなと思い 再インストールしてみました 使用しているOfficeは2003で インストール方法はすべてコンピューターから実行するようにしてみましたが インストールされませんでした。 この自作アプリはVS2008エクスプレスでVBで作成し複数エクセルファイルからデータを取得しアクセスに保存しサマリーするだけです。 XPでは普通に動くので 環境の問題だと思いますが どのようにすればWindows7(64)で動くようになるのか 今の所 見つけれないです。

  • VB5+DAO3.5でSQLサーバーに接続方法

    実行環境はNT4.0、DAOは3.5(3.51ではない) VB5でSQLサーバーに接続したいのですが、 できるのでしょうか? できればODBC経由でなく直に繋ぎたいのですが、むりならODBC経由でもいいです。 サンプルコードをお願いいたします。 1)DB接続、2)SQL文発行&レコードセット取得 位まであればありがたいです。 上記が無理の場合RDOでの使用方法があれば お願いいたします。

  • RedHatLinux+PostgreSQLを使ったWebシステムのパ

    RedHatLinux+PostgreSQLを使ったWebシステムのパフォーマンスチューニングについて。 RedHatLinux+PostgreSQLを使ったWebシステムをある会社に開発してもらったのですが、 検索のパフォーマンスがとても悪く問題になっています。 まずは、システムのどの部分がボトルネックになっているかを調査したいのですが、どのような ソフト、またはコマンドを使って調査すればよいのでしょうか? それと、ボトルネックになっている部分をどのように改善するかを教えていただけますでしょうか。 また、開発してもらったソースは公開されておらず、オブジェクトでの提供になっており SQL文が分かりません。 実行されたSQL文を解析する方法はありますでしょうか? よろしくお願いいたします。

  • SQLクエリでデータベースが壊れる?

    AccessアプリでSQL Serverデータベースを更新しています。 データベースをODBCデータソースとして登録して、AccessdeそのODBCデータソースへのリンクテーブルを作っています。 データベースが何回か壊れたのですが、AccessVBAから発行したリンクテーブルへのSQLクエリでデータベースが壊れるようなことはあるんでしょうか? あるとしたら、そのクエリを発行すると必ず壊れると思うんですが・・・。 同じAccessアプリを使っても、データベースが壊れない環境もありますし・・・。 データベースが壊れた原因がわからなくて困っています。 Windows 7、SQL Server 2008 R2 Express です。

  • 初心者です。 お願いします。

    はじめまして。 今回いきなりPostgreSQLからVBにつないで見れるようにいわれたのですが、 PostgreSQLも何か分からなかったため調べてインストールまではしました。 データを3つくらい何でもよいからといわれたのですが、まずPostgreSQLにデータを落とす方法がわかりません。 色々調べたのですが、分からなくて本当に困ってます。 そのあと、VBにつないでSQL発行をするのですが、そのこととかも分かっていない状態です。 ちなみにwindows使用で、PostgreSQL8.2.3使用しています。 宜しくお願いいたします。

  • データベース・WEBアプリを作りたい

    一度、テキストファイル+Perlで作ったデータベース WEBアプリがあるのですが、不安定性や機能性を改良 したいと考えております。 Perlとテキストファイルで作っていると改変が 大変です。なるべくMSのアクセスライクで作りたい のですが、不特定多数の人が閲覧できるWEBアプリ をより簡単に作れるでしょうか? PostgreSQL+PerlやMysqlはどうも自信がありません。 データベースに接続し、SQLを打っていけばいい のでしょうが、自信がありません。 デジエなんか使い易そうな気がしましたが、 使ったことがないのでわかりません。 データベース・WEBアプリを作るのに適したDBや 方法がありましたら教えてください。

  • PostgreSQLとMySQL

    データベースの学習のため、 PostgreSQLかMySQLを利用しようと考えていますが、 どちらにするか決め手が無く、悩んでいます。 利用方法はプログラムからSQL文を発行し、 データの取り出し、書き込みを行う程度なので どちらでも特に何も問題は無いと思いますが、 「こっちの方がオススメ!」みたいなものはあるでしょうか?

  • JDBCでのinsertについて

    JDBCを使ってDBを扱います。 データベースはPostgresqlです。 Servlet+JSP+Beanで開発しているのですが、 以下のようなinsert処理をBeanで行っています。 String sql_insert = "INSERT INTO tal_ks(cd,kbn)" + " VALUES(" + vl1 + ",'" + vl2 + "')";System.out.println(sql_insert); System.out.println("SQL文発行"); int in = stmt.executeUpdate(sql_insert); System.out.println("(SQL文発行後"); ・ ・ ・ これを行うと、例外処理には流れず 実行したかのように見えるんですが、 実際はデータがはいっておりません。 このSQLと同じものをpsqlで直接実行すると insert できました。 これは、どういうことが原因なのでしょうか? 教えていただきたいです。

    • ベストアンサー
    • Java
  • PATH を返してくれるような SQL 文の書き方について

    DBサーバ+APサーバの構成です。 APサーバで動くプログラムより SQL 文を発行して、 SQLServer2005 のデータを取得できる環境にあります。 やりたいことは、BACKUP DATABASE 文を、APサーバのプログラム から発行し、DBサーバ上にバックアップデータを保存することです。 DBサーバのフォルダ構成が環境によってまちまちなので、 SQL文を投げて、DBサーバのフォルダを取得したいのですが、 SQLServer のシステムテーブルなどに格納されていたりは しないでしょうか。 表領域のフルパス名、SQLServer インストールフォルダなどを 取得できる方法があれば教えてください。 宜しくお願いします。

  • PostgreSQLのtimestamp型とVCのRFX_Dateについて

    PostgreSQLのtimestamp型とVCのRFX_Dateについて ■開発環境 クライアント  WindowsXP  VC++6.0 サーバ  RedhatLinux9.0  PostgreSQL7.3.2 ■問題点 CRecordsetクラスを使用しDBに接続を行っています。(ODBCです) DoFieldExchange関数にて下記のようにtimestamp型のデータを取得しようとしました CTime timeTest; RFX_Date(pFX, _T("[time]"), timeTest); 書き込みは可能ですが読み込みが出来ません。 但し、date型は問題なく動作します。 (varchar,int,smallintなども問題ありません) 解決方法をご教授頂けますでしょうか? 以上、よろしくお願いします。