当使用UserDefined JDBC提供程序通过wsadmin创建数据源时,数据源的自定义属性(J2EEResourc



所以基本上我已经通过wsadmin:

创建了用户定义的JDBC提供程序
AdminTask.createJDBCProvider('[-scope Cluster=MyCluster -databaseType User-defined -providerType "User-defined JDBC Provider" -implementationType User-defined -name "MSSQL JDBC Provider" -description "Microsoft SQL Server JDBC Driver" -classpath [${SQL_PATH}/sql.jar ] -nativePath "" -implementationClassName com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource ]')

之后,我想创建数据源。所以基本上当我使用UI来创建数据源-它填充了3页的自定义属性(J2EEResourcePropertySet)的数据源(55 J2EEResourceProperties)。

如果我使用wsadmin,它不会填充这3页,因为某些原因,我只看到~8个自定义属性(J2EEResourceProperties)。

如果我在通过UI和脚本创建时查看日志命令辅助命令-它们是相同的。

谁能告诉我怎么了?我需要有55个自定义属性时运行脚本也。谢谢。这是我的数据源脚本:
jdbcprovider = AdminConfig.getid('/JDBCProvider:MSSQL JDBC Provider/')
AdminTask.createDatasource(jdbcprovider, '[-name DataSource1 -jndiName DataSource1 -dataStoreHelperClassName com.ibm.websphere.rsadapter.MicrosoftSQLServerDataStoreHelper -containerManagedPersistence true -componentManagedAuthenticationAlias SAmgr/DataSource1 ]')

添加图片来理解:

出现55个自定义属性:通过UI自定义属性创建数据源:

出现8个自定义属性:通过wsadmin脚本自定义属性创建数据源

编辑:当您使用使用预定义类型之一(如MS SQL Server JDBC Driver)创建的JDBC提供程序创建数据源时,WAS使用模板的内容填充(除其他事项外)数据源的属性。有一个模板用于8个WebSphere属性(如webSphereDefaultQueryTimeout)和其他特定于供应商的属性(如MSSQL Server的applicationName)。特定于WebSphere的8个属性对所有数据源都是通用的,由WAS维护,而不是JDBC驱动程序的属性。基于我们对在托管(JEE应用服务器)环境中设置/取消属性是否"安全"的评估,特定于供应商的模板中的属性是所有供应商属性的子集。

无论您是从管理控制台还是wsadmin创建数据源,当JDBC提供程序基于预定义的供应商之一时,属性集是相同的,因为它来自标准模板。您看到的行为差异是因为您创建的是用户定义的JDBC提供程序,而不是使用预定义的提供程序。通常,只有当您想使用的JDBC驱动程序不是预定义的驱动程序时,才需要用户定义的JDBC提供程序。当您使用管理控制台从用户定义的JDBC提供程序创建数据源时,它在幕后调用一个方法来内省驱动程序并发现JDBC驱动程序作为属性公开的任何公共javabeans。然后,除了上面讨论的模板中的8个WebSphere属性外,管理控制台还将这些属性添加到数据源中。管理控制台执行内省,因为没有可用于供应商属性的模板。但是,当您使用wsadmin从用户定义的JDBC提供程序创建数据源时,它不会执行该自省,因此您在数据源上看到的唯一属性将是上面讨论的模板中的8个WebSphere属性。在某些情况下,控制台以编程方式执行某些步骤,而不是通过脚本执行,这样的行为差异可能会出现。所以,这就是"为什么会有差异"的答案。经过调查,没有选项可以让wsadmin命令内省添加额外属性的驱动程序。我看到有两种方法可以解决这个问题并添加属性。

如果您需要的驱动程序属性集是该驱动程序的标准模板中包含的那些属性的一部分,则从创建用户定义的JDBC提供程序更改为使用由该驱动程序供应商创建的提供程序。使用wsadmin,您将获得与从管理控制台创建wsadmin时相同的所有属性。如果模板中有一些(但不是全部)需要的属性,可以按照建议使用AdminConfig.create(…)方法通过脚本添加这些属性。保存配置后,通过脚本创建的所有对象都可以在管理控制台中看到,包括自定义属性。

相关内容

  • 没有找到相关文章

最新更新