Icon View Incident Report

Serious Serious
Reported By: Joerg Philipp
Reported On: 2/28/2003
For: Version 3.21 Build 1
# 1316 In-Memory Tables Lose Their Proper Location After a C/S Re-Connect

found a strange problem with DBISAM 3.19 and 3.21 C/S: memory tables created on the remote memory database seem to be lost after a session reconnect. And sometimes different clients access the same memory tables, but I thought each client has its own memory database space on server.

Please try the following with DBSYS, and set the connection timeout of the server to a low value (eg. 100 secs). But in the next 6 steps no connection timeout must occur.

1. open "new sql query": remote connection, a database with some tables
2. run query: select * into memory test1 from sometable
3. run query: select * from memory test1
--> is ok
4. unprepare query!
5. with "open table" you can access to the memory table test1
6. close memory table test1

Till now all works. Now wait until the connection timeouts (must be the first disconnect of this session!). Then repeat the sql query of step 3: you will get a "table 'test1' does not exist". But with "open table" (step 5) you can still access the table. Looks like there are 2 memory databases on the server after the first reconnect, one for table components, another for query components. To verify this, try following:

7. run query: select * into memory test2 from anothertable
8. run query: select * from memory test2
--> this works, table test2 exists for the query, but not test1
9. but with "open table" you can only access the table test1

I think, table test2 is on a "default" memory database, that is common for all clients of the server. Try this:

10. start a second instance of DBSYS
11. run query: select * from memory test2
--> "table 'test2' does not exists". That is ok.
12. wait until session is disconnected
13. now repeat query: select * from memory test2
--> you get the same table you created on the first DBSYS!
14. run query: select * into memory test2 from anothertable
and leave the result set open
15. go to first DBSYS and run the same query:
you will get a "access denied to table 'test2'".

Both DBSYS access the same memory database after reconnect.

Resolution Resolution
Fixed Problem on 3/2/2003 in version 3.22 build 1