問題のあるデータが見つかった時にUTL_SMTPパッケージを使用して
メールを送信するPL/SQLをWindows 2003 Server上に設置して
3時間ごとに動作するよう設定しているのですが、ここ最近、
朝一番の実行時に
ORA-03135:接続が失われました
が発生するようになりました。
なんでかなーと思って調べてみると、タスクを実行するユーザーで
リモートデスクトップ接続→ログオフすると、Ctrl+Cした時みたいに
バッチ処理が止まってしまうようです。
確かに最近、そういう操作をやってるような気はしますが
まだ原因確定ではないので、ちょっと様子見ですかね。
2014年12月10日水曜日
2014年12月5日金曜日
[Oracle] db_domain と global_name を変更したときのDBLINKの挙動を調べてみた
調査の一環で、db_domain と global_name を変更したときに
DBLINKがどのような挙動を示すか試してみることにしました。
■前提
CentOS 6.5 x64
Oracle 11.2.0.4.0
影響がでないようにVMwareにインストールして、いざ検証開始。
1. db_domain と global_name を確認
2. DBLINK作成
3. 検証用にProcedure1つ作成
コンパイルエラーはなし。
4. DBLINK確認
とりあえず、これで準備は完了。
うまくいきますように。。。
5. db_domain / global_name を変更
6. Oracleを再起動(手順略)
7. もう一度 db_domain と global_name を確認
8. もう1つDBLINK作成
9. 検証用のProcedure変更
としたところでコンパイルエラー発生(ORA-00942)。
まあ、ドメイン名が変わっているのですから当然ですよね。
検証したかったのは、ドメイン名を変更したときに
作成済みDBLINKのドメイン付の名前(dblink_test01.foo.jp)が
変わってくれるかどうか、ということでした。
結論:変わってくれない。以上。
DBLINKがどのような挙動を示すか試してみることにしました。
■前提
CentOS 6.5 x64
Oracle 11.2.0.4.0
影響がでないようにVMwareにインストールして、いざ検証開始。
1. db_domain と global_name を確認
SQL> show parameter db_domain NAME TYPE VALUE ------------------- --------- -------------------------- db_domain string foo.jp SQL> select * from global_name; GLOBAL_NAME ------------------------------------------------------- HOGE.foo.jp |
2. DBLINK作成
CREATE DATABASE LINK dblink_test01 CONNECT TO user IDENTIFIED BY password USING 'target_database'; |
3. 検証用にProcedure1つ作成
CREATE OR REPLACE PROCEDURE proc01 IS VAL NUMBER; BEGIN SELECT COUNT(*) INTO VAL FROM table@dblink_test01; END proc01; / |
4. DBLINK確認
SELECT DB_LINK FROM DBA_DB_LINKS; DB_LINK ------------------------------------------------------- dblink_test01.foo.jp |
とりあえず、これで準備は完了。
うまくいきますように。。。
5. db_domain / global_name を変更
SQL> UPDATE global_name SET global_name = 'HOGE.bar.jp'; 1 row updated. SQL> COMMIT; Commit complete. SQL> ALTER SYSTEM SET db_domain = 'bar.jp' SCOPE = spfile; System altered. |
6. Oracleを再起動(手順略)
7. もう一度 db_domain と global_name を確認
SQL> show parameter db_domain NAME TYPE VALUE ------------------- --------- -------------------------- db_domain string bar.jp SQL> select * from global_name; GLOBAL_NAME ------------------------------------------------------- HOGE.bar.jp |
8. もう1つDBLINK作成
CREATE DATABASE LINK dblink_test02 CONNECT TO user IDENTIFIED BY password USING 'target_database'; |
9. 検証用のProcedure変更
CREATE OR REPLACE PROCEDURE proc01 IS VAL NUMBER; VAL2 NUMBER; BEGIN SELECT COUNT(*) INTO VAL FROM table@dblink_test01; SELECT COUNT(*) INTO VAL FROM table@dblink_test02; END proc01; / |
としたところでコンパイルエラー発生(ORA-00942)。
まあ、ドメイン名が変わっているのですから当然ですよね。
検証したかったのは、ドメイン名を変更したときに
作成済みDBLINKのドメイン付の名前(dblink_test01.foo.jp)が
変わってくれるかどうか、ということでした。
結論:変わってくれない。以上。
2014年12月4日木曜日
[Windows] タスクスケジューラでバッチ実行すると「ファンクションが間違っています。(0x800700001)」が出る
とあるexeに引数を渡して実行させるバッチをタスクスケジューラで
実行させると「ファンクションが間違っています。(0x800700001)」が
履歴に出てしまう現象が発生し、調査依頼を受けました。
調べてみると、カレントディレクトリが設定されていないとか、
リターンコードが1で返ってきていればその対処をすればよいという
内容が多かったのですが、カレントディレクトリは設定済み、
リターンコードは0ということでなかなか原因が判明せず。。
自分で作ったバッチではないので、製作者に確認をとって
動かしてみたところ、どうも引数に記載されている日本語が
文字化けしていたようです。
取り急ぎの対応として、日本語を使わないようにしたところ
問題なく動作したので無事解決。
chcpとか使えば日本語使えるようにできるんでしょうが
あまりこだわりがないようなので、これでクローズかな。
実行させると「ファンクションが間違っています。(0x800700001)」が
履歴に出てしまう現象が発生し、調査依頼を受けました。
調べてみると、カレントディレクトリが設定されていないとか、
リターンコードが1で返ってきていればその対処をすればよいという
内容が多かったのですが、カレントディレクトリは設定済み、
リターンコードは0ということでなかなか原因が判明せず。。
自分で作ったバッチではないので、製作者に確認をとって
動かしてみたところ、どうも引数に記載されている日本語が
文字化けしていたようです。
取り急ぎの対応として、日本語を使わないようにしたところ
問題なく動作したので無事解決。
chcpとか使えば日本語使えるようにできるんでしょうが
あまりこだわりがないようなので、これでクローズかな。
2014年12月3日水曜日
[Oracle] ジョブの管理はSQL Developerが便利?
これまで触ったことがなかったんですが、10g環境にて
ジョブを確認する必要が発生しました。
EnterpriseManagerから詳細を見ていたら、スケジュールを確認するところで
なんと HTTP500エラー。
何度繰り返しても変わらずスタックトレース的なアレが表示される。。。
どうしよう。。。
そうだ、SQL Developerなら・・・SQL Developerならなんとかしてくれる。
ということで、以前作成したCentOS環境からSQL Developer立ち上げて
無事閲覧できましたとさ。
スケジュールとジョブの関連もDeveloperの方がわかりやすくて◎かな
ジョブを確認する必要が発生しました。
EnterpriseManagerから詳細を見ていたら、スケジュールを確認するところで
なんと HTTP500エラー。
何度繰り返しても変わらずスタックトレース的なアレが表示される。。。
どうしよう。。。
そうだ、SQL Developerなら・・・SQL Developerならなんとかしてくれる。
ということで、以前作成したCentOS環境からSQL Developer立ち上げて
無事閲覧できましたとさ。
スケジュールとジョブの関連もDeveloperの方がわかりやすくて◎かな
登録:
投稿 (Atom)