Matches on ctxrule gives poor results

I have a large set of categorized documents. I ramdomly divided them up into a training set (80%) and a test set. After playing with the classifier a bit, I get about 70% recall and precision.
This is not terrible, but I am able to get much better results using other products with the same data.
I noticed that the classification rules seem to be boolean. There doesn't seem to be any weights associated with them. Is this true? Does anyone know of any future plans to expand the classification rule "language" to include weights, phrases or other means to improve recall and precision?
Thanks,
Brian

If you check the TREC submissions you'll find that Oracle Text has very good quality. The papers are available from otn.oracle.com/products/text. I appreciate that Oracle Text aparently did very well in that particular forum.
Perhaps, by some manipulation of the Classifier, it would be possible for me to approach the percision and recall levels of the other products that we have tried. In fact, Oracle Text initially did much worse using the default settings, and I was able to greatly improve recall by losing a bit of precision. However, I haven't been able to squeeze much more performance out of it since then.
Which other products are you using?I'd rather not post that in a public forum, but if someone from Oracle wished to contact us directly...
I noticed that the classification rules seem to be boolean. There doesn't seem to be any weights associated with them. Is this true? Does anyone know of any future plans to expand the classification rule "language" to include weights, phrases or other means to improve recall and precision?
An overview of the classification piece is here: http://otn.oracle.com/products/text/x/Tech_Overviews/text_901.html#rule
The training set piece is here: http://otn.oracle.com/products/text/x/ot920.html#misc_cls
OK, so the answer, so far, is "no." Is that likely to change in the future?

Similar Messages

  • Custom search using boolean attribute set to True gives no result

    I am setting up an auto-query using the custom search portlet. This is to show all items where a boolean custom attribute is checked, ie = True.
    In step 3 I have tried to set the operator to Equals to and the default value to True. This gives no results even though several items have this attribute set to True.
    The Auto Query check box is checked.

    Found that True = 1 in database. When set to this the search works.

  • Poor result using Compressor

    I need help. I use a Sony camera (HDR CX560) bought in US with NTSC as standard. I live in Europe and would like to burn a DVD for my Blue-Ray player showing it on my PAL TV.
    The footage is 1080i, 1920x1080, 29,97 fps.
    I have tried several different ways of achieving good results, but with no luck:
    1. Editing in Final Cut Pro with original specs (1080i, 29,97). The result showing in FCP viewer is not perfect, but quite good. A little bit of stuttering and a bit blury pictures. I have tried "Send to Compressor...", selected MPEG-2 for DVD in Compressor (customized to 16:9 TV format). The process stops after a minute - a file is being created, but only the first 30 seconds of the movie is visible. I also tried Share>Export file using Compressor settings. The file created does not have acceptable quality, mostly bescause of very disturbing stripes. I also tried Share>Master file but the output is not good enough (using codec Apple ProRes422 (HQ) - same stripes.
    2. Editing in Final Cut Pro with european standard (1080i, 25i). The result in FCP viewer is good with one exception - a lot of stuttering images while panning. I tried all the output/share alternatives mentioned above, with poor result.
    I use OS X 10.8.3, Final Cut Pro X 10.0.8 and Compressor 4.0.7
    Can anyone help?

    pnils wrote:
    . Created a project with the original settings (1080i, 1920x1080, 29,97 fps).
    FCP is usually pretty bullet proof in handling formats – and most of the time letting it set the project properties is the best way.
    From what you've said about the camera and the footage, you shouldn't encounter any potential problems until after you export and start the standards conversion.
    Create another project. When the new project dialogue window appears, make sure the settings are set to automatic (video properties set by first clip). Take one of the 1080i 60 clips and edit it to the timeline to set those properties. Export that clip as a test. If it plays smoothly, and it should, proceed to delete the clip from the project and paste the problem sequence to the new project. Delete all project render files and event render files. Now export (don't bother to re-render).
    Post back with results.
    Russ

  • P/L A/c for a single day gives different results for different users

    Hi!
         We have SAP B1 8.81 (PL 09) in our office. P/L Account for a particular date gives different value for a single account (Other Income Account) for one user and a consistent value for all other users. The user in question is a super user and does not seem to pick a specific entry posted in the Other Income Account for that day thus giving erroneous result. I have checked the Trial Balance for that day and it gives proper result. Only the P/L account gives erroneous data. Could anyone help with the reason for this.
    Thanks
    Sreekumar

    Hi Jitin,
              Thanks for your reply.
              I tried the way you mentioned. However, the result is the same.
              The entry that I'm talking about is an automatic journal entry posted through the Outgoing Payment option.
              To make it more clear, an outgoing payment to a vendor was posted on 05/19/11 for 1,42,178.32. The check was drawn only for 71,089.16 which was the correct amount and the remaining amount (71,089.16) got posted in the Other Income account. The P/L account for this date is not picking the amount of 71,089.16 in the Other Income Account.
    Thanks & Regards
    Sreekumar
    Edited by: Sreekumar on Jan 31, 2012 5:58 PM

  • The app console doesn't match. It gives error -1712

    THE app console doesn't match. It gives erro -1712. The store has already changed the memory

    Try using Google's DNS instead of the one your IPS is providing.
    - To change on the iPod go to Settings>wifi and change the DNS to 8.8.8.8
    - For the computer see:
    Public DNS — Google Developers
    - Did anything happen to your router right before this started? Maybe the router is blocking the port used.

  • Enterprise Manager does not give correct results

    I am using version 9.0.2.0.1 core edition(oc4j & web-cache).
    My application consists of business components, java beans and jsp. It is running fine.
    Oracle enterprise manager is not giving correct results of memory/cpu usage by oc4j_home and bc4j.
    Some times it does not gives result, when i refresh it twice or thrice it shows results.
    But results are not correct. On each refresh it gives different results.
    Then it is very hard to find which resuslt is correct.
    waiting for response,
    Tahir.

    i have been using 9iAS versions 102*, 90200, 90201, and now using 903.
    As stated above, some times the results for oc4j_home is displayed.
    But the memory/cpu usage for bc4j is never shown.
    Also, its radio-button is always disabled. while its status is "running".
    On BC4J page, it also shows results of application modules created. But these results are usually wrong.
    How bc4j will be enabled, and how its memory results can be get ???
    Tahir.

  • Calling PL/SQL Procedure In Another Schema Gives Unexpected Result

    I have a SQL Script that does this:
    conn pnr/<password for user pnr>;
    set serveroutput on;
    exec vms.disable_all_fk_constraints;
    SELECT owner, constraint_name, status FROM user_constraints WHERE constraint_type = 'R';
    and the disable_all_fk_constraints procedure that is owned by user 'vms' is defined as:
    create or replace
    procedure disable_all_fk_constraints is
    v_sql   VARCHAR2(4000);
    begin
    dbms_output.put_line('Disabling all referential integrity constraints.');
    for rec in (SELECT table_name, constraint_name FROM user_constraints WHERE constraint_type='R') loop
    dbms_output.put_line('Disabling constraint ' || rec.constraint_name || ' from ' || rec.table_name || '.');
    v_sql := 'ALTER TABLE ' || rec.table_name || ' DISABLE CONSTRAINT ' || rec.constraint_name;
    execute immediate(v_sql);
    end loop;
    end;
    When I run the SQL script, the call to vms.disable_all_fk_constraints disables the FK constrains in the 'vms' schema, whereas I wanted it to disable the FK constraints in the 'pnr' schema (the invoker of the procedure). I know that I could make this work by copying the disable_all_fk_constraints procedure to the 'pnr' schema and calling it as "+exec disable_all_fk_constraints;+" from within the SQL script but I want to avoid having to duplicate the PL/SQL procedure in each schema that uses it.
    What can I do?
    Thank you

    You have two issues to solve.
    First you need to write a packaged procedure that works with INVOKER rights. The default is DEFINER rights.
    The difference is excatly what you need. Usually the package has the rights from the schema where it is defined (=Definer rights). In your case schema VMS. Whereas you need the privileges from the user that calls the package (PNR).
    => Check out the documentation for INVOKER rights
    The second problem is that the view "user_constraints" will not give the results you expect when called from inside a procedure in another schema. An alternative could be to use the view DBA_CONSTRAINTS with a filter on the owner (where owner = 'PNR'). Not sure if there are other working possibilities. Well you could create a list of constraint names that you want to disable, instead of creating the list dynamically.
    And you could have another potential disaster creeping up upon you. If you run this thing, then at this moment you don't have any referential integrity anymore. You can't be sure that you can create the FKs again after this action. This is EXTREMLY DANGEROUS. I would never ever do this in any kind of production or test database. I would be very careful when I do it on a development database.

  • 0I_FYPER - Variable in BEx gives no result

    Hello all,
    I have a problem in BEx-reporting after a releasechange from BW3.5 to BI7.0 and at the same time SEM-BCS4.0 to SEM-BCS6.0 which belongs to the variable 0I_FYPER. I use this variable in the columns (only) in order to give the user the possibillity to define which periods to show. In the rows I use the rest for defining which numbers to bring up. It worked in BW3.5/SEM-BCS4.0 fine.
    I debuged the content of the variable in user-exit ZXRSRU01 (after processing the selection screen) and could find the data I entered but the query gives no result. Any ideas?
    Thank you for any feedback,
    Chris

    Hi Guru,
    We have a work around for your issue. Just create a customer Exit variable on the calendar month and use it in the filter.
    In the customer Exit variable read the Plant variable and if it is empty populate # as result. Else read the calmonth input variable and populate it as the result.
    Use the following snippet to read input ready variables.
    DATA: loc_var_range LIKE rrrangeexit.
    READ TABLE i_t_var_range WITH KEY vnam = 'VARNAME' INTO loc_var_range.
    (loc_var_range-low will have the value of the variable)
    Hope this helps.
    Regards.
    Shafi.

  • Do IMAQ Cast Image or IMAQ Linear averages give different results when using different computers that are running under Windows XP ?

    Hello
    I'm currently developping an image processing algorithm using Labview 7.1 and the associated IMAQ Vision tools. After several tests, I found a weird result. Indeed, I put the labview algorithm - including the IMAQ VI on the library to get sure that I use all the time the same VI - on my memory stick and used it on two different computers. I tested the same picture (still in my memory stick) and had two very different results.
    After several hours trying to understand why, I found that there were a difference between the results given by both computers at the very begining of the algorithm. Indeed, I used a JPEG file.
    To open it, I first create an Image with IMAQ Create (U8). Then, I open it.
    Then in my first sub-VI, I use IMAQ Cast Image to be sure that the picture is a U8 grayscale picture.
    Right after that, I use the IMAQ Linear Averages. The results of this VI are different on the two computers.
    I tried several time on the same picture : one computer always give me the same result but the two computers give me a different result. So there is no random variable on the results.
    So my question is : Do IMAQ Cast Image or IMAQ Linear averages give different results when using different computers that are running under Windows XP ?
    My bet is on IMAQ Cast Image but I'm not quite sure and I do not undestand why. The labview and IMAQ are the same on both computers.
    The difference between the two computer are above :
    Computer 1 :
    Pentium(R) 4 CPU 3.20GHz with a RAM of 1Go. The processor is an Intel(R).
    The OS is windows XP Pro 2002
    Computer 2 :
    Pentium(R) 4 CPU 2.80GHz with a RAM of 512Mo. The processor is an Intel(R).
    The OS is windows XP Pro 2002.
    If anybody can help me on this problem, it would be really helpful.
    Regards
    Florence P.

    Hi,
    Indeed it's a strange behaviour, could you send me your VI and your JPEG file, (or another file that reproduces) so that I could check this inthere ?
    I'll then try to find out what's happening.
    Regards
    Richard Keromen
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> Découvrez, en vidéo, les innovations technologiques réalisées en éco-conception

  • NonLinearFitWithMaxIters does not give correct results for phase

    Dear all,
    I am trying to fit a sin cuve with NonLinearFitWithMaxIters function of labwindows, but the results given by this function are dispersed a lot (the function does not give same results).
    In fact, I have two waveforms signals v and i (of 104 points), and I  find the phase between the two signals with NonLinearFitWithMaxIters.
    The two singals v and i are  measured with an osciloscope.
    I use the following fit functions :
    v=p1*sin(wt+p2) ;
    i=p3*sin(wt+p4) ;
    I use the NonLinearFitWithMaxIters function to fit the data and to have the parameters  p1, p2, p3, p4. Then, the phase is claculated as follow phase=p4-p3.
    The problem is that the phase calculted between the two signals (v and i) is different for each run for the same conditions.
    In fact, for a same condition, I measure different times the signals v and i, and I calculate the phase p4-p3, using NonLinearFitWithMaxIters. The goal is to calculate a mean of phases for the same condition. For example, there are cases where the phase=-5 degree, and other cases when phase=12 degree.
    For ten measures of v and i, the phase calculated is different. I get a big dispersion between the phases.
    I would like to know please why I have a big difference in phases calculated with the same condition?whern using NonLinearFitWithMaxIters.
    I read that this function does not give all time the correct results, is there a way to know when the results are not corrects and when they are correct ?
    And is there any solution to find accuratly the phase between the two waveforms.
    Thank you for your precious answer.

    The pseudocode which I am using is :
    v_err=NonLinearFitWithMaxIters(array_x,array_v,v_y_fit,1252,100,sinus,v_coef,2,&v_mean_squareError);
    The fit function is
    double sinus(double x, double a[],int noef){
        return (a[0]*sin((w*x)+a[1]));
     I use the same inital coeficient of v_coef for each run :     
    v_coef[0]=0.03;
    v_coef[1]=0.2;
    These coeficient are choosen arbitrary.
    In this case, the number of points of the data is 1252 (the data of array_v).
    The number of iterations is 100.
    For the array_x, the distance between adjacents values of the array is dt=0.4*1e-9(difference between array_x[i] anv array_x[i+1]=dt=0.4*1e-9 ).
    for (i=0;i<1252;i++){
    array_x[i]=i*(0.4*1e-9);
    The means square error returnned by the function when it is complished is  small, of the order of 0,001.
    I read the help
    « From the help:
    You must pass a pointer to the nonlinear function f(x,a) along with a set of initial guess coefficients a. NonLinearFitWithMaxIters does not always give the correct answer. The correct output sometimes depends on the initial choice of a. It is very important to verify the final result.
    That means that the function cannot be used, as it does not give correct results. How
    can we check if the results are good or not ? in my case.
    I think that in my case, the function does not give correct results, but how can I check if the results are good, or not ? The mean square error is small.

  • Poor results importing PSE7 slideshows into PRE7

    I originally posted this query into the Photoshop Elements forum ('cos I couldn't find this one originally...) and received some very helpful replies from Barb__O - thanks Barb.  These have given me some useful leads on things to try, which I've done and did see some improvements, but I'm still not at the point of being happy with the results.  The problem appears to be a PRE problem, so reposting here...
    I am trying to put together a video presentation for output directly to PC monitor (more specifically, LCD data projector of 1024 x 768 resolution) and then record to DVD, in PAL SD format.
    The presentation is to contain slideshows put together in PSE7 (so they already include title slides, transitions, Ken Burns effects and music tracks) and video clips from a couple of different sources - one clip is a scanned Standard 8 film (format is a frame-to-frame AVI at 720 x 576 resolution ie SD PAL) and some clips from a 1440 x 1080 HD (H.264) video camera (Canon HF10).  Reading through some of the forums, I'm doubting that PRE7 will be able to handle this variety of input formats...
    The still images come from many sources - digital camera, scanned prints (B&W and colour) and scanned transparencies.  All images were dropped into the PSE7 slideshow in their respective original sizes/resolutions.  There are close to 100 images in the slideshow.  Apart from a few scanned B&W print enlargements that were spat out by PSE7 because they were too large (other photo editors had no problem with them - seems PSE is a little precious in this regard...) the process of putting the slide show together went pretty smoothly.
    Playing the finished slideshow in the PSE7 preview window, the results were excellent.  Exporting the slideshow as a 1024 x 768 WMV file and playing it in any media player yielded the same, excellent results!  So far, so good.
    I then wanted to put everything together using PRE7 - slideshows, video clips and titles.  From PSE7 I clicked the "send slideshow to Premiere Elements" at which point the slideshow was dutifully dropped into my currently opened PRE7 project.  As the project already contained the aforementioned scanned Standard 8 clip, the project setting was PAL DV 48kHz.  I was feeling exuberant at this stage.  I added a couple of title slides and a transition or two and played the result in the PRE7 full screen preview window...
    I was absolutely horrified with what I saw when the slideshow started to play.  All of the still images were badly pixellated, had jagged edges and any vertical wipe transitions had a horrible, angular ripple effect.  In short, unwatchable.
    As I had to get the presentation done and was clearly getting nowhere with PRE7, I exported all my slideshows out of PSE7 as WMVs, my video clip out of PRE7 as an AVI and dropped everything into Windows Movie Maker, with excellent results on the PC monitor and the LCD projector.  Clearly there was/is a problem with PRE7 or one or more of its esoteric settings.
    I now want to add another slideshow and the HD video clips mentioned above to the presentation and then burn to DVD.  I would like to use PRE7 to do this, as I can set up menu markers where I want and I want to make finer adjustments to relative positions of stills and video than Movie Maker will allow - but obviously this is all dependent on resolving the quality problems.
    After suggestions given by Barb, I played around with the PRE7 project setting and tried various settings here, eg HDV, SVHCD etc.  These certainly improved the quality of the still images in the slideshows (to the point where I was happy with them), but the transitions were still ugly and the pan/zoom effects became jerky and distracting, not only that, but the music track that I had synchronised with the slideshow, with a nice fade out at the end, just ended abruptly - again distracting and not at all good.
    To be honest I'm confused with that project setting - should this be set to the format I want the finished project output to end up in, or is it set to the format of video input to the project?  If the latter, how does it deal with different format video clips?
    I've also read about the recommendation to set all still images to 1000 x 750 pixels - this would have been fine if I'd known this *before* I put together the slideshows, I don't want to have to re-do them all again (or can I re-size the images while they are actually *in* the slideshow?)!  Besides, PSE7 itself and Windows Movie Maker handle images larger than this, quite happily.  Why can't PRE7?  Also, how is this resolved for large portrait orientated images?  What is the primary dimension (width or height)?
    As an aside, I tried re-sizing a single image to 1000 x 750 and dropping straight into PRE7, but I still get poor results (ie grainy, pixellated image)!  ("Scale to framesize" is off)
    So am I flogging a dead horse here or can I resurrect things so that I can end up with a reasonably professional looking result?  I really want to love these two products, they do some things really well, but so far, my overall user experience has been one of complete frustration and disappointment.  The user interfaces of these two products have to be about the worst I've come across!
    Thanks.

    Steve,
    FYI - I think that MK had already tried sending directly from PSE 7 to PRE 7 see his mention of
    I then wanted to put everything together using PRE7 - slideshows, video
    clips and titles.  From PSE7 I clicked the "send slideshow to Premiere
    Elements" at which point the slideshow was dutifully dropped into my
    currently opened PRE7 project.  As the project already contained the
    aforementioned scanned Standard 8 clip, the project setting was PAL DV
    48kHz.
    One of my concerns about the specifc scenario is that the PE project setting was PAL SD video and the expected projector resolution was thought to be 1024x768 (and therefore higher resolution). even with Scale to Framesize off, I was not sure if that resolution difference would be a problem.
    Your suggestion is making the PAL SD DVD and then using a software DVD player to play that DVD to the 1024x768 projector.   That is a different approach that I had not considered -- but it would probably avoid some of the awkwardness of dealing with 2 distinct types and resolutions of output.
    MK,
    Your earlier post (if I understood it correctly) said that after the presentation using the projector, you would be making DVDs for distribution. Now I suspect that these would be standard definiton DVDs and probably PAL.
    I recommend that you confirm in this thread what your current plans are for distributiion and playback.
    Once the best fit for a PE project type is resolved, I do think it is worth another try of sending the slideshow from PSE 7 slide show editor to the PE 7 project.
    Yes, you may expereince some timing differences between the playback you saw in the PSE slide show editor and what you see in the playback under Premiere Elements (note Steve's point to be sure that you should render in PE before doing playback).   Based on what you observe for your specific slide show, these differences can be discussed.
    ADDITIONAL comments
    played the result in the PRE7 full screen preview window...
    I missed this earlier.  Because your computer monitor is probably much higher resolution, I question whether this full screen preview is an effective evaluation of the final quality. Steve and Hunt, what are your comments on this?
    MK
    can I re-size the images while they are actually *in* the slideshow?)!
    Besides, PSE7 itself and Windows Movie Maker handle images larger than
    this, quite happily.
    re-size images while they are actually in the slide show -- maybe but not easy
    1 --When in the PSE slide show or from the PE Timeline, you can edit an individual photo and replace the existing photo with the results of that edit. However that is a one at a time operation and most probably not what you want.  It is better suited to adjustments to a specific photo when you determine it needs to be differrent for this slide show.
    2 --Once your slide show is on the Premiere Elements Timeline, a few people have swapped out a folder of photos and brought in a different folder of downsized same photos. This is tricky but probably can be done: it is probably simpler if all photos are in the same folder. Also portrait photos probably need to be handled separately from landscape photos.
    FYI - PSE 7 slide show can sometimes handle larger images and you did not have a problem - but others do have problems and you might in the future. This seems to depend on both the specifics of the photo files and the computer system configuration.

  • Getting poor results with Refine Edge tool

    Not sure if anyone else has run into this issue. But after following numerous tutorials on lynda.com as well as tv.adobe.com and youtube, I just can't get good selection results using the Refine Edge tool in Photoshop CC and I'm convinced it's something I'm doing wrong, but I have no idea what.
    After downloading this Wikipedia image of Bismarck for a history documentary, I tried isolating the figure from the background using Refine Edge and keep getting poor results. Maybe it's my settings, I'm just not sure. But after painting over my edges, I end up with terrible results. Unfortunately, I'm getting poor results with other images as well. Can anyone venture to guess what I might be doing wrong? Thanks very much in advance.

    Hi ninose11,
    For this type of project and idea, I would recommend trying some of the magnetic lasso tool. The tool is located as the third tool in the toolbar (you should see a lasso or rope looking icon), hold down the icon and it should expand - then select the magnetic lasso tool. The magnetic lasso tool will allow you to scroll over the edge of his profile and it will automatically detect the outline edges. The slower you roll-over the shape the higher the accuracy will be. If the magnet is not detecting a particular edge or sharp corner (for example, the ear) you can manually drop points by simply right-clicking at any point during the selection. If the edge is too sharp, you can also create a light feather which will blend the edge softly (this should be located at the top).
    If this is unsuccessful still, you can try selecting by color, using the Magnetic Wand Tool (forth icon in the toolbar, again hold down for all options). Once you are using the magnetic wand tool, you should be able to select all the black areas of the background to delete. You can increase or decrease the tolerance to change the sensitivity of the selection.
    Hope this helps!

  • Select for update gives wrong results. Is it a bug?

    Hi,
    Select for update gives wrong results. Is it a bug?
    CREATE TABLE TaxIds
    TaxId NUMBER(6) NOT NULL,
    LocationId NUMBER(3) NOT NULL,
    Status NUMBER(1)
    PARTITION BY LIST (LocationId)
    PARTITION P111 VALUES (111),
    PARTITION P222 VALUES (222),
    PARTITION P333 VALUES (333)
    ALTER TABLE TaxIds ADD ( CONSTRAINT PK_TaxIds PRIMARY KEY (TaxId));
    CREATE INDEX NI_TaxIdsStatus ON TaxIds ( NVL(Status,0) ) LOCAL;
    Insert into TAXIDS (TAXID, LOCATIONID, STATUS) Values (100101, 111, NULL);
    Insert into TAXIDS (TAXID, LOCATIONID, STATUS) Values (100102, 111, NULL);
    Insert into TAXIDS (TAXID, LOCATIONID, STATUS) Values (100103, 111, NULL);
    Insert into TAXIDS (TAXID, LOCATIONID, STATUS) Values (100104, 111, NULL);
    Insert into TAXIDS (TAXID, LOCATIONID, STATUS) Values (200101, 222, NULL);
    Insert into TAXIDS (TAXID, LOCATIONID, STATUS) Values (200102, 222, NULL);
    Insert into TAXIDS (TAXID, LOCATIONID, STATUS) Values (200103, 222, NULL);
    --Session_1 return TAXID=100101
    select TAXID from TAXIDS where LOCATIONID=111 and NVL(STATUS,0)=0 AND rownum=1 for update
    --Session_2 waits commit
    select TAXID from TAXIDS where LOCATIONID=111 and NVL(STATUS,0)=0 AND rownum=1 for update
    --Session_1
    update TAXIDS set STATUS=1 Where TaxId=100101;
    commit;
    --Session_2 return 100101 opps!?
    --Session_1 return TAXID=100102
    select TAXID, STATUS from TAXIDS where LOCATIONID=111 and NVL(STATUS,0)=0 AND rownum=1 for update
    --Session_2 waits commit
    select TAXID, STATUS from TAXIDS where LOCATIONID=111 and NVL(STATUS,0)=0 AND rownum=1 for update
    --Session_1
    update TAXIDS set STATUS=1 Where TaxId=100102;
    commit;
    --Session_2 return 100103                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    This is a bug. Got to be a bug.
    This should be nothing to do with indeterminate results from ROWNUM, and nothing to do with read consistency at the point of statement start time in session2., surely.
    Session 2 should never return 100101 once the lock from session 1 is released.
    The SELECT FOR UPDATE should restart and 100101 should not be selected as it does not meet the criteria of the select.
    A statement restart should ensure this.
    A number of demos highlight this.
    Firstly, recall the original observation in the original test case.
    Setup
    SQL> DROP TABLE taxids;
    Table dropped.
    SQL> 
    SQL> CREATE TABLE TaxIds
      2  (TaxId NUMBER(6) NOT NULL,
      3   LocationId NUMBER(3) NOT NULL,
      4   Status NUMBER(1))
      5  PARTITION BY LIST (LocationId)
      6  (PARTITION P111 VALUES (111),
      7   PARTITION P222 VALUES (222),
      8   PARTITION P333 VALUES (333));
    Table created.
    SQL>
    SQL> ALTER TABLE TaxIds ADD ( CONSTRAINT PK_TaxIds PRIMARY KEY (TaxId));
    Table altered.
    SQL>
    SQL> CREATE INDEX NI_TaxIdsStatus ON TaxIds ( NVL(Status,0) ) LOCAL;
    Index created.
    SQL>
    SQL>
    SQL> Insert into TAXIDS (TAXID, LOCATIONID, STATUS) Values (100101, 111, NULL);
    1 row created.
    SQL> Insert into TAXIDS (TAXID, LOCATIONID, STATUS) Values (100102, 111, NULL);
    1 row created.
    SQL> Insert into TAXIDS (TAXID, LOCATIONID, STATUS) Values (100103, 111, NULL);
    1 row created.
    SQL> Insert into TAXIDS (TAXID, LOCATIONID, STATUS) Values (100104, 111, NULL);
    1 row created.
    SQL> Insert into TAXIDS (TAXID, LOCATIONID, STATUS) Values (200101, 222, NULL);
    1 row created.
    SQL> Insert into TAXIDS (TAXID, LOCATIONID, STATUS) Values (200102, 222, NULL);
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> Original observation:
    Session1>SELECT taxid
      2  FROM   taxids
      3  WHERE  locationid    = 111
      4  AND    NVL(STATUS,0) = 0
      5  AND    ROWNUM        = 1
      6  FOR UPDATE;
         TAXID
        100101
    Session1>
    --> Session 2 with same statement hangs until
    Session1>BEGIN
      2   UPDATE taxids SET status=1 WHERE taxid=100101;
      3   COMMIT;
      4  END;
      5  /
    PL/SQL procedure successfully completed.
    Session1>
    --> At which point, Session 2 returns
    Session2>SELECT taxid
      2  FROM   taxids
      3  WHERE  locationid    = 111
      4  AND    NVL(STATUS,0) = 0
      5  AND    ROWNUM        = 1
      6  FOR UPDATE;
         TAXID
        100101
    Session2>There's no way that session 2 should have returned 100101. That is the point of FOR UPDATE. It completely reintroduces the lost UPDATE scenario.
    Secondly, what happens if we drop the index.
    Let's reset the data and drop the index:
    Session1>UPDATE taxids SET status=0 where taxid=100101;
    1 row updated.
    Session1>commit;
    Commit complete.
    Session1>drop index NI_TaxIdsStatus;
    Index dropped.
    Session1>Then try again:
    Session1>SELECT taxid
      2  FROM   taxids
      3  WHERE  locationid    = 111
      4  AND    NVL(STATUS,0) = 0
      5  AND    ROWNUM        = 1
      6  FOR UPDATE;
         TAXID
        100101
    Session1>
    --> Session 2 hangs again until
    Session1>BEGIN
      2   UPDATE taxids SET status=1 WHERE taxid=100101;
      3   COMMIT;
      4  END;
      5  /
    PL/SQL procedure successfully completed.
    Session1>
    --> At which point in session 2:
    Session2>SELECT taxid
      2  FROM   taxids
      3  WHERE  locationid    = 111
      4  AND    NVL(STATUS,0) = 0
      5  AND    ROWNUM        = 1
      6  FOR UPDATE;
         TAXID
        100102
    Session2>Proves nothing, Non-deterministic ROWNUM you say.
    Then let's reset, recreate the index and explicity ask then for row 100101.
    It should give the same result as the ROWNUM query without any doubts over the ROWNUM, etc.
    If the original behaviour was correct, session 2 should also be able to get 100101:
    Session1>SELECT taxid
      2  FROM   taxids
      3  WHERE  locationid    = 111
      4  AND    NVL(STATUS,0) = 0
      5  AND    taxid         = 100101
      6  FOR UPDATE;
         TAXID
        100101
    Session1>
    --> same statement hangs in session 2 until
    Session1>BEGIN
      2   UPDATE taxids SET status=1 WHERE taxid=100101;
      3   COMMIT;
      4  END;
      5  /
    PL/SQL procedure successfully completed.
    Session1>
    --> so session 2 stops being blocked and:
    Session2>SELECT taxid
      2  FROM   taxids
      3  WHERE  locationid    = 111
      4  AND    NVL(STATUS,0) = 0
      5  AND    taxid         = 100101
      6  FOR UPDATE;
    no rows selected
    Session2>Of course, this is how it should happen, surely?
    Just to double check, let's reintroduce ROWNUM but force the order by to show it's not about read consistency at the start of the statement - restart should prevent it.
    (reset, then)
    Session1> select t.taxid
      2   from
      3    (select taxid, rowid rd
      4      from   taxids
      5      where  locationid = 111
      6      and    nvl(status,0) = 0
      7      order by taxid) x
      8   ,  taxids t
      9   where t.rowid = x.rd
    10   and   rownum = 1
    11   for update of t.status;
         TAXID
        100101
    Session1>
    --> Yes, session 2 hangs until...
    Session1>BEGIN
      2   UPDATE taxids SET status=1 WHERE taxid=100101;
      3   COMMIT;
      4  END;
      5  /
    PL/SQL procedure successfully completed.
    Session1>
    --> and then
    Session2> select t.taxid
      2   from
      3    (select taxid, rowid rd
      4      from   taxids
      5      where  locationid = 111
      6      and    nvl(status,0) = 0
      7      order by taxid) x
      8   ,  taxids t
      9   where t.rowid = x.rd
    10   and   rownum = 1
    11   for update of t.status;
         TAXID
        100102
    Session2>Session 2 should never be allowed to get 100101 once the lock is released.
    This is a bug.
    The worrying thing is that I can reproduce in 9.2.0.8 and 11.2.0.2.

  • [solved]lspci gives strange results

    I just reinstalled, and am trying to get my wireless card up and running.  I ran lspci, then lspci -nn, and it gives unexpected results.  Instead of listing things like vendors and such as intel, and ralink, it just lists non-useful stuff in a format like this:
    xx.xx.x Class [xxxx] Device [xxxx:xxxx] rev 40
    (where all x's are digits)
    what does this mean?  where is the useful information that I was expecting to find (like actual device names)?  What did I forget to do?
    edit:
    Now I have Xorg up, so I'll post the output:
    lspci
    00:00.0 Class 0600: Device 1002:5957
    00:02.0 Class 0604: Device 1002:5978
    00:09.0 Class 0604: Device 1002:597e
    00:0a.0 Class 0604: Device 1002:597f
    00:11.0 Class 0106: Device 1002:4390 (rev 40)
    00:12.0 Class 0c03: Device 1002:4397
    00:12.2 Class 0c03: Device 1002:4396
    00:13.0 Class 0c03: Device 1002:4397
    00:13.2 Class 0c03: Device 1002:4396
    00:14.0 Class 0c05: Device 1002:4385 (rev 42)
    00:14.1 Class 0101: Device 1002:439c (rev 40)
    00:14.3 Class 0601: Device 1002:439d (rev 40)
    00:14.4 Class 0604: Device 1002:4384 (rev 40)
    00:14.5 Class 0c03: Device 1002:4399
    00:15.0 Class 0604: Device 1002:43a0
    00:16.0 Class 0c03: Device 1002:4397
    00:16.2 Class 0c03: Device 1002:4396
    00:18.0 Class 0600: Device 1022:1200
    00:18.1 Class 0600: Device 1022:1201
    00:18.2 Class 0600: Device 1022:1202
    00:18.3 Class 0600: Device 1022:1203
    00:18.4 Class 0600: Device 1022:1204
    01:00.0 Class 0c03: Device 1033:0194 (rev 03)
    02:00.0 Class 0200: Device 10ec:8168 (rev 06)
    03:00.0 Class 0c00: Device 1106:3403 (rev 01)
    04:00.0 Class 0300: Device 10de:0e22 (rev a1)
    04:00.1 Class 0403: Device 10de:0beb (rev a1)
    05:05.0 Class 0280: Device 1814:0301
    05:06.0 Class 0401: Device 1102:0004 (rev 04)
    05:06.1 Class 0980: Device 1102:7003 (rev 04)
    05:06.2 Class 0c00: Device 1102:4001 (rev 04)
    Last edited by Convergence (2012-06-07 02:48:41)

    Falconinidy:  You're right!  That was a  bad move.  Thanks!

  • 0CRM_OPPT_H  (Transaction RSA3 gives wrong result)

    Hi gurus,
    <b>0CRM_OPPT_H  (Transaction RSA3 gives wrong result)
    BBPCRM 4.0
    BW 3.50 version</b>
    I had enhanced the structure "crmt_bw_oppt_h"
    and also written a BADI to populate Opportunity header status.
    But when I run extract checker RSA3 for CRM data,
    I get wrong number of records.
    I am having 95 records for Opportunities header data.
    Data Records / Call = "100"
    Display Extr. Calls = "10"
    Above settings, I am retrieving only 61 records.
    <b>Data Records / Call = "1"
    Display Extr. Calls = "200"
    For the above settings in RSA3,
    I am able to retrieve 95 records correctly.</b>
    The problem is that in RSA1 transaction of BW 3.50 server also,
    61 records are being loaded from CRM server.
    <b>Could this be a Cache memory problem,
    Are any of my BASIS settings a cause for this problem?</b>
    Any help is really appreciated and will be rewarded.
    Thanks,
    Aby Jacob
    ========

    Dear Friends,
    <b>I had to do a small correction in my BADI code.
    I got a solution from Online SAP HELP portal.</b>
    http://help.sap.com/saphelp_nw04/helpdata/en/eb/3e7cf4940e11d295df0000e82de14a/frameset.htm
    Notes on BADI Usage
    ====================
    The instance generated through the factory method should be declared
    as globally as possible or generally be passed as a parameter
    to ensure that the initialization process must be run as rarely as possible
    – just once would be best. In no case should you discard the instance as soon as
    it is generated or repeatedly run the initialization process in a loop.
    Within the adapter class interface,
    required database accesses are buffered locally,
    so that each access is executed once only.
    However, repeated initialization makes
    the buffer useless and dramatically reduces performance.
    Due to the local buffering, you can call Business-Add-In methods
    without having to expect considerable performance restrictions,
    even if no active implementations exist.
    Also, if the definition of the Business-Add-In is filter-dependent,
    a single instance is sufficient.
    However, you should not do without initialization altogether.
    Even if you could call static methods of the implementing
    class of the Business-Add-In implementation without an instance,
    you would lose the benefit of performance improvement through
    the Business-Add-Ins and the possibility of multiple use.
    If you switch the method type in the interface from the static method
    to the instance method at any time in the future,
    many code adjustments are required.
    In addition, you can no longer use default code that is provided.
    <b>Many Thanks to ROBIN
    and the whole SDN team</b>
    Aby Jacob ,,,,,

Maybe you are looking for

  • HT201077 Is it possible to change the owner of a shared photo stream?

    Hi I set up a shared photo stream on my brother in laws phone because I shot some pictures with his phone after my battery died. Now I would like to know if it is possible to change the ownership of this photo stream to me so I can add more people to

  • How can I configure to use a HP Laserjet 4000 network printer on Solaris 8?

    Hi, I have to configure a Solaris 8 machines to print some doc on a network HP Laserjet printer. However, I have no idea how to configure it. Do anyone have some suggestion how to do it? Do I need JetDirect to do so? If yes, how can I get it? Thx a l

  • N82: Using memory card in computer

    I just bought my N82 yesterday. Using the adapter included I tried inserting the mircoSD card in my computer. However, I can't access it but instead get a message that I need to format my card. Is this the way it supposed to be or is something wrong?

  • Operate small business wsebsite on iWeb?

    Hi. Before I spend too much time exploring iWeb '08, I am curious if it is possible to host a website for my small business effectively, or is it better to buy a domain from godaddy and build my site in the more typical fashion? Thanks....

  • Header Text exceeding 40 chars in ALV Grid display

    Hi I have an ALV (GRID) report, where one of the column headings has text length exceeding 40 chars. In my code, I have declared -  wa_fieldcat-seltext_l   = text-017, where the seltext_l length is restricted to 40chars. Is there any way by which i c