WebLogic 12.2.1 - New Feature for Data Source System Properties
Posted by Dirk Nachbar on Thursday, December 10, 2015
Within the new release of Oracle WebLogic Server 12.2.1 is a really cool new feature for Data Source System Properties.
In case you have mutliple data sources defined within your Oracle WebLogic Server pointing to the same Oracle Database and mostly using the same Oracle Database user, you have currently limited chances to identify in your v$session, which session belongs to which WebLogic Server Data Source.
For example, you have 2 Data Sources defined in your WebLogic Server, each Data Source is assigned to different Managed Servers within your WebLogic Domain and using the same Oracle User, so you normally see following:
You just see under the column program "JDBC Thin Client", but you don't see which defined Data Source is behind your connection in the Oracle Database :-(
Since Oracle WebLogic Server 12.2.1 you have now the possibilty to push a defined set of variables from your Data Source definition into the v$session.
With the above list of defined variables you have a wide range of possibilties to populate them into your v$session.
Snippet of your <datasource_name>-<internal_number>-jdbc.xml Configuration File
After saving and activating your changes, simply restart your Managed Server(s) which are the target(s) for your modified Data Sources.
You have to consider following limitations for the v$session columns:
With the above decribed changes on your Data Source definition, you are now able to identify easily your different Data Source connections into your Oracle Database :-)
In case you have mutliple data sources defined within your Oracle WebLogic Server pointing to the same Oracle Database and mostly using the same Oracle Database user, you have currently limited chances to identify in your v$session, which session belongs to which WebLogic Server Data Source.
For example, you have 2 Data Sources defined in your WebLogic Server, each Data Source is assigned to different Managed Servers within your WebLogic Domain and using the same Oracle User, so you normally see following:
select username, osuser, process, machine, terminal, program from v$session where username = 'WLS_REPOS'; USERNAME OSUSER PROCESS MACHINE TERMINAL PROGRAM --------- -------- -------- ----------- --------- ------------------ WLS_REPOS oracle 1234 wls1221 unknown JDBC Thin Client WLS_REPOS oracle 1234 wls1221 unknown JDBC Thin Client WLS_REPOS oracle 1234 wls1221 unknown JDBC Thin Client
You just see under the column program "JDBC Thin Client", but you don't see which defined Data Source is behind your connection in the Oracle Database :-(
Since Oracle WebLogic Server 12.2.1 you have now the possibilty to push a defined set of variables from your Data Source definition into the v$session.
Variable | Description |
---|---|
${pid} | First part (up to @) of ManagementFactory.getRuntimeMXBean().getName() |
${machine} | Second part of ManagementFactory.getRuntimeMXBean().getName() |
${user.name} | Java system property user.anem |
${os.name} | System property os.name |
${datasourcename} | Name of your Data Source |
${partition} | Name of your Partition |
${serverport} | Listen Port of your WebLogic Server |
${serversslport} | SSL Listen Port of your WebLogic Server |
${servername} | Name of your WebLogic Server |
${domainname} | Name of your WebLogic Domain |
With the above list of defined variables you have a wide range of possibilties to populate them into your v$session.
Snippet of your <datasource_name>-<internal_number>-jdbc.xml Configuration File
Or you can also modify your data source definition within the Oracle WebLogic Server Console under "Services / Data Sources", just select your Data Source and under "Configuration / Connection Pool" modify the "System Properties"user WLS_REPOS v$session.osuser ${user.name} v$session.process ${pid} v$session.machine ${machine} v$session.terminal ${datasourcename} v$session.program WLS ${servername} @ ${domainname}
After saving and activating your changes, simply restart your Managed Server(s) which are the target(s) for your modified Data Sources.
You have to consider following limitations for the v$session columns:
v$session Column | Length Limiations |
---|---|
osuser | 30 characters |
process | 24 characters |
machine | 64 characters |
terminal | 30 characters |
program | 48 characters |
With the above decribed changes on your Data Source definition, you are now able to identify easily your different Data Source connections into your Oracle Database :-)
select username, osuser, process, machine, terminal, program from v$session where username = 'WLS_REPOS' order by 5; USERNAME OSUSER PROCESS MACHINE TERMINAL PROGRAM --------- -------- -------- ----------- --------- -------------------------------- WLS_REPOS oracle 2959 wls1221 myDS WLS ManagedServer1 @ base_domain WLS_REPOS oracle 2959 wls1221 myDS WLS ManagedServer1 @ base_domain WLS_REPOS oracle 2959 wls1221 myTestDS WLS ManagedServer2 @ base_domain
Categories: JDBC, Oracle WebLogic Server 12c