Caching of TimesTen Newbie

Hello

I'm trying to apply a having the function of caching of the DB, for that my elders guided me that Oracle will be the main database and TimesTen that will be part of the caching. So, my question is what can someone tell me where to start, I'm all new to this concept of caching. I just need a few small examples of practical work.
I have installed Oracle and TimesTen on my machine and they both work.



TIA,
Vikas

Hi Vikas,

Should any measurable impact on the performance of your machine just to have Timesten installed. TimesTen is a unique service which is very light and very little fact when it starts. However, if you have created a datastroe and explicitly set the ramPolicy for this datatore 'always' then this data store will be loaded into memory when the servcie TimesTen begins and which could affect the start time of your machine, if it is a large data store. However, this could happen only if you explicitly set the ramPolicy of 'always' or one of the agent (cache or replication) policy to "always."

Chris

Tags: Database

Similar Questions

  • Insertion of cache imdb timesten takes more time than inserting it into db11g

    Hello

    I am very new to Timesten imdb cache. Recently, I installed imdb cache in an application server and then installed oracle 11g on a db server and get to integrate them.
    So, I wanted to test the performance of the imdb cache... I have create an insert scripts that write about 10 k record... I ran into both cache imdb then ran directly in oracle 11g. I have the chance to see the results that Timesten is slower than oracle db...

    I followed the steps of installing oracle wesbsite... my question... what else should I consider making imdb cache 10 x faster than writing in oracle db?

    I hope you could help.

    John

    By direct connection of threads, I meant that you have several threads or processes each with a connection (using the direct ODBC driver rather than the Client/Server driver), all working in parallel to separate the workload and achieve a maximum flow rate. On processor chips multi-core hardware of today, across my addition process/connections/threads is imperative and TimesTen does very well.

  • Cache Group drop in timesten 11.2.1

    Hello

    I'm giving a group of asynchronous cache in timesten. I followed the steps below to do so:

    (a) I use the DSN, UID, PWD, OracleID, OraclePWD specified connection string
    (b) if the replication strategy is 'always', change it to "manual".
    (c) stop replication
    (d) drop the cache AWT Group (+ drop cache group cachegroupname; +)
    (e) create the AWT updated the
    (f) initiate replication by
    (g) set the replication policy to "always."


    After step (d), I get the following error:

    Order > drop cache group cachegroupname;
    + 5219: temporary Oracle in OCIServerAttach() connection failure error: ORA-12541: listener TNS:no rc = - 1 +.
    + 5131: unable to connect to the back-end database: OracleNetServiceName = "servicename", uid = "inputuid", pwd is hidden, TNS_ADMIN = "/ opt/TT/linux/info", ORACLE_HOME = "/ opt/TT/linux/ttoracle_home/instantclient_11_1 +.
    + 5109: General error cache Connect: BDB connection not open. +
    The command failed.
    Command >

    If the error suggests that the cache connect has a problem? Should I restart the timesten daemon and try again? Please let me know what is the real problem.

    Let me know if you need information.


    Thank you
    V

    SQL * more problem is simply because you have all the appropriate directories listed in LD_LIBRARY_PATH. It is likely that your .profile (or equivalenbt) file was affecting those based on ORACLE_HOME and if it is now disabled could be Roble. Make sure LD_LIBRARY_PATH is set correctly and this problem will disappear.

    Character set issues is may be more problematic. It is mandatory that the database of game used by TimesTen exactly character corresponds to Oracle DB when TT is used as a cache. If the character sets are really different, then it is very serious and you need to rectify many things will not succeed otherwise. You need to pass Oracle DB either US7ASCII (it's probably a lot of work) or you need to change the character of TT value WE8MSWIN1252.

    To accomplish the latter you would:

    1. make a backup of the TT data store using ttBackup (just for security).

    2. for any non-cache tables (i.e. one TT), unload data from flat files using ttBulkCp - o...

    3. save the schema for the data store by using ttSchema.

    4. stop replication and cache agents.

    5. ensure this data store is unloaded from memory and then destroy the data store (ttDestroy)

    6 edit sys.odbc.ini to change the character set of data store.

    7. to connect to the data administrator of instance store (to create the data store). Create all necessary users and to grant required privileges.

    8. set the cahce ID username/password (call ttCacheUidPwdSSet (...,...))

    9 start the cache agent.

    10. run the SQL script generated by ttSchema of re - create all database objects (tables and hiding groups etc.)

    11 fill again all memory tables not cache from flat files using ttBulkCp-i

    12 re-load all groups using GROUP of CACHE of LOADING cache...

    13 restart the replication agent.

    That's about all (I hope I missed out any vital step).

    Chris

  • Owner of cache group

    Hello

    I use TimesTen release 11.2.2.8.10 (64-bit, Linux/x86_64). for setting cache Oracle tables. I have a question of best practices:

    Side Oracle, I have the cache administrator user: CACHEUSER and a table owner: TBLAPP that holds the tables I want to cache

    TimesTen, I have the cache manager: CACHEUSER and I created the table owner: TBLAPP

    The caching array will be under TBLAPP, but who should have GROUPS HIDING? CACHEUSER or TBLAPP? If it's TBLAPP, it must be given CACHE_MANAGER so my first answer would be CACHEUSER...

    Thank you

    Christophe

    For the community, I found the answer in the Cahe user guide! This guide is referenced in TimesTen Note MOS 11.2.2.X Documentation Set - Cache User Guide (Doc ID 1448627.1) but can also be downloaded from the documentation library.

    The process is well described on page 2-7 in paragraph create a Cache Group: so, for groups of cache read-only, you grant to select on the table of cacheuser caching and the cache under CACHEUSER group. However, I found very useful to graphically create a cache with SQL Developer group.

    C.

  • TimesTen to AWT Oracle Transaction semantics

    Hello

    I had a question about the semantics of transaction being maintained between Oracle and TimesTen for an asynchronous write through to Oracle TimesTen. Suppose we have a single cachegroup AWT on TimesTen to update a single table in Oracle.

    If on TimesTen, we do the following-

    1 insert a line in the cache group TimesTen.

    Validation - end of the transaction 1.

    2. update the same row on TimesTen.

    Validation - end of the transaction 2.

    3. update the same row again on TimesTen.

    Validation - end transaction 3.

    The question is the update to Oracle via AWT would 3 operations (Insert followed by validation, followed by validation updates and another followed by a validation.) or will happen differently? I think that ranking (insertions followed by updates and another) would be maintained. How about the semantics of transaction?

    To add more, version TimesTen that we use is 11.2.2.4.11 running on a 64-bit Linux machine. We have a secure two validation architecture where we have two instances of TimesTen, a primary (active) and a secondary (standby) to Setup, with the operation of the secondary instance (standy) AWT.

    Any input would be very helpful.

    Thank you!

    Yes. AWT uses batch operations against Oracle to optimize performance. One batch can cover several transactions (complete) because they took place on the side of TimeTen. We promise each batch. If a batch operation fails, then restore us the whole lot and then re-run the transaction that made the batch using individual operations, and in this case, we will then engage on each transaction limit.

    Chris

  • TimesTen turns more slowly than Oracle RDBMS

    Hello

    I installed timesten, and I just wanted to compare the performance of the following pl/sql block on with same block on Oracle timesten.

    declare

    date of temp_date;

    date of temp_date1;

    number of my_id;

    my_data varchar2 (200);

    cursor c1 is select MASTER_ID, MONTANA

    of AKS_TAB_MASTER;

    c2 (p_id number) cursor is select detail_ID dDATA of

    AKS_TAB_DETAIL

    where master_id = p_id;

    Start

    t loop c1

    Open c2 (t.master_id);

    extract the c2 in my_id, my_data.

    insert into aks_temp values (t.master_id, my_id, t.MDATA, my_data);

    Close c2;

    end loop;

    end;

    I created a group of cache in Timesten for caching table AKS_TAB_MASTER & AKS_TAB_DETAIL

    I created the AKS_TAB_DETAIL table in Oracle and timesten separately to avoid transmission

    In some ways, TimesTen takes 4 times longer than Oracle.

    I went through a link TimesTen Database Performance Tuning and database as my settings as follows:

    Permanent data format 640

    Temporary data of size 300

    Replicate parallel buffer MB 480

    Log File Size (MB) NULL

    Size of the buffer log (Mo) 320

    Cach AWT method 1-PLSQL

    AWT parallelism NULL cAche

    PL/SQL Connection limited memory (MB) 320

    PL/SQL optimization level 2

    PL/SQL Memory Size (MB) 240

    PL/SQL Timeout (seconds) 600

    I get always poor performance of TimesTen.

    No idea what could be wrong on my instance.

    Please suggest.

    Thank you

    Amit

    I was watching just the info you posted and I was about to point out the missing foreign key. In TimesTen set a primary or foreign key results in an index being created. You would have seen improvement even if you create an index on the MTAX. AKS_TAB_DETAIL (MASTER_ID). Without this index each execution of the query cursor c2 was a full table of param2tres table scan (which is obviously much slower than the indexed access).

    TimesTen is a database in memory you will need to apply database optimization techniques usual whose correct indexing is very important.

    Chris

  • Executed in Oracle updates do not appear in TimesTen

    Hello. I'm evaluating Oracle + Timesten cache function group and had the following problem. I have run on Oracle initialization scripts, created users Oracle and TimesTen (have the same names and passwords), created the test table (sous-nommé), global grid and dynamic async write cache of this table group. Can I run an insert query and see changes in Oracle. But when I run the query insert on Oracle I don't see the inserted data in TimesTen. Here are all the orders I have make to create the cache group

    As an administrator of the instance, I create user (tengri) and cache administrator (tengriadm):

    Command > create tengri user identified by tengri.

    Created by the user.

    Command > create user tengriadm identified by tengriadm;

    Created by the user.

    Command > GRANT CREATE SESSION, CACHE_MANAGER, CREATE ANY TABLE TO tengriadm;

    As a user of cache manager (tengriadm), I create grid, cache group, start the replication and tie the knot on the grid:

    Command > call ttCacheUidPwdSet ('tengriadm', 'tengriadm');
    Command > call ttGridCreate ('ttGrid');
    Command > call ttGridNameSet ('ttGrid');
    Command > CREATE ASYNCHRONOUS, WRITETHROUGH GLOBAL CACHE of the ttGroup GROUP DYNAMICS
    OF tengri.sub)
    ID integer not null not primary key,.
    MSISDN varchar (32) not null,
    name varchar (64).
    integer of the balance,
    short_num varchar (32),
    Address varchar (512).
    integer not null,
    is_locked integer not null,
    whole charging_profile_id
    whole cos_id
    whole currency_id
    language_id integer
    );

    Command > call ttRepStart;
    Command > call ttGridAttach(1,'tt1','10.50.3.160',5001);

    As an administrator of the instance:

    Command > grant select, update, insert and delete on tengri.sub to tengriadm;

    As that user to cache manager that I do insert query:

    Command > insert into tengri.sub values (1, '1', '1', 1, '1', '1', 1, 1, 1, 1, 1, 1);
    1 row inserted.

    And check it on Oracle

    Select count (*) in sub;
    It returns me 1

    Then I perform the Insert on Oracle
    insert into tengri.sub values (2, '2', '1', 1, '1', '1', 1, 1, 1, 1, 1, 1);

    And run select on TimesTen
    Command > select count (*) in the tengri.sub;
    < 1 >
    1 row found.

    Still 1 entry. My first mind was about validation but I double checked on Oracle, executed the command commit explicit and still don't see no change on TimesTen. Anyone would specify this behavior?

    Thanks in advance!

    For groups of dynamics of the local cache, dynamic load is possible that for instructions SQL that include a predicate of equality key on a defined primary key or foreign key. For statements that meet these requirements TimesTen will be first to try and access the data requested on the spot. If no matching row is found, then it will try in Oracle. If the data is found in Oracle it will be recovered, inserted into the cache tables in TimesTen (ready for the next access to it) and then the SQL application will run on local data and returns its result. This works for SELECT, UPDATE, INSERT, and DELETE operations.

    Global dynamic cache groups TimesTen titles, to a level of cache instance, if data are al; This loan somewhere in the grid (and if yes where it is located). For SQL, which is eligible for the dynamics of the charge, if no matching line is found locally, then they will be recovered (moved) to another Member of the grid (if the data is already present in the grid) but if not it will be loaded dynamically Oracle regarding the case of Group of local cache.

    In the current implementation of the used Oracle Grid hides a lot of functions and the concept is a; cache' grid. Currently it is not possible to use the Cache grid without a backend Oracle database. This may change in a future release.

    Chris

  • What is the difference between cached and no cached TT tables

    Hi all

    I have three users in my Timesten

    User Admin 1.TimesTen - cache
    2 - cacheuser user cache manager
    3.cbs_owner user schema (which is the same name as the user of oracle schema)


    I have a few groups of cache in timesten for oracle tables, I created some tables on user schema TTs to compile tables pacakges.these not associted with groups of cache;


    My question is what is the difference between cahed tables (tables associted with cache groups) and not cached (associted with any group of cache) TTs schema user, nice tables want to help me

    example-

    Command > tables;

    CBS_OWNER. ACCOUNT_SUBSCRIBER / / table belongs to the Group of cache
    CBS_OWNER. OFFER_REF / / not belogs to any group of table cache



    Thank you
    -AK

    Published by: AK08 on June 13, 2010 23:30

    I just started to investigate TimesTen... and I think that the cache groups allow you to replicate data to and from Oracle. for example
    -Group of cache Read-Only: spreading tables cached in Oracle to TimesTen.
    -Group of asynchronous/synchronous cache: spreading the Oracle data.
    -User managed group cache: no automatic update or spread.

    No cached tables do not have the features of spread.

  • 838 cannot get error of data store shared memory segment in Timesten

    Hi Chris,
    It is shalini. I sent u for the last two days reg this problem. You asked me on a few details. Here is the answer,

    1, u no matter what changed after the installation of timesten? -No. I don't change anything.
    2. What are the three values in physical memory? -Total - 2036 MB, cache - 1680 MB, free - 12 MB
    3, ttmesg.log and tterrors.log? -
    tterrors.log:

    Warn 12:48:58.83: 1016:3972 connection process failed to create reports

    ttmesg.log:

    12:48:58.77 Info: 1016: labour had #12.14, Hello: pid = 3972 type = load useful library = % 00% 00% 00% 00 protocolID = TimesTen 11.2.1.3.0.tt1121_32 ident = % 00% 00% 00% 00
    12:48:58.77 Info: 1016: labour: with request #12.14
    12:48:58.77 Info: 1016: labour obtained #12.15 of 3972, connect: name = c:\timesten\tt1121_32\data\my_ttdb\my_ttdb context = 266e900 user = InstallAdmin pass = dbdev = logdev = logdir = c:\timesten\tt1121_32\logs\my_ttdb grpname = access = % 00% 00% 00% 00 persist = % 00% 00% 00 00 flags=@%00%00%01 newpermsz = % 00% % 00% 00% 02 newtempsz = % 00% 00% 00% 02 newpermthresh = Z % 00% 00% 00 newtempthresh = Z % 00% 00 00 = 00% newlogbufsz % % 00% 00% 02 newsgasize = % 00% 00% 00% 02 newsgaaddr = 0% 0% 00% 00 00 = % autorefreshType % ff % ff % ff % ff logbufparallelism = % 00% 00% 00 00 = 00% logflushmethod % % 00% 00 00 = 00% logmarkerinterval % % 00% 00% 00 connections = 03% 00% 00% 00 control1 = % 00% 00% 00% 00 control2 = % 00% 00% 00 00 control3 = % 00% % 00% 00 00 = 06% 00% ckptrate % % 00 00 = 00% connflags % % 00% 00 00 newlogfilesz=%00%00@%01 skiprestorecheck = % 00% % 00% 00% 00 realuser = my_ttdb ckptfrequency = conn_name InstallAdmin = X % 02 00 00 ckptlogvolume = % 14% 00% % 00% 00 recoverythreads = 0% 3% 00% 00% 00 reqid = * plsql = % ff % ff % ff % ff receiverThreads = % 00% 00% 00% 00
    12:48:58.77 Info: 1016:3972 0266E900: connect to c:\timesten\tt1121_32\data\my_ttdb\my_ttdb a = 0 x 0 f = 0 x 1000040
    12:48:58.77 Info: 1016: permsize = 33554432 tempsize = 33554432
    12:48:58.77 Info: 1016: logbuffersize = 33554432 logfilesize = 20971520
    12:48:58.77 Info: 1016: permwarnthresh = tempwarnthresh logflushmethod = 90 = 90 0 connections = 3
    12:48:58.77 Info: 1016: ckptfrequency = 600 ckptlogvolume = 20 conn_name = my_ttdb
    12:48:58.77 Info: 1016: recoverythreads = 3 logbufparallelism = 0
    12:48:58.77 Info: 1016: plsql = 0 sgasize = 33554432 sgaaddr = 0x00000000
    12:48:58.77 Info: 1016: control1 = 0 = 0 = 0 control3 control2
    12:48:58.79 Info: 1016: ckptrate = 6 receiverThreads = 0
    12:48:58.79 Info: 1016:3972 0266E900: no such data bank
    12:48:58.79 Info: 1016: daDbConnect failed
    12:48:58.79 Info: 1016: return 1 833 "no such database!" arg1 = "c:\timesten\tt1121_32\data\my_ttdb\my_ttdb" arg1type s = ' arg2 = "arg2type = the of '
    12:48:58.79 Info: 1016: labour: with request #12.15
    12:48:58.79 Info: 1016: labour obtained #12.16 of 3972, create: name = c:\timesten\tt1121_32\data\my_ttdb\my_ttdb context = 266e900 user = pass = dbdev = logdev = logdir = grpname = c:\timesten\tt1121_32\logs\my_ttdb InstallAdmin persist = % 00% 00% 00% 00 = 00% access % 00% 00% 00 flags=@%00%00%01 permsize = % 00% 00% 00% 02 tempsize = % 00% 00% 00% 02 permthresh = Z % 00% 00% 00 tempthresh = Z % 00% 00 00 = 00% logbufsize % % 00% 02 logfilesize=%00%00@%01 shmsize = 8% f4% sgasize % C9% 00 = 06% 00% 00% 02 sgaaddr = 00% % 00% 00 00 autorefreshType = 01% 00% % 00 00 = 00% logbufparallelism % % 00% 00 00 = 00% logflushmethod % % 00% 00 00 = 00% logmarkerinterval % % 00% 00% 00 connections = 03% 00% 00 00 control1 = % 00% % 00% 00% 00 control2 = % 00% 00% 00% 00 control3 = % 00% 00% 00 00 = 06% 00% ckptrate % % 00 00 = 00% connflags % % 00% 00 00 = 00% inrestore % % 00% 00% 00 realuser = my_ttdb ckptfrequency = conn_name InstallAdmin = X % 02 00 00 ckptlogvolume = % 14 %0% 0% 00% = % 03 00 00 recoverythreads % 00% 00 reqid = * plsql = % 00% 00% 00% 00 = 00% receiverThreads % 00% 00% 00
    12:48:58.79 Info: 1016:3972 0266E900: create c:\timesten\tt1121_32\data\my_ttdb\my_ttdb p = 0 x 0 x 0 f a = 0 = 0 x 1000040
    12:48:58.79 Info: 1016: permsize = 33554432 tempsize = 33554432
    12:48:58.79 Info: 1016: logbuffersize = 33562624 = 20971520 logfilesize
    12:48:58.80 Info: 1016: shmsize = 113898552
    12:48:58.80 Info: 1016: plsql = 0 sgasize = 33554432 sgaaddr = 0x00000000
    12:48:58.80 Info: 1016: permwarnthresh = tempwarnthresh logflushmethod = 90 = 90 0 connections = 3
    12:48:58.80 Info: 1016: ckptfrequency = 600 ckptlogvolume = 20 conn_name = my_ttdb
    12:48:58.80 Info: 1016: recoverythreads = 3 logbufparallelism = 0
    12:48:58.80 Info: 1016: control1 = 0 = 0 = 0 control3 control2
    12:48:58.80 Info: 1016: ckptrate = 6, receiverThreads = 1
    12:48:58.80 Info: 1016: creation of structure of DBI, marking in the stream to create by 3972
    12:48:58.82 Info: 1016: daDbCreate: on the point of calling trashed =-1, createShmAndSem, shmSeq, panic =-1 = 1, c:\timesten\tt1121_32\data\my_ttdb\my_ttdb name
    12:48:58.82 Info: 1016: marking streaming to create by 3972
    12:48:58.82 Info: 1016: create.c:338: Mark streaming (right now 1 = create pid 3972 nwaiters 0 ds c:\timesten\tt1121_32\data\my_ttdb\my_ttdb) (a reason no. 1)
    12:48:58.82 Info: 1016: labour: with request #12.16
    12:48:58.83 Info: 1016: labour got #12.17 of 3972, complete creation: name = c:\timesten\tt1121_32\data\my_ttdb\my_ttdb context = 266e900 connid = % 00 08 00% % 00 success = N
    12:48:58.83 Info: 1016:3972 0266E900: CreateComplete N c:\timesten\tt1121_32\data\my_ttdb\my_ttdb
    Warn 12:48:58.83: 1016:3972 connection process failed to create reports
    12:48:58.83 Info: 1016: about to destroy SHM 560
    12:48:58.83 Info: 1016: labour: with request #12.17
    12:48:58.83 Info: 1016: labour 12: closed socket, call for recovery (last cmd was 17 years old)
    12:48:58.85 Info: 1016: from daRecovery to 3972
    12:48:58.85 Info: 1016: 3972 -: process is released
    12:48:58.85 Info: 1016: finished daRecovery for pid 3972.

    I think that 'Process reports failed to create connection' is the indicated error.

    4, DSN attributes? -

    earlier, I used my_ttdb which is the SYSTEM DSN, and I tried to create a user DSN, it still does not. I'll give you the my_ttdb dsn attributes.

    I can't join the screenshots in this post. Y at - it anyway to attach it. I shouldn't send the response by mail of my company, so just sent this message. You can answer to my mailbox identification.

    Chris or anyone can please reply to this post below.

    I have a table called Employee. I created a view called emp_view.

    Create view emp_view as
    Select / * + INDEX (used emp_no) * /.
    emp_name, emp_no
    the employee;

    We have another index on the Employee table called emp_name.

    I need to use the index emp_name emp_view as below.

    Select / * + INDEX (< of tables used > emp_name) * /.
    emp_no
    of emp_view
    where emp_name = 'SSS ';

    in the index, I tried / * + INDEX (emp_view. Employee emp_name) * /, but it always takes the index used to emp_view ie emp_no... Anyone can u please help me solve this problem.

    Published by: user12154813 on November 3, 2009 04:21

    In my opinion, a great place to start to learn and understand TimesTen is to make sure that when you install TimesTen, you install quick start-up equipment and then take the time to read and follow the examples. They have quickly you will fill in on several important concepts of TimesTen much better I can do in a post here in this forum. To try to answer some of your key questions:

    1. you can run Oracle DB, TimesTen on the same machine that the machine has sufficient resources. You try to run as well on a 32-bit windows with only 2 GB RAM machine probably isn't a very good idea. In general, TimesTen is installed in another machine to Oracle Db and communicates with it through SQL * Net. In general, TimesTen is deployedin application layer, usually on the mchine hosting the actual application.

    2 TimesTen is a comprehensive database full and is not in any way on Oracle DB. However, when you use the IMDB Cache of TimesTen feature you use the database in memory of high-performance data cached for faster access of Oracle Timesten.

    3 TimesTen is not "delivered" with Oracle DB and vice versa. They are separated from the products that are installed and configured separately. If you use TImesTen as a cache for Oracle DB, then you must install both (either in the same or different machines), and then configure the connectivity between the two. It's all covered in the quick start guides.

    4. If you are using SQL * Plus then you talk to DB Oracle (SQL * more don't work not today with TimesTen). Similarly, if you use ttIsql then you talk to TimesTen (ttIsql cannot connect directly to an Oracle DB).

    I hope that this helps to reduce confusion :-)

    Chris

  • Index for the Group of readonly cache table

    Hello

    Suppose I have a table in Oracle which is cached in TT as a readonly cache group.
    The oracle table has a primary key, based on columns (c1, c2, c3).

    Now, the oracle table also has a unique index (for example defined on columns c4, c5) in support of some queries.

    (1) is there a way to propagate this unique index for the cache group? (so that we can perform queries effectively TimesTen)

    (2) is it correct to assume that the group create cache statement MUST have the columns (c1, c2, c3) for the primary key? (that is, exactly the same as the pharmacokinetics of the oracle)


    Thank you!

    (1) after you have created the cache in TimesTen group, simply create the index needed on the tables of cache in TimesTen (using CREATE [UNIQUE] INDEX) as you would for any table.

    (2), it depends. A caching table must have a primary key defined in TimesTen. This PK must map to either a real PK defined in Oracle (same column names, order of the columns, data types, nullability, etc..) or a unique index defined on a set of columns not null (column names of the soul, order of the columns, types of data etc.).

    Chris

  • Unable to create cache with several tables group

    Hello

    I need to create a group of cache with several tables, which are referential to the other.

    There are 2 related tables and table 1 child...
    While trying this thing, it gives me an error:

    8222: multiple parent tables found

    It is not possible to use several tables of root in a single cache group? Is there another way to use it?

    Script, I used is:

    create a cache group asynchronous writethrough TEST. CG1
    of the TEST. ROOT1)
    KEY PRIMARY ID VARCHAR2 (8 BYTES),
    NAME VARCHAR2 (50 BYTE),
    DESCRIPTION VARCHAR2 (255 BYTE),
    POLICYTYPEID VARCHAR2 (7-BYTE)),

    TEST. ROOT2)
    PARAMTYPEID VARCHAR2 (5 BYTES) PRIMARY KEY,
    PARAMETERUSAGE VARCHAR2 (1 BYTE),
    NAME VARCHAR2 (25 BYTE),
    DESCRIPTION VARCHAR2 (255 BYTE)),

    TEST. CHILD1)
    PARAMDETAILID NUMBER (20) PRIMARY KEY,.
    ID VARCHAR2 (8 BYTE),
    PARAMETERUSAGE VARCHAR2 (1 BYTE),
    DISPLAYVALUE VARCHAR2 (255 BYTE),
    OPERATORID VARCHAR2 (5 BYTE),
    VENDORID NUMBER (20).
    FOREIGN KEY REFERENCES TEST. ROOT1 (ID),
    TEST KEY (PARAMETERUSAGE) REFERENCES STRANGERS. ROOT2 (PARAMETERUSAGE));

    You can't have multiple root within a group of cache tables. The requirements for tables in the group a cache are very strict; There must be only one top-level (root table) table and there may possibly be several children tables. Tables of the child should be linked through foreign keys to the root table or a child table above in the hierarchy.

    The solution for your case is among the tables of root and the other root table in a separate cache group and the child table in a cache group. If you do this, you must take care of a few things:

    1. you cannot define foreign keys between the tables of groups of different cache in TimesTen (keys may exist in Oracle) so the application must enforce referential integrity itself for these cases.

    2. If you load data in a cache group (using LOAD the GROUP CACHE or "load we demand") and Timesten will not automatically load the corresponding data in the other group of cache (since he doesn't know the relationship). The application must load the data into the other group of cache explicitly.

    There is no problem with transactional consistency when changes are pushed to Oracle. TimesTen maintains and reinforces the coherence transactional regardless of how the tables are arranged in groups cache correctly.

    Chris

  • Create a group of cache problem

    Hello

    I have three tables T1, T2 and T3 in Oracle. The T3 table has two foreign keys F1 and F2 which refers to tables T1 and T2, respectively. When I try to create the cache group in TimesTen for table T3, I get the following error:

    «8211: user table.» T1 is not a member of the Group of cache.

    Here's the script for Oracle and TimesTen

    Oracle
    ======


    CREATE TABLE T1
    (ID1 integer PRIMARY KEY,
    A varchar (30));

    CREATE TABLE T2
    (ID2 integer PRIMARY KEY,
    A varchar (30));

    CREATE TABLE T3
    (ID3 integer PRIMARY KEY,
    OF THE varchar (30),
    Whole F1 references T1 (ID1),
    Entire F2 references T2 (ID2)
    );


    TimesTen
    ========


    CREATE GROUP OF READONLY C_T1 CACHE
    AUTOREFRESH INTERVAL 5 SECONDS
    FROM T1
    (ID1 NUMBER (38) NOT NULL PRIMARY KEY,)
    THE VARCHAR2 (30));

    CREATE GROUP OF READONLY C_T2 CACHE
    AUTOREFRESH INTERVAL 5 SECONDS
    THE T2
    (ID2 NUMBER (38) NOT NULL PRIMARY KEY,)
    THE VARCHAR2 (30));

    CREATE GROUP OF READONLY C_T3 CACHE
    AUTOREFRESH INTERVAL 5 SECONDS
    T3)
    ID3 NUMBER (38) NOT NULL PRIMARY KEY,
    F1 NUMBER (38) NOT NULL,
    F2 NUMBER NOT NULL, (38)
    FOREIGN KEY (F1) REFERENCES (ID1) T1,
    FOREIGN KEY (F2) REFERENCES T2 (ID2),
    THE VARCHAR2 (30));


    How can I create groups of cache of these paintings? Please notify
    Thank you

    Vishin Das

    There are two problems here:

    1. If you want to set a FK between tables cached in TimesTen then all tables must be part of the same group of cache.

    2. part of a group of cache, that you must have a single table at a higher level and all the other tables should be child tables of this table or one of its children. Which tables should be linked hierarchically.

    So at first glance you may not be cached in this series of paintings in TimesTen, but actually you can because...

    1. you do not have to set all the present FKs in oracle in cache TT groups. for groups of READONLY cache isn't generally a problem because FK execution happens in Oracle. Sometimes, it is not a problem for WAT cache groups either, but you know how the application handles data to be sure about this.

    2. all READONLY cache with the same AUTOREFRESH interval groups are updated in the same transaction; You can avoid transactional inconsistencies in the data in the cache.

    So the best solution here is probably:

    CREATE GROUP OF READONLY C_T1 CACHE
    AUTOREFRESH INTERVAL 5 SECONDS
    FROM T1
    (ID1 NUMBER (38) NOT NULL PRIMARY KEY,)
    THE VARCHAR2 (30));

    CREATE GROUP OF READONLY C_T2 CACHE
    AUTOREFRESH INTERVAL 5 SECONDS
    THE T2
    (ID2 NUMBER (38) NOT NULL PRIMARY KEY,)
    THE VARCHAR2 (30));

    CREATE GROUP OF READONLY C_T3 CACHE
    AUTOREFRESH INTERVAL 5 SECONDS
    T3)
    ID3 NUMBER (38) NOT NULL PRIMARY KEY,
    F1 NUMBER (38) NOT NULL,
    F2 NUMBER NOT NULL, (38)
    THE VARCHAR2 (30));

    CREATE INDEX T3_IX1 ON T3 (F1);
    CREATE INDEX T3_IX2 ON T3 (F2);

    Indexes are created based on the assumption that, when the application queries these tables cached, it is likely to join based on the PK/FK relationship. The presence of the indices will speed up joins immensely.

    Chris

  • Database of learning TT

    Hi all

    I'm new to this ten times in memory database.

    I'm analyzing the scope of use for our web application.

    I went through demonstrations at the search of OLL , but always I have a few questions in my mind.

    1. my Oracle database implemented VPD (virtual private database). Only the TT a SPV?

    2. my Oracle database size is almost 5 GB which I want to keep in Cache database ten times. I understand that using Cache Group, I can be cached set of tables in the Oracle database in the database of TT. These tables must have a foreign key relationship. I have some tables in the Oracle, who are rarely updated database (say, my_customer_names, my_product_list etc.) even if there is no relation ship master detail, I CAN HIDE THESE TABLES in the database of TT?

    3. I do not understand that we provide a refresh interval during the creation of this group of Cache. How can I recover my data in the database of TT if TT database blocks in 2-3 seconds after you refresh. ?

    4. should I manually copy each stored procedure written in pl/sql in my Oracle database to the database of the TT? or there is a utility?

    5 are supported in TT database triggers?

    6. If there is a database of TT performance problem, how can I identify the neck of the bottle and the same tune?

    Bottom line, it is that I have an Oracle database for an application, I size almost 5 GB. I want to migrate because it is the database of TT (because I heard it's much faster) to make my web applications has everything in the cache, but finally it is written data in my original Oracle database. What is the best way to achieve this.

    Please tell me some docs for complete beginners.

    Thank you very much

    Amit

    1. what should be the criteria for objects Oracle be cached in TimesTen?

    CJ > usually one puts cached tables, or subsets of the table, you have determined are a bottleneck access data for your application and that you have evaluated the benefit of their caching in TimesTen. As part of this evaluation you must take into account the differences between TimesTen and Oracle database and the impklications from a unique architecture of two database database architecture (stat in two different databases maintained in sync).

    2. I don't understand TimesTen is a different database altogether. What is the advantage of having Timesten between Oracle database and Application?

    CJ > for applications suitable, where TimesTen has been properly integrated into the architecture, performance improvements can be made. In addition, overall availability of applications can be improved as well.

    3. can we get rid of the Oracle himself and keep everything in TimesTen only (for faster response times). If so, why not all Oracle users migrate to TimesTen?

    CJ > in some cases, this may be possible, but it usually isn't. TimesTen is an another Oracle database, and while presenting many similarities there are also many differences. Oracle database has many features and features that are not supported by TimesTen. TimesTen is capable of supporting very large databases in memory (multi-TB), but these require huge amounts of RAM and can be difficult to manage (long start and stop times). TimesTen is best suited for specific applications that require the very short response time provided by TimesTen and which have been specifically developed, or modified to work well with TimesTen.

    4. I was under the impression that in TimesTen, entire database is in there before RAM, it is faster compared to the Oracle database. As you mentioned in your previous answer " simply migrate the entire database to TimesTen is unlikely to be a viable business or managed.", I think it's the entire database cache imprudent in TimesTen. We can be cached objects in Oracle as well using KEEP_BUFFER. What is the advantage to introduce TimesTen between Oracle database and the Web server for caching of ten COURSE Oracle KEEP_BUFFER times tables?

    CJ > these are totally different things. The pool KEEP_BUFFER in Oracle is just another area of cache in the CMS where you can place objects that are frequently referenced. But there is still no guarantee that these objects are always kept in memory; the contents of the pool can be aged just like for any other cache pool. Even when the objects are in memory, it is still very different from TiemsTen because:

    1 TimesTen stores and manages all the data using the formats of memory optimized storage, techniques and algorithms of indexing access. As a result, using much less CPU cycles to perform SQL operations compared to access in memory of the floppy based in a database of disc based data. It's the principle of the actual performance of all of the databases in memory; not so much exploitation of data in memory, but the use of storage memory optimized formats/structures and algorithms of access.

    2 TimesTen is usually deployed on the same computer as the application. Therefore, the application can use TimesTen link 'direct' extremely fast and highly optimized mechanism in order to avoid any inter-process (or network) communication between the application and TimesTen. Largely, this increases the efficiency of the interaction of the application/database and translates into improvements in important performance, especially for OLTP-type workloads.

    Chris

  • CacheConnect version 7.0.5 is compatible with Oracle 11 g?

    I wonder, is compatible with Oracle 11 g 7.0.x CacheConnect?

    It does not not clear documentation:

    cacheconnect.PDF:
    ===========
    What follows
    Versions of Oracle client and server are supported by Cache Connect:
    • Oracle 10g Release 2 (10.2.0.1.0 Oracle or higher)
    • Oracle 10g Release 1 (Oracle 10.1.0.5.0 or higher)
    • Oracle 9i Release 2 (Oracle 9.2.0.8.0 or higher)

    docaddendum.PDF
    ===========
    Connect to Oracle TimesTen Cache allows Oracle database data cache in
    TimesTen. The following Oracle server and client versions are supported with
    This option for TimesTen 7.0.4:
    • Oracle Database 9i Release 2 (Oracle 9.2.0.8.0 or higher)
    • Oracle Database 10 g Release 1 (Oracle 10.1.0.5.0 or higher)
    • Oracle Database 10 g Release 2 (10.2.0.1.0 Oracle or higher)
    • Oracle 11g database Release 1 on these platforms:
    -Microsoft Windows (32-bit)
    -Linux (32-bit and 64-bit)

    Yes, 7.0.4.0.0 and is more compatible with Oracle 11 g.

    Please note that the expiry Date of Standard Support for 7.0.x is March 1, 2012, so I recommend if you make major decisions on what versions of Oracle and TimesTen to use, you'd be better seen TimesTen 11.2.1 or the recent 11.2.2 TimesTen.

  • ttSize error, can'find DNS.

    Hi all, I am started earlier to use the cache groups TimesTen :) and I get the error "classic."
    Exhausted from the data store space. So I thought how must be the size.

    So looking around, I saw in other post on the ttSize utility to get an idea about the size the file should be.

    But the problem is that ttSize does not work, because it does not find the DSN seem to.


    This is the error:
    Unable to connect to DSN = TTDB; Overwrite = 0 *.
    Required attribute [TimesTen] [driver ODBC of TimesTen 11.2.1.2.0] DataStore not supplied *.
    ODBC = S1000, TimesTen Error = 0 error *.

    I use the ttSize.exe (OS is Windows XP) launch of the shell with these settings:

    ttSize.exe - cc.testTable - TTDB 10000 rows tbl

    TTDB is configured as DNS on ODBC and a customer, because the Manager of TimesTen is on a remote server.

    I do understand that ttSize fails to connect when I currently use ttIsql to launch some sql statements and work fine, just with TTDB.

    any suggestion will be appreciated :).

    Thanks in advance.

    P. S.
    TimesTen release 11.2.1.2.0 (32 bit NT) (tt1121_32:53384)

    You must run ttSize on the server. It cannot be managed as a client connection. This is mentioned in the docs (controlled release 7.0) - see the ttSize API reference Guide. ttIsql when it is run from a client Windows allows to create a TT customer connection (there is no ttIsqlCS on Windows, ttIsql performs this function as well).

Maybe you are looking for