A configured Oracle data source may fail to start with an error stating the connection is not valid, followed by a report of the
v$session.osuser property and value.
Any Dremio connection to an Oracle source, where the Dremio software is being run by a user with a name in the operating system longer than 30 characters.
In the Dremio console, the source will fail to save with an error banner:
And the server.log will show a message similar to the following, from one of several possible thread sources:
2022-04-20 17:44:44,022 [start-Oracle-source] ERROR c.d.e.s.jdbc.JdbcSchemaFetcherImpl - Connection is not valid. java.sql.SQLException: Connection property: format error: Property is 'v$session.osuser' and value is 'firstname.lastname@example.org' at oracle.jdbc.driver.T4CConnection.validateConnectionProperties(T4CConnection.java:6671) at oracle.jdbc.driver.PhysicalConnection.readConnectionProperties(PhysicalConnection.java:1214) ...
This is caused when the Dremio process is run by a user who has a name in the host operating system of more than 30 characters. This can apply to a named user, machine account, service daemon, etc… The name of the user running the process is passed to the Java Virtual Machine as the
user.name property, which is passed to the Oracle JDBC thin client used in the Oracle JDBC listener and client code. Due to a validation test of
(this.thinVsessionOsuser.length() > 30) the property fails to validate with a long string, resulting in a failure to build the
v$session table for the Oracle DB.
Users may configure the
v$session.osuser property manually in the Dremio console by navigating to the “Settings > Advanced Options > Connection Properties” page an Oracle data source. Enter the name of the property as "v$session.osuser" and the value to any string 29 characters or less.
There is no known solution at this time. This is caused by software not owned or maintained by Dremio.
Oracle V$SESSION documentation: