Cisco ASA not returning traffic when wccp peering with Bluecoat.

Experts,
My setup has a Cisco ASA where we are doing wccp with a Bluecoat SG box. The traffic gets redirected to the Bluecoat due to the wccp settings so it's just transparent to the end users. Theye do not have to do any manual proxy settings in their IE.
We however notice that somehow the ASA does not return these connection back to the requesting hosts and somehere the connection table breaks. The message we see on the ASA that state table is somehow not being maintained. Any idea where this connection must be breaking?
Regards,
Nikhil Kulkarni.

Nikhil,
Let me give you a little bit of backgrounf in regards to WCCP that can help you. As you stated the ASA will do transparent redirection, so the client doesn't have to configure anything on the PC.
The traffic will get to the ASA (port 80/443 or any configured port) and then the ASA will establish a GRE tunnel with WCCP server and will redirect the traffic. After the Bluecoat receives the traffic it will "spoof" the IP address of the requested web page (the WCCP server needs to have direct comunication with the client PC without passing through the ASA). I have seen some issues where the ASA and the WCCP server are unable to establish the GRE tunnel becuase the ASA uses the highest IP address as the router ID and uses this IP address to establish the tunnel. The WCCP keepalives (Here I am, I see you) are sent using the IP address of the closest IP address to the WCCP server.
At this point you may turn on the WCCP debugs and run some "show WCCP" commands.
I hope it helps
Luis Silva

Similar Messages

  • Cisco asa 5505: No traffic lan to wan with IPv6

    Hello everybody,
    I have a Cisco ASA 5505, public ipv6 in outside interface, private ipv6 in LAN, from router I can ping any ipv6 in Internet and ping my LAN ipv6. Traffic doesn't go through router.
    This is my configuration.
    interface Vlan1
     nameif inside
     security-level 100
     ip address PRIV-Saturn1 255.255.255.0
     ipv6 address fc00::1/7
     ipv6 enable
    interface Vlan2
     nameif outside
     security-level 0
     ip address PUBLIC26 255.255.255.248
     ipv6 address xxxx:yyyy:67:36::2/64
     ipv6 enable
     ipv6 nd suppress-ra
    access-list Dynamic_Filter_ACL extended permit tcp any6 any6
    ipv6 route outside ::/0 xxx:yyyy:67:36::1
    Am I omitting anything?
    Thanks in advance for the help.
    Jos P

    Since you're using IPv6 private addressing (fc00::) on the inside, you need a dynamic NAT entry to translate your private IPv6 addresses to a public one.
    Alternatively, you could just use a subnet of your registered IPv6 block for the inside network and not worry about NAT.

  • Oracle Text does not return results when String starts with two consecutive vowels

    Hi,
    I hope someone can shed some light on a strange problem we're facing.
    Oracle Database 11g R2 (11.2.0.4) EE 64-bit running on Windows 2008 Server R2.
    When I create a context index on a varchar2 column (surname) it works fine when the surname starts with either a consonant or one vowel. But when the surname starts with two vowels it fails to return the record?
    Please see worked example below:
    create table t1 (surname varchar2(50));
    insert into t1 values ('OURS');
    insert into t1 values ('JOURS');
    insert into t1 values ('ONES');
    commit;
    -- sync every 10 mins
    CREATE INDEX PERSON_SURNAME_IDX ON t1
    (SURNAME)
    INDEXTYPE IS CTXSYS.CONTEXT
    PARAMETERS('MEMORY 50M sync (every "SYSDATE+10/1440")')
    NOPARALLEL;
    -- no rows
    SELECT surname
    FROM t1
    WHERE CONTAINS(surname, 'OURS') > 0;
    -- 1 row
    SELECT surname
    FROM t1
    WHERE CONTAINS(surname, 'JOURS') > 0;
    -- 1 row
    SELECT surname
    FROM t1
    WHERE CONTAINS(surname, 'ONES') > 0;
    Any help or guidance greatly appreciated.
    Thanks,

    Wtf?
    https://docs.oracle.com/database/121/CCREF/astopsup.htm#i634475
    only     then     where
    all     do     into     onto     there     whether
    almost     does     is     or     therefore     which
    also     either     it     our     these     while
    although     for     its     ours
    select
    from v$version
    Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production    0
    PL/SQL Release 12.1.0.2.0 - Production
    CORE 12.1.0.2.0 Production
    TNS for Linux: Version 12.1.0.2.0 - Production
    NLSRTL Version 12.1.0.2.0 - Production
    SELECT spw_stoplist, spw_word FROM ctx_stopwords
    WHERE spw_stoplist ='DEFAULT_STOPLIST'
    order by nlssort(spw_word, 'NLS_SORT=LATIN')
    ---- snip ----
    DEFAULT_STOPLIST    not
    DEFAULT_STOPLIST    of
    DEFAULT_STOPLIST    on
    DEFAULT_STOPLIST    one
    DEFAULT_STOPLIST    only
    DEFAULT_STOPLIST    or
    DEFAULT_STOPLIST    other
    DEFAULT_STOPLIST    out
    DEFAULT_STOPLIST    over
    DEFAULT_STOPLIST    s
    ---- snip ----

  • WebI does not return failed when scheduling a report which only holds parti

    WebI does not return failed when scheduling a report which only holds partial results.
    We have scheduled reports which take some time to run. When they are scheduled they sometimes show successful even though the report only holds partial results. The only indication is when you open the report as webi report you see the warning that it holds partial results.
    When running the report manually, it works file.
    The issue is not in the no of rows in the universe settings because we this unselected. The issue is that it times out.
    The reason that it times out is that a lot of resources are used for loading and processing data when the report is scheduled. When running it manually, it works because at this time the serverload is less. the time in the universe is set to 10 min.
    The version we have is BOXIR2-SP4.
    Ok. Issue identified.
    The question is - why is the report successful when it holds partial results? If this is normal behavior, noone can really trust the scheduled reports, especially when you save it to excel and send it by mail.
    Is there a solution for this except increasing the allowed query time which would not solve the issu but only allow more reports to complete?
    Edited by: Karlgren Michael on Sep 17, 2009 1:22 PM

    Hi ,
    Currently this problem exists in XI R2. This feature will be part of thenext Service Pack i.e XI R2 SP6.
    This CER will be delivered from IDC Webi and BIP Platform as part of Jupiter Sp6.
    Problem Statement:
         Scheduled WebI Reports which are partially refreshed are distributed to the destinations for Users to View and make decisions. These users arenu2019t usually aware that these reports have u201CPARTIAL RESULTSu201D
    Recomended Solution:
        Allow the Schedule Creator / Modifier to set a parameter to stop the distribution of the u201CPARTIALLY REFRESHEDu201D WebI report.
    Thanks
    Salini

  • Cisco ASA Not Responding to SNMP

    Hi All,
    I have a Cisco ASA that I am trying to discover with SNMP (Solar Winds). The Solarwinds server can ping the ASA on the E1 interface (on the same network as the server), yet it cannot be discovered using SNMP, it fails every time.
    This is the config I have for the ASA.
    interface GigabitEthernet0/0.224
    description NMS
    vlan 224
    nameif NMS
    security-level 100
    ip address 10.11.120.225 255.255.255.240
    snmp-server host NMS 10.11.120.235 community *****
    no snmp-server location
    no snmp-server contact
    snmp-server community *****
    snmp-server enable traps snmp authentication linkup linkdown coldstart
    The server trying to discover the ASA is 10.11.120.235 and the community string is public.
    Also, I do not know how you add a RW string to a Cisco ASA - it seems to only let you add a single string.
    Thanks in advance.
    Dan

    Hi Daniel,
    The ASA supports only SNMP read-only access. SNMP write access is not allowed, so you cannot make changes with SNMP.
    Have you tried to manualy pool the ASA using snmpget or some other tools. One issue might be the community used by Solarwinds.
    Regards
    Dan

  • How do I save photos that have been synced to my Ipad2, so that they do not get deleted when I sync with a different photo file on my computer.

    How do I save photos that have been synced to my Ipad2, so that they do not get deleted when I sync with a different photo foder on my computer (Pc win7).

    Place that first folder of photos that you synced to the iPad within the main folder of photos that you sync from and select them to sync again. You can place any number of subfolders within the main folder that you sync from and select those folders to sync. Just "tick"(select) the folders in the photos tab in iTunes.
    iOS and iPod: Syncing photos using iTunes

  • Po_headers_sv3.get_po_status is not returning Status when used in Report

    Hi,
    po_headers_sv3.get_po_status is not returning any value when used in an RDF report. But, when I set the MO Context in TOAD/SQL*Plus and running the same query, it is returning the status.
    EBS Version : R12.1.3
    Oracle Forms Version : 10g
    Below is my query that I used.
    * File Name :
    * Modified By :
    * Modified Date :
    * Purpose : This report is modified for <> project. The changes are required due to PO_HEADERS_V, PO_LINES_V view changes in R12
    * Modification History
    * Change 1 : Replaced the view PO_HEADERS_V with the MOAC synonym PO_HEADERS
    * Change 2 : Added AP_SUPPLIERS in the query to fetch VENDOR_NAME
    * Change 3 : Added a join condition to fetch VENDOR_NAME
    * Change 4 : Added a function po_headers_sv3.get_po_status to fetch PO_STATUS
    SELECT POH.SEGMENT1,
    POH.CREATION_DATE,
    POH.ATTRIBUTE14 AS AR,
    POH.ATTRIBUTE15 AS LS,
    POH.ATTRIBUTE13 AS OBC,
    POL.AMOUT,
    PAHTEMP.FULL_NAME,
    APS.VENDOR_NAME,
    *         poheaders_sv3.get_po_status (poh.po_header_id) Status -- Change 4 _+
    FROM PO_HEADERS POH, -- Change 1
    AP_SUPPLIERS APS, -- Change 2
    (SELECT PO_HEADER_ID,
    Sum(UNIT_PRICE*QUANTITY) AS AMOUT -- unit_price* quantity = extended_price
    FROM PO_LINES
    GROUP BY PO_HEADER_ID) POL,
    (SELECT PAH.OBJECT_ID,
    PAH.EMPLOYEE_ID,
    PAPF.FULL_NAME
    FROM PO_ACTION_HISTORY PAH,
    PER_ALL_PEOPLE_F PAPF
    WHERE (PAH.OBJECT_ID,
    PAH.SEQUENCE_NUM)
    IN (SELECT OBJECT_ID,
    Max(SEQUENCE_NUM)
    FROM PO_ACTION_HISTORY
    WHERE OBJECT_TYPE_CODE = 'PO'
    AND ACTION_CODE = 'APPROVE'
    GROUP BY OBJECT_ID)
    AND PAH.EMPLOYEE_ID = PAPF.PERSON_ID(+)
    AND TRUNC(PAPF.EFFECTIVE_START_DATE) <= TRUNC(SYSDATE)
    AND TRUNC(PAPF.EFFECTIVE_END_DATE) >= TRUNC(SYSDATE)) PAHTEMP
    WHERE POH.PO_HEADER_ID = POL.PO_HEADER_ID(+)
    AND POH.PO_HEADER_ID = PAHTEMP.OBJECT_ID(+)
    AND POH.VENDOR_ID = APS.VENDOR_ID -- Change 3
    AND (TRUNC(POH.CREATION_DATE) >= TRUNC(:P_DATE_FROM) OR :P_DATE_FROM IS NULL)
    AND (TRUNC(POH.CREATION_DATE) <= TRUNC(:P_DATE_TO) OR :P_DATE_TO IS NULL)
    AND (POH.SEGMENT1 >= :P_NUM_FROM OR :P_NUM_FROM IS NULL)
    AND (POH.SEGMENT1 <= :P_NUM_TO OR :P_NUM_TO IS NULL)
    AND (POH.ATTRIBUTE13 >= :P_OBC_FROM OR :P_OBC_FROM IS NULL)
    AND (POH.ATTRIBUTE13 <= :P_OBC_TO OR :P_OBC_TO IS NULL)
    AND (POH.ATTRIBUTE14 >= :P_AN_FROM OR :P_AN_FROM IS NULL)
    AND (POH.ATTRIBUTE14 <= :P_AN_TO OR :P_AN_TO IS NULL)
    AND (POH.ATTRIBUTE15 >= :P_LS_FROM OR :P_LS_FROM IS NULL)
    AND (POH.ATTRIBUTE15 <= :P_LS_TO OR :P_LS_TO IS NULL)
    &LP_CONDITION_ORDER
    Please help me in this.

    learnt that PO number has generated in SRM and the same PO number not exist in ECC.
    check SM58 , rz20 log or Application monitor for the shopping cart.
    or monitor shopping cart click the icon follow on document and errror message must throw in 1 minutes.
    let us see .
    1. what is the settings in define backend OBJECTS
    2. check all basic data in the shopping cart - especially org data
    3. run bbp_check_consistancy report for your id?
    4. every user has the same issue?
    SEE THE RICHARDO technique
    http://wiki.sdn.sap.com/wiki/display/SRM/ShoppingCartStatusI1111-+Resubmit
    Muthu
    Report BBP_ALERT_SB_NOTTRANSFERED is available to change the status of the shopping cart item from I1111 to 'Error in transmission' (I1112) and later on, it is possible to retransfer this shopping cart from Application Monitor/Monitor Shopping Cart transactions.
    1480994  How to process a shopping cart with status I1111
    Edited by: Muthuraman Govindasamy on Jul 16, 2010 11:31 PM

  • OCIStmtExecute does not return immediately when client is busy.

    Hi.
    I'm testing a very busy multi-threaded client server that consistently generates
    a large number of simple queries through oci. The problem is that, when the
    server(client) is busy, OCIStmtExecute does not return immediately in
    non-blocking mode.
    Of course I have set non-blocking mode and OCIStmtExecute does return
    OCI_STILL_EXECUTING immediately when the server is not busy. But
    when log rotation occurs which concatenates a large text file (~500MB)
    onto an even larger text file (up to several giga bytes), or when I simply copies
    or concatenates large text files manually, OCIStmtExecute returns very slowly.
    (roughly about after 100~200ms)
    However, while log rotation takes place, everything else including other oci
    calls that come before OCIStmtExecute (prepare, define) return fast. So
    for me it really seems that only OCIStmtExecute becomes extremely slower
    when local server (especially the disk) is busy.
    Is there any way to let OCIStmtExecute immediately return all the time?
    Thanks in advance.

    Yes, I knew that OCIStmtExecute would be the only function that causes such
    delay and that was why I traced that call. And so far, I checked several times
    what happens at the exact moment on the server but everything was ok.
    Actually OCIStmtExecute becomes slower exactly when crontab-ed log rotate
    occurs so I think this delay must be a client-side problem for now.
    This server is quite busy and has to respond fast, so it is important to
    guarantee fast response time while a small number of timeout losses are tolerable.
    But as OCIStmtExecutes' first OCI_STILL_EXECUTING return takes hundreds of
    ms it has become more like a blocking call and currently I cannot find any way to do what I want.
    So now everytime such thing happens, the thread waits
    quite long, after the first OCI_STILL_EXECUTING return
    the time difference exceeds timeout limit, and the thread
    calls OCIBreak() and OCIReset() and returns.

  • Why does my function not return anything when I create as a schema object

    I have user ABC who owns several tables some of which have foreign key constraints.
    I have user XYZ that has been granted access to all tables owned by user ABC.
    When I create a function as user XYZ using following I get no return when I issue:
    select XYZ.ztm_tables_depended_on('ABC', 'A_TABLE_OWNED_BY_ABC') from dual :
    Please see after function definition.
    CREATE OR REPLACE FUNCTION ZTM_TABLES_DEPENDED_ON(p_Owner VARCHAR2, p_Table_Name VARCHAR2) RETURN VARCHAR2 IS
      CURSOR C1 IS
      SELECT OWNER, CONSTRAINT_NAME, R_OWNER, R_CONSTRAINT_NAME
      FROM   ALL_CONSTRAINTS
      WHERE  OWNER           = p_Owner
      AND    TABLE_NAME      = p_Table_Name
      AND    CONSTRAINT_TYPE = 'R'
      ORDER  BY OWNER, CONSTRAINT_NAME, R_OWNER, R_CONSTRAINT_NAME;
      v_Referenced_Owner       VARCHAR2(31);
      v_Ret_Val                VARCHAR2(4000);
      FUNCTION CONSTRAINT_TABLE_NAME(p_Owner VARCHAR2, p_Constraint_Name VARCHAR2) RETURN VARCHAR2 IS
        CURSOR C1 IS
        SELECT TABLE_NAME
        FROM   ALL_CONSTRAINTS
        WHERE  OWNER           = p_Owner
        AND    CONSTRAINT_NAME = p_Constraint_Name;
        v_Ret_Val ALL_CONSTRAINTS.TABLE_NAME%TYPE;
      BEGIN
        OPEN  C1;
        FETCH C1 INTO v_Ret_Val;
        CLOSE C1;
        RETURN v_Ret_Val;
      END;
    BEGIN
      FOR R IN C1 LOOP
        IF (R.OWNER <> R.R_OWNER) THEN v_Referenced_Owner := R.R_OWNER || '.';
        ELSE                           v_Referenced_Owner := NULL;
        END IF;
        v_Ret_Val := v_Ret_Val || ', ' || v_Referenced_Owner || CONSTRAINT_TABLE_NAME (R.R_OWNER, R.R_CONSTRAINT_NAME);
      END LOOP;
      RETURN LTRIM(v_Ret_Val, ', ');
    END;
    But, if I embed the function within an anonymous block as follows, I get results:
    DECLARE
      CURSOR C1 IS
      select owner, table_name
      FROM   all_tables where owner = 'ABC';
      FUNCTION ZTM_TABLES_DEPENDED_ON(p_Owner VARCHAR2, p_Table_Name VARCHAR2) RETURN VARCHAR2 IS
        CURSOR C1 IS
        SELECT OWNER, CONSTRAINT_NAME, R_OWNER, R_CONSTRAINT_NAME
        FROM   ALL_CONSTRAINTS
        WHERE  OWNER           = p_Owner
        AND    TABLE_NAME      = p_Table_Name
        AND    CONSTRAINT_TYPE = 'R'
        ORDER  BY OWNER, CONSTRAINT_NAME, R_OWNER, R_CONSTRAINT_NAME;
        v_Referenced_Owner       VARCHAR2(31);
        v_Ret_Val                VARCHAR2(4000);
        FUNCTION CONSTRAINT_TABLE_NAME(p_Owner VARCHAR2, p_Constraint_Name VARCHAR2) RETURN VARCHAR2 IS
          CURSOR C1 IS
          SELECT TABLE_NAME
          FROM   ALL_CONSTRAINTS
          WHERE  OWNER           = p_Owner
          AND    CONSTRAINT_NAME = p_Constraint_Name;
          v_Ret_Val ALL_CONSTRAINTS.TABLE_NAME%TYPE;
        BEGIN
          OPEN  C1;
          FETCH C1 INTO v_Ret_Val;
          CLOSE C1;
          RETURN v_Ret_Val;
        END;
      BEGIN
        FOR R IN C1 LOOP
          IF (R.OWNER <> R.R_OWNER) THEN v_Referenced_Owner := R.R_OWNER || '.';
          ELSE                           v_Referenced_Owner := NULL;
          END IF;
          v_Ret_Val := v_Ret_Val || ', ' || v_Referenced_Owner || CONSTRAINT_TABLE_NAME (R.R_OWNER, R.R_CONSTRAINT_NAME);
        END LOOP;
        RETURN LTRIM(v_Ret_Val, ', ');
      END;
    BEGIN
      FOR R IN C1 LOOP
        DBMS_OUTPUT.PUT_LINE(ztm_tables_depended_on(R.Owner, R.Table_Name));
      END LOOP;
    END;
    Any ideas what is happening here?

    Any ideas what is happening here?
    Justin explained the probable reason.
    See the 'How Roles Work in PL/SQL Blocks' section of the database security doc for the details
    http://docs.oracle.com/cd/E25054_01/network.1111/e16543/authorization.htm#i1007304
    How Roles Work in PL/SQL Blocks
    The use of roles in a PL/SQL block depends on whether it is an anonymous block or a named block (stored procedure, function, or trigger), and whether it executes with definer's rights or invoker's rights.
    Roles Used in Named Blocks with Definer's Rights
    All roles are disabled in any named PL/SQL block (stored procedure, function, or trigger) that executes with definer's rights. Roles are not used for privilege checking and you cannot set roles within a definer's rights procedure.
    The SESSION_ROLES view shows all roles that are currently enabled. If a named PL/SQL block that executes with definer's rights queries SESSION_ROLES, then the query does not return any rows.
    Roles Used in Named Blocks with Invoker's Rights and Anonymous PL/SQL Blocks
    Named PL/SQL blocks that execute with invoker's rights and anonymous PL/SQL blocks are executed based on privileges granted through enabled roles. Current roles are used for privilege checking within an invoker's rights PL/SQL block. You can use dynamic SQL to set a role in the session.
    See that line starting with 'All roles are disables in any named PL/SQL block'?

  • Cisco AIR2602E not coming up when Antenna attached

    Hi All, 
    I am facing a weird kind of situation. At one of my client side, we have Cisco AIR-2602E APs with ANT-2566 patch antennas. At one IDF, where Cisco 2960X are installed, the APs are not powering up when Antenna is attached. Once the Antenna is removed, the APs come up and then when Antenna is attached, it works fine. I have configured the port with "power inline port 2x-mode" command as well, but no use. Is there any issue with the Switch or AP?
    Regards, Sohail 

    Currently, this is the status of the port.
    #show power inline g1/0/1
    Interface Admin  Oper       Power   Device              Class Max
                                (Watts)
    Gi1/0/1   auto   off        0.0     n/a                 n/a   30.0
    Interface  AdminPowerMax   AdminConsumption
                 (Watts)           (Watts)
    Gi1/0/1               30.0                 30.0

  • Cisco ASA CSC HTTPS Traffic Filtering

    Hello,
    I am interesting how https filtering is working on ASA CSC module. When https filtering is enabled, should I import any certificate in csc which is trusted by users ? And what procedures should I complite to enable https filtering ?

    Hello,
    Here is the configuration guide for https filtering. I hope it helps:
    http://www.cisco.com/en/US/docs/security/csc/csc66/administration/guide/csc4.html#wp1098125
    Regards,
    Felipe.

  • Configuring Cisco ASA for site to site VPN ( Issue with setting up local network)

    OK, so our primary firewall is a checkpoint gateway. Behind that we have a cisco ASA for vpn users. I have a project at the moment where we need to connect to another company using site to site VPN through the cisco ASA, as the checkpoint gateway is unable to establish a permanent tunnel with the other companies Cisco ASA.
    What would be the best practise for setting up the local network on my side? Create the network on the ASA and then use a L2 vlan to connect to the Core switch? 
    Setup a L3 interface on the core switch and point it towards the checkpoint gateway which would then point to the ASA?
    When you have to select your local network through the site to site wizard do you have to put the inside network address of the ASA?
    Our network is setup like this: Access layer switch > Core 6500 Switch > Checkpoint-Firewall > Internet
    The ASA is connected to a checkpoint sub interface
    Any help would be beneficial as im new to cisco ASAs 
    Thanks
    Mark

    Mark
    If we understood more about your environment we might be able to give you better answers. My initial reaction was similar to the suggestion from Michael to use a L2 vlan. But as I think a bit more my attention is drawn to something that you mention in the original post. The ASA is there for VPN users. If the VPN users need to access your internal network then you probably already have something configured on the ASA that allows access to the internal network. Perhaps that same thing might provide access for your site to site VPN?
    HTH
    Rick

  • One device does not stop ringing when answering FaceTime with another

    Does anyone have this problem; I have a 15'' MBP 2011 OSX 10.8.2., and an iPhone 4 running iOS 6.0.1. When my FaceTime receives a call, both devices are ringing just as they should, but one device does not stop ringing when I use the other to answer the call. However, the call is disconnected after some time (like, if you don't answer at all, the call attempt is dropped). So, my FaceTime calls are constantly dropped. IF I answer and then choose to reject the call with the other device, the call is disconnected.
    This problem occurred some time ago, perhaps with the Mountain Lion upgrade, but not sure - I don't get that many FT-calls but from my family abroad.

    I had the same issue pairing a Mac G5 powerpc with a 2014 Macbook Pro and resolved it. In addition to pairing the devices through System Preferences>Bluetooth, make sure that "Bluetooth Sharing" is checked in System Preferences>Sharing as well. In my case, the devices always say "disconnected" in the Bluetooth panel, but change to "Connected" during an actual file transfer. Try sending a file even though it says "disconnected" and it may very well work fine. It also helps to check "Show Bluetooth in status in the menu bar" so you can quickly initiate a transfer from there.

  • Refcursor not returning rows when called from non SQL*Plus IDE or other

    Hi all,
    I have a very weird problem.
    We have recently performed a minor upgrade to our oracle database and are now using:
    SQL> select * from v$version;
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
    PL/SQL Release 10.2.0.5.0 - Production
    CORE    10.2.0.5.0      Production
    TNS for Linux: Version 10.2.0.5.0 - Production
    NLSRTL Version 10.2.0.5.0 - Production
    5 rows selected.We have a crystal report selecting data from a refcursor returned by a stored procedure.
    The stored procedure updates data when called as well as returning the refcursor in question.
    Observe the following test scenario executed in SQL*Plus:
    SQL> create table testtab (teststr varchar2(100));
    Table created.
    Elapsed: 00:00:00.00
    SQL> insert into testtab values ('X');
    1 row created.
    Elapsed: 00:00:00.00
    SQL> create or replace procedure testtabproc (p_listcur in out sys_refcursor)
      2  as
      3  begin
      4 
      5     open p_listcur for
      6        select *
      7          from testtab
      8         where teststr = 'X';
      9 
    10 
    11     update testtab
    12        set teststr = 'Y';
    13 
    14        commit;
    15 
    16  end;
    17  /
    Procedure created.
    Elapsed: 00:00:00.00
    SQL> declare
      2 
      3  v_list_cur sys_refcursor;
      4 
      5  type t_out_rec is record (teststr varchar2(100) );
      6 
      7 
      8 
      9  v_out_rec t_out_rec;
    10 
    11  v_rec_count   number := 0;
    12  v_count_limit number := 10000;
    13 
    14  begin
    15 
    16  dbms_output.put_line('about to call proc');
    17
    18  testtabproc(v_list_cur);
    19 
    20  dbms_output.put_line('about to fetch records');
    21 
    22  fetch v_list_cur into v_out_rec;
    23  while v_list_cur%found loop
    24     v_rec_count := v_rec_count + 1;
    25     if v_rec_count <= v_count_limit then
    26       dbms_output.put_line(v_out_rec.teststr);
    27     end if;
    28  fetch v_list_cur into v_out_rec;
    29  end loop;
    30  dbms_output.put_line('complete. selected '||v_rec_count||' records.');
    31 
    32 
    33  end;
    34  /
    about to call proc                                                                                                                 
    about to fetch records                                                                                                             
    X                                                                                                                                  
    complete. selected 1 records.                                                                                                      
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.00
    SQL> select * from testtab;
    TESTSTR
    Y
    1 row selected.
    Elapsed: 00:00:00.00
    SQL> as you can see, the cursor returns data and the table is updated.
    now, our problem is with crystal and also when I use the same test case via another IDE like TOAD.
    No data is returned from the list but the table is still updated.
    We suspect that something is happening that is causing the table to be updated before the refcursor is opened, or at least before the predicates are applied.
    has anyone else encountered this problem before?

    Tubby wrote:
    WhiteHat wrote:
    nope - it works from sqlplus itermitantly (i.e. we always get the debug output but the cursor only sometimes fetches the rows).
    it is almost as if the commit is being executed before the cursor is opened.
    I still havn't been able to reproduce it except with the actual scenario that I am working with...Is the code you are dealing with exactly the same as the skeleton you've posted in your original post? Do you perhaps have a generic exception catcher in there somewhere (perhaps catching and hiding an ORA-01555) when the cursor is being fetched?
    Not that i expect it to make any difference, but i'm curious as to why you've declared your cursor as IN / OUT ?
    p_listcur in out sys_refcursor
    the code structure in the real example is almost identical to that test case I produced - the exception handler is only catering for no_data_found, all other errors should be raised as normal.
    edit: sorry I forgot to add - it's in/out because apparently that's what crystal reports needs in order to use the refcursor..... I'm not a crystal guy so I can't be any more specific than that sorry......
    Edited by: WhiteHat on Oct 11, 2010 9:34 AM

  • Why does .equalsIgnoreCase() not return true when they're equal

    http://pastebin.com/m741df92b
    else if (message.matches("quit")) {
                   System.out.println("inside quit thingie");
                   // sender = sender.trim();
                   for (int i = 0; i < admins.size(); i++) {
                        String admin = admins.get(i);
                        System.out.println("testing :" + admin + ": vs :" + sender
                                  + ":");
                        if (sender.equalsIgnoreCase(admin)) {
                             System.out.println("quitting because of "
                                       + message.substring("quit".length() + 1));
                             super.quitServer(message.substring("quit".length() + 1));
                        } // end if
                   } // end for
    Output:  (the first bit is logging the incoming message)
    #TDWTFMafia:<btk> quit
    inside quit thingie
    testing :btk: vs :btk:Since posting the pastebin, I changed the code a bit so it would spit out the length along with what it's testing. that gave me
    testing :btk: (3) vs :btk: (3)

    Can you make sure the problem is not in
    System.out.println("quitting because of "+ message.substring("quit".length() + 1));
    super.quitServer(message.substring("quit".length() + 1));by replacing these 2 line with something like
    System.out.println("quitting);
    super.quitServer("quit");
    {code}
    Is the code you pasted surrounded by a try/catch statement? If message equals "quit" or something shorter your substring will throw a IndexOutOfBoundsException.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Maybe you are looking for