Pinned table, the changed data. Automatic reflected in the buffer POOL?

Hello gurus DB,.

Question (Oracle 10 g 2) -
1. a Table is PINNED (USER_TABLES. KEEP).
2. in the same Table in its respective schema, data are added and updated
(With the help of the SQL Insert and Update statements).
Question -
In order to take account of new data, we-
a. the same PIN Table again.
b. the table need not new pine
in addition, it is said that 10g requires no PINNING objects. Is this true? If so, then to what extent?
Warm glances,

When you choose to use the Dungeon buffer, there is in fact no "pinning". You are just isolate the table in another buffer as all the tables on the default buffer will compete for buffer space, and all the tables on buffer Dungeon will compete on space memory buffer keep. The Dungeon of the buffer is really keep only if you size it accordingly so that the sum of the sizes of all the tables and indexes mounted on it are smaller than the size of the buffer. Otherwise, it works on a round robin like the default buffer mode.

And Yes, if you update, insert, or delete data in the table, it appears automatically on the buffer, after all, that's what the buffer is - store the current version of the data while you wait for the db writer to empty the disk, among other things.

Tags: Database

Similar Questions

  • Change the buffer pool of a partition LOB that underlie an XMLTYPE in a table?

    Hi all

    First of all, I must say, 'ALTER TABLE' grammar is ridiculously complex, and they seem to keep piles.

    OK, that said, I have a table with an XMLTYPE column:
    SQL> desc cs_content_xml_data
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     CSXML_GOID                                NOT NULL NUMBER(15)
     CSXML_DOC                                 NOT NULL XMLTYPE STORAGE BINARY  <<---Here's my XMLTYPE column
     CSXML_DATASET                             NOT NULL VARCHAR2(1)
     CSXML_PART_DATASET                        NOT NULL VARCHAR2(15)
     CSXML_DATE_CREATED                        NOT NULL TIMESTAMP(6)
     CSXML_USER_CREATED                        NOT NULL VARCHAR2(30)
     CSXML_DATE_MODIFIED                                TIMESTAMP(6)
     CSXML_USER_MODIFIED                                VARCHAR2(30)
    In addition, this table is partitioned. Here is the generated DDL, with truncated partition definitions, for brevity:
      CREATE TABLE "MSTMFG"."CS_CONTENT_XML_DATA"
       (    "CSXML_GOID" NUMBER(15,0) NOT NULL ENABLE,
            "CSXML_DOC" "SYS"."XMLTYPE"  NOT NULL ENABLE,
            "CSXML_DATASET" VARCHAR2(1) NOT NULL ENABLE,
            "CSXML_PART_DATASET" VARCHAR2(15) NOT NULL ENABLE,
            "CSXML_DATE_CREATED" TIMESTAMP (6) NOT NULL ENABLE,
            "CSXML_USER_CREATED" VARCHAR2(30) NOT NULL ENABLE,
            "CSXML_DATE_MODIFIED" TIMESTAMP (6),
            "CSXML_USER_MODIFIED" VARCHAR2(30),
             CONSTRAINT "CSXML_GOID_PK" PRIMARY KEY ("CSXML_GOID")
      USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE
    FAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "MSTMFG_DATA"  ENABLE,
             CONSTRAINT "CSXML_CIT_FK01" FOREIGN KEY ("CSXML_GOID")
              REFERENCES "MSTMFG"."CONTENT_ITEMS" ("CIT_ID") ENABLE
       ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255  NOLOGGING
      STORAGE(
      BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "MSTMFG_DATA"
     XMLTYPE COLUMN "CSXML_DOC" STORE AS SECUREFILE BINARY XML (
      ENABLE STORAGE IN ROW CHUNK 8192
      NOCACHE NOLOGGING  NOCOMPRESS  KEEP_DUPLICATES
      STORAGE(
      BUFFER_POOL DEFAULT <<-- This BUFFER_POOL setting is what I want to change, I think
    FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
    ALLOW NONSCHEMA DISALLOW ANYSCHEMA
      PARTITION BY RANGE ("CSXML_PART_DATASET")
     (PARTITION "DATASTAR_XML_DATA_01"  VALUES LESS THAN ('D002')
      PCTFREE 30 PCTUSED 40 INITRANS 1 MAXTRANS 255  NOLOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL RECYCLE FLASH_CACHE DE
    FAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "MSTMFG_DATA" NOCOMPRESS ,
     PARTITION "DATASTAR_XML_DATA_02"  VALUES LESS THAN ('D003')
      PCTFREE 30 PCTUSED 40 INITRANS 1 MAXTRANS 255  NOLOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL RECYCLE FLASH_CACHE DE
    FAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "MSTMFG_DATA" NOCOMPRESS,
    --lots of table partition definitions omitted here, for brevity
    So, my question is, how to change the attribute default USER_TABLES of the PARTITION's LOB that underlies the storage of XMLTYPE column? How can I change to RECYCLE, DEFAULT value?

    I tried several variants, no success, and I can't find an example in the manual or on the web anywhere.

    Can anyone offer me a clue?

    Help!

    Thank you

    -Mark

    Hello

    Have you tried the following?

    ALTER TABLE cs_content_xml_data MODIFY LOB (CSXML_DOC.xmldata) ( STORAGE( BUFFER_POOL RECYCLE ) );
    

    HTH.

  • Question Basic setting, ask questions about the buffer cache

    Database: Oracle 10g
    Host: Sun Solaris, 16 CPU server



    I look at the behavior of some simple queries that I start the tuning of our data warehouse.

    Using SQL * more and AUTOTRACE, I ran this query two times in a row

    SELECT *.
    OF PROCEDURE_FACT
    WHERE PROC_FACT_ID BETWEEN 100000 AND 200000

    He finds the index on PROC_FACT_ID and conducted an analysis of the range of indexes to access the data in the table by rowid. The first time, that it ran, there are about 600 physical block reads as data in the table were not in the buffer cache. The second time, he had 0 physical block reads, because they were all in the cache. All this was expected behavior.

    So I ran this query twice now,

    SELECT DATA_SOURCE_CD, COUNT (*)
    OF PROCEDURE_FACT
    DATA_SOURCE_CD GROUP

    As expected, he made a full table scan, because there is no index on DATA_SOURCE_CD and then chopped the results to find the different DATA_SOURCE_CD values. The first run had these results

    compatible gets 190496
    physical reads 169696

    The second run had these results

    compatible gets 190496
    physical reads 170248


    NOT what I expected. I would have thought that the second run would find many of the blocks already in the cache of the pads of the first execution, so that the number of physical reads would drop significantly.

    Any help to understand this would be greatly appreciated.

    And is there something that can be done to keep the table PROCEDURE_FACT (the central table of our star schema) "pinned" in the buffer cache?

    Thanks in advance.

    -chris Curzon

    Christopher Curzon wrote:
    Your comment about the buffer cache used for smaller objects that benefit is something that I asked about a good deal. It sounds as if tuning the buffer cache will have little impact on queries that scan of entire tables.

    Chris,

    If you can afford it and you think it is a reasonable approach with regard to the remaining segments that are supposed to benefit the buffer cache, you can always consider your segment of table with 'CACHE' that will change the behavior on the full of a broad sector table scan (Oracle treats small and large segments differently during the execution of table scans complete regarding the cache of) marking stamps, you can override this treatment by using the CACHE. NOCACHE keyword) or move your table of facts to a DUNGEON hen establishing a (ALTER SYSTEM SET DB_KEEP_CACHE_SIZE = ), modify the segments (ALTER TABLE... STORAGE (USER_TABLES KEEP)) accordingly and perform a full table scan to load blocks in the cache of the DUNGEON.

    Note that the disadvantage of the approach of the KEEP pool is that you have less memory available for the default buffer cache (unless you add more memory on your system). When an object to mark as being cached is always is in competition with other objects in the cache buffers by default, so it could still be aged out (the same applies to the pool of DUNGEON, if the segment is too large or too many segments are allocated age blocks out as well).

    So my question: How can I get for a parallel analysis on queries that use a table scan complete such as what I posted in my previous email? It is a question of the provision of the "parallel" indicator, or is it an init.ora parameter I should try?

    You can use a PARALLEL hint in your statement:

    SELECT /*+ PARALLEL(PROCEDURE_FACT) */ DATA_SOURCE_CD, COUNT(*)
    FROM PROCEDURE_FACT
    GROUP BY DATA_SOURCE_CD;
    

    or you could mark an object as PARALLEL in the dictionary:

    ALTER MATERIALIZED VIEW PROCEDURE_FACT PARALLEL;
    

    Note that since you have 16 processors (or 16 cores that resemble Oracle 32? Check the CPU_COUNT setting) the default parallel degree would be usually 2 times 16 = 32, which means that Oracle generates at least 32 parallel slaves for a parallel operation (it could be another set of 32 slaves if the operation for example include a GROUP BY operation) If you do not use the PARALLEL_ADAPTIVE_MULTI_USER parameter (which allows to reduce the parallelism if several parallel operations running concurrently).

    I recommend to choose a lesser degree parallel to your default value of 32 because usually you gain much by such a degree, then you can get the same performance when you use lower a setting like this:

    SELECT /*+ PARALLEL(PROCEDURE_FACT, 4) */ DATA_SOURCE_CD, COUNT(*)
    FROM PROCEDURE_FACT
    GROUP BY DATA_SOURCE_CD;
    

    The same could be applied to the paralleling of the object:

    ALTER MATERIALIZED VIEW PROCEDURE_FACT PARALLEL 4;
    

    Note When defining the object of many operations in PARALLEL will be parallelisee (DML even can be run in parallel, if you enable dml parallel, which has some special restrictions), so I recommend to use it with caution and begin with an explicit indication in those statements where you know that it will be useful to do.

    Also check that your PARALLEL_MAX_SERVERS is high enough when you use parallel operations, which should be the case in your version of Oracle.

    Kind regards
    Randolf

    Oracle related blog stuff:
    http://Oracle-Randolf.blogspot.com/

    SQLTools ++ for Oracle (Open source Oracle GUI for Windows):
    http://www.sqltools-plusplus.org:7676 /.
    http://sourceforge.NET/projects/SQLT-pp/

  • The outgoing OOME caused buffer pool increase

    Hello

    Is there a way to control the maximum size of the buffer pool out (extend the proxy)? I was under the impression of the proxy service will end customer extend connections to protect out-of-memory exceptions, but in our case the buffer kept more and more until the moment where Java virtual machine ran out of memory directly. Direct memory is limited to 2048 m (-XX:MaxDirectMemorySize = 2048 m)

    Out of buffer pool went from 35 MB to 2 GB in two minutes:

    August 4, 2010 18:53:38, 832 DEBUG Logger@9247077 3.5.3/465: 18:53:38.832/84962.777 2010-08-04 Oracle coherence GE 3.5.3/465 < D6 > (thread = DistributedCache:CasparWfmCacheService, Member = 16): outgoing BufferPool has increased to the total 3573760 bytes
    August 4, 2010 18:53:38, 832 DEBUG Logger@9247077 3.5.3/465: 18:53:38.832/84962.777 2010-08-04 Oracle coherence GE 3.5.3/465 < D6 > (thread = DistributedCache:CasparWfmCacheService, Member = 16): outgoing BufferPool has increased to the total 3575808 bytes
    August 4, 2010 18:53:38, 832 DEBUG Logger@9247077 3.5.3/465: 18:53:38.832/84962.777 2010-08-04 Oracle coherence GE 3.5.3/465 < D6 > (thread = DistributedCache:CasparWfmCacheService, Member = 16): outgoing BufferPool has increased to the total 3577856 bytes
    August 4, 2010 18:53:38, 832 DEBUG Logger@9247077 3.5.3/465: 18:53:38.832/84962.777 2010-08-04 Oracle coherence GE 3.5.3/465 < D6 > (thread = DistributedCache:CasparWfmCacheService, Member = 16): outgoing BufferPool has increased to the total 3579904 bytes
    August 4, 2010 18:53:38, 832 DEBUG Logger@9247077 3.5.3/465: 18:53:38.832/84962.777 2010-08-04 Oracle coherence GE 3.5.3/465 < D6 > (thread = DistributedCache:CasparWfmCacheService, Member = 16): outgoing BufferPool has increased to the total 3581952 bytes
    August 4, 2010 18:53:38, 832 DEBUG Logger@9247077 3.5.3/465: 18:53:38.832/84962.777 2010-08-04 Oracle coherence GE 3.5.3/465 < D6 > (thread = DistributedCache:CasparWfmCacheService, Member = 16): outgoing BufferPool has increased to the total 3584000 bytes
    August 4, 2010 18:53:38, 832 DEBUG Logger@9247077 3.5.3/465: 18:53:38.832/84962.777 2010-08-04 Oracle coherence GE 3.5.3/465 < D6 > (thread = DistributedCache:CasparWfmCacheService, Member = 16): outgoing BufferPool has increased to the total 3586048 bytes
    August 4, 2010 18:53:38, 832 DEBUG Logger@9247077 3.5.3/465: 18:53:38.832/84962.777 2010-08-04 Oracle coherence GE 3.5.3/465 < D6 > (thread = DistributedCache:CasparWfmCacheService, Member = 16): outgoing BufferPool has increased to the total 3588096 bytes
    August 4, 2010 18:53:38, 832 DEBUG Logger@9247077 3.5.3/465: 18:53:38.832/84962.777 2010-08-04 Oracle coherence GE 3.5.3/465 < D6 > (thread = DistributedCache:CasparWfmCacheService, Member = 16): outgoing BufferPool has increased to the total 3590144 bytes

    Outgoing BufferPool continued to increase in increments of 2KB

    August 4, 2010 18:55:41, 000 3.5.3/465 Logger@9247077 DEBUG: 2010-08-04 18:55:37.937/85081.882 Oracle coherence GE 3.5.3/465 < D6 > (thread = DistributedCache:CasparWfmCacheService, Member = 16): outgoing BufferPool has increased to the total 2147481600 bytes
    August 4, 2010 18:55:41, 094 Logger@9247077 ERROR 3.5.3/465: 18:55:41.094/85085.039 2010-08-04 Oracle coherence GE (thread = DistributedCache:CasparWfmCacheService, Member = 16) < error > 3.5.3/465: error sending MapEvent to channel (Id = 175680558, Open = true, connection = 0x0000012A393A8EAB0AB866C7FF76B6869AFC7A993B1438F8CE5DDD6C4AD0E56A): (Wrapped) means: Direct buffer
    at com.tangosol.util.Base.ensureRuntimeException(Base.java:293)
    at com.tangosol.util.Base.ensureRuntimeException(Base.java:269)
    at com.tangosol.coherence.component.net.extend.Channel.post(Channel.CDB:37)
    at com.tangosol.coherence.component.net.extend.Channel.send(Channel.CDB:6)
    at com.tangosol.coherence.component.net.extend.proxy.MapListenerProxy.onMapEvent(MapListenerProxy.CDB:9)
    at com.tangosol.coherence.component.net.extend.proxy.MapListenerProxy.entryDeleted(MapListenerProxy.CDB:1)
    at com.tangosol.util.MapEvent.dispatch(MapEvent.java:274)
    to com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$ ViewMap$ ProxyListener.dispatch (DistributedCache.CDB:22)
    to com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$ ViewMap$ ProxyListener.entryDeleted (DistributedCache.CDB:1)
    to com.tangosol.util.MapListenerSupport$ WrapperSynchronousListener.entryDeleted (MapListenerSupport.java:876)
    at com.tangosol.util.MapEvent.dispatch(MapEvent.java:274)
    at com.tangosol.coherence.component.util.CacheEvent.dispatchSafe(CacheEvent.CDB:14)
    to com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$ BinaryMap.dispatch (DistributedCache.CDB:86)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache.onMapEvent(DistributedCache.CDB:43)
    to com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$ MapEvent.onReceived (DistributedCache.CDB:3)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onMessage(Grid.CDB:9)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onNotify(Grid.CDB:136)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache.onNotify(DistributedCache.CDB:3)
    at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:42)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: means: Direct buffer
    at java.nio.Bits.reserveMemory(Bits.java:633)
    to java.nio.DirectByteBuffer. < init > (DirectByteBuffer.java:95)
    at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:288)
    to com.tangosol.coherence.component.util.daemon.queueProcessor.service.peer.acceptor.TcpAcceptor$ BufferPool.instantiateResource (TcpAcceptor.CDB:8)
    to com.tangosol.coherence.component.util.daemon.queueProcessor.service.peer.acceptor.TcpAcceptor$ BufferPool.acquire (TcpAcceptor.CDB:25)
    to com.tangosol.coherence.component.util.daemon.queueProcessor.service.peer.acceptor.TcpAcceptor$ BufferPool.allocate (TcpAcceptor.CDB:3)
    at com.tangosol.io.MultiBufferWriteBuffer.advance(MultiBufferWriteBuffer.java:870)
    to com.tangosol.io.MultiBufferWriteBuffer. < init > (MultiBufferWriteBuffer.java:32)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.peer.acceptor.TcpAcceptor.allocateWriteBuffer(TcpAcceptor.CDB:3)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Peer.send(Peer.CDB:11)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Peer.post(Peer.CDB:23)
    at com.tangosol.coherence.component.net.extend.Channel.post(Channel.CDB:25)
    ... more than 17

    Expand configuring proxy that we have disabled the suspect Protocol (see below). I understand that this setting prevents the closure of 'slow' connections proxy service Is it possible to have more control over the suspicious behavior of Protocol?

    < Acceptor-config >
    <>tcp-Acceptor
    < address - >
    localhost < address > < / address >
    < port system-property = "com.lbg.extend.port" > 9099 < / port >
    < / local-address >
    < suspect-protocol-enabled > false < / suspect-protocol-enabled > <!-TODO do this-> configurable
    < / tcp-Acceptor >
    < serializer >
    > class name < com.tangosol.io.pof.ConfigurablePofContext < / class name >
    < / serializer >
    < / Acceptor-config >

    HI -.

    The OOME is a result of the execution with the suspect disabled protocol.

    The suspect Protocol protects the proxy running out of memory because of the slow clients.

    See the following for more details:
    Outgoing BufferPool

    3.6 consistency provides improved control of the Protocol:

    http://download.Oracle.com/docs/CD/E15357_01/CoH.360/e15726/gs_security.htm#CDDFADHG
    http://download.Oracle.com/docs/CD/E15357_01/CoH.360/e15723/appendix_cacheconfig.htm#BABJEADB

    / Mark

  • Created custom view then VO created according to this, now changed the data type but the changes are not reflected in Oracle APPS

    Hello

    I created on the view and according to this point of view created VO, it worked well with PG manual search, but when I changed a col Datatype and tried to compile all the java files. Downloaded PG but always change XML file does not appear, when I call the Oracle Apps Page and Col DataType always shows the old type of data. (I'm also bouncing Apache also)

    Can you please let me know, what is the process to be done, so that the change can be reflected in the Page?

    Thank you

    -NGO

    Some useful links

    http://maqappsfusion.blogspot.com.au/2013/05/bounce-Apache-Server-Oracle-Apps-R12.html

    http://appsdbaclass.blogspot.com.au/2011/06/how-to-bounce-Apache-clear-HTML-cache_8299.html

    See you soon

    AJ

  • Change data type for the column in a table - Oracle 8i

    Team,

    I need to change a VARCHAR2 column in number.

    ALTER table xyz change number abc;

    By giving the above statement, it says I need empty this column before you change.

    I can't change the data type before emptying this column.

    Please indicate any other solution. Give me some suggestions.

    Empty the column for me here BIG task.

    user11081688 wrote:
    I can't change the data type before emptying this column.

    Not according to the documentation:

    You can change the data type of any column or decrease the size of the entire column if all rows in the column contains NULL values.

    Please indicate any other solution. Give me some suggestions.

    You can add another column with the correct data type.

    ALTER TABLE xyz ADD COLUMN def NUMBER;
    UPDATE TABLE xyz SET def = TO_NUMBER(abc);
    ALTER TABLE xyz DROP COLUMN abc;
    ALTER TABLE xyz ADD COLUMN abc NUMBER;
    UPDATE TABLE xyz SET abc = def;
    ALTER TABEL xyz DROP COLUMN xyz;
    

    If I remember correctly, Oracle 8i does not support the change of name of column if this solution is a bit more complicated than 9i and above. Another option would be to create a new table with CREATE TABLE AS... SELECT, drop the old one and rename a new one to the old.

  • [CDC] Change Data Capture: disable the capture of a column in the change table

    Hi experts,

    I use a synchronous CDC on 11 GR 2. I am facing a problem on the tracking columns. I need to exclude columns are to be captured in my change table.

    It comes to my table in the source:
    CREATE TABLE DEPT (Code INTEGER NOT NULL ENABLE,
                        Name VARCHAR2(400 BYTE) NOT NULL,
                        Salary NUMBER(*,2) NOT NULL,
                        CONSTRAINT PK_CODE PRIMARY KEY (Code));
    and I just want to see changes to the Code, name, but no salary.

    This is my definition of the change Table:
    BEGIN
       DBMS_CDC_PUBLISH.CREATE_CHANGE_TABLE(
        owner             => 'cdcpub',
       change_table_name => 'dept_ct', 
       CHANGE_SET_NAME   => 'CHG_SET_DEPT',
       source_schema     => 'my_user',
       source_table      => 'DEPT',
       column_type_list  => 'CODE INTEGER, NAME VARCHAR2(400 CHAR)', 
       capture_values    => 'both',
       rs_id             => 'y', 
       row_id            => 'y',
       user_id           => 'y',
       timestamp         => 'y',
       object_id         => 'N',
       source_colmap     => 'y',
       target_colmap     => 'y',
       options_string    => NULL,
       DDL_MARKERS       => 'n');
    END;
    When I do:
    UPDATE DEPT SET Salary=300000 WHERE CODE=77;
    I don't want to see a line for this update in my table of changes. Is there a way to do it with Oracle CDC or only changes are tracked at the level of the table and not the column...



    Thanks in advance!

    Published by: Salah Sep 20, 2011 10:11

    SAL wrote:
    More than 90 items in the table to compare, so I... But I'll try anyway, maybe it's the solution less harm them!
    THX

    Yes, it will be a pain to do the hit, but you only need a table analysis and sorting 1 window to cover all 90 columns performance should be good enough. Time to get out of copy / paste! :-)

    David

  • How do I filter the JTable lines such as changing data

    Hello

    all suggestions are welcome, I'm at a bit of a dead-end at the moment.

    So, I have a JTable supported by a table model. The data in the table are likely to change while the system is running, when it does certain events are triggered. Table pattern listen to the appropriate events so he could work on what line in the table must be updated, I can call then through the
    int row = determineWhichRow( changedDataObject );
    fireTableRowsUpdated( row, row );
    Correctly, this causes the row in the table to be updated. Now, the bit that's not going to. The user is able to activate filters on the table, more precisely on an attribute of the data in this table that changes. So when I raise the updated event I need to my line (with the filter set) re sorter - sort the table. Have a look there is a method on line sorter:
    getSortsOnUpdate()
    that the Javadoc, I thought I would create the behavior that I needed - assuming that I told it to return true. This after trying the functionality remains the same, that the data model changes, update the values in the table but the filters don't are not reapplied.

    Debugging in the code of the jdk to get an idea of what might happen on this subject seems that filters are called and it determines that the modified line must be filtered, but gets to a point where it was decided that because the event from the table model was an event of update should not call a repaint and resizing method and nothing seems to happen.

    I think that simply re-defining the line on the table sorter would cause the desired effect but would be incredibly inefficient with a data model that can potentially change at any time. I can put the specific line number and the jdk version if this will help anyone, but I hope that you all will be able to give me an idea of what I might have missed.

    Thank you

    Dan.

    Hello

    Thanks for the update and the NBS.

    I tested my 'Hammer' solutions in the SOFTWARE, and they work.

    then sorterChanged is true, nothing is being edited so the first block is not entered, then the second block when a method of resizeAndRepaint - that sounds more useful since it seems that repaint correct is missing - is not entered because the event is an UPDATE.

    It reminds me that referred explicitly to the javadoc for setSortsOnUpdate + "by example, if this is true, and that the user modifies an entry the location of this element in the view can change." The default value is false. ' +, so apparently they had mounting in mind and not other consequences, such as filtered lines by changing the number of lines and the line of the table positions.

    The resizeAndRepaint is only call revalidate and which I've tried first JTable #tableChanged repaint (earlier in the call tree) and call revalidate and paint - I don't know how much of the impact that could have on performance.

    Probably the same impact on one than the other methods of Hammer (I don't know paint involves sorting and filtering, which would frustrate the purpose of caching the results of sorting; have you tried and it works?).

    I also notice in the private method DefaultRowSorter.shouldOptimizeChange () , which is called somewhere at the treatment of the update of the line, that the code checks to see if the change is over one-tenth (and Yes, the ten are hardcoded!) lines and doesn't force not re - sorting so this isn't... With the explicit comment 'changed too, sort all this '. I really wonder how much they paid the consequences of updates when sorting/filtering...

    Tables in general should not have more than a few hundred lines, but there are four of them in the client at any time. There are two different branches of data types and two different periods, the tables are for.
    As you say if this does not work, "hammer" approach is all that remains... Thanks for having the eye well.

    Revisit this point: I don't see how you could save a full repaint anyway: If the results of change of model in the first row being filtered, all lines must be repainted (a place), and even a new line can be displayed at the bottom. Yet once if painting involves sort, has no way around sorting in any case, this isn't worth trying to avoid the kind.
    I agree that this should be handled automatically (and I consider a bug because it's not).

    In fact if you fireRowUpdated (i-1, i) (test quick hacky-ish), you will notice that the two rows are properly painted and shift, but not the rest of the table (which should be moved to the top line). This is clearly a bug, it seems that the JTable only redraws the line range in the case of the update, not taking into account that changes of impluies new kind other indices of line outside this range.

    * In short: rowupdated in the presence of a sorter/filter should involve the use/filtering and if necessary to repaint, of the whole table. and this should be in the stock of JDK, not imposed the application code to find

    Published by: jduprez on June 29, 2011 13:23

  • Select the row in the table to change in a form

    Hi all

    I use Jdeveloper 12.1.3.0.0 on windows internet explore 10.

    I have the following form and the read-only table. the form and the table that are both on the same object from view.

    click_edit.png

    When the user clicks a row in the table, I want to choose this line in the form above for editing purpose.

    How would I do that? the first column of the table is a primary key.

    I followed shayjdev vedio http://www.youtube.com/watch?v=e0IcnXLJUgU

    but the problem is that when I click the button CreateInsert (5th button left in my case), never clear the form for the opening of new record, instead, he put the table in input mode.

    kindly help me with this.

    Thank you.

    To create a new line, you drag the operation createInsert of the data control on the create new"" button. This should create the new row.  If you like the new line being the last of them using the link from dvohra21 to https://blogs.oracle.com/jdevotnharvest/entry/how_to_add_new_adf

    In this case, you must change the listener to the button action to point to the generation of listener action code of Frank.

    Timo

  • ERROR / T_ITEMS in the TABLE is changing, function of triggering/can not see ORA-06512... ?

    Hi all

    I CREATED THE TRIGGER TO CHECK NOM_ELEMENT BEFORE UPDATE ON THE T_ITEMS TABLE IF AN ANOTHER NOM_ELEMENT LIKE NOM_ELEMENT CURRENT OR NOT, IF AS AN ANOTHER NOM_ELEMENT DON'T SAVE UPDATED CURRENT NOM_ELEMENT.

    MY NO IS:

    1 - I CREATED the FUNCTION CALL CH_UNIQUE_ITEM_NAME

    CREATE OR REPLACE FUNCTION CH_UNIQUE_ITEM_NAME
    (NUMBER OF P_ID, P_ITEM_NAME IN VARCHAR2)
    RETURN NUMBER
    AS
    NUMBER OF X_COUNT;
    -FUNCTION "CH_UNIQUE_ITEM_NAME" TO CHECK NOM_ELEMENT LIKE OTHER NOM_ELEMENT OR NOT.
    BEGIN
    SELECT COUNT (ITEM_NAME)
    IN X_COUNT
    OF T_ITEMS
    WHERE ID! P_ID =
    AND UPPER (ITEM_NAME) AS UPPER (P_ITEM_NAME);
    RETURN X_COUNT;
    END CH_UNIQUE_ITEM_NAME;

    2. I CREATED TRIGGER CALL TRG_CH_UNIQUE_T_ITEMS

    CREATE OR REPLACE 'TRG_CH_UNIQUE_T_ITEMS' before FIRING
    UPDATE
    ON T_ITEMS FOR EACH LINE
    DECLARE
    NUMBER OF X_CHECK;
    BEGIN
    SELECT CH_UNIQUE_ITEM_NAME (: OLD.ID,: NEW.) NOM_ELEMENT) IN DOUBLE X_CHECK;
    IF (: NEW.) NOM_ELEMENT DISLIKES: OLD. Nom_element AND X_CHECK > 0)
    THEN RAISE_APPLICATION_ERROR (-20007, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
    END IF;
    END;

    NOW WHEN I UPDATE ANY ITEMS FOUND ERROR "ERROR / T_ITEMS in the TABLE is changing, function of triggering/can not see ORA-06512.

    Form on T_ITEMS22222.png

    Please help me TO RESOLVE THIS ERROR. I TIRED TO SOLVE...

    Thank you

    You don't realize that you have just set a UNIQUE INDEX of several columns?

    create unique index index_name_uq on table_name( user#, upper(item_name) );
    

    In addition, a GUI Design point, (using the terms of the APEX) that you want to validate the data before submit you.

    (use a Page-level Validation)

    MK

  • Changing data in the undo tablespace or db Oracle buffer cache

    Hello

    I have serious doubt in the feature of oracle architecture, when a user issues an update statement, the data blocks are transported to the db buffer cache and where the data changes are made? Made a copy data block is stored in the cache db pads and the changes are made to the block in the buffer cache? or the copy of the data block is stored in the undo tablespace and changes are made to the blocks in the undo tablespace?

    In singles, the changes to the data blocks are make to the db or undo tablespace buffer cache?


    Thanks in advance

    Kind regards
    007

    Did you have a look to the Internet for the answer?

    In short, if a trial Oracle wants to update a record in the table, it does:

    -Read the record to be changed in the buffercache
    -Audits (the record already locked, is the update allowed)
    -Put the folder (called image before) in a rollback in the UNDO tablespace segment
    -Writing redo information about this change in the UNDO tablespace
    -Lock the record
    -Write the change in registration in the buffer cache
    -Put the change also in the redo buffer
    S ' sit and wait... (for a commit or a rollback)

    When are committed:
    -Release the lock
    -Empty folder of restoration since the UNDO tablespace
    -Write a record of this change forward in the UNDO tablespace

    When rollback:
    -Release the lock
    -Rinse the record changed the buffercache
    -Read the original value
    -Empty folder of restoration since the UNDO tablespace
    -Write a record of this change forward in the UNDO tablespace

    It of here, some more specific complexity when a checkpoint occurs between the change and the commit / rollback or redo buffer has been emptied for redo files

    Please any other s/n, correct me if I'm wrong...

    See you soon
    FJFranken

  • How to change data objects and update the corresponding task and task forms?

    Hi all

    I modified this thread because I found that I had many questions to ask.

    1.
    I'm quite new to OBPM and would like to know how to change data - for clarity objects add a new attribute "Dependents of the Client" "Customer care" - and therefore update the task that uses the 'customer information' what makes via data binding - I get an error message here - or via the data about the data Task-The chosen tab it does not appear to be linked to my approach in some sort.

    2.
    Will be the task form that I generated earlier in < 1 > update automatically? Is it possible to update manually if the task has been clearly customized?

    3.
    What are the objects of project data? They do not store values in my process. They are for the arguments only - like reusable process?

    Thanks in advance,

    Kind regards

    Yanis

    Hi Yanius,

    (1) assume that you start from scratch. First, you declare your data object structure. To do this, you must go to the BPM project Naviagtor, right-click on 'Catalogue of trades' and create a new Module. Then you can right click on the module you created and select the new object of trade. Add all the attributes you need. It is the same to declare a class in Java. Second, you must declare a variable of the type process you have created: select the process, go to the Structure display (if you don't go and activate it in menu view Jdev-> Structure). Right click on the Process data object and create your variable. It's like setting a variable in Java. In short, answering your question, make the path opposite: find in your process of type "Customer Details", then go to your catalog Business, right click and change the definition to add what you need.

    (2) the human task will not update automatically (annoying). If you change the object itself, so you don't need to change your mappings because actually there the same object you are through the task as in / out argument. There are two things here: the human task and form associated with it (where probably change you the subject i.e. customer details). Go to the form (.jspx) - click on the tab links (by default, you are in the Design). In the links page, there is a link on top: "Page Définition File" (something like proj/pageDef/...xml). Open the XML file and go to the source. There you can add manually now all the attributes you need and that were not available before (i.e. dependent Client). It's a little complicated, but at least you don't have to recreate it. particularly useful if you have already implemented and subsequently form, you need to add more things (business is very good to say otherwise, "I would like to see something else in the form" ;)

    (3) project data objects are visible by all processes that you have in the project rather than the object of process data that are visible only to the method where you set the variable to. This means that you declare an object of data of the project once and then it will be available to all processes. Keep in mind that each process has a copy of it. In other words, it is not like a global variable that everyone sees. If edit you in a single process, other processes will not see the new value.

    I hope that I have answered your questions.
    See you soon,.
    Felipe

  • The batch change date and time

    I have a lot of photos which, for some reason, have lost their correct dates and hours of creation, so I was eager to correct in an easy and enjoyable way.  I unfortunately discovered that Photos is not the batch option to change that used to be in iPhoto.

    When you try to find a solution to my problem, I fell on this batch Change Date and time on a fixed Date, which works well, but not quite how I want it.  What I want to do, that's exactly what the script above does, but rather than increment by 1 minute of each photo, I want to increment by 1 second intervals by photo.

    Having not really used AppleScript before, I tried to change the references to the 'minutes' to 'seconds' but that did not work.  Is it possible to do using above seconds instead of minutes?

    Any guidance would be greatly appreciated.  Thank you.

    Just delete the text "" * minutes ' in the lines where the date is changed. "

    Then time will be incremented seconds.

    For example, for the first version of the script use:

    the value timeIncrement to 1 - increment of time in seconds

    (* select at least 2 images in Photos *)

    say application 'Photos '.

    activate

    game imageSel for (get selection)

    if ({ is } imageSel) or (the length of imageSel < 2) then

    error "Please select at least two images."

    on the other

    defined first_image to the point 1 of the imageSel

    the value first_date to (the date of first_image) as date of

    Repeat with I from 2 to the County of imageSel

    put next_image to the point I of imageSel

    the value next_date to (the date of next_image) as date of

    the value time_difference to (first_date - next_date) + ((i-1) * timeIncrement)

    say next_image

    the value le Date of next_image to (next_date + time_difference) as date of

    end say

    end Repeat

    end if

    return "Set the date and time of" & (the length of the imageSel) & 'photos. The last date is "& ((the date of next_image) as date)"

    end say


  • How can, during the collection of data, start a new column in my table every 100 data points?

    Hello! I have a problem with my data - I get in a wide range of 1 x 1000, but it's the repeated measures, each taking about 500 data points. I want to break this table for this data string start a new column in my table every 500 points given. I don't know how to do it-please help!

    datacompiler100 wrote:

    Hey thanks for the sponsor and the first off I must apologize for the State, I am attaching my VI. I put the part of the VI that I am working on (my team has access, so didn't post everything here) and also attached the data file (when just written in a spreadsheet file, not through the attached VI). I want to convert the long row of data and then start a new column every 50, 100, 5 points (user-defined).

    Using the data from the file, you can reshape everything simply (as you already!), followed by transposition (since you want columns instead of rows). 2D arrays must always be rectangular, so the last column is filled with zeros if necessary. Is that what you want?

    Of course if you try to add a new column in a file, that will not work. You can only add lines in an existing file because of the way the data is organized. To add columns, the entire file must be read, intertwined and all re-written new data in the file.

  • What type of connections I do for the acquisition of data PCI 619 card pins? What I have to give it to the ground and the CCV on the pins of the connector myself? What should be the value of the SCR I need to give to the PIN?

    I have a PCI 6519 data acquisition card. I want to install it on the PC and use it outputs to control a robot. I have problems with the connections to the terminal block which is attached to the cable.

    What type of connections I do for the acquisition of data PCI 619 card pins? What I have to give it to the ground and the CCV on the pins of the connector myself? What should be the value of the SCR I need to give to the PIN?


Maybe you are looking for