HTTP probe issue with expect regex string
Hello,
We have a simple cgi status page setup to poll a background service and return a "PASS" or "FAIL" as output. I've setup an HTTP probe to look for the "PASS" to determine application health. The issue appears to be that the expect regex is searching the HEADER but not the BODY of the web page. I can successfully match on any string in the header, but never on anything in the body.
Here is what the web page returns if you telnet to it:
HTTP/1.1 200 OK
Date: Thu, 22 Sep 2011 22:45:07 GMT
Server: Apache/2.0.59 HP-UX_Apache-based_Web_Server (Unix) DAV/2
Content-Length: 4
Connection: close
Content-Type: text/plain; charset=iso-8859-1
PASS
Here is my probe:
probe http JOE-TEST-CS
interval 45
passdetect interval 30
receive 30
request method get url /cgi-bin/ERMS-PREP-statusRepo.cgi
expect status 0 999
open 20
expect regex "PASS"
Here is the output of the show probe:
ACE1/euhr-test-ace2# sh probe JOE-TEST-CS detail
probe : JOE-TEST-CS
type : HTTP
state : ACTIVE
description :
port : 80 address : 0.0.0.0 addr type : -
interval : 45 pass intvl : 30 pass count : 3
fail count: 3 recv timeout: 30
http method : GET
http url : /cgi-bin/ERMS-PREP-statusRepo.cgi
conn termination : GRACEFUL
expect offset : 0 , open timeout : 20
expect regex : PASS
send data : -
--------------------- probe results --------------------
probe association probed-address probes failed passed health
------------------- ---------------+----------+----------+----------+-------
serverfarm : JOE-TEST-PROBE-CS
real : EUHRTDM50.APP[0]
192.168.73.71 2 2 0 FAILED
Socket state : CLOSED
No. Passed states : 0 No. Failed states : 1
No. Probes skipped : 0 Last status code : 200
No. Out of Sockets : 0 No. Internal error: 0
Last disconnect err : User defined Reg-Exp was not found in Host Response
Last probe time : Thu Sep 22 15:00:36 2011
Last fail time : Thu Sep 22 15:00:36 2011
Last active time : Thu Sep 22 09:40:19 2011
If I replace the expect regex "PASS" with anything from the HEADER it succeeds!
Any thoughts?
Sorry, I missed it. The content-length in your request is 4. I think this may be the issue. I created a basic HTML page that says PASS in the body and my server is returning a content-length of 224 when I fetch the page. Here is my HTML request:
GET /index.html
http-equiv="Content-Type">
Probe
PASS
Here are my headers that I received:
(Status-Line) HTTP/1.1 200 OK
Content-Length 224
Content-Type text/html
Last-Modified Tue, 27 Sep 2011 12:05:00 GMT
Accept-Ranges bytes
Etag "8cca60aed7dcc1:41f"
Server Microsoft-IIS/6.0
Date Tue, 27 Sep 2011 12:25:59 GMT
What version of code are you running on your ACE? I can also look to see if there are any known issues.
Kris
Similar Messages
-
Issue with flipping of strings in jsff page
We are facing the following issue with strings of type A:B in Arabic language.
In the UI, all A:B strings are supposed to be shown as B:A in Arabic, where A is a TOKEN value and B is a TRANSLATABLE STRING. But this is not happening in the UI.
So a String that is shown as ORG4-V1:Segment Values in English,we expect it to be shown as Segment Values : ORG4-V1 in Arabic, but it is displayed as ORG4-V1:Segment Values in Arabic also.
Following expression is used for displaying the string :
<af:showDetailHeader text="#{bindings.ValStructureCode}#{(bindings.ValStructureCode.inputValue==null) ? null:':'{CstCoreSetupGenBundle['Header.CostingAttributes']}"
This is shown as ASSET Default: Costing Attributes in the UI while it should be Costing Attributes : Asset Default (Here 'Asset Default' is the ValStructureCode)
For further details please refer to bug#11934853I apologize for the above and the thread has been posted here as I was unable to access the correct category due to some technical issues with Oracle forums. Also, the mentioned issue is in critical state and has a deadline so thought of posting to get it resolved as soon as possible. Specific categorization will be surely taken care in future.
Moving the thread to below location:
http://myforums.oracle.com/jive3/thread.jspa?threadID=1023776
Edited by: 931435 on Jun 6, 2012 12:25 AM -
Issue With Similar Search Strings in EBS
Hi Everybody, I'm experiencing some issue regarding a Search String that I have, the config is very similar, the only difference between one and the other is that there's a specific posting rule for one particular account.
EG: Search String 1: (^)ACCOUNT TRANSFER TRSF TO( |$)
Search String 2:(^)ACCOUNT TRANSFER TRSF TO 1111111111( |$)
(Where 1111111111 is the bank account)
Same Extenral transaction, NTRF, Same house bank and account id. Same Comapny also
But when executing a Statement with the 1st one it works fine, but when runing the 2nd one it does not use any of them(it takes the Posting rule set for NTRF in the EBS configuration).
I've tested it in the SS test and it takes the right posting rule.
If you have any clue on this I'll really appreciate it.
Regards
LucianoI apologize for the above and the thread has been posted here as I was unable to access the correct category due to some technical issues with Oracle forums. Also, the mentioned issue is in critical state and has a deadline so thought of posting to get it resolved as soon as possible. Specific categorization will be surely taken care in future.
Moving the thread to below location:
http://myforums.oracle.com/jive3/thread.jspa?threadID=1023776
Edited by: 931435 on Jun 6, 2012 12:25 AM -
I am using the HTTP probe shown below. When we shutdown our backend application the server is returning a 500 response code to the client but the CSM does not remove it from service.
probe TEST http
request method get url /test/engine
expect status 0 499
interval 10
failed 10
port 8001
What if any difference is there between
request method get url and
request url
Is there any way that I can see the last response code that the CSM received?
It looked like it wanted to fail but didn't:
CSM#sh mod csm 8 probe real 10.10.63.18
real = 10.10.63.18:8001, probe = TEST, type = http,
vserver = D-TESTVIP, sfarm = D-TESTSERVER
status = OPERABLE, current = 16:44:21 EDT 07/22/08,
successes = 1714, last success = 16:44:16 EDT 07/22/08,
failures = 35, last failure = 16:33:55 EDT 07/22/08,
state = Waiting for server to reply
CSM#sh mod csm 8 probe name TEST
type port interval retries failed open receive
http 8001 10 3 10 10 10
Thank you,
DaveOk thanks. I had never seen anything on this venus mode before. It doesn't accept the command though. I get Symbol 'testhttp' not found! when I enter the command. I have version 4.2(3a) of the CSM code running.
VENUS# ?
usage
upgrade slot0:|server-ip-addr filename
create virtual ...
destroy virtual ...
rename virtual ...
add pool ...
remove pool ...
bind virtual-name ...
unbind virtual-name rule-id
reorder virtual-name ...
set balancer ...
classify acl ...
address system ...
show virtual ...
load cfg-filename
restore config defaults|flash|backup
debug ixp rd|wr chip addr #dwords
stats real [rserver-name]
script [file [slot0:script_file|tftp_addr script_file]]
capture [on|off]
venus
tftp core_dump tftp-ip-addr [filename]
exit -
Porting issues with boost::regex when going from CS6 to CC2014 using Xcode
I have a working project in CS6 that uses the boost::regex framework that I'm having problems porting into CC2014.
I ported this project by using Dolly to create a new project, then coping the old source files across, finally updating the various out dated InDesign API calls that appeared when I compiled. For the use of regular expressions I added the debug and release builds of the boost_regex.framework to the respective targets.
Now, for the debug build the new CC2014 projects builds happily. But when I switch to the release build I get a few linker errors. They are all something like:
Undefined symbols for architecture x86_64:
"boost::re_detail::get_mem_block()", referenced from:
boost::re_details::perl_matcher<__gnu_cxx::__normal_iterator<char const *, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const *, std::string> > >, boost::regex::regex_traits<char, boost::cpp_regex_traits<char> > >::find_imp() in SbRegex.o
etc.
I did a bit of reading through the boost header files. The odd thing is that the "get_mem_block()" appears to be defined for the pre-processor option BOOST_REGEX_NON_RECURSIVE, while in the project settings for BOOST_PREPROCESSOR_DEFINITIONS contains BOOST_REGEX_RECURSIVE. These two settings are mutually exclusive and there's pre-processor logic that blocks having both cases defined at once.
This recursive option is used to control how memory is used while processing a regular expression, so seeing a get_mem_block() call (other link errors involve a call to put_mem_block) sort of makes sense being calls that look like something to do with memory.
I'm trying to figure out why debug builds, but release build fails. Does this problem look familiar to anyone? Anyone have any suggestions to try to fix it?Thanks for the reply, Bartok, but those didn't seem to work for me. Maybe I applied them incorrectly as that thread was for the Win platform and not Xcode and I might have translated the solution poorly.
Basically I went to the "Release_Cocoa64" target, and scrolled down the "Build Settings" page. I then edited the BOOST_PREPROCESSOR_DEFINITIONS field.
First I tried just appending BOOST_SYSTEM_NO_DEPRECATED.
Second I thought that this might be a macro of some sort so I tried $(BOOST_SYSTEM_NO_DEPRECATED).
Finally, I deleted all the previous values and added "BOOST_ALL_DYN_LINK BOOST_REGEX_USE_CPP_LOCALE BOOST_REGEX_RECURSIVE BOOST_HAS_ICU=1 BOOST_ FILESYSTEM_VERSION=3 BOOST_CHRONO_HEADER_ONLY BOOST_SIGNALS_NO_DEPRECATION_WARNING".
As you might guess from the experimentation I got none of these to work. The error that I was getting has remained exactly the same.
One difference that I assumed between the Win and Xcode version is that Win separates the values with a semi-colon whereas Xcode separates with a space.
My only other thought is maybe I edited the wrong field. Is BOOST_PREPROCESSOR_DEFINITIONS the one?
As a final comment, the thread you gave me and my issue really comparable? I have other projects that don't use the boost::regex libraries and they build and run without issue. It's only when I try to use boost's regular expressions in a release build that I get problems when linking (debug build is still fine).
Also the link error looks different. The thread that you gave me points at "boost::system::error_category" as not being resolved, while I have problems resolving "boost::re_detail::get_mem_block".
I don't seem to have problems with basic boost - just the regular expression stuff. -
SSRS 2012 - Windows Server 2012 R2 issue with OLEDB Connection String
Hoping someone can help. As stated above, we are running SQL Server 2012 with SP1 on Windows Server 2012 R2. When I create a Data Source as follows in Reporting Services, I receive the following error message. Any thoughts on why this fails? The same data
source works on Windows Server 2008 R2 Enterprise SQL Server 2008 R2.
Data Source type: OLE DB
Connection string: Provider=Microsoft.ACE.OLEDB.12.0;Data Source="\\networknamehere\CSVFiles";Mode=Read;Extended Properties="text;HDR=YES;FMT=CSVDelimited"
ERROR: Throwing Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: , Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: Cannot create a connection to data source 'CSV_Datasource'. ---> System.Data.OleDb.OleDbException:
Unspecified error
at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open()
at Microsoft.ReportingServices.DataExtensions.ConnectionExtension.Open()
at Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.OpenConnection(IProcessingDataSource dataSourceObj, DataSourceInfo dataSourceInfo, IDbConnection conn)
--- End of inner exception stack trace ---;Hi ABAA101,
According to your description, when you use csv file as data source in SSRS 2012 report, you got the error message.
I tested the issue in my local machine, due to some policy restrictions, I could not install Access in my local machine. To workaround the issue, we can use the connection string like below:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\report;
Extended Properties="text;HDR=Yes;FMT=Delimited"
The csv file is stored in report folder in C driver.
In Query text box in the dataset, we can use the query like below:
Select * from new.csv
If you have any more questions, please feel free to ask.
Thanks,
Wendy Fu
Wendy Fu
TechNet Community Support -
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 -
Issue with addPrincipal() of Interface DocumentAcl
Hi all,
There is an issue with the addPrincipal(String id, String format, int idType) method of interface DocumentAcl which creates/sets readers for a document and validates them on identity management system.
When I use this method for small number of readers say 3-10, readers are properly set for the document. However when I have a thousand users/readers for a single document the method throws OutOfMemory Error and does not add a single user for the document.
I would like to add to above scenario that for a few documents (in my case for 40 documents) readers (all thousand) were properly set. Afterwards for each document I started getting OutOfMemory Error.
Is it an issue with addPrincipal() method?
Need your comments.
I am using SES 10.1.8.
Regards,
ShaktiHi all,
There is an issue with the addPrincipal(String id, String format, int idType) method of interface DocumentAcl which creates/sets readers for a document and validates them on identity management system.
When I use this method for small number of readers say 3-10, readers are properly set for the document. However when I have a thousand users/readers for a single document the method throws OutOfMemory Error and does not add a single user for the document.
I would like to add to above scenario that for a few documents (in my case for 40 documents) readers (all thousand) were properly set. Afterwards for each document I started getting OutOfMemory Error.
Is it an issue with addPrincipal() method?
Need your comments.
I am using SES 10.1.8.
Regards,
Shakti -
Issue with regexes in http health probes on ACE 4710
Folks,
We're currently experiencing fairly bizarre behavior when attempting to set up http probes that expect a regexp. Namely, if we specify a regexp, the probe *always* passes, regardless of status code and regardless of whether or not the message actually matches the pattern. Doing 'no expect regexp' fixes this behavior (by which I mean that the 'expect status' rules work again).
We haven't noticed until now because this is the first time we've tried to set up a probe that does this. Are we missing something? Is this a known issue with our current firmware version?
Sincerely,
Patrick T. Ramsey
# show run probe | begin HTTP-nfscheck | end regex
Generating configuration....
probe http HTTP-nfscheck
description Simple HTTP probe to check nfs mount health
port 80
interval 15
passdetect interval 20
request method head url /nfs-health-check/
open 1
expect regex "^ureytgraeuikghfdjg$"
# sh ver
Cisco Application Control Software (ACSW)
TAC support: http://www.cisco.com/tac
Copyright (c) 1985-2009 by Cisco Systems, Inc. All rights reserved.
The copyrights to certain works contained herein are owned by
other third parties and are used and distributed under license.
Some parts of this software are covered under the GNU Public
License. A copy of the license is available at
http://www.gnu.org/licenses/gpl.html.
Software
loader: Version 0.95.1
system: Version A3(2.4) [build 3.0(0)A3(2.4) adbuild_11:46:02-2009/09/27_/auto/adbu-rel2/rel_a3_2_3_throttle/REL_3_0_0_A3_2
_4]
system image file: (hd0,1)/c4710ace-mz.A3_2_4.bin
Device Manager version 1.2 (0) 20090925:1550
installed license: no feature license is installed
Hardware
cpu info:
Motherboard:
number of cpu(s): 2
Daughtercard:
number of cpu(s): 16
memory info:
total: 6226388 kB, free: 3972668 kB
shared: 0 kB, buffers: 22020 kB, cached 0 kB
cf info:
filesystem: /dev/hdb2
total: 861668 kB, used: 728656 kB, available: 89240 kB
last boot reason: Unknown
configuration register: 0x1
ldbottom kernel uptime is 325 days 3 hours 46 minute(s) 43 second(s)I also went through a similar issue in which we need to probe the real server PESERVER01 and if the real server replies with the keyword "PE Server" in the HTTP content then the probe should be passed successful.
In my case the real server was listening on port 32776 for HTTP service so we configured the serverfarm as below,
serverfarm host SF-TEST-32776
description SF-TEST-32776
failaction purge
probe PE-SERVER-STRING
rserver PESERVER01 32776
inservice
And the TCP probe as below,
probe tcp PE-SERVER-STRING
port 32776
send-data GET /IOR/ping HTTP/1.1 <<== command should not be in inverted commas
expect regex "PE Server"
The above probe worked really well and when we checked the probe status it was marking as success. I also tried changing the regex from "PE Server" to "Vishal12345" and it was failing as expected because there was no such keyword in the HTTP content.
==================================================================================
T2-LB02# sh probe PE-SERVER-STRING
probe : PE-SERVER-STRING
type : TCP
state : ACTIVE
port : 32776 address : 0.0.0.0 addr type : -
interval : 15 pass intvl : 60 pass count : 3
fail count: 3 recv timeout: 10
------------------ probe results ------------------
associations ip-address port porttype probes failed passed health
------------ ---------------+-----+--------+--------+--------+--------+------
serverfarm : SF-TEST-32776
real : PESERVER01[32776]
10.10.10.1 32776 PROBE 105 0 105 SUCCESS
==================================================================================
I was struggling with this issue from long time. Even raised couple of Cisco TAC cases with no luck. The most important thing here is to identify the exact command to be send to real server like GET /IOR/ping HTTP/1.1 that we used here.
To collect this command I did packet capture on one of the client machine and then tried to open the URL from real server which can return the string "PE Server". Then analyzed the captures in Wireshark and checked the HTTP data with follow the TCP stream option in which I seen the below data, which gives the command to be send in probe as well as the string we should expect.
==================================================================================
GET /IOR/ping HTTP/1.1
User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.12.9.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2
Host: 10.144.70.85:32776
Accept: */*
HTTP/1.0 200 OK
Content-type: text/html
Ping
PE Server
WRVFKO11 [Win32 Server Production (3 silos) (Oracle Blob 512 MB) -- {dap451.007.028 dap451.004.002 pe451.003.010x pui451.003.010 pui451.001.004} Mar 9 2012 15:07:53 en ]
===================================================================================
Please try this and see if it helps you.
Thanks,
Vishal Babrekar -
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 -
Hi,
I have a question about the config of the ACe probe.
I have the following probe defined :
probe http P_HTTP_TEST
interval 5
passdetect interval 2
passdetect count 2
request method get url /test
expect status 200 200
expect regex trululu
I would like to use the regex just like the expect string on the csm probe...
The regex doesn't seem to work as the strin trululu is not on the page tested.
I guess the expect status override the regex but without the expect status it doesn't work either.
Anyone know how exactly the probe expect works for http ?
Another question, on the CSM module, the tcp probe by default use the real port for the probe, not the default port of the probe type, is it possible to change that so it mimmicks the CSM way of working ?
Thanks a lot ;-)This seems to be bug related to some version of ACE software as HTTP return code overrides missing regexp. For sure this bug is present in:
system: Version A2(2.0) [build 3.0(0)A2(2.0)]
Notice the difference between 192.168.1.1 (is missing regex in HTTP response) and 192.168.1.2 (sends regexp in HTTP response). Both are successful and as addition 192.168.1.1 (missing regexp) is showing last status code 200 which seems to be sufficient for probe to pass. 192.168.1.2 (which sends expected regexp) doesn't show last status code.
probe : tw2_http_81
type : HTTP
state : ACTIVE
description :
port : 81 address : 0.0.0.0 addr type : -
interval : 30 pass intvl : 30 pass count : 1
fail count: 1 recv timeout: 10
http method : GET
http url : /knowtw2-f/livelink.exe?func=ll&objtype=142&bypass
conn termination : GRACEFUL
expect offset : 0 , open timeout : 10
expect regex : lbmonitor
send data : -
--------------------- probe results --------------------
probe association probed-address probes failed passed health
------------------- ---------------+----------+----------+----------+-------
real : 192.168.1.1[81]
192.168.1.1 2 0 2 SUCCESS
Socket state : CLOSED
No. Passed states : 1 No. Failed states : 0
No. Probes skipped : 0 Last status code : 200
No. Out of Sockets : 0 No. Internal error: 0
Last disconnect err : -
Last probe time : Mon Nov 7 12:38:42 2011
Last fail time : Never
Last active time : Mon Nov 7 12:38:22 2011
real : 192.168.1.2[81]
192.168.1.2 2 0 2 SUCCESS
Socket state : CLOSED
No. Passed states : 1 No. Failed states : 0
No. Probes skipped : 0 Last status code : 0
No. Out of Sockets : 0 No. Internal error: 0
Last disconnect err : -
Last probe time : Mon Nov 7 12:38:27 2011
Last fail time : Never
Last active time : Mon Nov 7 12:37:58 2011 -
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 -
BPM xpath issue with last-index-within-string
Hey all,
I have a script task in BPM that updates a field by using multiple xpath functions. I have narrowed the issue down to the oraext:last-index-within-string function.
If I do something like oraext:last-index-within-string('ora/in/ok/d', '/').....I get 9 like expected.
But if I base it off the request data like so:
oraext:last-index-within-string(bpmn:getDataObject('Request')/ns:document/ns1:dDocAccount, '/')........when I go to em I have an internal xpath error.
I'm assuming it has something to do with using bpmn:getDataObject as a parameter. But I'm not sure what. If I use the getDataObject as a parameter in substring like so:
substring(bpmn:getDataObject('Request')/ns:document/ns1:dDocAccount, 8)....it works as expected.
What is it about the combination with last-index-within-string that is giving me an issue??
Thanks
JohnGot it. Apparently, sometimes with xpath, you have to concatenate the variable with an empty string to change it into a string....sometimes, but not all the time...yay.... I'm guessing the xpath inbuilt functions already know to convert the variable passed in into a string, whereas the oraext functions don't. I could be completely wrong on that though...:-P . Anyway, this works:
oraext:last-index-within-string(concat(bpmn:getDataObject('Result')/ns:document/ns1:dDocAccount, ''), '/')
Thanks,
John -
Issues with a http get keepalive
We are having a issue with some keepalives that are causing our web servers to run really slow. I have explained the environment below and provided some configs from the CSS
I would appreciate any insight you could provide as to why this issue is occuring and how we might avoid them.
Thanks,
Jim
Environment:
CSS 11150 with 4.01 (Build 19) code.
We have 2 applications that connect to backend oracle databases. In order to monitor the database connections, we wrote an asp page for each application that queries the database and returns a normal status web page if a connection was established. If the database connection can not be obtained, an error web page is returned. We created 2 services with a keepalive method of get pointing to the asp page we wrote with the expectation that it would create a checksum for the normal web page.
Issue:
The problem we are having is that when we activate these two services, the web server that is running the applications slow down considerably. In addition to the speed issues, we also sometimes get a page cannot be displayed error from the application. If you get a page cannot be displayed error but hit refresh in your browser the application comes back. If we suspend the services the server speeds back up and we have no issues with the application.
Configuration:
**************************Service**********************
service web02qi-compoint-SMDR
ip address 172.28.1.102
keepalive type http
keepalive frequency 10
keepalive maxfailure 2
keepalive method get
keepalive uri "/keepalive/compointkeepalive.asp"
service web02qi-issuestrk-SMDR
ip address 172.28.1.102
keepalive type http
keepalive frequency 10
keepalive maxfailure 2
keepalive method get
keepalive uri "/keepalive/crmdbcheck.asp"
************************Owner*************************
content compoint1
protocol tcp
port 80
url "/dataproducts/*"
add service redirect-compoint
vip address 172.28.1.100
balance aca
add service web02qi-compoint-SMDR
active
content compoint2
protocol tcp
port 80
url "/dpcompoint/*"
add service redirect-compoint
vip address 172.28.1.100
balance aca
add service web02qi-compoint-SMDR
active
content issuestrk
protocol tcp
port 80
url "/crmdpd/*"
add service redirect-issuestrk
vip address 172.28.1.100
add service web02qi-issuestrk-SMDR
balance aca
activeWhat happen if you remove your uri in the service, do the server speed return to normal? What is the serivce 'redirect-compoint'? Try to remove any unnecessary commands such as balance aca to see if anything changes?
What is the response time of your keepalive asp pages? What happen if you run this asp page on another computer while you're access the application on differnent computer? Trying to simulate what CSS is trying to do and see what happen.
If nothing else works, try to upgrade to the version 5.0.
Hope this help.
Brad -
Reading a String Literally - Finding the "\" Character with a Regex
How do I search for "\" characters in a string? Such as..
String text = "Temp\temp.txt";
The problem is that Java will read "\t" as a tab, so that
System.out.println(text);
Will return
Temp emp.txt
Also, searching for the regex "\\\\" will return a null result, presumably because Java interprets the "\t" as a tab character, not as a literal "\" followed by a literal "t".
How do I get Java to read the string without interpreting it?
Thanks in advanceTry also this:
public static void main(String[] args) {
String test1 = "String with a\\t which is not a tab but a t preceeded with a \\ character";
String test2 = "String with a \t which is a tab";
System.out.println("This are the Strings as user sees / enters them:");
System.out.println(test1);
System.out.println(test2);
System.out.println("");
System.out.println("***********************************************************");
System.out.println("");
System.out
.println("Splitting first string using a \\\\\\\\ regex which will be interpreted by the regex engine as \\\\ which will represent a \'\\\' character:");
System.out.println("");
for (String s : test1.split("\\\\")) {
System.out.println(s);
System.out.println("");
System.out.println("***********************************************************");
System.out.println("");
System.out.println("Splitting the second string just the same way:");
System.out.println("");
for (String s : test2.split("\\\\")) {
System.out.println(s);
}and read the console output.
It should be:
This are the Strings as user sees / enters them:
String with a\t which is not a tab but a t preceeded with a \ character
String with a which is a tab
Splitting first string using a \\\\ regex which will be interpreted by the regex engine as \\ which will represent a '\' character:
String with a
t which is not a tab but a t preceeded with a
character
Splitting the second string just the same way:
String with a which is a tab
Maybe you are looking for
-
Unable to delete File in file system
I have built an explorer just like a Windows explorer. I am not able to delete individual files. but the files in a folder can be deleted. How should I proceed?
-
How to use ServerApplicationContext to do a remote query across multiple entities
Hello everybody, My data model is like this: "Case" -> one-to-many -> "Document" Document has the fields: - "IsFinalised" (boolean) - File (large binary) My business rule is: 'a Case is closed if all its documents are finalised'. I am trying to do
-
Can't sync my iPhone to both my PC & Mac...now what?
I was initially able to do a sync from my Mac (photos, podcasts, audiobooks and videos), then connected iPhone to my work PC laptop and only checked on the "info" page: calendar and contacts (Outlook) and bookmarks (IE). The first sync worked, and it
-
System Automatically notified me of an update for Safari - told it to continue. After a few seconds, the system displayed about 12-14 error messages: "You can't open the application tar because PowerPC applications are no longer supported." Packag
-
Transferring data from one external drive to another
HI, I want to get a new external hard drive and transfer all of the data from my old one - which is not full, but has started to click and operate slowly. The old external hard drive is where I keep the music files for my itunes library, as well as a