通信中に切断されてしまうNo.01735
oku さん 00/06/08 14:25
 
秀タームVer3.16を使用しています。
現在、以下の処理を毎日起動していますが、通信が途中で切断されてしまい
ます。
ちなみに、通信が正常に完了する日もあれば、受信中に切断されたり、送信
中で切断されたりします。
原因として何が考えられるでしょうか。
教えてください。
むちゃむちゃ急いでいます

1.処理内容
    nifty ROAD7に接続
    受信する
    受信終了及び通信切断
    受信終了後、受信データをデータベースに更新
    送信データ作成
    nifty ROAD7に接続
    送信データ送信
    送信終了及び通信切断

2.環境
    OS:    Windows95
    秀Term:Ver3.16
   
3.モデムの設定
    最高速度:115200bps
    呼出オプション データ:8
                  パリティ:なし
                  ストップ:1
    接続オプション トーンを待ってからダイヤルする をチェック
                  ダイヤル時の接続タイムアウト 60秒
    接続詳細設定
      エラー制御を使う チェック
      接続に必要       チェック
      データの圧縮      チェック
      フロー制御を使う  チェック
      ハードウェア(RTS/CTS) ポイント
      変調方式          標準
      追加設定          AT+MS=11,,,9600

4.モデムのログをみていて思った事
    (1)正常に通信した時もそうでない時も以下のログが出力されます
       ダイヤル後、接続し、接続を確立した後
       ・エラー制御がオフか、または不明です
       ・データ圧縮がオフか、または不明です
    (2)通信中切断される時に以下のログが発生します
       (1)のログが出力された後
       ・モデムの切断中です(正常な時はリモートモデム切断になる)
       ・ DTRをオフにすることによるハードウェア切断



       

   

[ ]
RE:01735 通信中に切断されてしまうNo.01737
秀まるお さん 00/06/08 16:54
 
 まずは、通信速度を落としてみるのが一番です。38400bpsか、それでもダメなら19
200bpsにまで落としてみてください。

 他には、「DTR信号…」というログが出ているそうなので、秀Termの「設定・動作
環境・ダイヤル/切断方法」の所の、「CD信号を監視する」がもしONになっていたらO
FFにしてみることをお勧めします。

 他には、モデムの説明書を見ていろいろ初期化コマンドを変えてみると直るかもし
れないです。その「DTR信号」またはCD信号についてのコマンドもいくつかあると思
います。


[ ]
RE:01737 通信中に切断されてしまうNo.01748
oku さん 00/06/12 20:04
 
> まずは、通信速度を落としてみるのが一番です。38400bpsか、それでもダメなら1
>9200bpsにまで落としてみてください。
>
> 他には、「DTR信号…」というログが出ているそうなので、秀Termの「設定・動作
>環境・ダイヤル/切断方法」の所の、「CD信号を監視する」がもしONになっていたら
>OFFにしてみることをお勧めします。
>
> 他には、モデムの説明書を見ていろいろ初期化コマンドを変えてみると直るかも
>しれないです。その「DTR信号」またはCD信号についてのコマンドもいくつかあると
>思います。
>
1.通信速度に関して
    実は秀まるお様が指摘された様に以前、通信速度を9600bpsまで下げて
    みたのですが、結果同じでした。

2.秀Termの「設定・動作環境・ダイヤル/切断方法」の所の、「CD信号を監
    視する」に関して
    Offでした。

3.初期化コマンドに関して
    当バージョンには初期化コマンドを設定する項目がない様なのですが...
    何も指定していません

4.スクリプトに関して
    よく通信が切断されてしまう所のスクリプトのコーディングは以下
    の通りです。何か変更した方がいい箇所があれば、教えて下さい

    ちなみにログは、−ダウンロード開始−で終わっている場合が多いので
    す
    他には、ログインしてすぐに通信が切断されてしまう場合もあります

    DelFile "E:\KEIRI\JUSIN\" + #Code + "\" + "WORK.DAT"; 前回のダウンロード
し損ないを削除
    DelFile "E:\KEIRI\JUSIN\" + #Code + "\" + "JSOSIN.LZH"; 前回のダウンロー
ドし損ないを削除
    Send "E:\KEIRI\JUSIN\" + #Code + "\" + "WORK.DAT" + "^M"; ファイル名を指定

     wait "−ダウンロード開始−"
     SLEEP 1
     TimeOut 0
     DownLoad , Bplus
     TimeOut 30
     If( no )
        Message "ファイルのダウンロードに失敗しました。^M" + \
                "通信を中断します。"
Goto Error
      EndIf

      Switch
Case "−ダウンロード終了−"   ;
Case "◆リトライオーバした◆"
    LoopAgain
      EndSwitch


   

[ ]
RE:01748 通信中に切断されてしまうNo.01751
秀まるお さん 00/06/14 07:46
 
 まいどどうも。

 その「よく切断されるスクリプト」ですが、少し問題があります。

 BPLUSプロトコルを起動する時には、ホスト側からCtrl-Eの制御コードが届くのを
待ってから起動するか、またはスクリプト側からは起動せずに、ホストプロパティ側
でBPLUSプロトコルの自動起動をONにしておく必要があります。

 Ctrl-Eの受信を確認しないままBPLUSを起動すると、BPLUSが異常終了します。

     wait "−ダウンロード開始−"
     SLEEP 1
     TimeOut 0
     DownLoad , Bplus
     TimeOut 30

 ここの部分を、

     wait "−ダウンロード開始−"
     wait ">", ">"

 のみにしてしまい、ホストプロパティ側でBPLUSプロトコルの自動起動をONにして
ください。それが一番手っ取り早いです。


[ ]
RE:01751 通信中に切断されてしまうNo.01754
oku さん 00/06/15 09:42
 
> まいどどうも。
>
> その「よく切断されるスクリプト」ですが、少し問題があります。
>
> BPLUSプロトコルを起動する時には、ホスト側からCtrl-Eの制御コードが届くのを
>待ってから起動するか、またはスクリプト側からは起動せずに、ホストプロパティ
>側でBPLUSプロトコルの自動起動をONにしておく必要があります。
>
> Ctrl-Eの受信を確認しないままBPLUSを起動すると、BPLUSが異常終了します。
>
>     wait "−ダウンロード開始−"
>     SLEEP 1
>     TimeOut 0
>     DownLoad , Bplus
>     TimeOut 30
>
> ここの部分を、
>
>     wait "−ダウンロード開始−"
>     wait ">", ">"
>
> のみにしてしまい、ホストプロパティ側でBPLUSプロトコルの自動起動をONにして
>ください。それが一番手っ取り早いです。
>
有難うございます 早速やってみます
現在、アップロードのコーディングが以下になっています
ダウンロード同様修正した方がよろしいのですよね

Wait "−アップロード開始−"
TimeOut 0
UPLOAD , BPLUS
If( No )
Message "ファイルのアップロードに失敗しました。^M" + \
"通信を中断します。"
Goto Error
EndIf

Switch
Case "−アップロード終了−"
;
Case "◆リトライオーバした◆"
Goto Retry
EndSwitch






[ ]
RE:01754 通信中に切断されてしまうNo.01755
oku さん 00/06/15 09:48
 
>> まいどどうも。
>>
>> その「よく切断されるスクリプト」ですが、少し問題があります。
>>
>> BPLUSプロトコルを起動する時には、ホスト側からCtrl-Eの制御コードが届くの
>を待ってから起動するか、またはスクリプト側からは起動せずに、ホストプロパテ
>ィ側でBPLUSプロトコルの自動起動をONにしておく必要があります。
>>
>> Ctrl-Eの受信を確認しないままBPLUSを起動すると、BPLUSが異常終了します。
>>
>>     wait "−ダウンロード開始−"
>>     SLEEP 1
>>     TimeOut 0
>>     DownLoad , Bplus
>>     TimeOut 30
>>
>> ここの部分を、
>>
>>     wait "−ダウンロード開始−"
>>     wait ">", ">"
>>
>> のみにしてしまい、ホストプロパティ側でBPLUSプロトコルの自動起動をONにし
>てください。それが一番手っ取り早いです。
>>
 すみません 入力途中で送信してしまいました
 ご回答有難うございました。
 早速対応したいと思います

 さて、現在、アップロードのコーディングは以下になっていますが、ダウンロード
と同様に修正した方がよろしいでしょうか。

−現状−
Retry:
Wait Postidle(1) "^M^J>","^M^JMAIL>"
Send "UPLOAD PROT:BPL TYPE:BIN^M"
Wait  "^M^J"

Wait  "ファイル名 (改行のみで終了)" + "^M^J:"

Send #Buffers + "HSOSIN.LZH^M"
Wait "−アップロード開始−"

   TimeOut 0

UPLOAD , BPLUS
If( No )
          Message "ファイルのアップロードに失敗しました。^M" + \
"通信を中断します。"
Goto Error
EndIf

Switch
         Case "−アップロード終了−"
;
Case "◆リトライオーバした◆"
Goto Retry
EndSwitch





[ ]
RE:01754 通信中に切断されてしまうNo.01756
秀まるお さん 00/06/16 09:07
 
 アップロードも同じです。Ctrl-Eの制御コードを待ってからBPLUSを起動するか、
自動起動にまかせるかしないとうまくアップロードできないはずです。


[ ]
RE:01751 通信中に切断されてしまうNo.01757
oku さん 00/06/16 16:15
 
> まいどどうも。
>
> その「よく切断されるスクリプト」ですが、少し問題があります。
>
> BPLUSプロトコルを起動する時には、ホスト側からCtrl-Eの制御コードが届くのを
>待ってから起動するか、またはスクリプト側からは起動せずに、ホストプロパティ
>側でBPLUSプロトコルの自動起動をONにしておく必要があります。
>
> Ctrl-Eの受信を確認しないままBPLUSを起動すると、BPLUSが異常終了します。
>
>     wait "−ダウンロード開始−"
>     SLEEP 1
>     TimeOut 0
>     DownLoad , Bplus
>     TimeOut 30
>
> ここの部分を、
>
>     wait "−ダウンロード開始−"
>     wait ">", ">"
>
> のみにしてしまい、ホストプロパティ側でBPLUSプロトコルの自動起動をONにして
>ください。それが一番手っ取り早いです。
>
いつもすみません
スクリプトの修正に関して質問です。
今回の処理のログは以下の様になります。

  電子メール(1:受信 2:送信 3:送信簿 0:その他 E:終了)
  >DOW PROT:BPL
  受信数:1
  番号 送信者  日付  題名                             行/KB
  * 1   XXXX 05/24  B $S$ 00243 00/05/24 16:36:08$E$     1
  >1
  ダウンロードファイルを格納する準備をしてください(BPLUS)
  77バイトあります
  ファイル名 (改行のみで終了)
  :E:\KEIRI\JUSIN\XXXX.LZH
  −ダウンロード開始−
  −ダウンロード終了−
  削除 (1:削除する 2:しない)
  :1
  −削除完了−

秀まるお様からご回答頂いたスクリプト
     wait "−ダウンロード開始−"
     wait ">", ">"

にすると、ファイルのダウンロードはできると思うのですが、受信ファイルを
削除するかどうかの入力ができないので、
以下のコーディングにした方が良いのでしょうか。
1つ1つうかがいましてすみません


     wait "−ダウンロード開始−"
     wait "−ダウンロード終了−"

   or

     wait "−ダウンロード開始−"
     wait "削除 (1:削除する 2:しない)"


[ ]
RE:01757 通信中に切断されてしまうNo.01758
秀まるお さん 00/06/19 09:08
 
 すみません。プロンプトがどうなっているか確認しないで返事を書いてました。

 たしかに、削除するかしないか入力しないといけなかったです。

 スクリプトですが、出来れば「:」を待ってから送信した方がいいと思います。

    wait ":"
    send "1^M"

 みたいな感じです。

 または、

    wait "削除 (1:削除する 2:しない)^M^J:"
    send "1^M"

 です。


[ ]