Websphere:向数据源连接注入ALTER SESSION命令

时间:2018-10-22 18:01:59

标签: configuration websphere datasource

在我们的开发机器中,我们正在使用Websphere Apllication Server Liberty访问Oracle数据库。要配置不区分大小写或不区分重音的排序,我们将server.xml文件的数据源会话配置为:

<dataSource id="MyDS" jndiName="jdbc/MyDS" type="javax.sql.DataSource">
    <jdbcDriver javax.sql.DataSource="oracle.jdbc.pool.OracleDataSource" libraryRef="OracleJDBC"/>
    <connectionManager maxPoolSize="10" minPoolSize="2"/>
    <properties.oracle URL="jdbc:oracle:thin:@xx.xxx.xxx.xxx:1521:database" password="..." user="..." />

    <onConnect>ALTER SESSION SET nls_sort = binary_ai</onConnect>
    <onConnect>ALTER SESSION SET nls_comp = linguistic</onConnect>

</dataSource>

在生产机器中,我们使用Websphere Apllication Server。要配置dataSource配置,需要转到管理控制台,资源> JDBC>数据源。尽管我能够连接到数据源,但是我无法找到一种方法来注入上面的ALTER SESSION命令。

我怀疑需要在“自定义属性”页面中添加新属性。我尝试使用两个命令(用';'分隔)添加属性 onConnect ,但是它不起作用。即使是谷歌搜索,也找不到令人满意的答案。

有人知道如何进行此配置吗?

谢谢

拉斐尔·阿方索

3 个答案:

答案 0 :(得分:1)

要在传统的WebSphere上执行此操作,请转到WebSphere Application Server data source properties下的Additional Properties并选中validate new connections。在Validation by SQL query部分中提供您的SQL语句。

答案 1 :(得分:0)

Alex给出的答案是传统的WebSphere Application Server中最简单的方法。为了完整性,我想指出传统的WebSphere Application Server中还有另一种方法,即定义一个custom data store helper并重写doConnectionSetup方法以执行所需的SQL命令。 )。如果无法在Validation by SQL query属性中指定多个SQL命令,则可能需要这种方法。在这种情况下,请将Validation by SQL query留空,并且不要选择validate new connectionsValidate existing pooled connections中的任何一个。

答案 2 :(得分:-1)

亚历克斯:

我尝试了你的建议。在下面的imagem中,我添加了以下命令:

ALTER SESSION SET nls_sort = binary_ai; ALTER SESSION SET nls_comp = linguistic; commit;

Data source configuration

但是,当我运行我的应用程序时,它没有任何区别。 此外,如我们在图像中看到的,Validation by SQL query部分已弃用。