如何使用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()
|