ACE Appliance HTTP Probe with "POST" query
Does the ACE support HTTP Probe with a "POST" query?
Thanks
Joe
Hi Joe,
The ACE only supports GET and HEAD
Here is the documentation related to this:
http://www.cisco.com/en/US/customer/docs/interfaces_modules/services_modules/ace/vA5_1_0/configuration/slb/guide/probe.html#wp1031485
Cesar R
Similar Messages
-
ACE match http url with post data
I need to make a layer-7 load balancing decision at the ACE module based on a URL string that includes form POST data. It is important that the balancing decision include and parse the part of the URL after the question mark. This doesn't seem to work with the "match http url" config on the ACE. My interpretation is that the ACE does not consider the POST data to be part of the URL string, and therefore does not include it in the regular expression matching. Am I missing something here, or have I run into a limitation of the ACE module?
class-map type http loadbalance match-any L7__URL_MATCH_CLASS
2 match http url index.php\?field=content.*Hi
The '?' has a special meaning in the URL. It means the end of the main URL and the beginning of the URL query.
Its not possible to match ? in the url.
One option could be using secondary cookie matching in ACE.
class-map type http loadbalance match-any xyz
2 match http cookie secondary field cookie-value content
Thanks
Syed -
ACE HTTP Probe with regex
Hi,
I'm trying to setup a HTTP probe with expected string rather then a code (config below). I do a GET for the page then a search for a string in the response however it's not working, as probe appears as failed.
I've tested the connection to the server by using telneting and then looking at the page displayed to make sure the string I want to match is in the response.
probe http HTTP-PROBE
port 43050
interval 30
passdetect interval 30
passdetect count 1
request method get url /action=help
open 43050
expect regex action=help
Q. Is there anything wrong with this configuration and what I'm trying to achive?
Thanks,
PriteshUse "expect status" under probe config. expect regex doesnt work if expect status is not configured.
expect regex work flawlessly with static pages. It doesnt work all the time with dynamic pages.
Specially if "content-length" header is missing from Server response.
Hope it helps
Syed Iftekhar Ahmed -
ACE Module - HTTP Probe failure
Hi,
I have configured the http probe with expect status 200 202, but the probe fails despite availability of the port on rserver.
I tried head/get method to see the return code, and it came back with HTTP1.1/302. How can I configure an http probe to understand HTTP 302 code as success return.
Thanks.I changed the expect status value as below
probe http TEST-HTTP
interval 30
passdetect interval 10
request method head
expect status 302 302
The probe is still failing with the log message
Apr 20 2009 12:04:35 : %ACE-3-251010: Health probe failed for server 192.168.1.10 on port 80, received invalid status code
On 'show probe detail' it shows the last status code as 400 which means Bad Request
--------------------- probe results --------------------
probe association probed-address probes failed passed health
------------------- ---------------+----------+----------+----------+-------
serverfarm : TEST-APP
real : TEST-SERVER1[80]
192.168.1.10 27 27 0 FAILED
Socket state : CLOSED
No. Passed states : 0 No. Failed states : 1
No. Probes skipped : 0 Last status code : 400
No. Out of Sockets : 0 No. Internal error: 0
Last disconnect err : Received invalid status code
Last probe time : Mon Apr 20 12:05:33 2009
Last fail time : Mon Apr 20 12:00:53 2009
Last active time : Never
The http page is showing perfectly on the web browser. Also, using the http head/get tool, I can see that 302 is returned.
What could be the problem.
Regards. -
CSM HTTP Probes with Method GET
Hello.
How does the HTTP Probe with Method GET work on CSM and what is the difference with CSS?
CSS calculates the HASH of the web page it receives as a first answer and considers that as a REFERENCE HASH, to compare with subsequent answers. Is the behaviour of the CSM the same?
In the CSS it is also possible to insert the HASH in the configuration as a reference HASH. I did not find such a command on the CSM. Is that feature not present on CSM?
Thanks.the CSM just looks for the response code.
No hash or anything similar to the CSS.
Regards,
Gilles. -
Using the ACE 4710 for loadbalancing a Sharepoint site.
We currently have a HTTP probe setup to check the port 80 status of the rserver.
Is there anyway to get the HTTP probe to check a DNS entry for each of the application sites? For instance http://info vs http://site are two different web sites running on the same IP. One site could have a problem but the actual port 80 for the IP may be still alive.
Thanks for any information.Has anyone figure this out? I am tring to get healthchecks/probes setup in this same fashion. I have 2 servers with 1 IP but have many sites. I want to probe each side and ensure I get a 200 code. I also have to provide credentials to the site. It seems that if i open IE I can log in just fine to the site with the credentials. However there is an active x control box that is wanting to be installed. When I set this up on my ACE it seems I am getting a http 401 unauthorized error. I have done a wireshark capture while I was browsing and I see the 401 however it also reports a 200 code after that. Do you think this is a problem because of the active x control wanting to be downloaded? Or is this an issue with the first http code that is recieved by the probe, that being the 401 and then the 200? Below is my config (cleaned of course).
probe http HTTP-80-OUR.DOMAIN.COM
interval 15
passdetect interval 60
credentials
request method get url http://our.domain.com/default.aspx
expect status 200 200
header Host header-value "our.domain.com"
open 1
rserver host SERVER-A
ip address X.X.X.47
inservice
rserver host SERVER-B
ip address X.X.X.48
inservice
serverfarm host FARM-AB
predictor leastconns
probe HTTP-80-OUR.DOMAIN.COM
rserver SERVER-A
inservice
rserver SERVER-B
inservice
ACE4710# show probe HTTP-80-OUR.DOMAIN.COM detail
probe : HTTP-80-OUR.DOMAIN.COM
type : HTTP
state : ACTIVE
description :
port : 80 address : 0.0.0.0 addr type : -
interval : 15 pass intvl : 60 pass count : 3
fail count: 3 recv timeout: 10
http method : GET
http url : http://our.domain.com
conn termination : GRACEFUL
expect offset : 0 , open timeout : 1
expect regex : -
send data : -
------------------ probe results ------------------
associations ip-address port porttype probes failed passed health
------------ ---------------+-----+--------+--------+--------+--------+------
serverfarm : OUR.DOMAIN.COM-10.25.4.12-L3-FARM
real : SERVER-A[0]
X.X.X.47 80 DEFAULT 414 406 8 FAILED
Socket state : CLOSED
No. Passed states : 1 No. Failed states : 2
No. Probes skipped : 0 Last status code : 401
No. Out of Sockets : 0 No. Internal error: 0
Last disconnect err : Received invalid status code
Last probe time : Wed Jun 2 17:44:18 2010
Last fail time : Wed Jun 2 13:37:04 2010
Last active time : Wed Jun 2 13:34:19 2010
real : SERVER-B[0]
X.X.X.48 80 DEFAULT 414 406 8 FAILED
Socket state : CLOSED
No. Passed states : 1 No. Failed states : 2
No. Probes skipped : 0 Last status code : 401
No. Out of Sockets : 0 No. Internal error: 0
Last disconnect err : Received invalid status code
Last probe time : Wed Jun 2 17:44:20 2010
Last fail time : Wed Jun 2 13:37:06 2010
Last active time : Wed Jun 2 13:34:21 2010 -
Strange HTTP probe with .cfm files.
Hey All,
I setup an http probe that checks a .cfm page for a keyword. according to the documentation there needs to be a content-length in the header for this to be parsed correctly. For some reason this .cfm page does not send the content-length. The developer manually told coldfusion to put the content-length in the header and I can see that the header now has the content-length. The probe is still failing with "Unrecognized or invalid response" If i put a test html page with a keyword, it parses it correctly and passes. If i change the keyword it fails as expected. Has anyone had any issues with the headers of coldfusion? There is no compression on the server side. Below is the probe.
probe http KEYWORD
interval 15
passdetect interval 30
request method get url /index.cfm
open 2
expect regex "go"
Any help or suggestion would be much appreciated.
Regards,
ChristianHey Christian and Paul,
Actually, when using expect regex, you don't need the expect status. I alerted the documentation team about this and they have updated the documents with the following note:
Note If you do not configure an expected status code, any response from the server is marked as failed. However, if you configure the expect regex command without configuring a status code, the probe will pass if the regular expression response string is present.
Christian,
You mention that you see the error message Unrecognized or invalid response, even with the content-length header added. Is this the same error message you got before your app team added the header? If so, then I might suspect that the ACE doesn't like the format they used. The header should look like this:
Content-Length:
This is per RFC2616 and can be found at section 14.13 here. Note that the C and the L are uppercase, the header name is immediately followed by a colon, and there is a spece between the colon and the value.
I would recommend confirming that the header matches this description in a network capture. If it does match, then I would like to see the capture, if possible.
Thanks and I hope this helps,
Sean -
Problem with post query trigger
Hi,
I have a multi record block and there is a post-query trigger on it. Based on values of this block I populate other values over the other control block.
I wrote code in post-query trigger and when I execute the query and go to last but one record. The values in the control block are from last record instead of last but one record. Pls help me to fix
Thanks,if you want to see the data in the control block synchronized with the database block then use the WHEN-NEW-RECORD-INSTANCE and not the POST-QUERY.
with the POQ you add additional data (in non-basetable-items) to the records in the database block -
ACE 4710 http probe get url question
I am trying to create a http probe using the request method get url command. My url contains a question mark and the ACE will not accept the url as is and it strips out the question mark character. Is there a way to make the ace accept a url containg a question mark?
probe http HTTP_PROBE
port 9040
interval 10
faildetect 5
passdetect interval 60
expect status 200 200
open 1
The url I am trying to enter is /psp/epprod/?cmd=login
When I enter it the ACE does as shown below
(config-probe-http)# request method get url /psp/epprod/?
<LINE>
ACE-APP-02/vc_peoplesoft(config-probe-http)# request method get url /psp/epprod/cmd=login
It strips out the ? character.Hi Nicholas,
To enter a question mark you need to type ctrl+v prior to entering the ?
You enter the control key then lowercase v, then your question mark.
HTH
Pablo -
Local Director http probes with URLs and http redirect mode
I am trying to configure http probes on my Local director 430 running 4.2.3
I am using http redirect mode so the Virtual is bound to URLs not REALs with are linked to DIPs which are bound to REALs. So far the probes seem to not actually do anything. Does anyone know if the probes are compatible with URL redirect loadbalancing. And if so how one would go about configuring it.
Thanks for your help.keepalive can be used for the probe notification in this case.
Check the following url for details.
http://www.cisco.com/univercd/cc/td/doc/product/webscale/css/bsccfggd/services.htm#xtocid727448 -
Prob. with executing query
I am trying to execute the query but that part of code is not executing.
<Html>
<Head>
<Title> Login </title>
</Head>
<Body>
<%@ page language="java" import="java.sql.*" %>
<% out.println("Hi this is loginp[o[o[o[o");
String userid = request.getParameter("userid");
String passwd = request.getParameter ("passwd");
%>
userid = <%= userid %>
passwd= <%= passwd %>
<%
Connection con = null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:BB","","");
Statement statement =con.createStatement();
ResultSet rs=statement.executeQuery("select * from Login where userid="+ userid + "and passwd="+passwd);
if(rs==null) {
out.println("Enters herer");
%>
<H1> Login Failed!</H1><BR><HR><BR><P><BR>
Your Userid & Passwd were invalid. <BR>
Please click the <B> Back </B> button & try again.
<%
else {
%>
<H1> Login Succeeded</H1><BR><HR><BR><P><BR>
<%
}catch(java.io.IOException ioe) {
System.err.println(ioe.getMessage());
}catch (SQLException sqle) {
System.err.println(sqle.getMessage());
}catch (ClassNotFoundException cnfe) {
System.err.println(cnfe.getMessage());
}catch(Exception e) {
System.err.println(e.getMessage());
finally {
try {
if(con!= null) {
con.close();
}catch(SQLException sqle) {
System.err.println(sqle.getMessage());
%>
</body>
</Html>
It is invoked by following code:
<Form Method="POST" Action="login.jsp">
Please login with your user name & password:<P>
Username:<Input Type="text" Name="userid" size=30><BR>
Password:<Input type="password" Name="passwd" size=30><BR>
<P>
<Input type="submit" value="Login">
<BR>
</Form>
Can somebody plz. look at it & help to fix it?
Zulfi.The way you have it coded now, the user will always be authenticated; the "Login Failed") logic will never happen. There is always a recordset returned from a query (unless an exception is thrown). The recordset may contain 0 or more records. The cursor position in a record set starts before the potential first record. The next() method will return true if there is a first row (or a next record) and false if you are at the end of the recordset. You may want to try the code like this (With the html ommitied for readability):
- Chris
new code
Statement statement =con.createStatement();
ResultSet rs=statement.executeQuery("select * from Login where
userid="+ userid + "and passwd="+passwd);
if(rs.next()==false)
// Login failed code
else
// Successfull logon code
conn.close();
Old Code
Statement statement =con.createStatement();
ResultSet rs=statement.executeQuery("select * from Login where userid="+ userid + "and passwd="+passwd);
if(rs==null) {
out.println("Enters herer");
%>
<H1> Login Failed!</H1><BR><HR><BR><P><BR>
Your Userid & Passwd were invalid. <BR>
Please click the <B> Back </B> button & try again.
<%
else {
%>
<H1> Login Succeeded</H1><BR><HR><BR><P><BR>
<%
}catch(java.io.IOException ioe) {
System.err.println(ioe.getMessage());
}catch (SQLException sqle) {
System.err.println(sqle.getMessage());
}catch (ClassNotFoundException cnfe) {
System.err.println(cnfe.getMessage());
}catch(Exception e) {
System.err.println(e.getMessage()); -
Hi Team,
I need to access Java web service which is simple service and accepts and returns XML over HTTP. No credentials are needed to access the service. We need to pass following two HTTP headers (Content-Type and Authorization) along with XML request message:
<GetStatus> message is being constructed in the orchestration and URI is constant to access.
Which adapter shall I use to get the response back? I tried using WCF-WSHttp with Security Mode = Transport, and different options of client credential types but every time, error returned stating:
System.Net.WebException:
The HTTP request is unauthorized with client authentication scheme 'Basic'. The
authentication header received from the server was 'Basic realm='.
Authentication failed for principal Basic. Message payload is of type:
String
In Fiddler, request looks line following
POST <https://URL/GetServiceReopnse HTTP/1.1
Content-Type: application/xml
Authorization: Basic cmVmU3RhdHN2Y19kgeRfsdfs=
Host: <Server name>
<GetStatus XMLNS="http://server.com/.....">
<OrgId>232323</OrgId>
<HubId>3232342323</HubId>
</GetStatus>
MMK-007First, you should not use the HTTP Adapter because it's been deprecated and replaced by WCF.
Start with the WCF-Custom Adapter and select the customBinding.
You should start with the textMessageEncoder and httpTransport and go from there. -
Hello All,
I am having trouble with the code. I am using a subquery in the select statment and the same in the where clause(2nd sq in the select which populates on_hand column). I have highlighted the sub query as shown below. The code runs fine when i comment the subquery in select, which gets "sub_inv" column value(3rd subquery in the select). if i include it then i get ora-01427 error though neither of the sub queries return multiple rows.
Please let me know where i am going wrong.
select ms.organization_id, ms.segment1,ms.description,
ms.planner_code,pl.closed_code,ploc.quantity - ploc.quantity_received - ploc.quantity_cancelled qty_rem,
(select full_name from
per_all_people_f p,
inv.mtl_planners mp
where
ms.planner_code = mp.planner_code
and mp.employee_id = p.person_id
and mp.organization_id = ms.organization_id) planner_name,
min_minmax_quantity, max_minmax_quantity,
/***2nd sq***/
(select sum( oh.transaction_quantity)
from mtl_onhand_quantities_detail oh
where ms.inventory_item_id = oh.inventory_item_id
and ms.organization_id = oh.organization_id
) on_hand,
/***3rd sq***/
(select oh.subinventory_code
from mtl_onhand_quantities_detail oh
where ms.inventory_item_id = oh.inventory_item_id
and ms.organization_id = oh.organization_id ) sub_inv,
ph.segment1, pl.line_num, ploc.shipment_num,
nvl((select vendor_name from po_vendors where vendor_id = ph.vendor_id),'NONE') vendor_name,
pr.release_num,
PL.PO_LINE_ID,
PH.PO_HEADER_ID
from
inv.mtl_system_items_b ms,
po.po_line_locations_all ploc,
po_lines_all pl,
po_headers_all ph,
po.po_releases_all pr
where 1=1
and ms.inventory_item_id = pl.item_id(+)
and pl.po_line_id = ploc.po_line_id
and pl.po_header_id = ph.po_header_id
and ploc.po_release_id = pr.po_release_id(+)
and ploc.quantity - (ploc.quantity_received + ploc.quantity_cancelled) > 0
and nvl(pl.closed_code (+), 'OPEN')= 'OPEN'
AND NVL(PLOC.CLOSED_CODE,'OPEN') = 'OPEN'
---and ms.organization_id = 43
--and ms.inventory_item_id = 708
and max_minmax_quantity is not null
and min_minmax_quantity is not null
and (select sum( oh.transaction_quantity)
from mtl_onhand_quantities_detail oh
where ms.inventory_item_id =oh.inventory_item_id
and ms.organization_id = oh.organization_id
) is not null>
shown below. The code runs fine when i comment the
subquery in select, which gets "sub_inv" column
value(3rd subquery in the select). if i include it
then i get ora-01427 error though neither of the sub
queries return multiple rows.
Please let me know where i am going wrong. Are you sure about this ?
I believe this is Oracle apps tables, and if it's true one item in one org can have multiple rows with the same subinventory_code in mtl_onhand_quantities_detail table.
Run the query below to check and see if it return any rows :
select inventory_item_id, organization_id,count(subinventory_code)
from mtl_onhand_quantities_detail
group by inventory_item_id,organization_id
having count(subinventory_code) > 1 -
Plz help prob with a query and.. a trigger
hi..
1)i've created a view.gave the commit..
now when i execute this query i get no rows selected...
sql>select text from user_views where view_name='d1_v';even when i give sql>select * from user_views; all i see are column names and nothing else..
do i need to grant my user any privilige. my user has create any view privilige.
2)
is it possible for me to create a trigger that updates records by itself for every 6 months by adding 1000 to the sal field
i tried
create or replace trigger after logon on emp ..............like that
but i receive an error saying system triggers cannot be based on tables or views..
plz help me out..
thank u
rajiv1. Try "select text from user_views where view_name='D1_V';
BTW, no need to use "commit", CREATE VIEW is a DDL command, and DDLs do implicit commit.
2. Why do you want to use triggers ? You can do that in at least two other ways : cron jobs and Oracle jobs. -
Cisco ACE Mod 30 - HTTPS probes are failing after hardware replacement.
We recently had a hardware failure on ACE Mod30. The replacement went in relatively painless (except for having to import about 100 SSL Certificates and Private Keys).
However, on the new ACE, the HTTPS probes are failing for all contexts using them. We can work around this by using TCP-443 probe, but the customer prefers that we actually request a logon page to ensure that the application is running properly.
Here are the probe stats for one context (THIS ONE IS ACTIVE)
BRTDCSCRTR2/INTRA-DEV-TST# sho stats probe type https
+------------------------------------------+
+----------- Probe statistics -------------+
+------------------------------------------+
----- https probe ----
Total probes sent : 52422 Total send failures : 0
Total probes passed : 0 Total probes failed : 52422
Total connect errors : 0 Total conns refused : 0
Total RST received : 0 Total open timeouts : 52422
Total receive timeout : 0 Total active sockets : 0
Here are the probe stats for one context (THIS ONE IS HOT_STANDBY)
BRTDCSCRTR2/INTRA-PROD# sho stats probe type https
+------------------------------------------+
+----------- Probe statistics -------------+
+------------------------------------------+
----- https probe ----
Total probes sent : 69398 Total send failures : 0
Total probes passed : 0 Total probes failed : 69398
Total connect errors : 0 Total conns refused : 0
Total RST received : 0 Total open timeouts : 69398
Total receive timeout : 0 Total active sockets : 0
Everything else appears to be working properly, except for the HTTPS probes.Hi,
For HTTS Probes to be successful, you don't need to have SSL Certs/Private keys on ACE, unless servers are doing client authentication. When ACE sends HTTS Probes to servers, it acts as a client.
Here are few things that can be tried:
- Test HTTS probe with only one server. Reload the server to clear any SSL cache on it.
- check SSL probe detail to verify the error code received
- Take captures between ACE and that server to find at what stage of the probe packet exchange flow is failing.
Here is a good link to troubleshoot HTTPS probe issues:
http://docwiki.cisco.com/wiki/Cisco_Application_Control_Engine_%28ACE%29_Troubleshooting_Guide_--_Troubleshooting_ACE_Health_Monitoring#Troubleshooting_an_HTTPS_Probe_Error
Regards,
Hasham
Maybe you are looking for
-
Problem in billing(Depot Sales)
Hi, We was into the depot sales project.We have done till excise duty. That means,first we are created a sales order and then outbound delivery for that.So based on the outbound delivery number normally we do billing. But here after outbound deli
-
Hello, I know this has been asked before, but I still have a question. How do I get the .key presentation ready for power point? if Quicktime is involved, how do I transfer it to Quicktime? Will everything work? only part? is it just a much smaller h
-
Invalid testsuite XML document for junitreport task
Hi everyone, I'm new to this forum and apologies if this is the incorrect place for me to post this thread. Basically I'm having some issues with the junitreport task with my junit test project. I have a dummy class called Money and dummy test suite
-
What is the role of JNLP in web start?
Sir, I am new to web start. I am able to run some application but may you please tell me when Protocol JNLP is work in it. And how the security features are associate to it. Please explained me the architecture of it.
-
Best practice: 1.8 inch msata ssd to use as system disk?
Can I use a msata 1,8 inch ssd as a systendisk in the Y500 ? and wil it be faster dan the HDD ?If yes, I doubt using the Kingstone KC380 240 GB or the 120 GB. I need 70 to 80 GB for the OS all my programs, filesys etc. . So both will do, but is both