通信 - タイムアウト
タイムアウトの設定方法
タイムアウト設定値の変更方法は、以下の2パターンがあります。
1.設定ファイル(crsconf)に記述する
2.CRSスクリプト内でタイムアウト値を設定する
1の設定ファイル(crsconf)を利用する場合、「app.http.timeout」に任意のタイムアウト値を
設定します。
設定ファイル(crsconf)の修正方法とインポート方法については以下のTips集をご参照ください。
・セキュリティレベルの設定
2のスクリプトで設定する場合、下記のメソッドまたはプロパティで設定します。
Application.setPropertyメソッド
(app.http.timeoutプロパティ指定)
全通信のタイムアウトに関する設定を行います。
デフォルト値は3600秒です。「0」と指定した場合は処理を待機し続けます。
HttpRequest.timeoutプロパティ
通信(リクエスト)毎のタイムアウトを設定します。
「0」と指定した場合または指定なしの場合はBiz/Browser DTのデフォルトタイムアウト値に準じます。
1と2全ての設定が行われた場合の優先度は以下の通りです。
@HttpRequest.timeoutプロパティの設定値
AApplication.setPropertyメソッドでの設定値
B設定ファイル(crsconf)の設定値
・Application.setPropertyメソッドで設定した場合
Form form1 { width = 377; height = 361; Button button1 { x = 80; y = 176; width = 216; height = 40; title = "通信テスト"; function onTouch(e) { try{ # 通信処理 # URLを変更してお試しください var session = HTTPSession.findSession("http://localhost"); var req = session.CreateRequest("/biz/sample/sample.txt"); # タイムアウト設定 # setPropertyメソッドの第2引数に入力したタイムアウト値を設定 if(^.textbox1.value == 0){ //.messageBox("タイムアウト値を入力してください。"); return; } var t = ^.textbox1.value; Application.setProperty("app.http.timeout", t); # リクエストを送信 var res = session.get(req); # ステータス判定 if ((res.status == 200) || (res.status == 201) || (res.status == 204)) { # 通信成功時 //.MessageBox("通信処理に成功しました。", "結果"); }else{ # 通信失敗時 //.MessageBox("通信エラー:" + str(res.status) , "結果"); } }catch(e){ //.messageBox(e.message); } } } TextBox:Number textbox1 { x = 208; y = 96; width = 88; height = 24; horizontalAlign = ALIGN_RIGHT; } Label label1 { x = 72; y = 96; width = 136; height = 24; value = "タイムアウト値:"; horizontalAlign = ALIGN_RIGHT; verticalAlign = ALIGN_MIDDLE; } Label label2 { x = 40; y = 32; width = 280; height = 40; value = "Application.setPropertyメソッドで設定した場合 "; verticalAlign = ALIGN_MIDDLE; horizontalAlign = ALIGN_CENTER; } if (!Application.DESIGNTIME) { # ここに初期化処理を記述してください。 } }
・HttpRequest.timeoutプロパティで設定した場合
Form form2 { width = 377; height = 361; Button button1 { x = 80; y = 176; width = 216; height = 40; title = "通信テスト"; function onTouch(e) { try{ # 通信処理 # URLを変更してお試しください var session = HTTPSession.findSession("http://localhost"); var req = session.CreateRequest("/biz/sample/sample.txt"); # タイムアウト設定 # timeoutプロパティに入力したタイムアウト値を設定 if(^.textbox1.value == 0){ //.messageBox("タイムアウト値を入力してください。"); return; } var t = ^.textbox1.value; req.timeout = t; # リクエストを送信 var res = session.get(req); # ステータス判定 if ((res.status == 200) || (res.status == 201) || (res.status == 204)) { # 通信成功時 //.MessageBox("通信処理に成功しました。", "結果"); }else{ # 通信失敗時 //.MessageBox("通信エラー:" + str(res.status) , "結果"); } }catch(e){ //.messageBox(e.message); } } } TextBox:Number textbox1 { x = 208; y = 96; width = 88; height = 24; horizontalAlign = ALIGN_RIGHT; } Label label1 { x = 72; y = 96; width = 136; height = 24; value = "タイムアウト値:"; horizontalAlign = ALIGN_RIGHT; verticalAlign = ALIGN_MIDDLE; } Label label2 { x = 40; y = 32; width = 280; height = 40; value = "HttpRequest.timeoutプロパティで設定した場合 "; verticalAlign = ALIGN_MIDDLE; horizontalAlign = ALIGN_CENTER; } if (!Application.DESIGNTIME) { # ここに初期化処理を記述してください。 } }
Biz-Collections Bizの宝箱 トップへ
Biz/Browser DT・Biz/Designer DT TIPS集 トップへ