<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: CSS Http keepalive general failure in Application Networking</title>
    <link>https://community.cisco.com/t5/application-networking/css-http-keepalive-general-failure/m-p/1178956#M24352</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;thank you very much this is very nice response.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've actually kept digging so later last night i realized that I'm getting 400 message because the server just wont give me anything else if I don't send the proper host header. Then obviously i needed a way to specify the host header, otherwise i am just sending requests to the IP of the server - and that's configured to return 400, anyways i don't administer that server so it would be some effort to configure something on it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So, there was nothing else to do but the scripted keepalive, and there's one of the default scripts ap-kal-httptag which can actually specify the host header.&lt;/P&gt;&lt;P&gt;An just a little ediitting (using head instead of a GET) just worked out perfect &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if ${ARGS}[#] "NEQ" "3"&lt;/P&gt;&lt;P&gt;	echo "Usage: ap-kal-httptag \'Hostname WebPage HostTag\'"&lt;/P&gt;&lt;P&gt;	exit script 1&lt;/P&gt;&lt;P&gt;endbranch&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;! Defines:&lt;/P&gt;&lt;P&gt;set HostName "${ARGS}[1]"&lt;/P&gt;&lt;P&gt;set WebPage "${ARGS}[2]"&lt;/P&gt;&lt;P&gt;set HostTag "${ARGS}[3]"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;! Connect to the remote Host&lt;/P&gt;&lt;P&gt;set EXIT_MSG "Connection Failure"&lt;/P&gt;&lt;P&gt;socket connect host ${HostName} port 80 tcp&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;! Send the GET request for the web page&lt;/P&gt;&lt;P&gt;set EXIT_MSG "Send: Failed"&lt;/P&gt;&lt;P&gt;socket send ${SOCKET} "HEAD ${WebPage} HTTP/1.0\nHost: ${HostTag}\n\n"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;! Wait for a good status code&lt;/P&gt;&lt;P&gt;set EXIT_MSG "Waitfor: Failed"&lt;/P&gt;&lt;P&gt;socket waitfor ${SOCKET} "200"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;no set EXIT_MSG&lt;/P&gt;&lt;P&gt;socket disconnect ${SOCKET}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exit script 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now i have both servers Alive and Load Balanced &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And the service now looks like:&lt;/P&gt;&lt;P&gt;service Server1 &lt;/P&gt;&lt;P&gt;  ip address 172.17.249.22 &lt;/P&gt;&lt;P&gt;  keepalive type script ap-kal-httptag_2 "172.17.249.22 public.server1.bg &lt;A&gt;www.public.server1.bg"&lt;/A&gt; &lt;/P&gt;&lt;P&gt;  active &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again, &lt;/P&gt;&lt;P&gt;Meanwhile I'm still testing so getting to some problem with this config is still an option &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 30 May 2009 05:22:34 GMT</pubDate>
    <dc:creator>teodor.dobrev</dc:creator>
    <dc:date>2009-05-30T05:22:34Z</dc:date>
    <item>
      <title>CSS Http keepalive general failure</title>
      <link>https://community.cisco.com/t5/application-networking/css-http-keepalive-general-failure/m-p/1178953#M24349</link>
      <description>&lt;P&gt;Guys,&lt;/P&gt;&lt;P&gt;I need some advice on what could be wrong with the following scenario.&lt;/P&gt;&lt;P&gt;CSS 11503 is configured to monitor a server with HTPP Keealive with HEAD method expecting 200 OK message from specific page (URL):&lt;/P&gt;&lt;P&gt;service Server1 &lt;/P&gt;&lt;P&gt;  ip address 172.17.249.22 &lt;/P&gt;&lt;P&gt;  keepalive uri "&lt;A class="jive-link-custom" href="http://www.server1.bg" target="_blank"&gt;http://www.server1.bg&lt;/A&gt;" &lt;/P&gt;&lt;P&gt;  keepalive type http &lt;/P&gt;&lt;P&gt;  keepalive port 80 &lt;/P&gt;&lt;P&gt;  protocol tcp &lt;/P&gt;&lt;P&gt;  active &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And i can't get this service to be Alive&lt;/P&gt;&lt;P&gt;i only receive: Keepalive Error: General failure&lt;/P&gt;&lt;P&gt;Meanwhile if i change the keepalive type to ICMP or tcp on port 80 the Service goes Alive.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you point me how I can debug where's the problem and a possible reasons.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Fri, 29 May 2009 10:56:31 GMT</pubDate>
      <guid>https://community.cisco.com/t5/application-networking/css-http-keepalive-general-failure/m-p/1178953#M24349</guid>
      <dc:creator>teodor.dobrev</dc:creator>
      <dc:date>2009-05-29T10:56:31Z</dc:date>
    </item>
    <item>
      <title>Re: CSS Http keepalive general failure</title>
      <link>https://community.cisco.com/t5/application-networking/css-http-keepalive-general-failure/m-p/1178954#M24350</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just to add something,&lt;/P&gt;&lt;P&gt;it's most probably because the CSS does not fill in the Host header field  with the specified URI, and that exact web server is answering with 200 OK only if you have the proper Host header.&lt;/P&gt;&lt;P&gt;If i change the http-respcode to 400, the service goes Alive :), but that's a workaround that is not good.&lt;/P&gt;&lt;P&gt;So the question is how to specify what host header is sent in the Keepalives?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 May 2009 11:50:44 GMT</pubDate>
      <guid>https://community.cisco.com/t5/application-networking/css-http-keepalive-general-failure/m-p/1178954#M24350</guid>
      <dc:creator>teodor.dobrev</dc:creator>
      <dc:date>2009-05-29T11:50:44Z</dc:date>
    </item>
    <item>
      <title>Re: CSS Http keepalive general failure</title>
      <link>https://community.cisco.com/t5/application-networking/css-http-keepalive-general-failure/m-p/1178955#M24351</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As you are getting response code as &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;400 - Bad Request &lt;/P&gt;&lt;P&gt;The syntax of the request was not understood by the server. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So if possible created a webpage under root directory of web server, and confgured the "keepalive uri" point to that page. and i hope  it will work. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do some modifications as suggested follows as might it help your configuration to come up&lt;/P&gt;&lt;P&gt;service Server1 &lt;/P&gt;&lt;P&gt;ip address 172.17.249.22 keepalive method head&lt;/P&gt;&lt;P&gt;keepalive uri "&lt;A class="jive-link-custom" href="http://www.server1.bg" target="_blank"&gt;http://www.server1.bg&lt;/A&gt;" ---- &amp;gt; remove http from this line &lt;/P&gt;&lt;P&gt;keepalive type http &lt;/P&gt;&lt;P&gt;keepalive port 80  &lt;/P&gt;&lt;P&gt;protocol tcp ----- &amp;gt;remove this line&lt;/P&gt;&lt;P&gt;active&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can try to add "keepalive type http non-persistent" command and see if it works. &lt;/P&gt;&lt;P&gt;service Server1 &lt;/P&gt;&lt;P&gt;ip address 172.17.249.22 &lt;/P&gt;&lt;P&gt;keepalive method head&lt;/P&gt;&lt;P&gt;keepaliveport  80&lt;/P&gt;&lt;P&gt;keepalive uri "//www.server1.bg"  --- &amp;gt; or change the uri page to some other in the root directory if possible. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Enter the content information for a URI as a quoted text string with a maximum length of 64 characters. Do not include the host information in the string. The CSS derives the host information from the service IP address and the keepalive port number. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;keepalive type http &lt;/P&gt;&lt;P&gt;keepalive type http non-persistent&lt;/P&gt;&lt;P&gt;active&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If it doesn't work then please post the output from the following commands.... &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CSS# llama &lt;/P&gt;&lt;P&gt;CSS(debug)# icp probe service server1 "&lt;A class="jive-link-custom" href="http://www.server1.bg" target="_blank"&gt;http://www.server1.bg&lt;/A&gt;" &lt;/P&gt;&lt;P&gt;CSS(debug)# icp probe host  172.17.249.22 "&lt;A class="jive-link-custom" href="http://www.server1.bg" target="_blank"&gt;http://www.server1.bg&lt;/A&gt;"&lt;/P&gt;&lt;P&gt;Or CSS(debug)# icp probe host  172.17.249.22&lt;/P&gt;&lt;P&gt;CSS11503# sh keepalive&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let me check what Is the response code so that I can predict actually where you are facing problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The sh keepalive command provides a complete summary of all keepalives on the CSS. If you see State: Alive, you know that that service has been configured, and the CSS can see the device. This command also provides information on what type of keepalive it is and the specifics on what will make the service fail. The services starting with AUTO_ are default services generated by the CSS when you add a service; this includes the default gateway. If a service is shown as State: Down, you need to check your connection from the CSS to your real server (by default it takes three failures of a particular keepalive to mark a service as down). State:Dying means the CSS has not yet had contact with the real server.&lt;/P&gt;&lt;P&gt;The keepalive URI points to a piece of content on the website. This can be a simple page that says the word hello, or it can be any dynamic page you choose. If this page becomes unavailable, then the CSS will mark that server as down and redirect traffic to the other server where the keepalive URI is successful. The HEAD keepalive is used for dynamic content and the GET keepalive is used for static content. The GET keepalive has a tendency to fail when used against ColdFusion content, even when it is used to probe very simple dynamic content. The HEAD keepalive is a reliable means of monitoring the health and availability of a  application&lt;/P&gt;&lt;P&gt;When you specify a Uniform Resource Identifier (?) (URI) for an HTTP keepalive, the CSS calculates a hash value for the Web page specified in the URI. If the Web page changes, the hash value no longer matches the original hash value and the CSS assumes that the service is dead. To prevent the CSS from assuming that a service is dead due to a hash value mismatch, define keepalive method as head. The CSS does not compute a hash value for this type of keepalive.&lt;/P&gt;&lt;P&gt;If you specify the URI of a Web page with changeable content and do not specify the head keepalive method, you must suspend and reactivate the service each time the Web page changes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To specify how many times the IP address can fail to respond to a keepalive message before being considered dead, use the maxfailure command. Use the no form of this command to reset the maximum failure number to its default value of 3. &lt;/P&gt;&lt;P&gt;maxfailure number&lt;/P&gt;&lt;P&gt;The maximum failure number. Enter an integer from 1 to 10. The default is 3. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sachinga.hcl&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 May 2009 18:14:13 GMT</pubDate>
      <guid>https://community.cisco.com/t5/application-networking/css-http-keepalive-general-failure/m-p/1178955#M24351</guid>
      <dc:creator>sachinga.hcl</dc:creator>
      <dc:date>2009-05-29T18:14:13Z</dc:date>
    </item>
    <item>
      <title>Re: CSS Http keepalive general failure</title>
      <link>https://community.cisco.com/t5/application-networking/css-http-keepalive-general-failure/m-p/1178956#M24352</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;thank you very much this is very nice response.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've actually kept digging so later last night i realized that I'm getting 400 message because the server just wont give me anything else if I don't send the proper host header. Then obviously i needed a way to specify the host header, otherwise i am just sending requests to the IP of the server - and that's configured to return 400, anyways i don't administer that server so it would be some effort to configure something on it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So, there was nothing else to do but the scripted keepalive, and there's one of the default scripts ap-kal-httptag which can actually specify the host header.&lt;/P&gt;&lt;P&gt;An just a little ediitting (using head instead of a GET) just worked out perfect &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if ${ARGS}[#] "NEQ" "3"&lt;/P&gt;&lt;P&gt;	echo "Usage: ap-kal-httptag \'Hostname WebPage HostTag\'"&lt;/P&gt;&lt;P&gt;	exit script 1&lt;/P&gt;&lt;P&gt;endbranch&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;! Defines:&lt;/P&gt;&lt;P&gt;set HostName "${ARGS}[1]"&lt;/P&gt;&lt;P&gt;set WebPage "${ARGS}[2]"&lt;/P&gt;&lt;P&gt;set HostTag "${ARGS}[3]"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;! Connect to the remote Host&lt;/P&gt;&lt;P&gt;set EXIT_MSG "Connection Failure"&lt;/P&gt;&lt;P&gt;socket connect host ${HostName} port 80 tcp&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;! Send the GET request for the web page&lt;/P&gt;&lt;P&gt;set EXIT_MSG "Send: Failed"&lt;/P&gt;&lt;P&gt;socket send ${SOCKET} "HEAD ${WebPage} HTTP/1.0\nHost: ${HostTag}\n\n"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;! Wait for a good status code&lt;/P&gt;&lt;P&gt;set EXIT_MSG "Waitfor: Failed"&lt;/P&gt;&lt;P&gt;socket waitfor ${SOCKET} "200"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;no set EXIT_MSG&lt;/P&gt;&lt;P&gt;socket disconnect ${SOCKET}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exit script 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now i have both servers Alive and Load Balanced &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And the service now looks like:&lt;/P&gt;&lt;P&gt;service Server1 &lt;/P&gt;&lt;P&gt;  ip address 172.17.249.22 &lt;/P&gt;&lt;P&gt;  keepalive type script ap-kal-httptag_2 "172.17.249.22 public.server1.bg &lt;A&gt;www.public.server1.bg"&lt;/A&gt; &lt;/P&gt;&lt;P&gt;  active &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again, &lt;/P&gt;&lt;P&gt;Meanwhile I'm still testing so getting to some problem with this config is still an option &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 30 May 2009 05:22:34 GMT</pubDate>
      <guid>https://community.cisco.com/t5/application-networking/css-http-keepalive-general-failure/m-p/1178956#M24352</guid>
      <dc:creator>teodor.dobrev</dc:creator>
      <dc:date>2009-05-30T05:22:34Z</dc:date>
    </item>
    <item>
      <title>Re: CSS Http keepalive general failure</title>
      <link>https://community.cisco.com/t5/application-networking/css-http-keepalive-general-failure/m-p/1178957#M24353</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Teodor,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your very kind words.&lt;/P&gt;&lt;P&gt;If possible plz rate so that I can be helpful to other people also as your rating will be valuable to me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sachinga.hcl &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 30 May 2009 07:47:20 GMT</pubDate>
      <guid>https://community.cisco.com/t5/application-networking/css-http-keepalive-general-failure/m-p/1178957#M24353</guid>
      <dc:creator>sachinga.hcl</dc:creator>
      <dc:date>2009-05-30T07:47:20Z</dc:date>
    </item>
  </channel>
</rss>

