Set a shared library for an application using 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.
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, we can use the createSharedLibrary script in the AdminResources script library to configure shared libraries.
The scripting library provides a set of procedures to automate the most common administration functions. We can run each script procedure individually, or combine several procedures to quickly develop new scripts.
- Launch the wsadmin scripting tool using the Jython scripting language.
- Identify the shared library and assign it to the library variable. We can either use an existing shared library or create a new one...
- To create a new shared library...
- Idenitfy the node and assign it to a variable...
- Jacl...
set n1 [$AdminConfig getid /Cell:mycell/Node:mynode/]- Jython...
n1 = AdminConfig.getid('/Cell:mycell/Node:mynode/') print n1
Table 1. getid command elements
set Jacl command n1 variable name $ Jacl operator for substituting a variable name with its value AdminConfig object representing the WAS configuration getid 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
For example...
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. We can modify it to use the cell or server scope.
- Jacl...
set library [$AdminConfig create Library $n1 {{name mySharedLibrary} {classPath c:/mySharedLibraryClasspath}}]- Jython...
library = AdminConfig.create('Library', n1, [['name', 'mySharedLibrary'], ['classPath', 'c:/mySharedLibraryClasspath']]) print library
Table 2. create Library command elements
set Jacl command library variable name $ Jacl operator for substituting a variable name with its value AdminConfig object representing the WAS configuration create AdminConfig command Library AdminConfig object n1 evaluates to the ID of host node specified in step number 1 name attribute mySharedLibrary is the value of the name attribute classPath attribute /mySharedLibraryClasspath is the value of the classPath attribute
For example...
MySharedLibrary(cells/mycell/nodes/mynode|libraries.xml#Library_1)- To use an existing shared library, issue the following command:
- Jacl...
set library [$AdminConfig getid /Library:mySharedLibrary/]- Jython...
library = AdminConfig.getid('/Library:mySharedLibrary/') print library
Table 3. getid Library command elements
set Jacl command library variable name $ Jacl operator for substituting a variable name with its value AdminConfig object representing the WAS configuration getid AdminConfig command Library attribute mySharedLibrary is the value of the Library attribute
For example...
MySharedLibrary(cells/mycell/nodes/mynode|libraries.xml#Library_1)
- Identify the deployment configuration object for the application and assign it to the deployment variable. For example:
- Jacl...
set deployment [$AdminConfig getid /Deployment:myApp/]- Jython...
deployment = AdminConfig.getid('/Deployment:myApp/') print deployment
Table 4. getid Deployment command elements
set Jacl command deployment variable name $ Jacl operator for substituting a variable name with its value AdminConfig object representing the WAS configuration getid AdminConfig command Deployment attribute myApp is the value of the Deployment attribute Jython command
For example...
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:
- Jacl...
set appDeploy [$AdminConfig showAttribute $deployment deployedObject]- Jython...
appDeploy = AdminConfig.showAttribute(deployment, 'deployedObject') print appDeploy
Table 5. showAttribute deployment command elements
set Jacl command appDeploy variable name $ Jacl operator for substituting a variable name with its value AdminConfig object representing the WAS configuration showAttribute AdminConfig command deployment evaluates the ID of the deployment configuration object specified in step number 2 deployedObject attribute of modify objects Jython command
For example...
(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:
- Jacl...
set classLoad1 [$AdminConfig showAttribute $appDeploy classloader]- Jython...
classLoad1 = AdminConfig.showAttribute(appDeploy, 'classloader') print classLoad1
Table 6. showAttribute appDeploy command elements
set Jacl command classLoad1 variable name $ Jacl operator for substituting a variable name with its value AdminConfig object representing the WAS configuration showAttribute AdminConfig command appDeploy evaluates the ID of the application deployment specified in step number 3 classLoader attribute of modify objects Jython command
For example...
(cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#Classloader_1)- Associate the shared library in the application through the class loader. For example:
- Jacl...
$AdminConfig create LibraryRef $classLoad1 {{libraryName MyshareLibrary}}- Jython...
print AdminConfig.create('LibraryRef', classLoad1, [['libraryName', 'MyshareLibrary']])
Table 7. create LibraryRef command elements
$ Jacl operator for substituting a variable name with its value AdminConfig object representing the WAS configuration create AdminConfig command LibraryRef AdminConfig object classLoad1 evaluates to the ID of class loader specified in step number 4 libraryName attribute MyshareLibrary is the value of the libraryName attribute
For example...
(cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#LibraryRef_1)- Save the configuration changes...
AdminConfig.save()- Synchronize the node.
Use the syncActiveNode or syncNode scripts in the AdminNodeManagement script library to propagate the configuration changes to node or nodes.
- Use the syncActiveNodes script to propagate the changes to each node in the cell...
AdminNodeManagement.syncActiveNodes()- Use the syncNode script to propagate the changes to a specific node, as the following example demonstrates:
AdminNodeManagement.syncNode("myNode")
Related tasks
Create shared libraries
Associating shared libraries with applications or modules
Use the AdminConfig object for scripted administration
Set a shared library using scripting
Related
Resource configuration scripts
Commands for the AdminConfig object