Question about behavior of txn_checkpoint()

I'm just trying to determine if the behaviour I'm seeing is expected or whether I have coded something wrong.
I am using version 4.7.25 in a replicated (1 master 1 slave) environment. I have a main thread that reads network requests and does db->get() or db->put() as appropriate. I have a second thread that calls txn_checkpoint every minute. During a checkpoint, my put() performance falls right away, with some puts taking over 16 seconds to complete (the checkpoint runs for about 50 seconds).
Is this expected? Does checkpointing lock the environment, database or many pages at once or is all caused by heavy disk IO?
The environment has the following flags set: DB_AUTO_COMMIT | DB_TXN_NOSYNC and is opened with DB_CREATE | DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_RECOVER | DB_THREAD|DB_INIT_REP;
My primary database has no flags set, my secondary has DB_DUPSORT. My cache is large compared to the data in the database.
One thing worth mentioning is that the machine only has 1 disk, so my databases and log records are both sharing it.
Would setting DB_MULTIVERSION and using snapshot isolation improve throughput during checkpoints at all?
TIA for any help or pointers anyone can give.
Ashley

I am not very familiar with the internals of checkpoints or how they do their locking. But I am aware of some known performance considerations when using checkpoints with replication.
Are you using Replication Manager? If so, what is your ack_policy and ack_timeout? I'll assume you are using Replication Manager in my answer below.
I am using version 4.7.25 in a replicated (1 master 1 slave) environment. I have a main thread that reads network requests and does db->get() or db->put() as appropriate. I have a second thread that calls txn_checkpoint every minute. During a checkpoint, my put() performance falls right away, with some puts taking over 16 seconds to complete (the checkpoint runs for about 50 seconds).
Is this expected? Does checkpointing lock the environment, database or many pages at once or is all caused by heavy disk IO?When you do a checkpoint on the master, it causes a checkpoint to happen on the client as well. For most ack_policies, the master needs to wait for the client's checkpoint to consider its own checkpoint durable.
It is possible that due to things like hardware differences or workload differences, the client's checkpoint may take longer than the master's. We provide the DB_REP_CHECKPOINT_DELAY timeout to account for this difference. You set it with DB_ENV->rep_set_timeout() and its default is 30 seconds. If you are sure your client checkpoints are going to be shorter than that, you can decrease this timeout value.
A client definitely cannot apply new master transactions while it is doing its checkpoint. This means any new master transactions must wait until the client checkpoint is finished before they can be considered durable. This may explain some of your performance issue.
>
The environment has the following flags set: DB_AUTO_COMMIT | DB_TXN_NOSYNC and is opened with DB_CREATE | DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_RECOVER | DB_THREAD|DB_INIT_REP;
My primary database has no flags set, my secondary has DB_DUPSORT. My cache is large compared to the data in the database.
One thing worth mentioning is that the machine only has 1 disk, so my databases and log records are both sharing it.You are using DB_TXN_NOSYNC, which means transactions are not flushed to disk when the are committed. Depending on the size of your workload and your log buffers, you could be building up considerable activity that needs to be done during your checkpoint.
>
Would setting DB_MULTIVERSION and using snapshot isolation improve throughput during checkpoints at all?We do not support replication with transaction snapshots. This is on our list of future enhancements to consider.
Paula Bingham
Oracle

Similar Messages

  • Question about behaviors

    When you select a thumbnail and add a behavior to have it
    open in a new window.....can you change the background in the blank
    window to black? How would you format this? The behavior attribute
    has not option for background color...so how can this be done?
    thanks from Pam Lane

    You have to create a HTML page with a black background, put
    the
    full-size image in it and have the thumbnail open that page
    in the new
    window.
    James M. Shook
    http://www.jshook.com

  • Question about Behaviors and Open Browser Window

    First my link:
    http://www.progressity.com/portfolio.htm
    I've created a Portfolio section in my web site. When you
    click on one of the thumbnails you get a small browser window
    (setup with Behaviors/Open Browser Window size settings) with a
    link to visit the site. The problem is in visiting the actual site
    the browser window is locked to the smaller size. What am I
    missing? I didn't set a behavior for the "visit site" link. But
    it's defaulting to the same size.

    Old Shoe wrote:
    > First my link:
    >
    >
    http://www.progressity.com/portfolio.htm
    >
    > I've created a Portfolio section in my web site. When
    you click on
    > one of the thumbnails you get a small browser window
    (setup with
    > Behaviors/Open Browser Window size settings) with a link
    to visit the
    > site. The problem is in visiting the actual site the
    browser window
    > is locked to the smaller size. What am I missing? I
    didn't set a
    > behavior for the "visit site" link. But it's defaulting
    to the same
    > size.
    You didn't do anything wrong. If your browser window is a
    certain size, then
    if you click on a link in it, it will stay that size. What
    you might want to
    do is enable the scrollbars and resizing for the web site New
    Browser
    Windows so when it opens small the user can enlarge the
    window. Though you
    probably want the toolbars and everything to show so they can
    actually
    navigate.
    MD

  • Question about behavior of "Open With" from Finder Menu

    When I highlight a pdf and go to "Open With" I get the following (default is Preview--only see one of those):
    Acrobat Reader 5.0
    Acrobat Reader 5.0
    Adobe Reader 9.1.3
    Adobe Reader 9.1.3
    Adobe Reader 9.0.0
    Adobe Reader 8.1.2
    QuickTime
    QuickTime
    Safari
    Safari
    The only Reader I have in Applications is the 9.1.3. I've put those older versions in the Trash for now.
    And I don't understand, also, why I'm seeing doubles of the same 9.1.3, the same Acrobat, the same QT, and the same Safari.
    I've restarted the computer, dumped the Finder .plist as well as cleared "Recent Applications." No change.

    You can find the locations of any reference to these applications
    by using Find in a search. Their path will appear and you will
    know where they exist. In some cases, older versions of a utility
    or some part of an application were brought into the system by
    another installer, so they may be in an unchecked folder.
    {You also should be able to choose Preview to see & read .PDFs.
    Of course, there are certain Acrobat-authored documents which
    do not work as well in Preview as they do in Adobe's reader app.}
    There is a newer version of Acrobat (reader) available for D/L
    and it has been recommended due to known security issues.
    Also, other Adobe updates for flash player are available.
    You also could use an alias of the Reader and drop the file on it
    to have a .pdf open on demand with the correct (or desired) app.
    Good luck & happy computing!

  • Question about the CSS behavior when using layer 3 sticky and sticky table

    Hi everyone,
    I have a question about the CSS behavior when using layer 3 sticky and sticky table is full.
    If I configure layer 3 sticky and specify the inactivity timeout as below, how does the CSS
    handle subsequent needed sticky requests ?
    advanced-balance sticky-srcip
    sticky-inact-timeout 30
    CSS document says that
    Note:
    If you use the sticky-inact-timeout command to specify the inactivity timeout
    period on a sticky connection, when the sticky table becomes full and none of
    the entries have expired from the sticky table, the CSS rejects subsequent
    needed sticky requests.
    My question is what is the next reaction by doing the CSS if the CSS is in the
    following condition:
    when the sticky table becomes full and none of the entries have expired from
    the sticky table, the CSS rejects subsequent needed sticky requests
    Does CSS just rejects/drops subsequent needed sticky requests ?
    or
    Does CSS does not stick subsequence requests to particular service but CSS forward
    subsequence requests with round-robin basis ? which means if the sticky table is full,
    the CSS just works round-robin load balancing fashion for subsequence requests ?
    Your information would be appreciated.
    Best regards,

    Hello,
    There is a good document explaining this on Cisco web site
    http://www.cisco.com/en/US/products/hw/contnetw/ps789/products_tech_note09186a0080094b4b.shtml
    It depends if the sticky-inact-timeout is used or not. If not, it's FIFO (the oldest entry in the sticky table is removed). If yes, the CSS will reject the next sticky request.
    Rgds,
    Gaetan
    Rgds
    Gaetan

  • Question about Page Builder behavior - how to get a "please wait message" ?

    Hi all together,
    I got a question about Portal Framework / Page Buider handling iView Integration.
    We are working with a lot of App Integrator iViews and often the pages includes with app integrator are loading longer than the rest of the portal. So there is the idea to put in a "please wait while loading message" for the enduser.
    I analysed the html code, the page builder is generating and foud out 3 diffrent approaches how the page buider is rendering the IFRAME with the integrated application configured with an app integrator iView.
    My question is how can I influence this behavior to put a "please wait while loading message"?
    Different types of iView integration in the client I have seen:
    a) direct loading of the content in the IFRAME (<iframe id="" ... scr="/mysource">)
    b) Filling the iframe with 'about:blank' and loading the content later by filling a form with JS
         ( <iframe id="" .... scr="about:blank">and after the iframe  <form id="" action="mysource" ...>
    c) Filling the iframe with a html file from the portal layout and loading the content later by filling a form with JS (similar to b)
         ( <iframe id=""" ....scr="/irj/portalapps/com.sap.test.mylayout/html/blank.html>
    I checked that variant b) is getting generated when loading a page with different components on the side (not only the app integrator iview) and variant c) is generated when just one app integrator iView is positioned (no portal page).
    Goal: To get the "please wait picture" I want to know how to get variant c) in cases of different elements on one page
    So I would be able to put this picture on the HTML-Page in the Portal layout (blank.html)
    Hope, someone with a deep portal / page builder know-how can help me out!
    Another way: Does anybody knows another way how to put a "please wait message" while app integrator application is not loaded yet?
    Thanks in Advance and kind regards,
    Jens
    Edited by: Jens Kohne on Nov 24, 2010 9:08 AM

    Hi Jens,
    there are several reasons why you don't get the loading animation:
    Web Dynpro ABAP: https://service.sap.com/sap/support/notes/1432358 -> missing configuration
    Wrong height size for iView: https://service.sap.com/sap/support/notes/1358494 -> alter configuration of the iFrame height (loading animation gets displayed, but is hidden)
    FPN, BSP, BEx: https://service.sap.com/sap/support/notes/1290995 -> AI isn't showing the animation because of performance considerations. I guess that is your case. Depending on your portal version this is a simple service configuration or involves some customization.
    br,
    Tobias

  • Two questions about SG300 DHCP server

    Hi,
    I have two questions about the DHCP server on the SG300:
    On the Address Binding page, what does the "Declined" state mean? I have a NAS device that won't pull an address, and I think that the entry with a state of "Declined" corresponds to this device. It was previously pulling an address from a RV180, so the only difference is that it is now connected to the SG300. I worked around this by manually setting the address on the NAS device, but this won't scale if I run into a lot of other devices that can't pull an address.
    I configured a static address binding for a WAP321 and found that instead of pulling the configured address that it pulled a dynamic address. I checked the Address Binding page and see that the dynamic entry that corresponds with the WAP321 has a Client Identifier rather than a MAC address. I changed the static entry for the WAP321 to use the client identifier displayed in the dynamic entry, and now the WAP321 pulls the configured static address. Is this expected behavior?
    Thanks,
    Bob

    With the SX300/500 it is required the client identifier, it doesn't automatically insert it. If static DHCP is made on the switch and you didn't need client identifier, that is more or less fortunate behavior for you
    So to answer this question, the expected behavior is to configure client identifier for static DHCP entry.
    -Tom
    Please mark answered for helpful posts
    http://blogs.cisco.com/smallbusiness/

  • Question about the programming of a legend

    Hello everybody,
    I have a question about the programming of a waveform's legend. I
    already asked here in this forum about the legend programming (03)
    months ago.
    I went satisfied but I ve just noticed that this code
    (See Code old_legend_test.llb with main.vi as main function) operates a
    little different from my expectances.
    Therefore I have a new question and I want to know if it
    is possible by labview programming to plot and show, on a waveform
    chart, a signal with activ plot superior to zero (0) without to be
    obliged to plot and show a signal with activ plot equal to zero (0) or
    inferior to the desired activ plot.
    I give you an example
    of what I m meaning. I have by example 4 signals (Signal 0, 1, 2 and 3)
    and each signal corresponds respectively to a channel (Chan1, Chan2,
    Chan3, Chan4). I want to control the legend (activ plot, plot name and
    plot color) programmatically. Is it possible with labview to plot signal
    1 or 2 or 3 or (1, 3) or (2,3) or (1,2,3) or other possible combination
    without to active the signal with the corresponding activ plot zero
    (0)?
    Let see the labview attached data
    (new_legend_test.llb with main.vi as main function). When I try to
    control the input selected values again I get them back but I don't
    understand why they have no effect on the legend of my waveform chart.
    Could somebody explain me what I m doing wrong or show me how to get a
    correct legend with desired plots? Thank by advance for your assistance.
    N.B.
    The
    both attached data are saved with labview 2009.
    Sincerly,PrinceJack
    Attachments:
    old_legend_test.llb ‏65 KB
    new_legend_test.llb ‏65 KB

    Hi
    princejack,
    Thanks for
    posting on National Instruments forum.
    The behavior
    you have is completely normal. You can control the number of row displayed in
    the legend and this rows are linked to the data you send to your graph. Thus,
    if you have 3 arrays of data, let say chan1, chan2 and chan3, you can choose
    which data you want to display in your graph using the property node (Active
    plot and visible). But for the legend as you send 3 plots there is an array of
    the plot name [chan1, chan2, chan3] and you can display 0, 1, 2 or 3 rows of
    this array but you cannot control the order in this array! So, to be able to
    change this array you have to only send data you need to you graph. I'm not
    sure my explanations are clear so I have implemented a simple example doing
    that.
    Benjamin R.
    R&D Software Development Manager
    http://www.fluigent.com/
    Attachments:
    GraphLegend.vi ‏85 KB

  • Questions about PDF exporting with InDe CS5.5

    Hey all,
    A couple questions about exporting to PDF from the latest version of InDe.
    First, I have noticed that it seems to take a lot longer to get to a PDF. Any suggestions for how to speed up the process? It took 8 minutes or so to generate a low-res PDF (for print) of a 24pp document with a few placed images and vector graphics. Wow, that's a long time to wait, especially for a proof.
    Second, the background task... if I get it going on making that 8-minute PDF and then work some more on the document, what exactly is in the PDF? Usually I save before making a PDF or printing. So, is the last version saved what will be in the PDF?
    (As an aside, this ability to work on the doc while generating a PDF seems kind of weird. Generally one makes a PDF for proofing, or even for printing, when all the changes have been made and everything is "final". So, I see no benefit to being able to work on my document while it's making a PDF, as I'm probably finished making revisions for the time being. I have to say that I kind of like the progress bar you get when you make an interactive PDF, as you know you can't work on the document when that's on the screen... )
    Thanks as always.

    First, I have noticed that it seems to take a lot longer to get to a PDF. Any suggestions for how to speed up the process? It took 8 minutes or so to generate a low-res PDF (for print) of a 24pp document with a few placed images and vector graphics. Wow, that's a long time to wait, especially for a proof.
    Yes, this is abnormally long (and too long), something is wrong. What's the full version of InDesign you are running, as reported by holding down Cmd or Control and selecting About InDesign?
    Second, the background task... if I get it going on making that 8-minute PDF and then work some more on the document, what exactly is in the PDF? Usually I save before making a PDF or printing. So, is the last version saved what will be in the PDF?
    Saving is not related. InDesign makes a database snapshot of your document the moment you begin the PDF export, and makes the export relative to that snapshot, regardless of edits you continue to make during the export process, and regardless of saving. Of course saving first is a good idea, for several reasons, not the least of which it sounds like something's fairly seriously wrong with your document or your InDesign installation.
    We recommend you trash your preferences and export your document to IDML and see if either of those things changes this 8-minute behavior...err, assuming you're running 7.5.2.318.
    (As an aside, this ability to work on the doc while generating a PDF seems kind of weird. Generally one makes a PDF for proofing, or even for printing, when all the changes have been made and everything is "final". So, I see no benefit to being able to work on my document while it's making a PDF, as I'm probably finished making revisions for the time being. I have to say that I kind of like the progress bar you get when you make an interactive PDF, as you know you can't work on the document when that's on the screen... )
    Yeah, I think the primary benefit is if you are likely to work on 2 or more files in parallel, so you can finish A and export A and then switch to B. If you'd like a dialog box to pop up when export is done, check out my exportPop script from this post: ANN: automatic dialog after background export (exportPop.jsx.

  • Question about LRU in a replicated cache

    Hi Tangosol,
    I have a question about how the LRU eviction policy works in a replicated cache that uses a local cache for its backing map. My cache config looks like this:
    <replicated-scheme>
    <scheme-name>local-repl-scheme</scheme-name>
    <backing-map-scheme>
    <local-scheme>
    <scheme-ref>base-local-scheme</scheme-ref>
    </local-scheme>
    </backing-map-scheme>
    </replicated-scheme>
    <local-scheme>
    <scheme-name>base-local-scheme</scheme-name>
    <eviction-policy>LRU</eviction-policy>
    <high-units>50</high-units>
    <low-units>20</low-units>
    <expiry-delay/>
    <flush-delay/>
    </local-scheme>
    My test code does the following:
    1. Inserts 50 entries into the cache
    2. Checks to see that the cache size is 50
    3. Inserts 1 additional entry (as I understand it, this should cause the eviction logic to kick-in)
    4. Checks the cache size again, expecting it to now be 20
    With HYBRID and LFU eviction policies, the above logic works exactly as expected. When I switch to LRU however, the code at step 2 always returns a value significantly less than 50. All 50 inserts appear to complete successfully, so I can only assume that some of the entries have already been evicted by the time I get to step 2.
    Any thoughts?
    Thanks.
    Pete L.
    Addendum:
    As usual, in attempting to boil this issue down to its essential elements, I left out some details that turned out to be important. The logic that causes the condition to occur looks more like:
    1. Loop 2 times:
    2. Create named cache instance "TestReplCache"
    3. Insert 50 cache entries
    4. Verify that cache size == 50
    5. Insert 1 additional entry
    6. Verify that cache size == 20
    7. call cache.release()
    8. End Loop
    With this logic, the problem occurs on the second pass of the loop. Step 4 reports a cache size of < 50. This happens with LRU, LFU, and HYBRID-- so my initial characterization of this problem is incorrect. The salient details appear to be that I am using the same cache name each pass of the loop and that I am calling release() at the end of the loop. (If I call destroy() instead, all works as expected.)
    So... my revised question(s) would be: is this behavior expected? Is calling destroy() my only recourse?
    Message was edited by: planeski

    Robert,
    Attached are my sample code and cache config files. The code is a bit contrived-- it's extracted from a JUnit test case. Typically, we wouldn't re-use the same cache name in this way. What caught my eye however, was the fact that this same test case does not exhibit this behavior when running against a local cache directly (as opposed to a repl cache backed by a local cache.)
    Why call release? Well, again, when running this same test case against a local cache, you have to call release or it won't work. I figured the same applied to a repl cache backed by a local cache.
    Now that I understand this is more a byproduct of how my unit tests are written and not an issue with LRU eviction (as I originally thought), it's not a big deal-- more of a curiosity than a problem.
    Pete L.<br><br> <b> Attachment: </b><br>coherence-cache-config.xml <br> (*To use this attachment you will need to rename 545.bin to coherence-cache-config.xml after the download is complete.)<br><br> <b> Attachment: </b><br>LruTest.java <br> (*To use this attachment you will need to rename 546.bin to LruTest.java after the download is complete.)

  • STS: Few Questions about STS ?

    Hi All,
    Right now, I'm working on STS for IP.
    I have some questions about it:
    1. Every time I execute t-code BPS_STS_START, it launch the STS Web Application with different port and HTTP.
    The port should be 8444, and HTTP should be HTTPS .
    I've already checked on t-code: SE80 to TUNGUSKA htm, and see on the properties on it. I got it has correct port and HTTPS.
    How do I fix up this problem ? Do you know what the solution is ?
    2. When I execute sending email initially, why does it always send the email to manager ?
    Whereas It doesn't have the upper level.
    How can I setup it? Is it setup with the Authorization ?
    Thanks a lot all . Appreciate your suggestion about my questions.
    Best regards,
    Daniel N.

    Hi Lucimar,
    Thanks a lot for your kind help.
    If you don't mind, I have another questions.
    When I run t-code: BPS_STS_START. It will launch the browser with this url: https://sapdsb6.xxx.yyy.com:8606/sap/public/myssocntl?sap-client=100
    But it just gives me blank web-page.
    My question is whether it's normal behavior from STS ? I thought it will distribute email notification to start planning, but it's not, when I check on t-code: SOSV, it doesn't give any email queue to be distributed.
    2.
    Btw, regarding my question no. 2, how can I setup it in t-code: BPS_TC at Determine date, Person Resp., Layouts ? Where can I setup it ?
    Would you kindly help me what I have to do ?
    Thanks a lot and have a good day,
    Best regards,
    Daniel N.

  • Question about size of ints in Xcode

    Hello. I have a a few quick questions about declaring and defining variables and about their size and so forth. The book I'm reading at the moment, "Learn C on the Mac", says the following in reference to the difference between declaring and defining a variable:
    A variable declaration is any statement that specifies a variables name and type. The line *int myInt;* certainly does that. A variable definition is a declaration that causes memory to be allocated for the variable. Since the previous statement does cause memory to be allocated for myInt, it does qualify as a definition.
    I always thought a definition of a variable was a statement that assigned a value to a variable. If a basic declaration like "int myInt;" does allocate memory for the variable and therefore is a definition, can anyone give me an example of a declaration that does not allocate memory for the variable and therefore is not a definition?
    The book goes on, a page or so late, to say this:
    Since myInt was declared to be of type int, and since Xcode is currently set to use 4-byte ints, 4 bytes of memory were reserved for myInt. Since we haven't placed a value in those 4 bytes yet, they could contain any value at all. Some compilers place a value of 0 in a newly allocated variable, but others do not. The key is not to depend on a variable being preset to some specific value. If you want a variable to contain a specific value, assign the value to the variable yourself.
    First, I know that an int can be different sizes (either 4 bytes or 8 bytes, I think), but what does this depend on? I thought it depended on the compiler, but the above quote makes it sound like it depends on the IDE, Xcode. Which is it?
    Second, it said that Xcode is currently set to use 4-byte ints. Does this mean that there is a setting that the user can change to make ints a different size (like 8 bytes), or does it mean that the creators of Xcode currently have it set to use 4-byte ints?
    Third, for the part about some compilers giving a newly allocated variable a value of 0, does this apply to Xcode or any of its compilers? I assume not, but I wanted to check.
    Thanks for all the help, and have a great weekend!

    Tron55555 wrote:
    I always thought a definition of a variable was a statement that assigned a value to a variable. If a basic declaration like "int myInt;" does allocate memory for the variable and therefore is a definition, can anyone give me an example of a declaration that does not allocate memory for the variable and therefore is not a definition?
    I always like to think of a "declaration" to be something that makes no changes to the actual code, but just provides visibility so that compilation and/or linking will succeed. The "definition" allocates space.
    You can declare a function to establish it in the namespace for the compiler to find but the linker needs an actual definition somewhere to link against. With a variable, you could also declare a variable as "extern int myvar;". The actual definition "int myvar;" would be somewhere else.
    According to that book, both "extern int myvar;" and "int myvar;" are declarations, but only the latter is a definition. That is a valid way to look at it. Both statements 'delcare' something to the compiler, but on the second one 'define's some actual data.
    First, I know that an int can be different sizes (either 4 bytes or 8 bytes, I think), but what does this depend on? I thought it depended on the compiler, but the above quote makes it sound like it depends on the IDE, Xcode. Which is it?
    An "int" is supposed to be a processor's "native" size and the most efficient data type to use. A compiler may or may not be able to change that, depending on the target and the compiler. If a compiler supports that option and Xcode supports that compiler and that option, then Xcode can control it, via the compiler.
    Second, it said that Xcode is currently set to use 4-byte ints. Does this mean that there is a setting that the user can change to make ints a different size (like 8 bytes), or does it mean that the creators of Xcode currently have it set to use 4-byte ints?
    I think that "setting" is just not specifying any option to explicitly set the size. You can use "-m32" or "-m64" to control this, but I wouldn't recommend it. Let Xcode handle those low-level details.
    Third, for the part about some compilers giving a newly allocated variable a value of 0, does this apply to Xcode or any of its compilers? I assume not, but I wanted to check.
    I don't know for sure. Why would you ask? Are you thinking of including 45 lines of macro declarations 3 levels deep to initialize values based on whether or not a particular compiler/target supports automatic initialization? Xcode current supports GCC 3.3, GCC 4.0, GCC 4.2, LLVM GCC, CLang, and Intel's compiler for building PPC, i386, and x86_64 code in both debug and release, with a large number of optimization options. It doesn't matter what compiler you use or what it's behavior is - initialize your variables in C.

  • Question about using TVARV in an ABAP program

    Hello gurus, Im sorry about the silly question.
    I have a question about using TVARV in an ABAP program.
    A program is presenting a problem and I think that in this code:
    SELECT SIGN OPTI LOW HIGH
      FROM TVARV
      INTO TABLE R_1_163431035_VELOCIDADE
      WHERE  NAME = '1_163431035_VELOCIDADE'
      AND    TYPE = 'S'.
      IF ZMM001-VELOCIDADE_B   IN R_1_163431035_VELOCIDADE AND
          ZOPERADORAS-OPERADORA = 'ABCD' AND
          ZMM001-MATERIAL       IN R_1_163431035_PRODUTO.
      ELSE.
      ENDIF.
    What happens is that the value "ZMM001-SPEED" B not exist in "R1_163431035_VELOCIDADE" but the program executes commands under the IF and not under the ELSE, as I imagine it would work. Is this correct ?
    I am new to ABAP programming, but I have a lot of XP in other programming languages ​​and this makes no sense to me.
    Anyone know where I can find some documentation of the use of "TVARV" in ABAP programs?
    I search the Internet if other programmers use TVARV this way, but found nothing, which leads me to think that was a quick and dirty solution that used here.
    If this is a bad way to program, what would be the best way?
    Regards
    Ronaldo.

    Hi Ronaldo,
    But in this case, the range is not empty, there are 17 records, in this way.:
    For the column "SING" all values ​​are "E"
    It means that the result is false if ZMM001-VELOCIDADE_B has the same value as one of the 17 records (E = exclude).
    For instance, if it has value 'C' and one of 17 records matches C, then the result is false.
    The "IF" with "IN" using "TVARV" as used in the program of the post above has the same behavior of a selection screen?
    Yes, the same behavior as the selection criterion to be exact. You can press the help key in the complex selection dialog for more info.
    I know it's a silly and very basic question, but other language that I used, only the SQL has the "IN" operator, but I think they work in different ways, so I would like to understand how it works in ABAP.
    Not silly ;-). Yes they work differently.
    More info here:
    - http://help.sap.com/saphelp_nw70/helpdata/en/9f/dba74635c111d1829f0000e829fbfe/frameset.htm
    - http://help.sap.com/saphelp_nw70/helpdata/en/9f/dba71f35c111d1829f0000e829fbfe/frameset.htm
    BR
    Sandra

  • Question about Java's HttpServer: Threading? Backlog?

    Hello,
    I have two questions about Java's HttpServer (com.sun.net.httpserver). From the JavaDoc:
    >
    Management of threads can be done external to this object by providing a Executor object. If none is provided a default implementation is used.
    >
    How can I get information about the default implementation in 1.6.0_13? Do you know the behavior? From my observations, the default implementation uses no Threads, meaning every request is handled in the same Thread, this results in handling the requests to the HttpServer one after another.
    Is this right?
    The second question is about this, also from the JavaDoc:
    >
    When binding to an address and port number, the application can also specify an integer backlog parameter. This represents the maximum number of incoming TCP connections which the system will queue internally. [...]
    >
    When setting the backlog to -1, it uses the systems default backlog. How can I determine the systems default backlog? Can some lines of Java code reveal it (there is no getBeacklog() method)? Or is it up to the Operating System (we use Redhat Linux)?
    Thanks a lot for your help!
    Regards,
    Timo

    How can I determine the systems default backlog?You can't. There is no API for that even at the C level.
    Can some lines of Java code reveal itNo.
    Or is it up to the Operating System (we use Redhat Linux)?Yes. Linux provides a large default. It seems to be at least 50 on most platforms. This is not something you should be worrying about.

  • Question about clear page and reset pagination

    Hi,
    I have a question about clear pages and the reset pagination in an URL. What is the reason why a clear page doesn't also trigger a reset pagination on the pages which are cleared?
    I can't really imagine a business case where it makes sense to clear all data of page items on a page and don't reset the pagination of reports on that page which probably use a page item in there where clause...
    The drawback of this behavior is that a developer always has to set the reset pagination checkbox when he clears the target page and the even bigger drawback is that if you specify other pages to clear, you can't reset pagination for them, because reset pagination only works for the target page.
    Thanks for your input.
    Patrick
    *** New *** Oracle APEX Essentials *** http://essentials.oracleapex.info/
    My Blog, APEX Builder Plugin, ApexLib Framework: http://www.oracleapex.info/

    Enhancement request filed, thanks,
    Scott

Maybe you are looking for

  • Trying to get a WRT54GX2 wireless router working with a W...

    Trying to get a WRT54GX2 wireless router working with a WPC54G wireless card. The laptop and desktop both will access the Internet and work when hardwired through the router's Ethernet ports. When trying to access wireless, the Laptop shows to be con

  • Access enforcer and User Data Source for HR

    We are on Access Enforcer 5.2 - service pack 2: My problem is that when creating a new request in AE, I able to get a list of all users when I point my User Data Source to either SAP or UME. However when I attempt to create a request whilst pointing

  • DRM and Audio in Vi

    I have read that High Definition Copy Protecection (HDCP) will be implemented into Windows Vista as part of the digital rights management requirements. That apparently will affect playback of audio and video streams to thwart media pirates. One artic

  • Just Installed 10.4.10 and...

    I just installed OS 10.4.10 and my desktop/finder keeps restarting every minute. Has this happened to anybody? How in the **** do I stop this?

  • Satellite C870-196 - Long launch after BIOS update

    Hello I went to u BIOS 6.00 to 6.70 and I have a very long black screen between the TOSHIBA logo and the launch of my session I had not before! I delivered the default settings in the BIOS (F9) as shown. Where can this come and what to do? Thank you