01-28-2008 05:28 PM
Greeting
One of application which using my CSS has problem to work with my CSS11506 after the application upgrade.
It does not regconize CSS' keepalive check and give error "broken pipe" on the backend server. (it treat the keepalive traffic as session?)
The CSS configuration for the application is:
service dev-host1-2304
ip address 10.2.2.21
protocol tcp
port 2304
keepalive type tcp
keepalive port 2304
active
service dev-host2-2304
ip address 10.2.2.22
protocol tcp
port 2304
keepalive type tcp
keepalive port 2304
active
content dev-2304
vip address 10.1.1.123
port 2304
protocol tcp
balance leastconn
add service dev-host1-2304
add service dev-host2-2304
active
the backend server error messages is:
<log4j:event logger="com.webct.platform.tools.chatwb.server.ChatWBServer" timestamp="1201219035043" level
="ERROR" thread="Thread-0">
<log4j:message><![CDATA[CLASS: com.webct.platform.tools.chatwb.server.ChatWBServer METHOD: run
Caught exception - attempting to continue]]></log4j:message>
<log4j:throwable><![CDATA[org.beepcore.beep.core.BEEPException: java.net.SocketException: Broken pipe
at org.beepcore.beep.transport.tcp.TCPSessionCreator.listen(TCPSessionCreator.java:214)
at com.webct.platform.tools.chatwb.server.ChatWBServer.run(ChatWBServer.java:770)
]]></log4j:throwable>
</log4j:event>
<log4j:event logger="com.webct.platform.tools.chatwb.server.ChatWBServer" timestamp="1201219096053" level="ERROR" thread="Thread-0">
<log4j:message><![CDATA[CLASS: com.webct.platform.tools.chatwb.server.ChatWBServer METHOD: run
Caught exception - attempting to continue]]></log4j:message>
<log4j:throwable><![CDATA[org.beepcore.beep.core.BEEPException: java.net.SocketException: Broken pipe
at org.beepcore.beep.transport.tcp.TCPSessionCreator.listen(TCPSessionCreator.java:214)
at com.webct.platform.tools.chatwb.server.ChatWBServer.run(ChatWBServer.java:770)
]]></log4j:throwable>
</log4j:event>
<log4j:event logger="com.webct.platform.tools.chatwb.server.ChatWBServer" timestamp="1201219157048" level="ERROR" thread="Thread-0">
<log4j:message><![CDATA[CLASS: com.webct.platform.tools.chatwb.server.ChatWBServer METHOD: run
Caught exception - attempting to continue]]></log4j:message>
<log4j:throwable><![CDATA[org.beepcore.beep.core.BEEPException: java.net.SocketException: Broken pipe
at org.beepcore.beep.transport.tcp.TCPSessionCreator.listen(TCPSessionCreator.java:214)
at com.webct.platform.tools.chatwb.server.ChatWBServer.run(ChatWBServer.java:770)
]]></log4j:throwable>
</log4j:event>
Question:
1. Is it CSS's problem?
2. How can I configure keepalive for port 2304 to fix the error message? or how the application should configure to match with CSS11506?
Any comments will be appreciated
Thanks in advance
01-29-2008 02:58 AM
The problem probably comes from this change :
http://www.cisco.com/univercd/cc/td/doc/product/webscale/css/css_720/r720_405.htm#wp179935
Before, the application did not detect a connection so it did not complain.
Now, it does detect a connection that is terminated immediately and it complains.
The only to fix this is to change your keepalive type.
Use icmp, or implement a script to send data over the tcp link.
Gilles.
01-30-2008 06:48 PM
Thanks Gilles
tried icmp, problem no fixed.
So, I have to choice a script. I have looked the example script ap-kal-tcp-ports in the cisco docs.
what the our application wants is an interactive health check that checks for BEEP core header. Otherwise the port can be listening, but the Socket Server unavailable. They want the health checks to be a TCP/IP connection checking for "END" in the response.
From the cisco doc, it looks like I should use socket disconnect to send "END".
But, the socket disconnect command only send RST or FIN. nothing else.
So, how can I send the "END"? or, should I chose other command?
Please advice.
Many Regards
01-31-2008 03:18 PM
I have found what the application do is:
When you connect to port 2304 on the application server, if functional, the SocketServer service sends a banner:
RPY 0 0 . 0 246
Content-Type: application/beep+xml
So, I need to script for receiving "END".
I have looked the script for socket:
kwd-css:julie(config)# socket ?
connect connect to a remote host
disconnect Disconnect a currently connected socket
inspect Inspect data received on a socket
receive Receive data through a socket
send Send a string of data to a remote host
waitfor Wait for a specific data string to be received through the
socket
css11506# socket receive ?
Css11506# socket receive 1 ?
raw Receive data in hexidecimal format (no ascii conversion)
css11506# socket receive 1 2000 ?
raw Receive data in hexidecimal format (no ascii conversion)
css11506# socket receive 1 2000 raw ?
it looks like there is no way to check if received is "END" or not?
Could you please advice?
1. To receive a banner, should I use keepalive tcp?
2. Do I need special the "socket receive" command
3. Does "socket receive" has a buffer or variable to store the banner, so I can check if the "END" is there?
Any comments will be appreciated
Thanks in advance
02-01-2008 12:59 AM
icmp SHOULD NEVER trigger the problem you report.
Are you sure you did a 'keepalive type icmp' and removed all other tcp keepalive going to this server ?
If yes, then the error must come from real connections and not probes.
So before working hard to get a script working, it's worth investigating one more time where the error comes from.
Again, icmp can't trigger such an error.
Gilles.
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: