TimesTen in general

I intrested TimesTen for few days and I have 2 questions in which I can't find answer:
1. if TT can be standalone database why it doesn't attend procedures, packages etc ??
2. how I can replace all procedures when it exist in Oracle 10g database??
3. does TT own database links or something like this??
thank you for answers :)

TimesTen can and is used as a standalone database. The lack of stored procedure support does not mean TimesTen is not a database...
TimesTen will support PL/SQL in the next major release coming next year. Until that time, if you want to run application logic that is currently implemented in PL/SQL against TimesTen you have to recode that login in C, C++ or Java.
TimesTen does not have database links.
Chris

Similar Messages

  • Error while installing and verifying Timesten on windows.

    Hi ,
    I am trying to install Timesten 32bit on windows platform , everything went well , created a odbc source , then used ttIsql to connect to the dsn , created the table , however when i try to view the version by select * from v$version i get the following error ,
    Command> autocommit 0;
    Command> set passthrough 2;
    Command> select * from v$version;
    5104: Could not initialize the function pointers backend database api. Functi
    n OCIEnvCreate was not in the library.
    The command failed.
    Please help.
    thnx
    Vikash

    Do you have a supported version of the Oracle client installed on the machine? If so, were the relevant environment variables set in the global environment/registry before the TimesTen Data Manager service was started? Generally, if you install Oracle, or the Oracle client, after installing TimesTen then you must reboot the machine, or at least stop and restart the TimesTen service, for the new environment variables to be picked up.
    Chris

  • Creation of Procedure, view in the TimesTen IMD

    Hi,
    Query No. 1
    Existing procedure of Oracle Database we are trying to compile in TimesTen In-Memory database.
    One temporary table of that same procedure we have cached in the TimesTen IMD. but there are other objects (sequence, table, functions) in the procedure which are not cached in the TT IMD. while compilation in the TT database it is giving "table or view does not exist" error.
    Is there are any solution to retrieve data from Oracle database though objects are not part of the TT IMD.
    Our understanding here is, if particular Objects are cached in the TT IMD then it will access that object information from TT IMD database and rest of which are not cached in the TT IMD it should take from backend(Oracle Database). so please confirm whether our understanding is proper or not. if not then please guide us on the same.
    Query No. 2
    Can we create view in the TimesTen IMD for Object which are part of Oracle Database. and those objects are not cached in the TT IMD.

    For #1:
    TimesTen does support a feature called PassThrough which allows 'transparent' access to objects in the Oracle database under specific circumstances. However, the frunctionality of PassThrough is very limited when PL/SQL is being used. In general, any object referenced by a PL/SQL procedure that is executing in TimesTen must exist in TimesTen.
    Even when PassThrough can be used, queries and transactions cannot span TimesTen and Oracle. Every individual query will always execute completely in TimesTen (all objects must reside in TimesTen) or Oracle (all objects must reside in Oracle. You cannot execute a single SQL statement that references objects in both TimesTen and Oracle. Similarly, transactions on TimesTen are separate from Transactions in Oracle; we do not do any form of distributed transaction. If you update objects in both TimesTen and Oracle within one transaction you actually have two separate transactions; one in Oracle and one in TimesTen. When you commit, it is possible that one of the transactions will succeed and the other fail. This type of mixed usage is not recommended.
    For #2:
    No. You could cache tables from Oracle into TimesTen and then create a view in TimesTen on the cached tables.
    Chris

  • Issue while installing TimesTen on the same machine as the Oracle DB.

    Hi,
    I am new to the TimesTen(TT) and facing the issue of installing TimesTen on the same machine as the Oracle DB(this is our project requirement ). I am trying to install on Solaris 32bit machine with 64GB RAM. When i installed only TT there is no issue. But I am not able to installed if I installed Oracle DB and after that I installed TimesTen on same machine.
    Further if I tried to installed the TT with less size i.e.128MB along with oracle DB on same machine it installed successfully . But when i tried TimesTen with 16GB size it doesn't installed successfully along with oracle DB. Also, I tried to installed only TimesTen with size 16GB it installed without any error.
    Could you please let me know what could be the possible reason for the above behavior.
    Also i read in some threads in the same forum mentioning that "it is not recommend to installing TimesTen on the same machine as the Oracle DB as they can contend for resources (memory and CPU). Could you please elobrate more on this what kind of issues can possibly occur in this kind of scenario.
    Please let me know in case more information is required.
    Thanks in advance !!!
    Regards,
    Sanjay

    Can you please explain what you mean by 'install' in this context? Memory size is not an installation time option with TimesTen. It sounds to me like you mean 'am not able to configure a TimesTen database to use xxx MB/GB of memory' rather than 'unable to install TimesTen'?
    With a 32-bit operating system the largest TimesTen database you will be able to create is 2 GB. If you need a larger TimesTen database then you need to run 64-bit TimesTen on a 64-bit OS.
    It general it really isn't a good idea to run TimesTen on the same machine as the Oracle database. Perhaps you can share what your overall objectives are? WHat are you looking to achieve by using TimesTen? If we understand that we can give better advice.
    Chris

  • TT bi-directional general workload architechture with 3 nodes

    Hello Experts,
    We are starting a new project where we will have a cluster with 3 nodes. We will have both our application and TT running on each node.
    Then we will have a switch doing the application load balancing between the 3 nodes of the cluster. Whenever a request reaches one of the cluster nodes, the application queries/updates the local TT installed in the same node. All the changes made in one of the TT instances must be immediately replicated to the other 2 nodes.
    My questions are:
    1) Does TT supports a 3 nodes bi-directional general workload architecture?
    2) According to the documentation, a bi-directional general workload configuration should not be used with the return twosafe return service. Can we use the bi-directional general workload configuration (on a 3 nodes cluster) with a return receipt configuration?
    3) Since we can not use the return twosafe configuration with the bi-directional general workload architecture, how long (in avarage) dos it take for an update in one of the 3 TT instances to propagate to the other 2 instances ?
    Thanks in advance,
    Marcos Ortiz

    Hi Michael,
    1. Yes, TimesTen supports a three node multi-master general workload architecture. However, we absolutely do not recommend use of such an architecture as it has many inherent dangers. You will almost certainly suffer from datastroe divergence with such an architecture and also recovery of a failed datastore back to a state consistent with the othyer datastores will be extremely difficult. I owuld urge you to consider alternative architectures that do not require N-way mult-master where N > 2 (and even then you must enforce strict workload partitioning to ensure that consistency is maintained).
    2. You cannot use RETURN TWOSAFE with multi-master since you will almost certainly encounter distributed deadlocks which TimesTen does not detect nor resolve. You can use RETURN RECEIPT in multi-master configurations but of course this offers a lower level of assurance than twosafe.
    3. It is impossible to give some specific figure for how long it takes for replication to occur with RETURN RECEIPT since there are many variables. Typically replication occurs within a few milliseconds, dep[ending on configuration, but any number of factros such as sudden high system load, network glitch etc. etc. can cause it to take significantly longer. All you can say for sure is that if a commit using RETURN RECEIPT returns succesas then the replicated data has arrived at the remote datastore and is in the 'apply queue'.
    Without wishing to labour the point, the architecture you are considering is highly problematic and is one we strongly recommend customers avoid. Using conflict resolution is not a solution as it cannot detect or resolve all possible conflicts and you swill still have divergence and recovery issues.
    Chris
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • How to determine Free Pool Ids in Timesten Db for a given Table

    Hi All,
    I am using Times ten DB. I have a requirement that i need to have a query which will fetch the free ids in DB. Say
    if a table has entries with ids 2,3,5 it should return me 1,4 or if the DB has entries for ids 99,100 the query should return me 1,2,3,......98.
    We have found a query but that is not efficient enough as it fetched free ids starting from the ids present i.e it fetches for the case 1 but for case 2 it fails.That is if ids are from 99 or any no say 2 the ids 1,2..98 and id 1 is not retrieved respectively.
    Any help on this will be appreciated.
    Thanks and Regards,
    Namita

    "Database General" is for the Oracle database not TimesTen. Please change the subject to "Please Ignore" and repost in the correct forum group. Thank you.

  • Performance tuning of Timesten

    Our application writes data to the TT tables on a milliseconds scale. The data in TT is then written to Oracle database through replication cache group. When there is a large mount of data and frequently writing, we observe a lag in writing data from TT to Oracle. I would like to ask what adjustments we need to make on our system to optimize the writing from TT to Oracle database? (Oracle 10g, TimesTen 7.0)

    What value do you have set for LogBuffSize in the DSN definition? If the log buffer is very small this could be a factor.
    However, the issue here is generally that all AWT propagation for a single datastore is handled over a single connection into Oracle DB and that is usually a bottleneck which imposes a very real limit on the throughput that AWT propagation can sustain. Other than tuning oracle to maximise the throughpout that you can achieve over a single connection there is not much that can be done in TT 7.0. if you are consistently generating updates at a higher rate than hat at which they can be pushed to oracle over a single connection then you need to either reduce the update rate (easy to say but probably impossible to do!) or consider splitting the datatsore into 2 (or more) and distributing the traffic across those (each datastore will have its own separate AWT connection to Oracle).
    This issue will be addressed in a future TimesTen release when we will support paralell AWT push to Oracle. Please don't ask when this release will be available; all I can say is that it is expected this calendar year but that is, as always, subject to change.
    Chris

  • AWT propogation in TimesTen.

    Hi Chris,
    I have few general question related to TimesTen.
    1. Can we create STORED Procedures in TimesTen?
    2. I have created AWT cache group, I want to unload some data from AWT cache group based on where clause. Before I unload I want to make sure that the data was successfully propogated to oracle. Since AWT propogation is system managed how do I make sure my propogation was successful.
    3. I was getting following error when I insert more than 3000 records. My PermSize=16 and TempSize=16.
    802: Data store space exhausted
    6220: Permanent data partition free space insufficient to allocate 269692 bytes of memory
    The command failed.
    Command>
    I read in one of your TT forum where it is mentioned to increase PermSize=5000 and TempSize=128. I could not increase PermSize to 5000. It gave me error.
    6203: Overflow in converting data store or log file size from megabytes to bytes, or in converting log buffer size from kilobytes to bytes
    The command failed.
    Done.
    For timebeing I have increased PermSize=1000 and application is able to insert more than 50,000 records so far. I am afraid I might the 802 error again.
    Why I am not able to increase permsize=5000 even though I have 8GB of Ram.
    4. If the RAM is full then does TT uses SWAP Area ???

    Hi,
    Here are some answers:
    1. Can we create STORED Procedures in TimesTen?
    CJ>> No. At present TimesTen does not support stored procedures. Stored Procedure support is in the roadmap for some future release.
    2. I have created AWT cache group, I want to unload some data from AWT cache group based on where clause. Before I unload I want to make sure that the data was successfully propogated to oracle. Since AWT propogation is system managed how do I make sure my propogation was successful.
    CJ>> AWT proagation is based on the TimesTen replication technology. As soon as a transaction is comitted in TimesTen the data is 'queued' in the tranmsaction logs for AWT push to Oracle. So, it is safe to UNLOAD data at any time and as long as you do not delete the transactioon log files on disk manually (a very bad thing to do for any database...) then the queued changes are safe. AWT push to Oracle can only actually send data to Oracle when the TimesTen replication agent is running for the datastore. You should have the repagent should be running at all times.
    3. I was getting following error when I insert more than 3000 records. My PermSize=16 and TempSize=16.
    802: Data store space exhausted
    6220: Permanent data partition free space insufficient to allocate 269692 bytes of memory
    The command failed.
    Command>
    I read in one of your TT forum where it is mentioned to increase PermSize=5000 and TempSize=128. I could not increase PermSize to 5000. It gave me error.
    6203: Overflow in converting data store or log file size from megabytes to bytes, or in converting log buffer size from kilobytes to bytes
    The command failed.
    Done.
    For timebeing I have increased PermSize=1000 and application is able to insert more than 50,000 records so far. I am afraid I might the 802 error again.
    Why I am not able to increase permsize=5000 even though I have 8GB of Ram.
    CJ>> There is no 'one size fits all' value for PermSize. You need to choose a value that is adequate for the amount of data you need to store in TimesTen and which will fit into the available physical RAM on your machine. You could not use a value of 5000 (5000 MB) as you are running a 32-bit version of TimesTen and with that the maximu size of the datastore (PermSize + TempSize + LogBuffSize + ~8 MB) must be <= 2 GB. To have a datastore larger than 2 GB you must use 64-bit TimesTen (and be running a supported 64-bit O/S).
    4. If the RAM is full then does TT uses SWAP Area ???
    CJ>> TimesTen has no concept of data that is not 'in memory'. The only place we store data is in memory. The disk files used by TT (checkpoint and log files) are there purely to provide persistence and recoverability and not to hold 'overflow' data that wont fit in memory. On most O/S you can define a TT datastore larger than your available memory but then the O/S will have to page this in and out of memory as required. This will give very bad performance for TimesTen and will also greatly impact the overall performance of the machine. This kind of configuration is absolutely not recommended.
    Someone must manage the data to ensure you do not completely fill the available datastore memory. One way to do this is to UNLOAD rows that no longer need to be in TimesTen. Another way is to use the automatic data aging feature in TimesTen 7.0.
    Chris

  • Some FAQ'S about timesten?

    Hi all,
    i m having some basic doubts pls let me know if anybody knows abt this since i m beginner i want to know these.
    1.)what is timesten password?
    2.)is it neccessary that oracle username and timesten account id both are same?
    3.)what is the timesten default port for make entry in tnsnames.ora?
    4.)where will be the user creates if we give
    command>create user <username> identified by <pwd> (in oracle or timesten cache)
    5.) how is timesten works?
    suppose my environment is webcache-->app.server-->database
    in this architecture where i have to install timesten and how to i configure it?
    6.) is it comes after app.server before oracle or where?
    7.)what is system.odbc.ini file do and where it is?
    8.)what we have to check in odbc.ini file?
    pls let me know i have go through some documents but i cant understand fully that docs are which i have gone is not well enough..thanks in advance
    Regards & Thanks
    M.Murali...

    All ofthis information is in the TimesTen documentation and also there are several tutorials on OTN. However, just to help get you started...
    The firsth thing to understand is that TimesTen isa complete database in its own right. It is persistent, transactional and highly available and delivers very high performance. it can be used as 'the database' without any Oracle DB. When used as a cache for Oracle, you are effectively creating a Timesten database (we call it a datastore) and using it to cache some subset of the Oracle database. The TimesTen caching features can be (very loosely) thought of as a form of 'replication' between a TimesTen datastore and an Oracle database.
    To briefly answer your specific questions:
    1.) What is timesten password?
    CJ&gt;&gt; TimesTen supports internal users 9which have passwords) just as Oracle DB does. The 'timesten password' is the password for a specific user that you have created in TimesTen.
    2.) Is it neccessary that oracle username and timesten account id both are same?
    CJ&gt;&gt; When using TimesTen cacheing then there needs to be at least 2 users (the cache admin user and the application user) who have the same userid in both TimesTen and oracle. Howeverm their passwords can differ between TimesTen and Oracle.
    3.)what is the timesten default port for make entry in tnsnames.ora?
    CJ&gt;&gt; As I explained in my reply to your other question, you do not use tnsnames.ora to connect to TimesTen (in this release). Connection informati9on for TimesTen datastroes is defined in the various .INI files (see later). TNSNAMES.ORA is needed to enable Timesten to connect to the Oracle DB for cache operations. In this case yiou are configuring it to allow a connection through to your backend Oracle DB.
    4.)where will be the user creates if we give
    command&gt;create user &lt;username&gt; identified by &lt;pwd&gt; (in oracle or timesten cache)
    CJ&gt;&gt; As you might expect, if you run this command in Oracle (e.g. via SQL*Plus) then the user is created in oracle. If you run it in TimesTen (e.g. via ttIsql) then the user is created in TimesTen. In general you need to create appropriate users in both places so you will need to run the command in both places.
    5.) how is timesten works?
    suppose my environment is webcache--&gt;app.server--&gt;database
    in this architecture where i have to install timesten and how to i configure it?
    CJ&gt;&gt; This is a very simple question with many, potentially complex, answers. For this specific architecture, TimesTen would typically sit between the app. server and the 'database' (by which we mean Oracle DB). Furthermore, for best performance TimesTen would normally be installed on the actual app. server machine so that the app.server can use direct local connectivity to TimesTen. So, the diagram might typically look like this:
    webcache -&gt; app.server | TimesTen -&gt; Oracle DB
    6.) is it comes after app.server before oracle or where?
    7.)what is system.odbc.ini file do and where it is?
    CJ&gt;&gt; The sys.odbc.ini file is located in the directory &lt;TimesTen_instance_installation_dir&gt;/info. This file configures the parameters and connectivity information for all the TimesTen datastores (cache and non-cache) managed by this TimesTen instance. In order to create/use a TimesTen datastore you must configure the appropriate entries/values in this file.
    8.)what we have to check in odbc.ini file?
    CJ&gt;&gt; See above.

  • Process of initalization of DB into memory for timesten

    Hi
    Can i know the internal process of initialization of DB into memory in timesten , when a new connection is establishing ?
    Will timesten create tables and indexes in RAM when first connection is established if the RAM policy is default?
    want to know the internal functional flow of timesten when any command is fired against it.
    Regards
    Siva Kumar

    TimesTen is a fully persistent database. The database contents, including tables, indexes and other objects along with the data exist both in memory (the operational database) and in the checkpoint files on disk (a persistent copy). When the database is started up (ramLoaded) the most recent checkpoint fikle is loaded into memory. There is no need to 'create' any structures etc. at this point since they are already present in the checkpoint image loaded from disk. Although it is possible to have a TimesTen database that gets loaded into memory when the first application connection occurs and gets unloaded from memory when the last application connection disconnects in general we recommend that you explicitly control when the database is ramLoaded/ramUnloaded using the 'manual' ramPolicy and the ttAdmin -ramLoad / -ramUnload commands. In this way you can avoid excessive loading and unloading of the database to/from memory.
    TimesTen works similarly to other databases; when a SQL statement is prepared (parsed in Oracle database parlance) the TimesTen optimiser used the information in the data dictionary tables to generate a query plan. There is no concept of a data dictionary 'cache' since all data in TimesTen is permanently in memory. Active query plans are cached within TimesTen memory since they are transient data. When executing a query (using a plan) TimesTen accesses index and table data directly in memory. There is no 'buffer cache' since all data stored in TimesTen is permanently resident in memory. In general, for OLTP type queries, a query is parameterised, prepared just once and then executed many, many times. This is the way to achieve maximum performance with any SQL database.
    As a result of these (and many other) optimisations/simplifications Timesten can achieve very high performance through simpler algorithms that require less CPU cycles to do the same work as in a more complex database.
    Does that help?
    Chris

  • Application connection to  TimesTen In-Memory Database

    Hi All,
    We're in the planing of creating TimesTen In-Memory Database for our production databases.Now we're in testing phase,we made one TimesTen In-Memory Database for one test database.
    Now we don't want to put all database in memory, we've some selected tables for some users,we only want these tables will by in memory, so we create cache group & add theese tables in that.
    Now some of my database is in memory & some database is not in memory,so I want to know that how the application users will connect to database ??
    Is they connect to TimesTen In-Memory Database or our main database ???
    If they connect to TimesTen In-Memory Database how they will access the procedures of functions etc from main database ???
    Or If they connect to main database how these TimesTen In-Memory Database tables will access by users ???
    Is TimesTen In-Memory Database will help only when we put whole database in memory ???
    Thinks & Regards,
    Atul Mandale.

    Hi Atul,
    If you want to cache all your database then just create cache groups to encapsulate all your tables. That is the only way. However, I am far from sure this would be a good idea...
    TimesTen is not a transparent, 'just plug it in' performance accelerator (such a thing does not exist and probably never will). It is intended to solve specific problems i.e. when some or all parts of an application need 'real time' access to some database data and the performance requirements (usually response time but sometimes throughput) are such that they either cannot be met at all, or cannot be met cost effectively, using Oracle DB or RAC alone. If one has that kind of situation then TimesTen may be able to help. It is unlikely to help a general application scenario just by plugging it in. Note that to successfully implement TimesTen it is almost always necessary to make both application and architectural changes. Why is this?
    1. You are moving from a single DB to a multi-DB solution. Each item of data can be mastered (i.e. be updateable) in only one DB - Oracle or TimesTen. All parts of the system must understand this and enforce this or dat inconsistency may result.
    2. All the data held in TimesTen must fit into physical memory. Data storage requirements often increase when moving a table from Oracle to TT. If you have a table that takes up 5 GB in Oracle it may well need 8 GB or more of memory in TimesTen. Unless your Oracle database is quite small you will need a machine with a very large amount of memory to cache the whole DB in TimesTen.
    3. Queries and transactoons cannot span data in TT and Oracle. Any given query or transaction must execute entirely in TimesTen or Oracle.
    4. Depending on which tables are cached and which are not, some application componenst may need to be aware of the location (TT or Oracle) of specific tables/data and go to the right place to get it. The TimesTen PassThrough feature can certainly help a lot with this but it does not necessarily address every possible issue.
    5. Today, TimesTen only supports ODBC and JDBC APIs. If you have an application that uses OCI it must be recoded to use ODBC. The next major release of TimesTen does support OCI.
    6. TimesTen does not support triggers or PL/SQL. The next major release supports PL/SQL and we have our own proprietary event notification API called XLA.
    7. Although the SQL supported by TimesTen is a large subset of Oracle SQL there are still incompatibilities and some datatypes (e.g. CLOBS/BLOBS is on example) that TimesTen does not support.
    While it may be possible to cache all your database it may not be a very practical, or beneficial, way to go. Can you share a bit of detal about the problem you are trying to solve with TimesTen so that maybe we can advise you of the best approach?
    Chris

  • Oracle TimesTen In-Memory Database VS Oracle In-Memory Database Cache

    Hi,
    What is difference in Oracle TimesTen In-Memory Database VS Oracle In-Memory Database Cache.
    For 32 bit on windows OS i am not able to insert data's more than 500k rows with 150 columns (with combinations of CHAR,BINARY_DOUBLE,BINARY_FLOAT, TT_BIGINT,REAL,DECIMAL,NUMERIC etc).
    [TimesTen][TimesTen 11.2.2.2.0 ODBC Driver][TimesTen]TT0802: Database permanent space exhausted -- file "blk.c", lineno 3450, procedure "sbBlkAlloc"
    I have set Perm size as 700 mb,Temp size as 100mb
    What is the max size we can given for PermSize,TempSize,LogBufMB for 32 bit on windows OS.
    What is the max size we can given for PermSize,TempSize,LogBufMB for 64 bit on windows OS.
    What is the Max configuration of TT for 32 bit what i can set for Perm size Temp size.
    Thanks!

    They are the same product but they are licensed differently and the license limits what functionality you can use.
    TimesTen In-Memory Database is a product in its own right allows you to use TimesTen as a standalone database and also allows replication.
    IMDB Cache is an Oracle DB Enterprise Edition option (i.e. it can only be licensed as an option to an Oracle DB EE license). This includes all the functionality of TImesTen In-Memory Database but adds in cache functionality (cache groups, cache grid etc.).
    32-bit O/S are in general a poor platform to try and create an in-memory database of any significant size (32-bit O/S are very limited in memory addressing capability) and 32-bit Windows is the worst example. The hard coded limit for total datastore size on 32-bit O/S is 2 GB but in reality you probably can;'t achieve that. On Windows the largest you can get is 1.1 GB and most often less than that. If you need something more than about 0.5 Gb on Windows then you really need to use 64-bit Windows and 64-bit TimesTen. There are no hard coded upper limit to database size on 64-bit TimesTen; the limit is the amount of free physical memory (not virtual memory) in the machine. I have easily created a 12 GB database on a Win64 machine with 16 GB RAM. On 64-bit Unix machines we have live database of over 1 TB...
    Chris

  • Drop cache group in timesten 11.2.1

    Hello,
    I am trying to drop an asynchronous cache group in timesten. I follow the below steps to do so:
    a) I use the connection string with the DSN, UID, PWD, OracleID, OraclePWD specified
    b) If replication policy is 'always', change it to 'manual'
    c) Stop replication
    d) Drop the AWT cache group (+drop cache group cachegroupname;+)
    e) Create the modified AWT
    f) Start replication
    g) Set replication policy back to 'always'
    After step (d), I get the following error:
    Command> drop cache group cachegroupname;
    +5219: Temporary Oracle connection failure error in OCIServerAttach(): ORA-12541: TNS:no listener rc = -1+
    +5131: Cannot connect to backend 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: Cache Connect general error: BDB connection not open.+
    The command failed.
    Command>
    Does the error suggest that cache connect has a problem? Should I restart the timesten daemon and try again? Please let me know what the real problem is.
    Let me know if you need information.
    Thanks,
    V

    The SQL*Plus problem is simply because you don't have all the correct directories listed in LD_LIBRARY_PATH. It's likely that your .profile (or equivalenbt) was setting those based on ORACLE_HOME and if this is now unset that could be he problem. Check that LD_LIBRARY_PATH is set properly and this problem will go away.
    The character set issues is potentially more problematic. it is mandatory that the Database character set used by TimesTen exactly matches that of Oracle DB when TT is being used as a cache. If the character sets truly are different then this is very serious and you need to rectify it as many things will fail otherwise. You either need to switch Oracle DB back to US7ASCII (this is probably a big job) or you need to change the TT character set to WE8MSWIN1252.
    To accomplish the latter you would:
    1. Take a backup of the TT datastore using ttBackup (just for safety).
    2. For any non-cache tables (i.e. TT only tables), unload data to flat files using ttBulkCp -o ...
    3. Save the schema for the datastore using ttSchema.
    4. Stop cache and replication agents.
    5. Ensure datastore is unloaded from memory and then destroy the datastore (ttDestroy)
    6. Edit sys.odbc.ini to change Datastore character set.
    7. Connect to datastore as instance administrator (to create datastore). Create all necessary users and grant required privileges.
    8. Set the cahce userid/password (call ttCacheUidPwdSSet(...,...))
    9. Start the cache agent.
    10. Run the SQL script generated by ttSchema to re-create all database objects (tables and cache groups etc.)
    11. Re-populate all non-cache tables from the flat files using ttBulkCp -i
    12. Re-load all cache groups using LOAD CACHE GROUP ...
    13. restart replication agent.
    That's pretty much it (hopefully I have not missed out any vital step).
    Chris

  • Exalytics OBIEE, TimesTen and Views

    Hi all,
    I'm currently working on a prototype with an Exalytics box. I have several schemas in the TimesTen database with caching groups using 11g in one Exadata as source. On TimesTen there's one extra schema that UNIONs ALL the information from all schemas into several Views. These Views are then used as OBIEE source.
    The first problem I ran into is that after adding the Views into OBIEE RPD Physical Layer, I'm not able to right click on the View and go into Physical Diagram, the option is not highlighted. I've imported tables from other schemas in TimesTen and was successfully able to join them in the Physical Diagram, the option is available to click, for Views it isn't, which is strange - You can use Oracle 11g Views as OBIEE source and it works perfectly.
    I've also tried to right click the Views in the RPD and View Data in the Physical Layer and OBIEE simply returns me a lot of errors, as can be seen below:
    [NQODBC][SQL_STATE:HY000][nQSError: 10058] A general error as occurred.
    [nQSError: 43113] Message returned from OBIS.
    [nQSError: 43093] An error occurred while processing the EXECUTE PHYSICAL statement.
    [nQSError: 16001] ODBC error state: 3700 code: 7025 message:
    [TimesTen][TimesTen 11.2.2.5.0 ODBC Driver][TimesTen]TT7025: Illegal use of reserved keyword "FROM", character position: 9 -- file "ptSqlY.y", lineno 9243, procedure "reserverd_word_or_syntax_error".
    [nQSError: 16014] SQL Statement preparation failed.
    Using TimesTen trace monitor I was able to see what query originated this error, and it was the following one:
    15:39:50.592 73 SQL      2L   11C   4393P Preparing: select  from DIM_DATE_VW
    15:39:50.592 74 SQL      4L   11C   4393P sbSqlCmdCompile1()(E): cmdType:100, cmdNum:1001123.
    15:39:50.592 75 ERR      4L   11C   4393P TT7025: Illegal use of reserved keyword "FROM", character position:9 -- file "ptSqlY.y", lineno 9243, procedure "reserved_word_or_syntax_error"
    Is this some sort of known bug or limitation between OBIEE, TimesTen and Views? Can anyone help?
    I'm running TimesTen 11.2.2.5.0, Oracle 11.2.0.3.0 and OBIEE 11.1.1.7.1.
    Best regards,
    André

    Who said you must buy Exalytics in order to use TT with OBIEE? If you already have it, just create an RPD connection pools and off you go. You won't be able to use all the nice bits 'n pieces a full Exalytics sports, but where OBIEE is concerned, it's just a source like any other.

  • CPU and RAM for TimesTen

    I have test performance statistics for our java application (using oracle db) on a 4 X Quad-Core AMD Opteron™ 8360 SE cpu node with 64 GB RAM.
    I am trying to collect performance statistics for TimesTen on a 2 X Dual Core Intel Xeon 5160 cpu node with 8 GB RAM.
    My question is how does TimesTen treat processors. Is dual core considered as 2 cpu or single cpu?
    So am I comparing performance - (2 X 2 = 4) TT vs (4 X 4 = 16) Oracle DB ?
    Any suggestions on how should we compare the performance statistics obtained on the two machines ?

    Please see my answers embedded below:
    1. Under what conditions does TimesTen use multiple processors ?
    CJ>> There are many background daemon components to TimesTen that are multi-threaded and may use multiple processors to some extent as required (main daemon, sub-daemons, replication agent, cache agent).
    The main daemon is a very lightweight process that is purely supervisory in nature. It is not involved in database transatcion processing etc. and so its CPU usage is very low.
    Each active datastore (database) has a dedicated managing sub-daemon. Again, this is not directly involved in transaction processing but it too has several threads. The checkpointer thread may use a lot of CPU while a checkpoint is occurring. The log flusher thread will use CPU in proportion to the intensity of write operations (primarily INSERT/UPDATE/DELETE) in the application workload (this thread is responsible or flushing the transaction log buffer to the log files on disk).
    If replication, or AWT caching, is used the replication agent transmitter and/or receiver threads may use significant CPU depending on the replicated workload.
    If Cache Connect is being used then the cache agent threads may use significant CPU when e.g. an AUTOREFRESH is in progress.
    These ar all background activities and you do not have direct control over how many CPUs or how much CPU time is used by them. They will try and use what they need and the O/S will allocate them time based on available system resources.
    Equally significant is the CPU power used to process application transactions. Each application process/thread that is executing via a separate connection will potentially be executing concurrently within TimesTen hence if you have 20 application threads (or processes) each with its own connection to a TimesTen datastore then TimesTen could potentially use up to 20 CPUs/cores concurrently. This is the key factor in your ability to control how many CPUs/cores TimesTen. The crucial things to understand here are:
    1. In direct connection mode there is no dedicated TimesTen server process. All DBMS logic is encapsulated in the TimesTen library (libtten.so). All database query and transaction processing is actually executed in the context of the application thrad that makes the database call. Hence, as I mentioned, if there are 'n' concurrent application processes/threads each with a separate database connection then TimesTen can potentially use 'n' CPUs/cores concurrently. Essentially, # concurrent connections = max concurrent CPUs/coires.
    2. In client server there is a dedicated server process or thread (depending on configuration) for each application connection and so again # concurrent connections = maximum number of concurrent CPUs / cores that will be used.
    2. What techniques do I use to ensure maximum performance on this -
    a. Machine with 2 cpu (each is a dual core processor) and 8 GB RAM.
    CJ>> The number of physical CPUs (chips) is irrelevant. What matters is the number of cores. In this case 4. So, the system can concurrently execute up to 4 tasks. Anything more than 4 and tasks may have to wait for available CPU in order to execute. Since there are no blocking operations within TimesTen database processing then from a TimesTen perspective this machine can execute 4 application threads performing database access at maximum speed. Of course in reality CPU time is needed for the application, O/S, TT background processes etc. etc. so one would aim for fewer than 4 concurrent database processes. This assumes of cousre that there is no blocking at the application level either and that these processes or threads can therefore spend 100% of the available time executing. If the application blocks for any reason (e.g. waiting for the next 'request' from somewhere) then this introduces idle toime and so one can increase the number of concurrent application processes/threads to use up this idle time thereby increasing overall throughput.
    b. Application using direct connection mode with weblogic Application server
    CJ>> See my comments above. Generally one would use a connection pool and configure the number of connections to optimise performance (some experiments will be needed to arrive at the optimal value since it is very much dependant on the application workload and processing model).
    c. All data is cached in TimesTen (using Cache Groups) for read intensive operations (There are few write operations as well but TT is mainly for the reads). Should the connections be 4 or 3 in this case ?
    CJ>> If the volume of cache refrshes is low then you don't ned to 'reserve' much CPU for checkpointing logging and so you have all 4 cores available for application+database processing (plus O/S etc.). If the application is mostly using the database and not waiting for stuff outside the database then the optimal number of connections is probably in the range of 3-6. If the application does a lot of non-database work which may include waiting for things then the optimal number of connections will be much higher. Again, you need to experiment to find out what is optimal.
    Chris

Maybe you are looking for