SQL2005 is keeping temp table after succesfull dimension processing
When processing dimensions, I notice that on SQL there are tmp tables that do not get deleted. These tables have a different owner (not dbo but the installation user of BPC, with the domain prefix)
Any idea why these temp tables are there?
Example of such a temp table: tmpMBRAccount_20100315094306 (for the dimension Account)
Version : SAP BPC 7.0 SP7 on SQL 2005, multi server (SQL clustered - virtual app server - physical OLAP server)
Hi Bjorn,
Did you check the creation date of that temporary table?
Can you reproduce the issue in Apshell?
I was looking into my environment I don't see any table like one mentioned by you.
To import dimension are you using a custom DTS package? This can be an explanation for that table.
Regards
Sorin Radulescu
Similar Messages
-
How to don't remove global temp table after package complete.
how to don't remove global temp table after package complete.
any solution ?
see this example
http://sqlage.blogspot.in/2014/04/ssis-how-to-create-use-temp-table-in.html
Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs -
How to keep Internal table after filter in tableview?
Hi, Im kinda new in BSP, Im an ABAP developer.
I manage to get info from a SolMan to my internal table using submit importing from memory after clicking a search button and the table is filled.
The thing is after I execute a filter on any field of the tableView my internal table is not FILTERED, I see the original internal table that I searched.
I wanna know how can I get the filtered table so if I make a Download to Excel button I want to download the table that Im seeing "filtered" and not the original one.
Thx
Edited by: Rodrigo Ariel Giner de la Vega on May 8, 2008 4:41 PMHi Roddy,
you have probably figured out by now that the tableView filter option only filters which rows are displayed from the itab, is does not actually remove the filtered rows. This makes sense otherwise it would have to rebuilt the itab with each pass to ensure any previously filtered rows are returned if the filter is changed.
What you can do it access the filter parameters in the OnInputProcessing method of your page. Essentially the HTTP request carries parameters as name/value pairs in either the HTTP header or as form fields. You can get to them like this..
DATA:
lt_ffields TYPE tihttpnvp,
lt_hfields type tihttpnvp.
request->get_header_fields( CHANGING fields = lt_hfields ).
request->get_form_fields( CHANGING fields = lt_ffields ).
Where the HTMLB event handling parameters are passed might depend on how you call the HTML form, so have a look in both areas for these parameters. I just did a simple test and they were in the form fields.
So you can place a button on your screen to trigger your download to Excel and have it call the standard htmlb event processing routines.
Then when you detect this button has been clicked in the OnInputProcessing method you can apply the tableView filters to the data before you send it to Excel.
Cheers
Graham Robbo -
Droping temp table in after report trigger.
I am working on Oracle Report. I am trying to create a temporary table to run the report. I trigger that in 'before report' trigger. Now I want to drop this temp table after the report so I tried to drop this by using
srw.DO_SQL('drop table temptable')
For some reason it doesn't drop the table. Do anyone have any suggestions please.
Thanks in advance
Sinta.Hi,
Depending on which database version you are using, maybe using temporary tables is a solution.
You create them by 'create temporary table.....'.
Regards, Cees -
How i can disable MONITORING temp tables
In the Oracle 10 g database stats are gathering using
Gtaher_stats_job
current setting is statictics _level =Typical
i need to disable the monotoring for temp tables
i try this command it will not change
ALTER TABLE "RDC"."INV_TEMP"
NOMONITORING
How i can disable this , i read some artikel this feature is disabled in oracle 10g
how i can disable
tks
rdaJustin Note
I would suggest that this is probably a bad idea, though. If there are no statistics on an object,
you're basically asking the CBO to work blind. Why not gather statistics after loading a fresh set of data
into the table?
I am running stats once a week , so i cannnot gather fresh set of dataNicolas
setting stats to a given value and lock them (to be not set to 0 by any gather stat process) may help as well.
Justin
Nicolas.
I cannot understand this >>to be not set to 0 by any gather stat processOk my process as follows
through sqlldr i load a data to temp table , i have a after insert trigger
once the data insert into temp table it check for some condition and
fire this trigger and insert into Permanent Table,
After the process finished the temp table truncated.
this whole process running every day .
I already mention stats are collected once a week , no point i keep the stats
for this temp table and suppose if i keep , it will give wong execution plan
and insert into this temp tabel will be slow -- am i right in this step
This is the reason i dont want stats at all in temp table
Thanks Justin & Nicolas
Best rds -
Global Temp Table, always return zero records
I call the procedure which uses glbal temp Table, after executing the Proc which populates the Global temp table, i then run select query retrieve the result, but it alway return zero record. I am using transaction in order to avoid deletion of records in global temp table.
whereas if i do the same thing in SQL navigator, it works
Cn.ConnectionString = Constr
Cn.Open()
If FGC Is Nothing Then
Multiple = True
'Search by desc
'packaging.pkg_msds.processavfg(null, ActiveInActive, BrandCode, Desc, Itemtype)
SQL = "BEGIN packaging.pkg_msds.processavfg(null,'" & _
ActiveInActive & "','" & _
BrandCode & "','" & _
Desc & "','" & _
Itemtype & "'); end;"
'Here it will return multiple FGC
'need to combine them
Else
'search by FGC
SQL = "BEGIN packaging.pkg_msds.processavfg('" & FGC & "','" & _
ActiveInActive & "','" & _
BrandCode & "',null,null); end;"
'will alway return one FGC
End If
' SQL = " DECLARE BEGIN rguo.pkg_msds.processAvedaFG('" & FGC & "'); end;"
Stepp = 1
Cmd.Connection = Cn
Cmd.CommandType = Data.CommandType.Text
Cmd.CommandText = SQL
Dim Trans As System.Data.OracleClient.OracleTransaction
Trans = Cn.BeginTransaction()
Cmd.Transaction = Trans
Dim Cnt As Integer
Cnt = Cmd.ExecuteNonQuery
'SQL = "SELECT rguo.pkg_msds.getPDSFGMass FROM dual"
SQL = "select * from packaging.aveda_mass_XML"
Cmd.CommandType = Data.CommandType.Text
Cmd.CommandText = SQL
Adp.SelectCommand = Cmd
Stepp = 2
Adp.Fill(Ds)
If Ds.Tables(0).Rows.Count = 0 Then
blError = True
BlComposeXml = True
Throw New Exception("No Record found for FGC(Finished Good Code=)" & FGC)
End If
'First Row, First Column contains Data as XML
Stepp = 0
Trans.Commit()Hi,
This forum is for Oracle's Data Provider and you're using Microsoft's, but I was curious so I went ahead and tried it. It works fine for me. Here's the complete code I used, could you point out what are you doing differently?
Cheers,
Greg
create global temporary table abc_tab(col1 varchar2(10));
create or replace procedure ins_abc_tab(v1 varchar2) as
begin
insert into abc_tab values(v1);
end;
using System;
using System.Data;
using System.Data.OracleClient;
class Program
static void Main(string[] args)
OracleConnection con = new OracleConnection("data source=orcl;user id=scott;password=tiger");
con.Open();
OracleTransaction txn = con.BeginTransaction();
OracleCommand cmd = new OracleCommand("begin ins_abc_tab('foo');end;", con);
cmd.Transaction = txn;
cmd.ExecuteNonQuery();
cmd.CommandText = "select * from abc_tab";
OracleDataAdapter da = new OracleDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
Console.WriteLine("rows found: {0}", ds.Tables[0].Rows.Count);
// commit, cleanup, etc ommitted for clarity
} -
What are these DR$TEMP % tables and can they be deleted?
We are generating PL/SQL using ODMr and then periodically running the model in batch mode. Out of 26,542 objects in the DMUSER1 schema, 25,574 are DR$TEMP% tables. Should the process be cleaning itself up or is this supposed to be a manual process? Is the cleanup documented somewhere?
ThanksHi Doug,
The only DR$ tables/indexes built are the ones generated by the Build,Apply and Test Activities. I confirmed that they are deleted in ODMr 10.2.0.3. As I noted earlier, there was a bug in ODMr 10.2.0.2 which would lead to leakage when deleting Activities. You will have DR$ table around for existing Activities, so do not delete these without validating they are no longer part of an existing Activity.
You can track down the DR$ objects associated to an Activity by viewing the text step in the activity and finding the table generated for the text data. This table will have a text index created on it. The name of that text index is used as a base name for several tables which Oracle text utilizes.
Again, all of these are deleted when you delete an Activity with ODMr 10.2.0.3.
Thanks, Mark -
How to create a unique temp table then automatically remove after the join?
i have many users simultaneously accessing the web apps.
my problem is on how to solve the SELECT WHERE IN('..') clause..
i've read a lot of threads that with the same option..
1) open connection and start transaction
2) create temp table
3) insert the data (batch insert)
4) do the main goal. SELECT JOIN or SELECT WHERE IN(SUBQUERY).
5) end transaction and close connection
how do I assure that the created temp table was remove/drop upon 5) ?
thanks a lot..You can do this using global temporary tables. Also data from temporary table will be automatically deleted after commit but table will remain.
e.g.
CREATE GLOBAL TEMPORARY TABLE today_sales
ON COMMIT DELETE ROWS
AS SELECT * FROM orders WHERE order_date = SYSDATE;
http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/tables.htm#i1006400
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_7002.htm#i2153132
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_7002.htm#i2153132
Regards
Rajesh
Edited by: Rajesh on Jun 10, 2010 3:34 PM -
How i can keep my code after %dba standard table in sap query
hi expert,
how i can keep my code after %dba standard table in sap query..
add 1 to %count-VBRP.
%linr-VBRP = '01'.
extract %fg01.
%linr-VBRP = '02'.
extract %fg02.
%linr-VBRP = '04'.
extract %fg04.
%linr-VBRP = '05'.
extract %fg05.
%ext-VBRP05 = 'X'.
extract %fgwrVBRP05.
endselect.
i want keep my code after filling the standard table generated by sap abap query
Thanks & regards
Sajad AhmadHi,
the above code is excuted succesfully, but if i have
return "Navigation" ;
it is not working
any idea why?????????? -
RDW-Failed to build dimension temp tables
Hi Experts,
I am facing below issue while batch execute in RDW,
Batch: ttltypdm
Error: ttltypdm 07:29:47: ERROR: Failed to build dimension temp tables
Please Help
RegardsHi,
can you please share the ttltypdm.ttltypdm.txt.DDMMYYYY file content or it is the one you've stated? -
PL/SQL to create a temp table that will be dropped after session ends
Is it possible in PL/SQL to create a temp table that will be dropped after the session ends? Please provide example if possible. I can create a global temp table in PL/SQL but I am not sure how (if possible) to have it 'drop' once the session ends.
DB: 10g
OS: Wiindoze 2003 Server
:-)As others have mentioned (but probably not clearly explained), Oracle treats temporary tables differently to SQL Server.
In SQL Server you create a temporary table and it gets dropped (automatically I assume, I dont do SQL Server) after the session finishes. This will obviously allow each session to "request" a temporary table to use, then use it, and not have to worry about cleaning up the database after the session has finished.
Oracle takes a different approach...
On the assumption that each session is likely to be creating a temporary table for the same purposes, with the same structure, Oracle let's you create a Global Temporary Table a.k.a. GTT (which you've already come across). You only have to create this table once and you leave it on the database. This then means that any code written to use that table doesn't have to be dynamic code and can be verified and checked at compile time, just like code written for any other table. The difference of a GTT from a regular table is that any data you put into that table can only be seen by that session and will not interfere with any data of other sessions and, when you either commit, or end the session (depending on the "on commit delete rows" or "on commit preserve rows" option used when creating the GTT), that data from your own session will automatically be removed and hence the table is cleaned up that way, whilst the actual table itself remains.
Some people from SQL Server backgrounds try and create and drop tables dynamically in their PL/SQL code, but this leads to problems...
SQL> ed
Wrote file afiedt.buf
1 begin
2 execute immediate 'create table my_temp (x number)';
3 insert into my_temp values (1);
4 execute immediate 'drop table my_temp';
5* end;
SQL> /
insert into my_temp values (1);
ERROR at line 3:
ORA-06550: line 3, column 15:
PL/SQL: ORA-00942: table or view does not exist
ORA-06550: line 3, column 3:
PL/SQL: SQL Statement ignoredi.e. the code will not compile for direct DML statements trying to use that table.
They then try and get around this issue by making their DML statements dynamic too...
SQL> ed
Wrote file afiedt.buf
1 create or replace procedure my_proc is
2 begin
3 execute immediate 'create table my_temp (x number)';
4 execute immediate 'insert into my_temp values (''A'')';
5 execute immediate 'drop table my_temp';
6* end;
SQL> /
Procedure created.... which looks great and it compiles ok... but... when they try and run it...
SQL> exec my_proc;
BEGIN my_proc; END;
ERROR at line 1:
ORA-01722: invalid number
ORA-06512: at "SCOTT.MY_PROC", line 4
ORA-06512: at line 1... oops the code has a bug in it. Our DML statement was invalid.
This is really something that would have been caught at compile time, if the statement had been a direct DML statement rather than dynamic. And thus we see the problem with people trying to write all their code as dynamic SQL... it's more likely to contain bugs that won't be detected at compile time and only come to light at run time... sometimes only under certain conditions and sometimes once it's got into a production environment. Bad Idea!!!! ;)
Far better to never create tables (or most other database objects) at run time. Just create them once as part of the database design/implementation and use them as required, allowing you to catch the most common coding errors up front before they get anywhere near a test environment or worse still, a production environment. -
Re-Filling Dimension table, after removing line-item property
Hi Friends,
We need to remove line item property of a line item dimension of an infocube. I made that change and activated the cube. But when i check the dimension table of this dimension, i see no records regarding this.
This cube has 60 mil. records, so we can not delete the content and reload it.
Do you guys know anyway to fill that dimension table with the existent data in the cube ?
Thanks & Regards
S.P.Hi Suresh,
I didn't delete the content of the cube but was able to remove checkmark of line-item dimension. Cube was activated successfuly. But the problem is that there in no data in this newly created dimension table..
Regards
S.P. -
How to create a temp table in the memory, not in disk?
in sql server, you can create a temp table in the memory instead of disk,
then you can do the insert, delete,update and select on it.
after finishing, just release it.
in Oracle,
I am wonderfing how to create a temp table in the memory, not in disk?
thanks,Thanks for rectifying me Howard.
I just read your full article on this too and its very well explained here:
http://www.dizwell.com/prod/node/357
Few lines from your article
It is true, of course, that since Version 8.0 Oracle has provided the ability to create a Keep Pool in the Buffer Cache, which certainly sounds like it can do the job... especially since that word 'keep' is used again. But a keep pool is merely a segregated part of the buffer cache, into which you direct blocks from particular tables (by creating them, or altering them, with the BUFFER POOL KEEP clause). So you can tuck the blocks from such tables out of the way, into their own part of the buffer cache... but that is not the same thing as guaranteeing they'll stay there. If you over-populate the Keep Pool, then its LRU mechanism will kick in and age its contents out just as efficiently as an unsegregated buffer cache would.
Functionally, therefore, there can be no guarantees. The best you can do is create a sufficiently large Keep Pool, and then choose the tables that will use it with care such that they don’t swamp themselves, and start causing each other to age out back to disk.
Thanks and Regards -
MS SQL Server 2014: Error inserting into Temp table with index and identity field
In this thread, I mentioned a problem with SQL Server 2014:
SQL Server 2014: Bug with IDENTITY INSERT ON
The question was answered, it is a bug. To keep you informed on this issue, I open this discussion.
Problem:
The code below works perfectly fine on MS SQL Server 2008 R2 and MS SQL Server 2012, but gives an error every second time the proc is executed on MS SQL Server 2014. If I do not define any index on the temp table, the problem disappears. Defining the index
after the insert, does not help.
SET NOCOUNT ON
GO
IF EXISTS (SELECT 1 FROM sys.procedures WHERE name = 'usp_Test') DROP PROC dbo.usp_Test;
GO
CREATE PROC dbo.usp_Test AS
BEGIN
SET NOCOUNT ON
CREATE TABLE #Source(ID integer NOT NULL);
INSERT INTO #Source VALUES (1), (2), (3);
CREATE TABLE #Dest (ID integer IDENTITY(1,1) NOT NULL);
CREATE INDEX #IDX_Dest ON #Dest (ID);
PRINT 'Check if the insert might cause an identity crisis';
SELECT 'Source' AS SourceTable, * FROM #Source;
SELECT 'Destination' AS DestTable, * FROM #Dest;
SET IDENTITY_INSERT #Dest ON;
PRINT 'Do the insert';
INSERT INTO #Dest (ID) SELECT ID FROM #Source;
PRINT 'Insert ready';
SET IDENTITY_INSERT #Dest OFF;
SELECT * FROM #Dest;
DROP TABLE #Source;
DROP TABLE #Dest;
END;
GO
PRINT 'First execution of the proc, everything OK';
EXEC dbo.usp_Test;
PRINT '';
PRINT 'Second execution of the proc, the insert fails.';
PRINT 'Removing the index #IDX_Dest causes the error to disappear.';
EXEC dbo.usp_Test;
GO
DROP PROC dbo.usp_Test;
GOThere is some progress. Communication from a former Microsoft employee tells us this:
Shivendra Vishal
Engineer at Microsoft
I am no longer with MS, and I do not have code access, however from the public symbols, I could make out following:
sqlmin!SetidentI2I4+0x1f3:
000007fe`f4d865d3 488b10 mov rdx,qword ptr [rax] ds:00000000`00000000=????????????????
ExceptionAddress: 000007fef4d865d3 (sqlmin!SetidentI2I4+0x00000000000001f3)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter[1]: 0000000000000000
Attempt to read from address 0000000000000000
This is a read AV and from registers it is clear that we were trying to move the value of location pointed by qword of register rax which is not valid:
rax=0000000000000000 rbx=0000000000000038 rcx=0000000000001030
rdx=0000000000000006 rsi=00000001f55def98 rdi=00000000106fd070
rip=000007fef4d865d3 rsp=00000000106fcf40 rbp=00000000106fcfe9
r8=0000000000000000 r9=00000001f55def60 r10=00000001f55defa0
r11=00000000106fcd20 r12=0000000000000000 r13=0000000000000002
r14=00000001f49c3860 r15=00000001f58c0040
iopl=0 nv up ei pl nz na po nc
cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010206
The stack is:
# Child-SP RetAddr Call Site
00 00000000`106fcf40 000007fe`f30c1437 sqlmin!SetidentI2I4+0x1f3
01 00000000`106fd050 000007fe`f474e7ce sqlTsEs!CEsExec::GeneralEval4+0xe7
02 00000000`106fd120 000007fe`f470e6ef sqlmin!CQScanUpdateNew::GetRow+0x43d
03 00000000`106fd1d0 000007fe`f08ff517 sqlmin!CQueryScan::GetRow+0x81
04 00000000`106fd200 000007fe`f091cebe sqllang!CXStmtQuery::ErsqExecuteQuery+0x36d
05 00000000`106fd390 000007fe`f091ccb9 sqllang!CXStmtDML::XretDMLExecute+0x2ee
06 00000000`106fd480 000007fe`f08fa058 sqllang!CXStmtDML::XretExecute+0xad
07 00000000`106fd4b0 000007fe`f08fb66b sqllang!CMsqlExecContext::ExecuteStmts<1,1>+0x427
08 00000000`106fd5f0 000007fe`f08fac2e sqllang!CMsqlExecContext::FExecute+0xa33
09 00000000`106fd7e0 000007fe`f152cfaa sqllang!CSQLSource::Execute+0x86c
0a 00000000`106fd9b0 000007fe`f152c9e8 sqllang!CStmtExecProc::XretLocalExec+0x25a
0b 00000000`106fda30 000007fe`f152a1d8 sqllang!CStmtExecProc::XretExecExecute+0x4e8
0c 00000000`106fe1e0 000007fe`f08fa058 sqllang!CXStmtExecProc::XretExecute+0x38
0d 00000000`106fe220 000007fe`f08fb66b sqllang!CMsqlExecContext::ExecuteStmts<1,1>+0x427
0e 00000000`106fe360 000007fe`f08fac2e sqllang!CMsqlExecContext::FExecute+0xa33
0f 00000000`106fe550 000007fe`f0902267 sqllang!CSQLSource::Execute+0x86c
10 00000000`106fe720 000007fe`f0909087 sqllang!process_request+0xa57
11 00000000`106feee0 000007fe`f2bf49d0 sqllang!process_commands+0x4a3
12 00000000`106ff200 000007fe`f2bf47b4 sqldk!SOS_Task::Param::Execute+0x21e
13 00000000`106ff800 000007fe`f2bf45b6 sqldk!SOS_Scheduler::RunTask+0xa8
14 00000000`106ff870 000007fe`f2c136ff sqldk!SOS_Scheduler::ProcessTasks+0x279
15 00000000`106ff8f0 000007fe`f2c138f0 sqldk!SchedulerManager::WorkerEntryPoint+0x24c
16 00000000`106ff990 000007fe`f2c13246 sqldk!SystemThread::RunWorker+0x8f
17 00000000`106ff9c0 000007fe`f2c13558 sqldk!SystemThreadDispatcher::ProcessWorker+0x3ab
18 00000000`106ffa70 00000000`775d59ed sqldk!SchedulerManager::ThreadEntryPoint+0x226
19 00000000`106ffb10 00000000`7780c541 kernel32!BaseThreadInitThunk+0xd
1a 00000000`106ffb40 00000000`00000000 ntdll!RtlUserThreadStart+0x21
Unassembling the function:
000007fe`f4d8658e 4c8b10 mov r10,qword ptr [rax]
000007fe`f4d86591 4533e4 xor r12d,r12d
000007fe`f4d86594 410fb7d5 movzx edx,r13w
000007fe`f4d86598 4533c9 xor r9d,r9d
000007fe`f4d8659b 4533c0 xor r8d,r8d
000007fe`f4d8659e 488bc8 mov rcx,rax
000007fe`f4d865a1 4489642420 mov dword ptr [rsp+20h],r12d
000007fe`f4d865a6 41ff5230 call qword ptr [r10+30h]
000007fe`f4d865aa 8b5597 mov edx,dword ptr [rbp-69h]
000007fe`f4d865ad 4c8b10 mov r10,qword ptr [rax]
000007fe`f4d865b0 4489642438 mov dword ptr [rsp+38h],r12d
000007fe`f4d865b5 4489642430 mov dword ptr [rsp+30h],r12d
000007fe`f4d865ba 458d442401 lea r8d,[r12+1]
000007fe`f4d865bf 4533c9 xor r9d,r9d
000007fe`f4d865c2 488bc8 mov rcx,rax
000007fe`f4d865c5 c644242801 mov byte ptr [rsp+28h],1
000007fe`f4d865ca 4488642420 mov byte ptr [rsp+20h],r12b
000007fe`f4d865cf 41ff5250 call qword ptr [r10+50h]
000007fe`f4d865d3 488b10 mov rdx,qword ptr [rax] <=================== AV happened over here
000007fe`f4d865d6 488bc8 mov rcx,rax
000007fe`f4d865d9 4c8bf0 mov r14,rax
000007fe`f4d865dc ff5268 call qword ptr [rdx+68h]
000007fe`f4d865df 488d55e7 lea rdx,[rbp-19h]
000007fe`f4d865e3 4c8b00 mov r8,qword ptr [rax]
000007fe`f4d865e6 488bc8 mov rcx,rax
000007fe`f4d865e9 41ff5010 call qword ptr [r8+10h]
000007fe`f4d865ed f6450a04 test byte ptr [rbp+0Ah],4
I remember few issues with scan2ident function, I am not sure if they have fixed it however it appears that this is intoduced to SQL 2014 and we need help from MS to get this resolved as it needs code analysis.
It is not getting simulated for other versions of SQL apart from SQL 2014.
Also to add, interestingly, the value of rax is not visibly changed and it was successfully passed on to rcx, which has a valid value, so something should have changed the value of rax inside call to function using call qword ptr [r10+50h], and looking at this
it appears that it might be a list of functions and we are going at particular offset [50h]. So, bottom line is that the call to function qword ptr [r10+50h], should be changing something in rax, and debugging/analyzing this code might give us some more idea. -
Multiple users accessing the same data in a global temp table
I have a global temp table (GTT) defined with 'on commit preserve rows'. This table is accessed via a web page using ASP.NET. The application was designed so that every one that accessed the web page could only see their data in the GTT.
We have just realized that the GTT doesn't appear to be empty as new web users use the application. I believe it has something to do with how ASP is connecting to the database. I only see one entry in the V$SESSION view even when multiple users are using the web page. I believe this single V$SESSION entry is causing only one GTT to be available at a time. Each user is inserting into / selecting out of the same GTT and their results are wrong.
I'm the back end Oracle developer at this place and I'm having difficulty translating this issue to the front end ASP team. When this web page is accessed, I need it to start a new session, not reuse an existing session. I want to keep the same connection, but just start a new session... Now I'm losing it.. Like I said, I'm the back end guy and all this web/connection/pooling front end stuff is magic to me.
The GTT isn't going to work unless we get new sessions. How do we do this?
Thanks!DGS wrote:
I have a global temp table (GTT) defined with 'on commit preserve rows'. This table is accessed via a web page using ASP.NET. The application was designed so that every one that accessed the web page could only see their data in the GTT.
We have just realized that the GTT doesn't appear to be empty as new web users use the application. I believe it has something to do with how ASP is connecting to the database. I only see one entry in the V$SESSION view even when multiple users are using the web page. I believe this single V$SESSION entry is causing only one GTT to be available at a time. Each user is inserting into / selecting out of the same GTT and their results are wrong.
I'm the back end Oracle developer at this place and I'm having difficulty translating this issue to the front end ASP team. When this web page is accessed, I need it to start a new session, not reuse an existing session. I want to keep the same connection, but just start a new session... Now I'm losing it.. Like I said, I'm the back end guy and all this web/connection/pooling front end stuff is magic to me.
The GTT isn't going to work unless we get new sessions. How do we do this?
Thanks!You may want to try changing your GTT to 'ON COMMIT DELETE ROWS' and have the .Net app use a transaction object.
We had a similar problem and I found help in the following thread:
Re: Global temp table problem w/ODP?
All the best.
Maybe you are looking for
-
Setting timeout settings for Action Scripts
We are using OIM 11gR1 along with the AD and Domino connectors. We are also using Action Scripts to perform some post create actions on the AD and Domino resources that get created by OIM. The action scripts are being invoked with the correct set of
-
Our IPhones will not conncect to itunes so we cant update and sync phones. Does anyone have suggestions. Its like itunes doesnt recognize our devices.
-
Creating axis names by programming
Hello again. I tried to define the axis names with different units by programming instead of doing in the graph properties. As in my vi, I wired each axis name corresponding to the unit input to the graph property node, but it didn't come out correct
-
6i with patch 10 and get FRM-92150: WEB CLient Version too new...
I have a form 6i and I installed patch 10 and after I do that, I have a error... FRM-92150: WEB CLient Version too new... I check both my jinitiator and the config file in the server are the same... any advices? Thanks
-
Dev tools don't appear in Photoshop
For some reasons I have problems switching on dev tools in PS. I tried to use window.__adobe_cep__.showDevTools(); and DEbug mode in Eclipse. Few times it did load, and sometimes it does appear when I debug using alerts. Any one ecnounted this issue