Normally you would get an error but you have set PassThrough=1 which tells TimesTen to not throw any error and instead execute the statements in Oracle. If you want the behavior that you described then set PassThrough=0. Why do you need PassThrough=1 anyway?
You can't have it both ways. TimesTen is behaving the way you told it to.
I unerstand what you are saying but this is not a bug. This is how PassThrough is intended to work. Can you please elaborate on your 'use of synonyms while bringing up the application'. PassThrough can be controlled dynamically, so maybe you can just set it programatically for the specific statements that need to go to Oracle it rather than set it for everything in the DSN. That will avoid the problem if it is feasible for you. If you do adopt this approach then it is better to set it explicitly to 3 rather than 1 since this is a little more efficient.
see I have take 2 table in cache. where i am inserting.
Now when Setting passthorh =0 then only two cached tables can be able to access.while for starting application , rest of the tables,synonyms are required .
so i can not go for passthrough = 0 option.
As I explained, you can change the setting for PassThrough inside the application. So you could do, in your application code:
1. Set PassThrough=3 (send all SQL directly to Oracle).
2. Execute application startup things (that use synonyms etc.).
3. Set PassThrough=0.
4. Do INSERTS.
In fact, it is even finer grained than this. The PassThrough setting is actually an optimizer hint so it is really associated with a prepared statement. So in fact what you do is set PassThrough as require, prepare statements that need that PassThrough value, change it and prepare other statements and so on. When you later execute the prepared statement it will use the PassThrough value that was set when it was prepared.
So, as long as you are able to make some small changes to the application code you are fine.