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#11934853

    I 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
    Luciano

    I 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

  • CSM HTTP Probe issue

    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,
    Dave

    Ok 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,
    Shakti

    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,
    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

    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,
    Pritesh

    Use "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 HTTP Probe expect regex

    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,
    Christian

    Hey 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
    John

    Got 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
    active

    What 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 advance

    Try 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