Configuring a shared library for an application using wsadmin scripting
This task uses the AdminConfig object to configure a shared library for an application. Shared libraries are files used by multiple applications. Create a shared library to reduce the number of duplicate library files on your system.
Before you begin
There are two ways to complete this task. The example in this topic uses the AdminConfig object to create and configure a shared library. Alternatively, you can use the createSharedLibrary script in the AdminResources script library to configure shared libraries.
Scripting 程式庫提供一組自動執行最常見管理功能的程序。 您可以個別執行每個 Script 程序,也可以將若干程序結合起來,以快速開發新的 Script。
Procedure
- 啟動 wsadmin Scripting 工具。
- Identify the shared library and assign it to the library
variable. You can either use an existing shared library or create
a new one, for example:
- To create a new shared library, perform the following steps:
- Identify the node and assign it to a variable, for example:
- Using Jacl:
set n1 [$AdminConfig getid /Cell:mycell/Node:mynode/]
- Using Jython:
n1 = AdminConfig.getid('/Cell:mycell/Node:mynode/') print n1
Example output:Table 1. getid command elements. Run the getid command to identify a shared library. Element Description set is a Jacl command n1 is a variable name $ is a Jacl operator for substituting a variable name with its value AdminConfig is an object representing the WebSphere® Application Server configuration getid is an AdminConfig command Cell is the object type mycell is the name of the object that will be modified Node is the object type mynode is the name of the object that will be modified mynode(cells/mycell/nodes/mynode|node.xml#Node_1)
- Create the shared library in the node. The following example creates
a new shared library in the node scope. You can modify it to use the
cell or server scope.
Using Jacl:
set library [$AdminConfig create Library $n1 {{name mySharedLibrary} {classPath c:/mySharedLibraryClasspath}}]
set library [$AdminConfig create Library $n1 {{name mySharedLibrary} {classPath /mySharedLibraryClasspath}}]
Using Jython:
library = AdminConfig.create('Library', n1, [['name', 'mySharedLibrary'], ['classPath', 'c:/mySharedLibraryClasspath']]) print library
library = AdminConfig.create('Library', n1, [['name', 'mySharedLibrary'], ['classPath', '/mySharedLibraryClasspath']]) print library
Example output:Table 2. create Library command elements. Run the create command to create a shared library. Element Description set is a Jacl command library is a variable name $ is a Jacl operator for substituting a variable name with its value AdminConfig is an object representing the WebSphere Application Server configuration create is an AdminConfig command Library is an AdminConfig object n1 evaluates to the ID of host node specified in step number 1 name is an attribute mySharedLibrary is the value of the name attribute classPath is an attribute /mySharedLibraryClasspath is the value of the classPath attribute MySharedLibrary(cells/mycell/nodes/mynode|libraries.xml#Library_1)
- Identify the node and assign it to a variable, for example:
- To use an existing shared library, issue the following command:
- Using Jacl:
set library [$AdminConfig getid /Library:mySharedLibrary/]
- Using Jython:
library = AdminConfig.getid('/Library:mySharedLibrary/') print library
Example output:Table 3. getid Library command elements. Run the getid command to identify a shared library. Element Description set is a Jacl command library is a variable name $ is a Jacl operator for substituting a variable name with its value AdminConfig is an object representing the WebSphere Application Server configuration getid is an AdminConfig command Library is an attribute mySharedLibrary is the value of the Library attribute MySharedLibrary(cells/mycell/nodes/mynode|libraries.xml#Library_1)
- To create a new shared library, perform the following steps:
- Identify the deployment configuration object for the application
and assign it to the deployment variable. For example:
- Using Jacl:
set deployment [$AdminConfig getid /Deployment:myApp/]
- Using Jython:
deployment = AdminConfig.getid('/Deployment:myApp/') print deployment
Example output:Table 4. getid Deployment command elements. Run the getid command to identify a deployment object. Element Description set is a Jacl command deployment is a variable name $ is a Jacl operator for substituting a variable name with its value AdminConfig is an object representing the WebSphere Application Server configuration getid is an AdminConfig command Deployment is an attribute myApp is the value of the Deployment attribute print is a Jython command myApp(cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#Deployment_1)
- Retrieve the application deployment and assign it to the appDeploy variable.
For example:
- Using Jacl:
set appDeploy [$AdminConfig showAttribute $deployment deployedObject]
- Using Jython:
appDeploy = AdminConfig.showAttribute(deployment, 'deployedObject') print appDeploy
Example output:Table 5. showAttribute deployment command elements. Run the showAttribute command to assign a deployed object. Element Description set is a Jacl command appDeploy is a variable name $ is a Jacl operator for substituting a variable name with its value AdminConfig is an object representing the WebSphere Application Server configuration showAttribute is an AdminConfig command deployment evaluates the ID of the deployment configuration object specified in step number 2 deployedObject is an attribute of modify objects print is a Jython command (cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#ApplicationDeployment_1)
- Identify the class loader in the application deployment
and assign it to the classLoader variable. For
example:
- Using Jacl:
set classLoad1 [$AdminConfig showAttribute $appDeploy classloader]
- Using Jython:
classLoad1 = AdminConfig.showAttribute(appDeploy, 'classloader') print classLoad1
Example output:Table 6. showAttribute appDeploy command elements. Run the showAttribute command to assign a class loader. Element Description set is a Jacl command classLoad1 is a variable name $ is a Jacl operator for substituting a variable name with its value AdminConfig is an object representing the WebSphere Application Server configuration showAttribute is an AdminConfig command appDeploy evaluates the ID of the application deployment specified in step number 3 classLoader is an attribute of modify objects print is a Jython command (cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#Classloader_1)
- Associate the shared library in the application through
the class loader. For example:
- Using Jacl:
$AdminConfig create LibraryRef $classLoad1 {{libraryName MyshareLibrary}}
- Using Jython:
print AdminConfig.create('LibraryRef', classLoad1, [['libraryName', 'MyshareLibrary']])
Example output:Table 7. create LibraryRef command elements. Run the create command to create a library reference. Element Description $ is a Jacl operator for substituting a variable name with its value AdminConfig is an object representing the WebSphere Application Server configuration create is an AdminConfig command LibraryRef is an AdminConfig object classLoad1 evaluates to the ID of class loader specified in step number 4 libraryName is an attribute MyshareLibrary is the value of the libraryName attribute (cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#LibraryRef_1)
- Save the configuration changes. 請利用下列指令範例來儲存您的配置變更:
AdminConfig.save()
- Synchronize the node. 請利用 AdminNodeManagement Script 程式庫中的 syncActiveNode 或 syncNode Script,將配置變更傳播給節點。
- 利用 syncActiveNodes Script,依照下列範例所示,將變更傳播給 Cell 中的每個節點:
AdminNodeManagement.syncActiveNodes()
- 利用 syncNode Script,依照下列範例所示,將變更傳播給特定的節點:
AdminNodeManagement.syncNode("myNode")
- 利用 syncActiveNodes Script,依照下列範例所示,將變更傳播給 Cell 中的每個節點:
Related tasks:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_applibrary
檔名:txml_applibrary.html