使用UserDefined JDBC provider通过wsadmin创建数据源时,数据源的自定义属性J2EEResourcePropertySet不出现

如何解决使用UserDefined JDBC provider通过wsadmin创建数据源时,数据源的自定义属性J2EEResourcePropertySet不出现

所以基本上我已经通过 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 创建数据源时 - 它用该数据源 (55 J2EEResourceProperties) 的自定义属性 (J2EEResourcePropertySet) 填充 3 个页面

如果我使用 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 个自定义属性 Creating datasource trough UI Custom Properties:

出现了8个自定义属性Creating datasource trough wsadmin script custom properties

解决方法

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?