218 lines
6.7 KiB
HTML
218 lines
6.7 KiB
HTML
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 4.0//EN">
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||
|
<title>Inbound performance limits</title>
|
||
|
<meta name="Copyright" content="Copyright (c) 2004 by IBM Corporation">
|
||
|
<!-- All rights reserved. Licensed Materials Property of IBM -->
|
||
|
<!-- US Government Users Restricted Rights -->
|
||
|
<!-- Use, duplication or disclosure restricted by -->
|
||
|
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
||
|
|
||
|
<!--
|
||
|
----------------------------------------------------------------------------
|
||
|
START_DESCRIPTION
|
||
|
Page Function: Inbound performance limits: connection request rate and burst limit
|
||
|
|
||
|
Stored Values:
|
||
|
[myConnectionRate](parent.hidden.clientInfo[clientNum][4])[positive digit above 0]
|
||
|
[myBurstLimit] (parent.hidden.clientInfo[clientNum][6])[positive digit above 0]
|
||
|
|
||
|
Next and Back:
|
||
|
[Next]: rzalladvqos19.htm
|
||
|
[Back]: rzalladvqos14.htm
|
||
|
END_DESCRIPTION
|
||
|
----------------------------------------------------------------------------
|
||
|
-->
|
||
|
|
||
|
<LINK rel="stylesheet" type="text/css" href="../rzahg/ic.css">
|
||
|
<script language = "Javascript" src = "../rzahg/iccommon.js"></script>
|
||
|
<script language="Javascript" type="text/javascript">
|
||
|
|
||
|
|
||
|
var myBurstLimit="";
|
||
|
var myConnectionRate="";
|
||
|
var error3 = "You must enter a valid rate."
|
||
|
var error5 = "You must enter a valid limit."
|
||
|
var error2 = "You must enter a positive integer."
|
||
|
//START NON-TRANSLATABLE
|
||
|
clientNum = parent.hidden.retClientNumber()
|
||
|
|
||
|
|
||
|
|
||
|
function isPosInteger(myInteger) { //checking for positive integer
|
||
|
|
||
|
myInteger = myInteger.toString();
|
||
|
|
||
|
for ( var i=0; i<myInteger.length; i++ ) {
|
||
|
var onechar = myInteger.charAt(i)
|
||
|
if ( onechar < "0" || onechar > "9" ) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
function checkRate(){
|
||
|
|
||
|
//locating for duplicate client names
|
||
|
clientLength = parent.hidden.retClientLength();
|
||
|
myConnectionRate = document.rates.connectionRate.value
|
||
|
myInteger = document.rates.connectionRate.value
|
||
|
|
||
|
for ( var i=0; i<clientLength; i++ ) {
|
||
|
|
||
|
scanApp = parent.hidden.clientInfo[i][4];
|
||
|
|
||
|
if ( document.rates.connectionRate.value == null || document.rates.connectionRate.value == '' ) {//checking for a non-blank connection rate
|
||
|
alert(error3) //no rate
|
||
|
document.rates.connectionRate.focus()
|
||
|
return false;
|
||
|
}
|
||
|
positive = isPosInteger(myInteger)
|
||
|
if ( !positive ) {
|
||
|
alert(error2)
|
||
|
document.rates.connectionRate.focus()
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
parent.hidden.clientInfo[clientNum][4] = myConnectionRate //storing rate
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
function checkLimit(){
|
||
|
|
||
|
//locating for duplicate client names
|
||
|
clientLength = parent.hidden.retClientLength();
|
||
|
myBurstLimit = document.rates.burstLimit.value;
|
||
|
myInteger = document.rates.burstLimit.value;
|
||
|
|
||
|
for ( var i=0; i<clientLength; i++ ) {
|
||
|
|
||
|
scanApp = parent.hidden.clientInfo[i][6];
|
||
|
|
||
|
if ( document.rates.burstLimit.value == null || document.rates.burstLimit.value == '' ) {//checking for a non-blank connection rate
|
||
|
alert(error5) //no rate
|
||
|
document.rates.burstLimit.focus()
|
||
|
return false;
|
||
|
}
|
||
|
positive = isPosInteger(myInteger)
|
||
|
if ( !positive ) {
|
||
|
alert(error2)
|
||
|
document.rates.burstLimit.focus()
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
parent.hidden.clientInfo[clientNum][6] = myBurstLimit
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
function onNext(){
|
||
|
|
||
|
if (checkRate() && checkLimit()){
|
||
|
|
||
|
window.location = "rzalladvqos19.htm"; //sending user to next panel
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
function onBack() {
|
||
|
//if (parent.hidden.hasInboundCustom) {
|
||
|
window.location = "rzalladvqos14.htm";
|
||
|
//}
|
||
|
//else {
|
||
|
//window.location = "rzalladvqos20.htm";
|
||
|
//alert ("gotcha")
|
||
|
//}
|
||
|
}
|
||
|
//end function onBack
|
||
|
|
||
|
//Obtain name of HTML file in parent frame.
|
||
|
var parentDir = parent.window.location.href.substring(0,location.href.lastIndexOf('/')+1);
|
||
|
var parentUrl = parent.window.location.href.substring(parentDir.length,parent.window.location.href.length+1);
|
||
|
if (parentUrl.indexOf("#") >= 0) { parentUrl = parentUrl.substring(0,parentUrl.indexOf("#"));}
|
||
|
|
||
|
function fillRate() {
|
||
|
//Is the hidden frame already loaded with the correct html?
|
||
|
if (parentUrl != "rzalladvqoswelcome.htm") {
|
||
|
window.location = "rzalladvqoswelcome.htm"; //load advisor frameset
|
||
|
return;
|
||
|
} else {
|
||
|
//Obtain name of HTML file in hidden frame.
|
||
|
var hiddenDir = parent.hidden.window.location.href.substring(0,location.href.lastIndexOf('/')+1);
|
||
|
var hiddenUrl = parent.hidden.window.location.href.substring(hiddenDir.length,parent.hidden.window.location.href.length+1);
|
||
|
if (hiddenUrl.indexOf("#") >= 0) { hiddenUrl = hiddenUrl.substring(0,hiddenUrl.indexOf("#"));}
|
||
|
if (hiddenUrl != "rzalladvqoshidden.htm") {
|
||
|
//Correct HTML not loaded, load it
|
||
|
parent.hidden.window.location = "rzalladvqoshidden.htm";
|
||
|
} else { //already loaded
|
||
|
fillRate2();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function fillRate2() {
|
||
|
prevRate = parent.hidden.clientInfo[clientNum][4]
|
||
|
//restoring rate if it exists
|
||
|
if ( prevRate != '' ) {
|
||
|
document.rates.connectionRate.value = prevRate
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function fillLimit() {
|
||
|
prevLimit = parent.hidden.clientInfo[clientNum][6] //restoring limit if it exists
|
||
|
if (prevLimit != '' ) {
|
||
|
document.rates.burstLimit.value = prevLimit
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
//END NON-TRANSLATABLE
|
||
|
|
||
|
|
||
|
</script>
|
||
|
|
||
|
</head>
|
||
|
|
||
|
<BODY onload="fillRate();fillLimit()">
|
||
|
<h2>Quality of service: Inbound Performance limits</h2>
|
||
|
<p>Inbound performance limits restrict the number of accepted connection requests to your server by placing limits using a class of service. One section of the class of service requires that you specify the average connection rate and burst limit for inbound traffic. Start to think about the restrictions you will set, and enter your best guess below. If you are unsure of what <a href="../rzak8/rzak8inboundlimits.htm" TARGET="_blank">performance limits</a> to apply, use the QoS monitor in iSeries<SUP><FONT SIZE="-1">TM</FONT></SUP> Navigator to experiment. Use the following example to <a href="../rzak8/rzak8monitor_policy.htm" target="_blank">monitor all your traffic</a>. You can vary your policy configuration, based on these results.</p>
|
||
|
<p>What is the average connection request rate and request burst limit you want to allow to your server?</p>
|
||
|
|
||
|
<form name="rates">
|
||
|
<table cellspacing="2" cellpadding="2">
|
||
|
<tr>
|
||
|
<td><strong><label for="connectionRate1">Average connection request rate:</label></strong></td>
|
||
|
<td><input type="Text" name="connectionRate" id="connectionRate1" size="6"> per second</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><strong><label for="burstLimit1">Request burst limit:</label></strong></td>
|
||
|
<td><input type="Text" name="burstLimit" id="burstLimit1" size="6"> requests</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</p>
|
||
|
<center><input name=submit type="button" value="<< Back " onClick="onBack()">
|
||
|
<input name=submit type="button" value=" Next >>" onClick="onNext()">
|
||
|
</center>
|
||
|
|
||
|
</form>
|
||
|
|
||
|
</BODY>
|
||
|
|
||
|
</html>
|
||
|
|