使用wsadmin脚本创建JDBC提供者的完整指南

本文详细介绍了如何使用WebSphere的wsadmin工具和Jython脚本语言,通过6个步骤创建Oracle JDBC提供者,包括驱动路径配置、节点识别、模板选择和实现类设置等关键技术细节。

如何使用wsadmin脚本创建JDBC提供者 - Jython

上周我写了一篇关于使用jacl创建MQ队列的文章。但今天我转向Jython,这是wsadmin支持的新脚本语言。以下内容将通过6个简单步骤帮助你在wsadmin控制台上使用Jython创建JDBC提供者。

前提条件

开始使用本教程前需要了解以下内容:

  • 如何启动启用Jython的wsadmin
  • 在哪里找到wsadmin(通常位于服务器的bin目录中)

在我的情况下,它位于我的RAD安装目录中: ../Rational/SDP/6.0/runtimes/base_v6/bin

要调用wasadmin,只需打开终端并移动到bin目录,然后输入wsadmin -lang jython。这样做将调用默认配置文件。如果要指定配置文件,请使用-profileName YOURPROFILENAME开关。

你可以逐步粘贴命令,或将整个代码列表存储在一个文件中,如DataSources.py。这意味着你可以通过指定-f开关使用wsadmin运行此文件。

启动wsadmin控制台后,我们现在可以逐步创建提供者。

步骤1:识别提供者的类路径

这是提供者需要使用的jar文件的路径。在我们的例子中,它是Oracle的JDBC驱动程序。

1
driverPath = 'C:\lib\ojdbc14.jar'

步骤2:识别将容纳此提供者的节点和单元

节点/单元是WebSphere的组织方式。由于提供者将在节点内创建,我们需要知道正在使用哪个节点。

1
2
3
cellName=AdminControl.getCell()
nodeName=AdminControl.getNode()
node = AdminConfig.getid('/Cell:%s/Node:%s/' % (cellName,nodeName))

在上面的代码中,首先我们获取当前连接服务器的NodeName和CellName,然后将其引用为node。

步骤3:指定模板

在我们的例子中,我们采用了’Oracle JDBC Driver (XA)‘模板。

以下命令将列出指定提供者的模板,并将其存储在变量’providerTemplate’中:

1
providerTemplate=AdminConfig.listTemplates('JDBCProvider', 'Oracle JDBC Driver (XA)')

步骤4:设置提供者名称和实现类

为我们的提供者命名。可以是任何你想要的名称。

1
providerName = ['name', 'Oracle JDBC Driver (XA)']

驱动程序的实现类和类路径

为我们的提供者提供实现类很重要。在某些情况下它们可能不同,我们使用默认的。

1
implClassName = ['implementationClassName', 'oracle.jdbc.xa.client.OracleXADataSource']

步骤5:准备配置属性

以下代码将把上述所有变量放入wsadmin期望的形式,作为临时变量jdbcAttrs。

1
2
classpath = ['classpath',driverPath]
jdbcAttrs = [providerName, implClassName,classpath]

步骤6:创建提供者

现在是创建提供者的时候了。以下代码将完成此操作。它传递提供者的类型、节点引用、在步骤5中创建的jdbcAttrs以及用于创建提供者的模板。

1
2
provider = AdminConfig.createUsingTemplate('JDBCProvider', node, jdbcAttrs, providerTemplate)
AdminConfig.save()

就是这样。你现在应该能够在AdminConsole中看到提供者。

完整代码列表

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
driverPath = 'C:\lib\ojdbc14.jar'
cellName=AdminControl.getCell()
nodeName=AdminControl.getNode()
providerTemplate=AdminConfig.listTemplates('JDBCProvider', 'Oracle JDBC Driver (XA)')
node = AdminConfig.getid('/Cell:%s/Node:%s/' % (cellName,nodeName))

providerName = ['name', 'Oracle JDBC Driver (XA)']
implClassName = ['implementationClassName', 'oracle.jdbc.xa.client.OracleXADataSource']
classpath = ['classpath',driverPath]
jdbcAttrs = [providerName, implClassName,classpath]
provider = AdminConfig.createUsingTemplate('JDBCProvider', node, jdbcAttrs, providerTemplate)
AdminConfig.save()
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计