Although this question should be in the JDBC forum it seems that that forum has died, nobody watching it, so I post it here:
We have migrated an application front-end from Oracle Forms to ADF.
The application makes use of some Global Temporary tables (with ON COMMIT PRESERVE), for example to store the results of a multi-select shuttle. In a next action it calls a pl/sql procedure that makes use of the data in the Global Temporary Table.
Now this concept is usable in Forms, where each user has a persistent, dedicated DB connection, so the data in the GT table is available during the session. But in ADF the next action will use a connection from the connection pool that might be a different one then the one used to fill the table, so the table might appear to be empty.
In practice it seems that ADF picks the same connection from the pool and that connection has preserved the session state, so it still works. But in my opinion this can not be guaranteed, so a different approach should be implemented (e.g. passing the data as a collection to the stored procedure or an intermediate stored procedure which then inserts it into the GT table).
Anyhow, does anybody has an explanation why it works at all (though it might only work in a dev environment with only one developer using connections from the pool)?