[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/01/30(Mon) 17:16
投稿者名:ろくすけ
Eメール:
URL :
タイトル:
通信チャネルでファイルの終わりが検出されました
oo4o(Oracle7,VB6.0)を使ってデータの処理をしています。
このプログラムは常駐型で、あるファイルが作成されるとその内容をデータベースへinsertするタイ
プです。
その処理中に「カーソルを作成できません。, ORA-03113: 通信チャネルでファイルの終わりが検出さ
れました。」
というエラーが出てしまいます。
Oracleサーバは日に一度ダウンしています。エラーはこの再起動後に出ているようです。
一度このエラーになると次からは毎回「カーソルを作成できません。, ORA-03114: Oracleに接続され
ていません。」
のエラーが出てしまい、処理が進みません。
処理を行う時は必ずデータベースのSetとCloseを行ってるので、再接続されそうなものなのです
が...。
ちなみにサーバが落ちている間はファイルは作成されないので、処理は行っていません。
どなたか分かる方がいらっしゃいましたら、よろしくお願いします。

投稿時間:2006/01/30(Mon) 20:51
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 通信チャネルでファイルの終わりが検出されました
Oracle は使ったことも無いので解りませんが、ここの[当サイト内・外の検索]から
[エラーメッセージ]をキーワードにGoogle等で検索して見て下さい。

下記に思い当たる事はありませんか?
hhttp://tinyurl.com/a8o89

投稿時間:2006/01/31(Tue) 12:52
投稿者名:demontaki
URL :
タイトル:
Re: 通信チャネルでファイルの終わりが検出されました
> oo4o(Oracle7,VB6.0)を使ってデータの処理をしています。
> このプログラムは常駐型で、あるファイルが作成されるとその内容をデータベースへinsertするタ

> プです。
> その処理中に「カーソルを作成できません。, ORA-03113: 通信チャネルでファイルの終わりが検
出さ
> れました。」
> というエラーが出てしまいます。
> Oracleサーバは日に一度ダウンしています。エラーはこの再起動後に出ているようです。
> 一度このエラーになると次からは毎回「カーソルを作成できません。, ORA-03114: Oracleに接続
され
> ていません。」
> のエラーが出てしまい、処理が進みません。
> 処理を行う時は必ずデータベースのSetとCloseを行ってるので、再接続されそうなものなのです
> が...。
> ちなみにサーバが落ちている間はファイルは作成されないので、処理は行っていません。
> どなたか分かる方がいらっしゃいましたら、よろしくお願いします。

どうもdemontakiです。
とてつもなく久々に回答しますが
データベースのSetとCloseを行っていると記述されていますが、
この場合は接続が途切れてしまっているわけですから
それだけでは不足しています
この場合、エラートラップでORA-03113を検出→現接続を破棄→再接続を行って
Set以降の処理をやり直す必要がありますが
再度、現接続を破棄→再接続の処理は行っていますか?

投稿時間:2006/01/31(Tue) 14:56
投稿者名:ろくすけ
Eメール:
URL :
タイトル:
Re^2: 通信チャネルでファイルの終わりが検出されました
> この場合、エラートラップでORA-03113を検出→現接続を破棄→再接続を行って
> Set以降の処理をやり直す必要がありますが
> 再度、現接続を破棄→再接続の処理は行っていますか?
Closeではダメだすると、現接続の破棄というのはやってないです。
現接続の破棄と再接続はどうやればいいのでしょうか?

投稿時間:2006/02/01(Wed) 12:54
投稿者名:demontaki
URL :
タイトル:
Re^3: 通信チャネルでファイルの終わりが検出されました
> > この場合、エラートラップでORA-03113を検出→現接続を破棄→再接続を行って
> > Set以降の処理をやり直す必要がありますが
> > 再度、現接続を破棄→再接続の処理は行っていますか?
> Closeではダメだすると、現接続の破棄というのはやってないです。
> 現接続の破棄と再接続はどうやればいいのでしょうか?

どうもdemontakiです。
お久しぶりです。
またまた、返信しますが
まず、前置きとして回答したのですから少しは調べましょうね。
現行ソースがある以上はOracleへの接続と破棄を行っている場所があるはずなのでそこを確認するなり
ネットでOracle VB 接続 破棄などのキーワードで検索してみようね
まあ、前置きはそれぐらいにして
破棄に関してはプログラム終了時などにSet セッション名 = Nothingと記載されているはずなので
1.エラートラップでORA-03113を検出したら、
  同じくSet セッション名 = Nothingとして現接続を破棄します
現行ソースの初期処理あたりでCreateSessionを行っている場所があるはずなので
2.現接続を破棄した後にSet セッション名 = CreateSesstionとして再度接続しなおします。
とこんなところでしょうかね
現在、VBが手元に無い為、スペルチェックや動作確認を行っておりませんのであしからず
以上

投稿時間:2006/02/04(Sat) 16:40
投稿者名:ろくすけ
Eメール:
URL :
タイトル:
Re^4: 通信チャネルでファイルの終わりが検出されました
> まず、前置きとして回答したのですから少しは調べましょうね。
> 現行ソースがある以上はOracleへの接続と破棄を行っている場所があるはずなのでそこを確認する


> ネットでOracle VB 接続 破棄などのキーワードで検索してみようね
すみません、努力が足りませんでした。次回からは気を付けます。

> 破棄に関してはプログラム終了時などにSet セッション名 = Nothingと記載されているはずなので
> 1.エラートラップでORA-03113を検出したら、
>   同じくSet セッション名 = Nothingとして現接続を破棄します
> 現行ソースの初期処理あたりでCreateSessionを行っている場所があるはずなので
> 2.現接続を破棄した後にSet セッション名 = CreateSesstionとして再度接続しなおします。
> とこんなところでしょうかね
ありがとうございます。
私はDBをCloseするだけでセッションも切れるのかと思っていました。
やはり、ちゃんとNothingで破棄する必要があるんですね。
この内容を取り入れてしばらく様子を見たいと思います。
demontakiさん、こんな私にご親切に説明して頂き本当にありがとうございました。