I used to use the now deprecated Oracle Developer Tools for VS Code. With this extension I did not have any connection issues. Now I tried to migrate to the Oracle SQL Developer Extension for VSCode and have following issue:
- I am able to test the connection and connect once.
- But as soon as I click on any node in the SQL Developer tree (e. g. Tables) I get an error “The session for connection […] is closed”. Then I am able to reconnect but with the next click the issue starts from the beginning.
The issue appears in my development setup:
- Oracle Free Lite as a container in Docker Desktop with WSL-integration
Log extract below. Does anyone have an idea?
Thanks!
[1/14/2025, 2:12:41 PM] [Connections Navigator] [ERROR]
{
"name": "DBTS-05102",
"message": "The connection session was terminated",
"action": "A new connection session must be created",
"cause": "The connection session was terminated, due to error: null"
}
[1/14/2025, 2:12:47 PM] [DBToolsServerApp(88756)] [INFO ] 2025-01-14T14:12:47.554Z INFO Error for: POST /20221610/databases/connections/sessions/aqQA6Ft5VgHhRtWDOZcepw/actions/execute
DBTS-05102: The connection session was terminated
DBTS-05102: The connection session was terminated. The connection session was terminated, due to error: null. A new connection session must be created
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.web.common.WebException.of(WebException.java:172)
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.web.server.ErrorHandler.handleError(ErrorHandler.java:29)
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.web.server.WebContainer.handleError(WebContainer.java:54)
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.actions.Actions.dispatch(Actions.java:98)
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.web.server.EmbeddableComponent.dispatch(EmbeddableComponent.java:55)
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.actions.Actions$ImmutableRegistration.callIfMatches(Actions.java:351)
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.actions.Actions.dispatch(Actions.java:91)
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.web.server.EmbeddableComponent.dispatch(EmbeddableComponent.java:55)
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.web.server.EmbeddableContainer.dispatch(EmbeddableContainer.java:96)
at com.oracle.dbtools.utils.jetty@24.4.1/com.oracle.dbtools.utils.jetty.JettyWebServerBridge.handle(JettyWebServerBridge.java:83)
at org.eclipse.jetty.server@12.0.13/org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1060)
at org.eclipse.jetty.server@12.0.13/org.eclipse.jetty.server.Handler$Wrapper.handle(Handler.java:740)
at org.eclipse.jetty.server@12.0.13/org.eclipse.jetty.server.handler.EventsHandler.handle(EventsHandler.java:81)
at org.eclipse.jetty.server@12.0.13/org.eclipse.jetty.server.Server.handle(Server.java:181)
at org.eclipse.jetty.server@12.0.13/org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:661)
at org.eclipse.jetty.server@12.0.13/org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:406)
at org.eclipse.jetty.io@12.0.13/org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)
at org.eclipse.jetty.io@12.0.13/org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)
at org.eclipse.jetty.io@12.0.13/org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util@12.0.13/org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:478)
at org.eclipse.jetty.util@12.0.13/org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:441)
at org.eclipse.jetty.util@12.0.13/org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)
at org.eclipse.jetty.util@12.0.13/org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201)
at org.eclipse.jetty.util@12.0.13/org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:311)
at org.eclipse.jetty.util@12.0.13/org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)
at org.eclipse.jetty.util@12.0.13/org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)
at org.eclipse.jetty.util@12.0.13/org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: DBTS-05102: The connection session was terminated. The connection session was terminated, due to error: null. A new connection session must be created
at com.oracle.dbtools.server.common.bridge@24.4.1/com.oracle.dbtools.server.common.bridge.scripts.InvalidSessionException.of(InvalidSessionException.java:37)
at com.oracle.dbtools.server.common.bridge@24.4.1/com.oracle.dbtools.server.common.bridge.scripts.SqlScriptError.checkForInvalidSession(SqlScriptError.java:202)
at com.oracle.dbtools.server.common.bridge@24.4.1/com.oracle.dbtools.server.common.bridge.scripts.SqlScriptError.of(SqlScriptError.java:106)
at com.oracle.dbtools.server.common.bridge@24.4.1/com.oracle.dbtools.server.common.bridge.scripts.DatabaseToolsScriptRunner$SqlCommandRunner.execute(DatabaseToolsScriptRunner.java:327)
at com.oracle.dbtools.server.common.bridge@24.4.1/com.oracle.dbtools.server.common.bridge.scripts.DatabaseToolsScriptRunner.lambda$execute$2(DatabaseToolsScriptRunner.java:110)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at com.oracle.dbtools.server.common.bridge@24.4.1/com.oracle.dbtools.server.common.bridge.scripts.Pipelines$UntilSpliterator.lambda$tryAdvance$0(Pipelines.java:52)
at com.oracle.dbtools.server.common.bridge@24.4.1/com.oracle.dbtools.server.common.bridge.scripts.SqlCommands$SqlCommandSpliterator.tryAdvance(SqlCommands.java:72)
at com.oracle.dbtools.server.common.bridge@24.4.1/com.oracle.dbtools.server.common.bridge.scripts.Pipelines$UntilSpliterator.tryAdvance(Pipelines.java:50)
at java.base/java.util.Spliterator.forEachRemaining(Spliterator.java:332)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
at com.oracle.dbtools.utils.jdbc@24.4.1/com.oracle.dbtools.utils.jdbc.json.OracleJsonBinding$ArraySerializer.write(OracleJsonBinding.java:1445)
at com.oracle.dbtools.utils.jdbc@24.4.1/com.oracle.dbtools.utils.jdbc.json.OracleJsonBinding$Serializers.write(OracleJsonBinding.java:2244)
at com.oracle.dbtools.utils.jdbc@24.4.1/com.oracle.dbtools.utils.jdbc.json.OracleJsonBinding$SerializationContext.write(OracleJsonBinding.java:2189)
at com.oracle.dbtools.utils.jdbc@24.4.1/com.oracle.dbtools.utils.jdbc.json.OracleJsonBinding$SerializationContext.write(OracleJsonBinding.java:2130)
at com.oracle.dbtools.utils.jdbc@24.4.1/com.oracle.dbtools.utils.jdbc.json.OracleJsonBinding.writeProperties(OracleJsonBinding.java:404)
at com.oracle.dbtools.utils.jdbc@24.4.1/com.oracle.dbtools.utils.jdbc.json.OracleJsonBinding.writeObject(OracleJsonBinding.java:371)
at com.oracle.dbtools.utils.jdbc@24.4.1/com.oracle.dbtools.utils.jdbc.json.TypeSerializer.write(TypeSerializer.java:32)
at com.oracle.dbtools.utils.jdbc@24.4.1/com.oracle.dbtools.utils.jdbc.json.OracleJsonBinding$Serializers.write(OracleJsonBinding.java:2244)
at com.oracle.dbtools.utils.jdbc@24.4.1/com.oracle.dbtools.utils.jdbc.json.OracleJsonBinding$Serializers.write(OracleJsonBinding.java:2254)
at com.oracle.dbtools.utils.jdbc@24.4.1/com.oracle.dbtools.utils.jdbc.json.OracleJsonBinding.write(OracleJsonBinding.java:617)
at com.oracle.dbtools.utils.jdbc@24.4.1/com.oracle.dbtools.utils.jdbc.json.JsonSerializer.write(JsonSerializer.java:15)
at com.oracle.dbtools.utils.jdbc@24.4.1/com.oracle.dbtools.utils.jdbc.json.OracleJsonBindingSupport$ObjectSerializer.write(OracleJsonBindingSupport.java:278)
at com.oracle.dbtools.utils.jdbc@24.4.1/com.oracle.dbtools.utils.jdbc.json.OracleJsonBindingSupport.write(OracleJsonBindingSupport.java:66)
at com.oracle.dbtools.server.connections@24.4.1/com.oracle.dbtools.server.connections.sessions.SqlScriptSupport.writeJson(SqlScriptSupport.java:664)
at com.oracle.dbtools.server.connections@24.4.1/com.oracle.dbtools.server.connections.sessions.SqlScriptSupport$SqlScriptResponseSerializer.write(SqlScriptSupport.java:808)
at com.oracle.dbtools.server.connections@24.4.1/com.oracle.dbtools.server.connections.sessions.SqlScriptSupport$SqlScriptResponseSerializer.write(SqlScriptSupport.java:786)
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.web.common.Web$Serializers$Context.write(Web.java:3329)
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.tasks.TaskSupport.lambda$writeTaskResponse$1(TaskSupport.java:58)
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.tasks.Task$Response.lambda$andThen$0(Task.java:517)
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.IO.lambda$wrap$1(IO.java:27)
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.tasks.TaskResponse.lambda$andThen$0(TaskResponse.java:43)
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.tasks.ErrorHandler.accept(ErrorHandler.java:47)
at com.oracle.dbtools.utils.core@24.4.1/com.oracle.dbtools.utils.core.tasks.TaskResponse.lambda$andThen$1(TaskResponse.java:43)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1773)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
... 1 more
Caused by: java.sql.SQLRecoverableException: ORA-17008: Closed connection
https://docs.oracle.com/error-help/db/ora-17008/
at com.oracle.database.jdbc@23.5.0.24.07/oracle.jdbc.driver.PhysicalConnection.requireOpenConnection(PhysicalConnection.java:13152)
at com.oracle.database.jdbc@23.5.0.24.07/oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:2540)
at com.oracle.database.jdbc@23.5.0.24.07/oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:2461)
at com.oracle.dbtools.server.common.bridge@24.4.1/com.oracle.dbtools.server.common.bridge.scripts.QueryRunner.run(QueryRunner.java:161)
at com.oracle.dbtools.server.common.bridge@24.4.1/com.oracle.dbtools.server.common.bridge.scripts.DatabaseToolsScriptRunner$SqlCommandRunner.execute(DatabaseToolsScriptRunner.java:314)
... 42 more
[1/14/2025, 2:12:56 PM] [Connections Navigator] [INFO ] Action details
{
"action": "Reconnect",
"message": "Reconnected",
"connection": {
"name": "test",
"href": "http://localhost:42297/20221610/databases/connections/definitions/rUJS2U8EOWmbezpkPuNtSQ"
},
"session": "http://localhost:42297/20221610/databases/connections/sessions/mJuC2b7yr7nF4fGXxFu5Cw/"
}
[1/14/2025, 2:13:51 PM] [Connections Navigator] [ERROR]
{
"name": "DBTS-05102",
"message": "The connection session was terminated",
"action": "A new connection session must be created",
"cause": "The connection session was terminated, due to error: null"
}