| Modifier and Type | Field and Description |
|---|---|
| private SoftReference | connRef
We hold a soft reference to the connection so that when the application releases its reference to the Connection without closing it, its finalize method will be called, which will then close the connection. |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| public void | cleanupOnError(Throwable
The original error error)Implements org. Contexts will be passed errors that are caught by the outer system when they are serious enough to require corrective action. |
| public Connection | getNestedConnection(boolean
True if the connection should be internal internal)Implements org. Get a connection equivalent to the call
DriverManager.getConnection("jdbc:default:connection");
|
| public ResultSet | getResultSet(ResultSet
a result set as gotten from execution executionResultSet)Implements org. Get a jdbc ResultSet based on the execution ResultSet. |
| private LanguageConnectionContext | |
| public boolean | processInaccessibleDynamicResult(ResultSet
ResultSet to process. resultSet)Implements org. Process a ResultSet from a procedure to be a dynamic result, but one that will be closed due to it being inaccessible. |
| connRef | back to summary |
|---|---|
| private SoftReference<EmbedConnection> connRef We hold a soft reference to the connection so that when the application releases its reference to the Connection without closing it, its finalize method will be called, which will then close the connection. If a direct reference is used here, such a Connection will never be closed or garbage collected as modules hold onto the ContextManager and thus there would be a direct reference through this object. | |
| EmbedConnectionContext | back to summary |
|---|---|
| pack-priv EmbedConnectionContext(ContextManager cm, EmbedConnection conn) | |
| cleanupOnError | back to summary |
|---|---|
| public void cleanupOnError(Throwable error) Implements org. Doc from org. Contexts will be passed errors that are caught
by the outer system when they are serious enough
to require corrective action. They will be told
what the error is, so that they can react appropriately.
Most of the time, the contexts will react by either
doing nothing or by removing themselves from the
context manager. If there are no other references
to the context, removing itself from the manager
equates to freeing it.
Contexts must release all their resources before removing themselves from their context manager. The context manager will "unwind" the contexts during cleanup in the reverse order they were placed on its global stack. If error is an instance of StandardException then an implementation of this method may throw a new exception if and only if the new exception is an instance of StandardException that is more severe than the original error or the new exception is a not an instance of StandardException (e.g java.lang.NullPointerException).
| |
| getNestedConnection | back to summary |
|---|---|
| public Connection getNestedConnection(boolean internal) throws SQLException Implements org. Get a connection equivalent to the call
DriverManager.getConnection("jdbc:default:connection");
| |
| getResultSet | back to summary |
|---|---|
| public ResultSet getResultSet(ResultSet executionResultSet) throws SQLException Implements org. Get a jdbc ResultSet based on the execution ResultSet.
| |
| privilegedGetLCC | back to summary |
|---|---|
| private LanguageConnectionContext privilegedGetLCC(final EmbedConnection conn) Private lookup of the lcc.. | |
| processInaccessibleDynamicResult | back to summary |
|---|---|
| public boolean processInaccessibleDynamicResult(ResultSet resultSet) Implements org. Process a ResultSet from a procedure to be a dynamic result, but one that will be closed due to it being inaccessible. We cannot simply close the ResultSet as it the nested connection that created it might be closed, leading to its close method being a no-op. This performs all the conversion (linking the ResultSet to a valid connection) required but does not close the ResultSet.
| |