This content has been marked as final. Show 24 replies
Thanks For detail .
Describing more in detail,
- My DSN setting having passthrough =1.
- Application is pointed to Timesten.
- Sequence are in Oracle.
- AWT cache group is created.
- DML operations are in TT.
While inserting in TT,due to sequences are not created in TT ,and due to pass through setting data goes in Oracle.
Why Timesten can't throw an error that sequences are not exists .can't TT throw warning or messg that those transaction are commited in oracle. not in TT.
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.
my passthrough setting is 1.
for any reason(in our case sequences are not in TT) insert in TT fail, then it will insert in oracle.
here application is using some synonyms ,at the time while we are brining it up with TT.
so we can not go with option passthogh = 0.
if i can go with passthrough 1 then i am not getting TT warnings.
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.
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.