About cache group

一个程序向TimesTen的数据表中插入数据能正常运行。但这个表和ORACLE做Cache Group时就不行。
I have a wired problem: a program can insers data into a table of TimesTen when there is no Cache Group with oracle.
However, it can not do this while it is connected to oracle using cache group. Any idea why this happens?
error message:
*** ERROR in tt_main.c, line 90:
*** [TimesTen][TimesTen 7.0.3.0.0 ODBC Driver][TimesTen]TT5102: Cannot load backend library 'libclntsh.so' for Cache Connect.
OS error message 'ld.so.1: test_C: ???: libclntsh.so: ????: ???????'. -- file "bdbOciFuncs.c", lineno 257,
procedure "loadSharedLibrary()"
*** ODBC Error/Warning = S1000, Additional Error/Warning = 5102

I think I can exculde the above possibilities, as I have checked all the settings above.
We could use SQL statements as input, and inserting and query can be done at both ends.
It is only the program that does not work. My "connection string" is the following:
connstr=====DSN=UTEL7;UID=utel7;PWD=utel7;AutoCreate=0;OverWrite=0;Authenticate=1
Maybe it is a mistaken properity, or permission, or a switch parameter? Please give some suggestions.
Thank you very much.
Create cache group command is:
Create Asynchronous Writethrough Cache Group utel7_load
From
utel7.load(col0 binary_float, col1 binary_float ......
My odbc.ini is the following:
# Copyright (C) 1999, 2007, Oracle. All rights reserved.
# The following are the default values for connection attributes.
# In the Data Sources defined below, if the attribute is not explicitly
# set in its entry, TimesTen 7.0 uses the defaults as
# specified below. For more information on these connection attributes,
# see the accompanying documentation.
# Lines in this file beginning with # or ; are treated as comments.
# In attribute=_value_ lines, the value consists of everything
# after the = to the end of the line, with leading and trailing white
# space removed.
# Authenticate=1 (client/server only)
# AutoCreate=1
# CkptFrequency (if Logging == 1 then 600 else 0)
# CkptLogVolume=0
# CkptRate=0 (0 = rate not limited)
# ConnectionCharacterSet (if DatabaseCharacterSet == TIMESTEN8
# then TIMESTEN8 else US7ASCII)
# ConnectionName (process argv[0])
# Connections=64
# DatabaseCharacterSet (no default)
# Diagnostics=1
# DurableCommits=0
# ForceConnect=0
# GroupRestrict (none by default)
# Isolation=1 (1 = read-committed)
# LockLevel=0 (0 = row-level locking)
# LockWait=10 (seconds)
# Logging=1 (1 = write log to disk)
# LogAutoTruncate=1
# LogBuffSize=65536 (measured in KB)
# LogDir (same as checkpoint directory by default)
# LogFileSize=64 (measured in MB)
# LogFlushMethod=0
# LogPurge=1
# MatchLogOpts=0
# MemoryLock=0 (HP-UX, Linux, and Solaris platforms only)
# NLS_LENGTH_SEMANTICS=BYTE
# NLS_NCHAR_CONV_EXCP=0
# NLS_SORT=BINARY
# OverWrite=0
# PermSize=2 (measured in MB; default is 2 on 32-bit, 4 on 64-bit)
# PermWarnThreshold=90
# Preallocate=0
# PrivateCommands=0
# PWD (no default)
# PWDCrypt (no default)
# RecoveryThreads=1
# SQLQueryTimeout=0 (seconds)
# Temporary=0 (data store is permanent by default)
# TempSize (measured in MB; default is derived from PermSize,
# but is always at least 6MB)
# TempWarnThreshold=90
# TypeMode=0 (0 = Oracle types)
# UID (operating system user ID)
# WaitForConnect=1
# Oracle Loading Attributes
# OracleID (no default)
# OraclePWD (no default)
# PassThrough=0 (0 = SQL not passed through to Oracle)
# RACCallback=1
# TransparentLoad=0 (0 = do not load data)
# Client Connection Attributes
# ConnectionCharacterSet (if DatabaseCharacterSet == TIMESTEN8
# then TIMESTEN8 else US7ASCII)
# ConnectionName (process argv[0])
# PWD (no default)
# PWDCrypt (no default)
# TTC_Server (no default)
# TTC_Server_DSN (no default)
# TTC_Timeout=60
# UID (operating system user ID)
[ODBC Data Sources]
TT_tt70=TimesTen 7.0 Driver
TpcbData_tt70=TimesTen 7.0 Driver
TptbmDataRepSrc_tt70=TimesTen 7.0 Driver
TptbmDataRepDst_tt70=TimesTen 7.0 Driver
TptbmData_tt70=TimesTen 7.0 Driver
BulkInsData_tt70=TimesTen 7.0 Driver
WiscData_tt70=TimesTen 7.0 Driver
RunData_tt70=TimesTen 7.0 Driver
CacheData_tt70=TimesTen 7.0 Driver
Utel7=TimesTen 7.0 Driver
TpcbDataCS_tt70=TimesTen 7.0 Client Driver
TptbmDataCS_tt70=TimesTen 7.0 Client Driver
BulkInsDataCS_tt70=TimesTen 7.0 Client Driver
WiscDataCS_tt70=TimesTen 7.0 Client Driver
RunDataCS_tt70=TimesTen 7.0 Client Driver
# Instance-Specific System Data Store
# A predefined instance-specific data store reserved for system use.
# It provides a well-known data store for use when a connection
# is required to execute commands.
[TT_tt70]
Driver=/oracle/timesten/TimesTen/tt70/lib/libtten.so
DataStore=/oracle/timesten/TimesTen/tt70/info/TT_tt70
DatabaseCharacterSet=US7ASCII
# Data source for TPCB
# This data store is created on connect; if it doesn't already exist.
# (AutoCreate=1 and Overwrite=0). For performance reasons, database-
# level locking is used. However, logging is turned on. The initial
# size is set to 16MB.
[TpcbData_tt70]
Driver=/oracle/timesten/TimesTen/tt70/lib/libtten.so
DataStore=/oracle/timesten/TimesTen/tt70/info/DemoDataStore/TpcbData
DatabaseCharacterSet=US7ASCII
PermSize=16
WaitForConnect=0
Authenticate=0
# Data source for TPTBM demo
# This data store is created everytime the benchmark is run.
# Overwrite should always be 0 for this benchmark. All other
# attributes may be varied and performance under those conditions
# evaluated. The initial size is set to 20MB and durable commits are
# turned off.
[TptbmData_tt70]
Driver=/oracle/timesten/TimesTen/tt70/lib/libtten.so
DataStore=/oracle/timesten/TimesTen/tt70/info/DemoDataStore/TptbmData
DatabaseCharacterSet=US7ASCII
PermSize=20
Overwrite=0
Authenticate=0
# Source data source for TPTBM demo in replication mode
# This data store is created everytime the replication benchmark demo
# is run. This datastore is set up for the source data store.
[TptbmDataRepSrc_tt70]
Driver=/oracle/timesten/TimesTen/tt70/lib/libtten.so
DataStore=/oracle/timesten/TimesTen/tt70/info/DemoDataStore/TptbmDataRepSrc_tt70
DatabaseCharacterSet=US7ASCII
PermSize=20
Overwrite=0
Authenticate=0
# Destination data source for TPTBM demo in replication mode
# This data store is created everytime the replication benchmark demo
# is run. This datastore is set up for the destination data store.
[TptbmDataRepDst_tt70]
Driver=/oracle/timesten/TimesTen/tt70/lib/libtten.so
DataStore=/oracle/timesten/TimesTen/tt70/info/DemoDataStore/TptbmDataRepDst_tt70
DatabaseCharacterSet=US7ASCII
PermSize=20
Overwrite=0
Authenticate=0
# Data source for BULKINSERT demo
# This data store is created on connect; if it doesn't already exist
# (AutoCreate=1 and Overwrite=0).
[BulkInsData_tt70]
Driver=/oracle/timesten/TimesTen/tt70/lib/libtten.so
DataStore=/oracle/timesten/TimesTen/tt70/info/DemoDataStore/BulkInsData
DatabaseCharacterSet=US7ASCII
LockLevel=1
PermSize=32
WaitForConnect=0
Authenticate=0
# Data source for WISCBM demo
# This data store is created on connect if it doesn't already exist
# (AutoCreate=1 and Overwrite=0). For performance reasons,
# database-level locking is used. However, logging is turned on.
[WiscData_tt70]
Driver=/oracle/timesten/TimesTen/tt70/lib/libtten.so
DataStore=/oracle/timesten/TimesTen/tt70/info/DemoDataStore/WiscData
DatabaseCharacterSet=US7ASCII
LockLevel=1
PermSize=16
WaitForConnect=0
Authenticate=0
# Default Data source for TTISQL demo and utility
# Use default options.
[RunData_tt70]
Driver=/oracle/timesten/TimesTen/tt70/lib/libtten.so
DataStore=/oracle/timesten/TimesTen/tt70/info/DemoDataStore/RunData
DatabaseCharacterSet=US7ASCII
Authenticate=0
# Sample Data source for the xlaSimple demo
# see manual for discussion of this demo
[Sample_tt70]
Driver=/oracle/timesten/TimesTen/tt70/lib/libtten.so
DataStore=/oracle/timesten/TimesTen/tt70/info/DemoDataStore/Sample
DatabaseCharacterSet=US7ASCII
TempSize=16
PermSize=16
Authenticate=0
# Sample data source using OracleId.
[CacheData_tt70]
Driver=/oracle/timesten/TimesTen/tt70/lib/libtten.so
DataStore=/oracle/timesten/TimesTen/tt70/info/DemoDataStore/CacheData
DatabaseCharacterSet=US7ASCII
OracleId=MyData
PermSize=16
# New data source definitions can be added below. Here is my datastore!!!
[Utel7]
Driver=/oracle/timesten/TimesTen/tt70/lib/libtten.so
DataStore=/oracle/timesten/TimesTen/tt70/tt70_data/utel7
DatabaseCharacterSet=ZHS16GBK
Uid=utel7
Authenticate=0
OracleID=db3
OraclePWD=utel7
PermSize=6000
Connections=20
#permsize*20%
TempSize=400
CkptFrequency=600
CkptLogVolume=256
LogBuffSize=256000
LogFileSize=256

Similar Messages

  • A question about cache group error in TimesTen 7.0.5

    hello, chris:
    we got some errors about cache group :
    2008-09-21 08:56:15.99 Err : ORA: 229574: ora-229574-3085-ogTblGC00405: Failed calling OCI function: OCIStmtFetch()
    2008-09-21 08:56:15.99 Err : ORA: 229574: ora-229574-3085-raUtils00373: Oracle native error code = 1405, msg = ORA-01405: fetched column value is NULL
    2008-09-21 08:56:28.16 Err : ORA: 229576: ora-229576-2057-raStuff09837: Unexpected row count. Expecting 1. Got 0.
    and the exact scene is: our oracle server was restart for some reason, but we didnot restart the cache group agent. then iit start appear those errors informations.
    we want to know, if the oracle server restart, whether we need to restart cache agent?? thank you..

    Yes, the tracking table will track all changes to the associated base table. Only changes that meet the cache group WHERE clause predicate will be refreshed to TimesTen.
    The tracking table is managed automatically by the cache agent. As long as the cache agent is running and AUTOREFRESH is occurring the table will be space managed and old data will be purged.
    It is okay if very occasionally an AUTOREFRESH is unable to complete within its defined interval but if this happens with any regularity then this is a problem since this situation is unsustainable. To remedy this you need to try one or more of:
    1. Tune execution of AUTOREFRESH queries in Oracle. This may mean adding additional indexes to some of the cached Oracle tables. There is an article on this in MetaLink (doc note 473493.1).
    2. Increase the AUTOREFRESH interval so that a refresh can always complete within the defined interval.
    In any event it is important that you have enough space to cope with the 'steady state' size of the tracking table. If the cache agent will not be running for any significant length of time you need to manually cleanup the tracking table. In TimesTen 11g a script to do this is provided but it is not officially supported in TimesTen 7.0.
    If the rate of updates on the base table is such that you cannot arrive at a sustainable situation by tuning etc. then you will need to consider more radical options such as breaking the table into multiple separate tables :-(
    Chris

  • A qustion about cache group

    hello, chris:
    now we have a situation: we have cache group and replications, but the rep schemes doesn't include the cache groups. when we modify the oraclePwd values, we need recall "call ttcacheuidpwdset(***,***);", then it will appear the errors " The operation cannot be executed while the Replication Agent for this datastore is running.", how can we avoid this situation, we don't want to restart the rep agent, because when the restart process it will appear some timeout in application. thank you...
    the cache group type is readonly cache group
    Edited by: user578558 on 2009-1-15 下午7:42

    There is no way to avoid this situation. Many operations, including setting the cache userid/password, require that the replication agent be stopped while they are executed. This should only be an issue for the application if you are using RETURN RECEIPT or RETURN TWOSAFE replication. In that case when the repagent is stopped the application may receive a return service timeout warning (8170). However, the impact of this can be minimised by ensuring that your replication configuration includes appropriate STORE clauses wtih RETURN SERVICES OFF WHEN REPLICATION STOPPED. However, even with this clause the application may receive one warning when the repagent is stopped. Applications that use RETURN RECEIPT or RETURN TWOSAFE must be coded to expect 8170 warnings and to react accordingly.
    Chris

  • How Insert Work on global cache group?

    Hi all , i'm doing some test about how many transactions for second TimesTen can process.
    With a normal configuration "direct" i reached 5200 transaction for second, on my machine (OS windows normal work station).
    now i'm using the global cache groups because we need more then one DataSource , and they have to be syncro, one with each other.
    And how i read in the guide the global cache group are perfect for this purpose.
    After configured the 2 environment with different DataBase TimesTen (those machine are server SUN, much better of my work station :P), i tried a simple test
    of insert on a single node.
    But i reached only 1500 as maximum value of transactions for second.
    The 5200 value when testing on my work station was with normal Dynamic Cache Group, not Global. So i was thinking if this performance issue was related on how the Insert statement work on a global cache group.
    Some questions:
    1) before the insert is done on Oracle, the Cache Group do some query on the other cache global group to avoid some conflicts on primary key?
    2) there is any operation performed from global cache to others when a statement is sendend?
    The 2 global cache anyway are working well, locking and changing owner on a instance cache so no problems detected atm are about " how they have to work":).
    The problem is only that we need that the global cache do it more and more faster :P at last the 5200 transaction for second i reached on my work station.
    Thanks in advance for any suggestion.
    P.S.:I don't know much about the server configuraion (SO solaris some version) but anyway good machines :).

    Okay, the rows here are quite large so you need to do some tuning. In the ODBC (DSN) parameters I see that you are using the default log buffer abd log file sizes. these are totally inadequate for this kind of workload. You should increase both to a larger value. For this kind of workloads typial values would be in the range of 256 MB to 1024 MB for both log buffer and log file size. If you are using 32-bit TimesTen you may be constrained on how large you can make these sicne the log buffer is part of the overall datastore memory allocation wh9ich on 32-bit platforms is quite limited. On 64-bit TimesTen you have no such restriction (as long as the machine has enough memory). Here is an example of the directives you would use to set both to 1 GB. The key one is the log buffer size but it is important that LogFileSize is >= LogBufMB.
    [my_ds]
    LogBufMB=1024
    LogFileSize=1024
    For this change to take effect you need to shutdown (unload from memory) and restart (load back into memory) the datastore.
    Secondly, it's hard to be sure from your example code but it looks like maybe you are pre-paring the INSERT each time you execute it? If that is the case this is very expensive and unnecessary. You only need to prepare once and then you can execute many times as follows:
    insPs = connection.prepareStatement("Insert into test.transactions (ID_ ,NUMBE,SHORT_CODE,REQUEST_TIME) Values (?,?,?,?)");
    for (int i=1; i < 1000000; i++)
    insPs.setString(1,""+getSequence());
    insPs.setString(2,"TEST_CODE");
    insPs.setString(3,"TT Insert test");
    insPs.setTimestamp(4, new Timestamp(System.currentTimeMillis()));
    insPs.execute();
    connection.commit();
    This should improve performance noticeably. mif you can get away with only comiting every 'N' inserts you will see a further uplift. For example:
    int COMMIT_INTVL = 100;
    for (int i=1; i < 1000000; i++)
    insPs.setString(1,""+getSequence());
    insPs.setString(2,"TEST_CODE");
    insPs.setString(3,"TT Insert test");
    insPs.setTimestamp(4, new Timestamp(System.currentTimeMillis()));
    insPs.execute();
    if ( (i % COMMIT_INTVL) == 0 )
    connection.commit();
    connection.commit();
    And lastly, the fastest way of all is to use JDBC batch operations; see the JDBC documentation about batch operations. That will improve insert performance still more.
    Lastly, a word of caution. Although you will probably be able to easily achieve more than 5000 inserts per second into TimesTen, TimesTen may not be able to push the data to oracle at this rate. the rate of push to Oracle is likely to be significantly slower. Thus if you are executing a continuous high volume insert workload into TimesTen two things will happen; (a) the datastore will become fiull and unable to accepot any more inserts until you explicitly remove some data and (b) a backlog will build up (in the TT transaction logs on disk) of data waiting to be pushed to Oracle.
    This kind of setup is not really suited to support sustained high insert levels; you need to look at the maximum that can be sustained for the whole application -> TimesTen -> Oracle pathway. Of course, if the workload is 'bursty' then this may not be an issue at all.
    Chris

  • Unable to create cache groups from CASE-SENSITIVE oracle table's name

    Hello All
    I have some case-sensitive tables in a oracle database and their columns are the same too. I've tried to cache these tables into TimesTen under a read-only cache group. I think timesten cannot find
    case-sensitive tables because as soon as I changed name of the tables, the creation could succeeded. What can I do to overcome this issue? I don't want lose case-sensitive feature. Is it because of
    I'm using an old version of TimesTen(11.2.1.4.0)

    Hi Chris
    Thanks for your answer. I'm using SQL Developer(both graphical and by command) to manage Timesten db. When I'm about to select root table for cache group i can see the table and when I
    select on it, the caching procedures can not be done and it says your table does not have Primary Key; you can see below that this is not true and the table has two primary key. When I'm
    trying to create the cache group via command in work sheet the error is "TT5140: could not find HLR.SUBSCRIBER. may not have privileges"
    in Oracle:
    CREATE TABLE "HLR"."Subscriber"
    "SSI" NUMBER(10,0) NOT NULL ENABLE,
    "CCNC" VARCHAR2(50 BYTE) NOT NULL ENABLE,
    "Code" VARCHAR2(128 BYTE) DEFAULT NULL NOT NULL ENABLE,
    "Account" NVARCHAR2(32),
    "Mnemonic" NVARCHAR2(15),
    "Region" NVARCHAR2(32),
    "UserAddress" NVARCHAR2(32),
    "Name" NVARCHAR2(32) NOT NULL ENABLE,
    "VPNCode" NUMBER(10,0),
    "VPNCCNC" VARCHAR2(50 BYTE),
    "SubOrgId" NUMBER(10,0),
    "SubscriberTypeId" NUMBER(2,0) DEFAULT 5 NOT NULL ENABLE,
    "StatusId" NUMBER(2,0) DEFAULT 1 NOT NULL ENABLE,
    "SubscriberClass" NUMBER(2,0),
    "DefinedIpAddressId" NUMBER(10,0),
    CONSTRAINT "Subscriber_PK" PRIMARY KEY ("SSI", "CCNC") 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 DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ENABLE,
    CONSTRAINT "FK_DefinedIpAdd_Subscriber" FOREIGN KEY ("DefinedIpAddressId") REFERENCES "HLR"."DefinedIPAddress" ("Id") ENABLE,
    CONSTRAINT "Fk_Status_Subscriber" FOREIGN KEY ("StatusId") REFERENCES "HLR"."Status" ("Id") ENABLE,
    CONSTRAINT "Fk_SubOrg_Subscriber" FOREIGN KEY ("SubOrgId") REFERENCES "HLR"."SubOrganization" ("Id") ENABLE,
    CONSTRAINT "Fk_SubscriberType_Subscriber" FOREIGN KEY ("SubscriberTypeId") REFERENCES "HLR"."SubscriberType" ("Id") ENABLE,
    CONSTRAINT "Fk_VPN_Subscriber" FOREIGN KEY ("VPNCode", "VPNCCNC") REFERENCES "HLR"."VPN" ("SSI", "CCNC") ENABLE
    in TimesTen:
    CREATE READONLY CACHE GROUP "PRO1"
    AUTOREFRESH MODE INCREMENTAL INTERVAL 5 MINUTES
    STATE PAUSED
    FROM "HLR"."Subscriber"
    "SSI" NUMBER(10,0) NOT NULL ,
    "CCNC" VARCHAR2(50 BYTE) NOT NULL ,
    "Code" VARCHAR2(128 BYTE) NOT NULL ,
    "Account" NVARCHAR2(32),
    "Mnemonic" NVARCHAR2(15),
    "Region" NVARCHAR2(32),
    "UserAddress" NVARCHAR2(32),
    "Name" NVARCHAR2(32) NOT NULL ,
    "VPNCode" NUMBER(10,0),
    "VPNCCNC" VARCHAR2(50 BYTE),
    "SubOrgId" NUMBER(10,0),
    "SubscriberTypeId" NUMBER(2,0) DEFAULT 5 NOT NULL ,
    "StatusId" NUMBER(2,0) DEFAULT 1 NOT NULL ,
    "SubscriberClass" NUMBER(2,0),
    "DefinedIpAddressId" NUMBER(10,0),
    PRIMARY KEY("CCNC","SSI")
    )

  • Uanble to create Cache Group from Cache Administrator

    Folks,
    I am attempting to create a cache group from the Cache Administrator.
    I have set all the data source properties and am able to login to the data source but when I attempt to create a cache group i.e. I specify the name & type of cache group, I get this message in red at the bottom saying "Gathering table information, please wait" and... that's it. Nothing happens!
    I am able to move the cursor etc. but the cache group is not defined.
    Anybody have any suggestions as to what I'm doing wrong? Any help would be appreciated!
    keshava

    You cannot have multiple root tables within one cache group. The requirements for putting tables together into one cache group are very strict; there must be one top level table (the root table) and there can optionally be multiple child tables. The child tables must be related via foreign keys either to the root table or to a child table higher in the hierarchy.
    The solution for your case is to put one ofthe root tables and the child table into one cache group and the other root table into a separate cache group. If you do that you need to take care of a few things:
    1. You cannot define any foreign keys between tables in different cache groups in TimesTen (the keys can exist in Oracle) so the application must enforce the referential integrity itself for those cases.
    2. If you load data into one cache group (using LOAD CACHE GROUP or 'load on demand') then Timesten will not automatically load the corresponding data into the other cache group (sicne it does not know about the relationship). The application will need to load the data into the other cache group explicitly.
    There are no issues regarding transactional consistency when changes are pushed to Oracle. TimesTen correctly maintains and enforces transactional consistency regardless of how tables are arranged in cache groups.
    Chris

  • Which kind of cache group is suitable for the intensive insertion operation

    Hi Chris,sorry for call you directly. Because you give me many good answers about my many newbile questions these days:)
    You told me that the dynamic cache group is not suitable for the intensive insertion operation
    because each INSERT to a child table has to perform an existence check against Oracle even if load the cache group into RAM manually(Please correct me if wrong).
    Here I have many log tables that they only have a primary key and no foreign references and they are basically used to reflect changes from the related main tables.
    Every insert/update/delete on the main table will insert a log record in the related logging table(No direct foreign references).
    In order to cache these log tables, I have to create a independent cache group for each one, right?
    I do not want load these logs data into RAM because my application do not use them or these logs will waste my RAM clearly.
    so here comes my question.Which kind of cache group should I use to gain the best performance with no loading them into RAM?
    As my understand,the dynamic cache group load data on demand while the regular cache group need load all the data into RAM firstly and it won't load data from oracle anymore?
    Thanks in advance
    SuoNayi

    Let me be more specific. Consider this cache group:
    CREATE DYNAMIC ASYNCHRONOUS WRITETHROUGH CACHE GROUP CG_SWT
    FROM
    TPARENT
    PPK NUMBER(8,0) NOT NULL PRIMARY KEY,
    PCOL1 VARCHAR2(100)
    TCHILD
    CPK NUMBER(6,0) NOT NULL PRIMARY KEY,
    CFK NUMBER(8,0) NOT NULL,
    CCOL1 VARCHAR2(20),
    FOREIGN KEY ( CFK ) REFERENCES TPARENT ( PPK )
    INSERTS into TPARENT will not do any existence check in Oracle. An INSERT INTO TCHILD has to verify that the corresponding parent row exists. If the parent row exists in TimesTen then no check is doen in Oracle. If the parent row does not exist in TimesTen then we have to check if it exists in Oracle and if it does we will load it into TimesTen from Oracle (along with any other child rows) before completing the INSERT in TimesTen. So in the case where the parent always exists already in TimesTen there is no overhead but on the other case there is a lot of overhead.
    If your log table is truly not related to the main table (not in TT and not in Oracle either) then they should go into separate cache groups. If each insert into the log table has a unique key and there is no possibility of duplicates then you do not need to load anything into RAM. You can start with an empty table and just insert into it (since each insert is unique). Of course, if you just keep inserting you will eventually fuill up the memory in TimesTen. So, you need a mechanism to 'purge' no longer needed rows from TimesTen (they will still exist in Oracle of course). There are really two options; investigate TimesTen auotmatic aging (see documentation) - thsi may be adeuate of the insert rate is not too high - or implement a custom purge mechanism using UNLOAD CACHE GROUP (see documentation).
    Chris

  • Cache groups to oracle

    i used the command call ttcacheuidpwdset(' ',' '); haved the error like them,
    can you help me ? thank you very much!
    Command> call ttcacheuidpwdset('cacheadmin','oracle');
    5213: Bad Oracle login error in OCISessionBegin(): ORA-01017: invalid username/password; logon denied rc = -1
    5935: Could not validate Oracle login: uid = CACHEADMIN, pwd = HIDDEN, OracleNetServiceName = ora11g, TNS_ADMIN = "/home/oracle/app/oracle/product/11.2.3/dbhome_1/network/admin", ORACLE_HOME= "/home/oracle/app/oracle/product/11.2.3/dbhome_1"
    The command failed.
    tt version:
    TimesTen Release 11.2.2.2.0
    os version:
    Linux shunzi.com 2.6.18-194.el5
    DSN:
    [TT_SS]
    Driver=/home/timesten/TimesTen/tt1122/lib/libtten.so
    DataStore=/home/timesten/TimesTen/tt1122/info/TT_SS
    PermSize=64
    Uid=cachett
    Pwd=oracle
    OracleNetServiceName=ora11g
    DatabaseCharacterSet=AL32UTF8

    Subject ,thank you for help me!
    I use this method to configure cache group to oracle.
    http://docs.oracle.com/cd/E13085_01/doc/timesten.1121/e13073/gettingstarted.htm#TTCAC131
    I built on the server Timesten, DB and TT is packed in a OS system. About the client/server I still is not very clear.
    With TT7.0 version before, I success cache group to oracle. But now with version 11.2, in trouble. Please help me up, thank you!!!!
    In addition, I did not open the replication function!

  • I had 41 tabs open in about six groups over the last year and a half and I just close them and exited Firefox. Is there any way to get them back?

    <blockquote>Locking duplicate thread.<br>
    Please continue here: [[/questions/856718]]</blockquote>
    I had 41 tabs open in about six groups over the last year and a half and I just close them and exited Firefox. Is there any way to get them back?
    Also, is there any way to save a group or an open session and then restore it later?

    History menu, if it was destroyed in the last session
    then use "Restore Previous session:" and then restore all windows also from the history menu.
    If done in this session try the restore all windows under the history menu.

  • Error in creating Cache Group

    Hi,
    When i tried to create cache group i am getting below error
    CREATE READONLY CACHE GROUP customer_orders
    FROM myuser.customer
    (cust_num NUMBER(6) NOT NULL,
    region VARCHAR2(10),
    name VARCHAR2(50),
    address VARCHAR2(100),
    PRIMARY KEY(cust_num)),
    myuser.orders
    (ord_num NUMBER(10) NOT NULL,
    cust_num NUMBER(6) NOT NULL,
    when_placed DATE NOT NULL,
    when_shipped DATE NOT NULL,
    PRIMARY KEY(ord_num),
    FOREIGN KEY(cust_num) REFERENCES myuser.customer(cust_num)) ;
    5220: Permanent Oracle connection failure error in OCIServerAttach(): ORA-12154: TNS:could not resolve the connect identifier specified rc = -1
    5131: Cannot connect to backend database: OracleNetServiceName = "orcl_db", uid = "XXXXXXX", pwd is hidden, TNS_ADMIN = "C:\TimesTen11.2.2", ORACLE_HOME= ""
    But my Oracle database Name is MYdatabase
    Oracle LSNRCTL
    LSNRCTL> status
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))
    STATUS of the LISTENER
    Alias LISTENER
    Version TNSLSNR for 32-bit Windows: Version 11.2.0.2.0 - Production
    Start Date 07-AUG-2012 10:31:38
    Uptime 4 days 3 hr. 1 min. 55 sec
    Trace Level off
    Security ON: Local OS Authentication
    SNMP OFF
    Listener Parameter File C:\TimesTen11.2.2\listener.ora
    Listener Log File E:\app\XXXXXXX\diag\tnslsnr\localhost\listener\alert\log.xml
    Listening Endpoints Summary...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1522ipc)))
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1522)))
    Services Summary...
    Service "MYdatabaseXDB" has 1 instance(s).
    Instance "MYdatabase", status READY, has 1 handler(s) for this service...
    Service "MYdatabase" has 1 instance(s).
    Instance "MYdatabase", status READY, has 1 handler(s) for this service...
    Service "orcl" has 1 instance(s).
    Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
    The command completed successfully
    how to change OracleNetServiceName = "orcl_db" to OracleNetServiceName = "MYdatabase"
    Thanks!

    You should create the cache groups by using cachadmin user, not use object owner user.
    In Oracle DB:
    SQL> @grantCacheAdminPrivileges "cacheadmin"
    Please enter the administrator user id
    The value chosen for administrator user id is cacheadmin
    ***************** Initialization for cache admin begins ******************
    0. Granting the CREATE SESSION privilege to CACHEADMIN
    1. Granting the TT_CACHE_ADMIN_ROLE to CACHEADMIN
    2. Granting the DBMS_LOCK package privilege to CACHEADMIN
    3. Granting the RESOURCE  privilege to CACHEADMIN
    4. Granting the CREATE PROCEDURE  privilege to CACHEADMIN
    5. Granting the CREATE ANY TRIGGER  privilege to CACHEADMIN
    6. Granting the DBMS_LOB package privilege to CACHEADMIN
    7. Granting the SELECT on SYS.ALL_OBJECTS privilege to CACHEADMIN
    8. Granting the SELECT on SYS.ALL_SYNONYMS privilege to CACHEADMIN
    9. Checking if the cache administrator user has permissions on the default
    tablespace
         Permission exists
    11. Granting the CREATE ANY TYPE privilege to CACHEADMIN
    ********* Initialization for cache admin user done successfully *********
    SQL>In TimesTen:
    Command> CREATE USER cacheadmin IDENTIFIED BY oracle;
    User created.
    Command> GRANT CREATE SESSION, CACHE_MANAGER, CREATE ANY TABLE, DROP ANY TABLE TO cacheadmin;
    Command>
    Command> CREATE USER oratt IDENTIFIED BY oracle;
    User created.
    Command> grant create session to oratt;
    Command>
    [oracle@tt1 ~]$ ttIsql "DSN=db_cache;UID=cacheadmin;PWD=oracle;OraclePWD=oracle"
    Copyright (c) 1996-2010, Oracle.  All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
    connect "DSN=db_cache;UID=cacheadmin;PWD=oracle;OraclePWD=oracle";
    Connection successful: DSN=db_cache;UID=cacheadmin;DataStore=/u01/app/oracle/datastore/db_cache;DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=US7ASCII;DRIVER=/u01/app/oracle/product/11.2.1/TimesTen/tt1/lib/libtten.so;PermSize=100;TempSize=32;TypeMode=0;CacheGridEnable=0;OracleNetServiceName=ORCL;
    (Default setting AutoCommit=1)
    Command> call ttCacheUidPwdSet('cacheadmin','oracle');
    Command>
    Command> CREATE READONLY CACHE GROUP readcache
           >   AUTOREFRESH INTERVAL
           >   5 SECONDS
           > FROM oratt.readtab (
           >        a NUMBER NOT NULL PRIMARY KEY,
           >        b VARCHAR2(100) );
    Command> Additionally dont forget to issue the grants for cacheadmin user in Oracle DB
    SQL> GRANT SELECT ON readtab TO cacheadmin;
    Grant succeeded.Regards,
    Gennady

  • Problem creating cache group for a table with data type varchar2(1800 CHAR)

    Hi,
    I am using TimesTen 7.0 with Oracle 10.2.0.4 server. While creating Cache Group for one of my table I'm getting the following error.
    5121: Non-standard type mapping for column TICKET.DESCRIPTION, cache operations are restricted
    5168: Restricted cache groups are deprecated
    5126: A system managed cache group cannot contain non-standard column type mapping
    The command failed.
    One of my filed type in oracle table is Varchar2(1800 CHAR). If I change the filed size to <=1000 it (E.g. Varchar2(1000 CHAR)) then the Create Cache command works fine.
    MyDatabase Character Set is UTF8.
    Is it possible to solve without changing the filed size in the Oracle Table?
    Request your help on this.
    Thanks,
    Sunil

    Hi Chris.
    The TimesTen server and the Oracle Client is installed on a 32-bit system.
    1. ttVersion
    TimesTen Release 7.0.5.0.0 (32 bit Linux/x86) (timesten122:17000) 2008-04-04T00:09:04Z
    Instance admin: root
    Instance home directory: /appl/TimesTen/timesten122
    Daemon home directory: /var/TimesTen/timesten122
    Access control enabled.
    2. Oracle DB details
    SQL> select * from v$version;
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
    PL/SQL Release 10.2.0.3.0 - Production
    CORE 10.2.0.3.0 Production
    TNS for Linux: Version 10.2.0.3.0 - Production
    NLSRTL Version 10.2.0.3.0 - Production
    Oracle Client - Oracle Client 10.2.0.4 running in a 32 bit Linux/x86
    3. ODBC Details
    Driver=/appl/TimesTen/timesten122/lib/libtten.so
    DataStore=/var/TimesTen/data
    PermSize=1700
    TempSize=244
    PassThrough=2
    UID=testuser
    OracleId=oraclenetservice
    OraclePwd=testpwd
    DatabaseCharacterSet=UTF8
    Thanks,
    Sunil

  • HT204150 I somehow have about 100 group name in my contacts and I want to highlight and delete them all, there is nothing in them , I don't know how they got there but with iCloud they are on all devices

    IN my contacts under groups, i have about 100 Group names listed and they are empty, I never created them and they are in all our devices, is there a way to delete them without doing one at a time?

    No way to get rid of them at all?  Or are you saying I have to do it one by one?  Thank you

  • More than one root table ,how to design cache group ?

    hi,
    each cache group have onle one root table , many child table ,if my relational model is :
    A(id number,name ....,primary key id)
    B(id number,.....,primary key id)
    A_B_rel (aid number,bid number,foreign key aid referenc a (id),
    foreign key bid referenc b(id))
    my select statement is "select ... from a,b,a_b_rel where ....",
    i want to cache these three table , how should i create cache group ?
    my design is three awt , Cache group A for A , Cache Group b for b, Cache group ab to a_b_rel ?
    are there other better solution ?

    As you have discovered, you cannot put all three of these tables into one cache group. For READONLY cache groups the solution is simple, put two of the tables (say A and A_B) in one cache group and the other table (B) in a different cache group and make sure that both use the same AUTOREFRESH interval.
    For your case, using AWT cache groups, the situation is a bit mnore complicated. You must cache the tables as two different cache groups as mentioned above, but you cannot define a foreign key relationship in TimesTen between tables in different cache groups. Hence you will need to add logic to your application to check and enforce the 'missing' foreignb key relationship (B + A_B in this example) to ensure that you do not inadvertently insert data that would violate the FK relationship defined in Oracle. Otherwise you could insert invalid data in TimesTen and this would then fail to propagate to Oracle.
    Chris

  • How to query data from grid cache group after created global AWT group

    It is me again.
    as I mentioned in my previous posts, I am in progress of setup IMDB grid environment, and now I am at stage of creating cache group. and I created global AWT cache group on one node(cachealone2), but I can not query this global cache group from another node(cachealone1)
    thanks Chirs and J, I have done successfully setup IMDB grid env, and have two node in this grid as below
    Command> call ttGridNodeStatus;
    < MYGRID, 1, 1, T, igs_imdb02, MYGRID_cachealone1_1, 10.214.10.176, 5001, <NULL>, <NULL>, <NULL>, <NULL>, <NULL> >
    < MYGRID, 2, 1, T, igsimdb01, MYGRID_cachealone2_2, 10.214.10.119, 5002, <NULL>, <NULL>, <NULL>, <NULL>, <NULL> >
    2 rows found.
    and I create group ATW cache group on cachealone2
    Command> cachegroups;
    Cache Group CACHEUSER.SUBSCRIBER_ACCOUNTS:
    Cache Group Type: Asynchronous Writethrough global (Dynamic)
    Autorefresh: No
    Aging: LRU on
    Root Table: ORATT.SUBSCRIBER
    Table Type: Propagate
    1 cache group found.
    Command> SELECT * FROM oratt.subscriber;
    0 rows found.
    however I can not query this from another node cachealone1
    Command> SELECT * FROM oratt.subscriber WHERE subscriberid = 1004;
    2206: Table ORATT.SUBSCRIBER not found
    The command failed.
    Command> SELECT * FROM oratt.subscriber WHERE subscriberid = 1004;
    2206: Table ORATT.SUBSCRIBER not found
    The command failed.
    Command> SELECT * FROM oratt.subscriber;
    2206: Table ORATT.SUBSCRIBER not found
    this is example from Oracle docs, I an not sure where I missed for this. thanks for your help.

    Sounds like you have not created the Global AWT cache groupo in the second datastore? There is a multi-step process needed to roll out a cache grid and various things must be done on each node in the correct order. have you done that?
    Try checking out the QuickStart example here:
    http://download.oracle.com/otn_hosted_doc/timesten/1121/quickstart/index.html
    Chris

  • Any one have any information about Security Group to send it to me

    any one have any information about Security Group to send it to me
    what is it and how can we use it in our work

    Have a look in the general R12 MOAC and FA concepts.
    With security groups, you can defined a set of organizations with a shared access.
    E.g. you defined one Secruity groups and assigned in these group 5 organizations.
    The security group is assign to a responsibility.
    You have access to these 5 organizations over one responsibility, you must not change the responsibility, if you will enter transactions for a other organization.

Maybe you are looking for