Hi Jake, I am sending these information and i am going to search some more on JDBC. Hopr this will help, thanks, Gayathri Title * WebSphere 5.0 -Delay in FileTransfer proces Abstract * This field is displayed on the search results webpage seen by customers, and effects search ranking and relevance. Delay in filetransfer process cauing problem to wsadmin install Content * ***** DRAFT *********** Problem Description: When an Application EAR size is very large (Ex: 40M) customer may have trouble in using wsadmin/admin console install process.In either case when they deploy this application, WebSphere will reported that the deployment finished. ADMA5013I: Application installed successfully But even after this message ,websphere still in the process of copying files to /installedApps//.ear directory. Above message just says that install process is completed and does not mean that FileTransfer is completed between nodes.Unfortunately, this means customer can not script any further downstream activity, such as starting the application, since the state of the application's deployment on any given node is indeterminate.Time taken for this FileTransfer can vary based on the ear size,the amount of configuration changes and network delay (remote nodes) .Similar problems will exist when trying to uninstall the large Application. Detailed Analysis: 1.Start the install process (wsadmin/console) 2.After the install process we get following response ADMA5013I: Application installed successfully. 3.Then we try to save the changes using "$AdminConfig save" or console "save". This operation save the informations ONLY in the config directory. \config\cells\\applications\) Note:In an NetworkDeployment environment this "save" operation will NOT update the BaseNode's\config\cells\\application directory.Only the next synchronize process will transfer these files to all selected Base Nodes.In this case it is important to execute "Synchronize" operation after "save" 5.After executing "Full Resynchronize" or "Synchronize" command we need to wait until all the changes are added to the selected BaseNode(s) before executing the next command. Note:The "synchronization" reflects the status of the moving of files under the config/../deployment or config/../applications directory tree. It seems WebSphere only check the status from the config files to say the synchronization is finished or not. wsadmin If we use the $AdminControl sync we get a return message "true" wsadmin>set b [$AdminControl completeObjectName type=NodeSync,*] wsadmin>$AdminControl invoke $b sync true In theory this process should return "true" message ONLY after completing "File Transfer" to all the selected node agent (Base_Node) directories. Base_Root\config\cells\cellname\applications Base_Root\installedApps\cellname\ But we will get the "true" message while this WebSphere is in the process of copying files to Base_Root\installedApps\cellname\ directory Console If we use the console "Full Resynchronize" or "Synchronize" operation, it only displays the START of sync but NOT the ENDing. "Successfully initiated synchronization of the repository on node with the deployment manager's repository." Note:If we select "Synchronize changes with Nodes" during the save operation then we are returned to the Console's Home page while| þ ¦$¦$ªLë}ÚÒÈ¿_ú§-ÚüÚâ_¦|À-  ]pKèè þX% .EÇ¿âþ ken(cells/KenGNetwork/nodes/KenGBase:resources.xml#DataSource_1060201206488) wsadmin>set ds [$AdminConfig getid /DataSource:ARAVIND/] ARAVIND(cells/KenGNetwork/nodes/KenGManager:resources.xml#DataSource_1066678218820) wsadmin>$AdminConfig showall $ds {authDataAlias KenGBase/psAlias1} {authMechanismPreference BASIC_PASSWORD} {connectionPool {{agedTimeout 0} {connectionTimeout 1800} {maxConnections 10} {minConnections 1} {purgePolicy EntirePool} {reapTime 180} {unusedTimeout 1800}}} {datasourceHelperClassname com.ibm.websphere.rsadapter.GenericDataStoreHelper} {description "New JDBC Datasource"} {jndiName jdbc/ARAVIND} {mapping {{authDataAlias KenGBase/psAlias} {mappingConfigAlias DefaultPrincipalMapping111}}} {name ARAVIND} {provider "User-defined JDBC Provider(cells/KenGNetwork/nodes/KenGManager:resour ces.xml#JDBCProvider_1066674923522)"} {relationalResourceAdapter "WebSphere Relational Resource Adapter(cells/KenGNetwork/nodes/KenGManager:resources.xml#builtin_rra)"} {statementCacheSize 10} wsadmin>$AdminConfig showAttribute $ds relationalResourceAdapter "WebSphere Relational Resource Adapter(cells/KenGNetwork/nodes/KenGManager:resou rces.xml#builtin_rra)" wsadmin>$AdminConfig list J2CConnectionFactory wsadmin>$AdminConfig modify $ds {{authDataAlias KenGBase/psAlias}} Note:authDataAlias is equivalent for console ==> "Component-managed Authentication Alias" wsadmin>$AdminConfig modify $ds {{mapping {{authDataAlias KenGBase/psAlias} {mappingConfigAlias DefaultPrincipalMapping}}}} Note1:{mapping {{authDataAlias KenGBase/psAlias}.... is equivalent for console ==> "Container-managed Authentication Alias" Note2:{mappingConfigAlias DefaultPrincipalMapping} is equivalent for console ==> "Mapping-Configuration Alias" TestConnection "J2C Authentication Data". When we do "TestConnection" from adminconsole we are not providing any special parameters like "userid" and "password". "userid" and "password" are accessible from "J2C Authentication Data". "J2C Authentication Data" is linked with all DataSources . wsadmin "testConnection" options requires userid/password and this is working as designed. Please review the following examples http://publib.boulder.ibm.com/infocenter/wasinfo/index.jsp?topic=/com.ibm.websphere.base.doc/info/aes/ae/rxml_mtestdata.html http://publib.boulder.ibm.com/infocenter/wasinfo/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/tdat_testcon1.html http://publib.boulder.ibm.com/infocenter/wasinfo/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/rxml_testconnection.html http://publib.boulder.ibm.com/infocenter/wasinfo/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/rdat_testjsap1.html Security information are stored in "security.xml" How to get the "userid" and "password" using wsadmin wsadmin>set jasData [$AdminConfig list JAASAuthData] Sample Result: (cells/KENTHINKPADNetwork:security.xml#JAASAuthData_1066921476255) wsadmin>set myUser [$AdminConfig showAttribute $jasData alias] Sample Result: KenGBase/psAlias wsadmin>set myUser [$AdminConfig showAttribute $jasData userId] Sample Result: psUser wsadmin>set myPassword [$AdminConfig showAttribute $jasData password] Sample Result: IBM wsadmin>set myAlias [$AdminConfig showall $jasData] Sample Result: {alias KenGBase/psAlias} {description "JAAS Alias for Pet Store Sample"} {password *****} {userId psUser} Note:If we have more than one "alias" in "J2C Authentication Data" then we may need to write a detail jacl script to get required "alias" within the aliases list. ============================================================== =============================== "CacheInstance" is a WebSphere Enterprise Edition's (5.0.2) feature and NOT available with "Base" version. Following Infocenter link has examples for creating "CacheInstance" using "Administrative Console" , "Properties file" and "Resource references". Using the DistributedMap interface for the dynamic cache http://publib.boulder.ibm.com/infocenter/wasinfo/index.jsp?topic=/com.ibm.wasee.doc/info/ee/ae/tprf_distmap.html We do not have any wsadmin samples for creating "CacheInstance". How to create a "CacheInstance" using wsadmin Please Note:Here we are not discussing about the usage of "CacheInstance" and "dynamic cache".Please check the infocenter for more information. http://publib.boulder.ibm.com/infocenter/wasinfo/index.jsp?topic=/com.ibm.wasee.doc/info/welcome_ee.html Step1: Get all the attributes for "CacheInstance" wsadmin>$AdminConfig attributes CacheInstance "cacheReplication DRSSettings" "cacheSize int" "category String" "defaultPriority int" "description String" "diskOffloadLocation String" "enableDiskOffload boolean" "flushToDiskOnStop boolean" "hashSize int" "jndiName String" "name String" "propertySet J2EEResourcePropertySet" "provider J2EEResourceProvider@" "pushFrequency int" "referenceable Referenceable@" "replicationType ENUM(PULL, PUSH, PUSH_PULL, NONE)" "useListenerContext boolean" Step 2:How to know the mandatory (minimum) attributes for creating "CacheInstance". $AdminConfig function has an option called "required".Normally we can use this function to see the mandatory (minimum) attributes for creating any object , but this is not available for "CacheInstance" object type. wsadmin>$AdminConfig required CacheInstance WASX7361I: No required attribute found for type "CacheInstance". When I create the "CacheInstance" from console it requires only 3 attributes name jndiName and cacheSize Note1: wsadmin automatically set the "defaultPriority" to 1. Step3: How to set the scope for CacheInstance. From console we can select the "scope" for a "CacheInstance" using "Browse Nodes" and "Browse Server" options. In wsadmin we need to use the "CacheProvider" object to set the scope. Step 4: How to get the "CacheProvider" based on your scope. "CacheProvider" is already available in different levels (AppServer/node/cell ) and no need to create new "CacheProvider" separately. We need to get the "CacheProvider" based on our scope. In this example I am selecting a server scope (server1) Listing "CacheProvider" for a specific AppServer (Server1) wsadmin>set A [$AdminConfig getid /Cell:KenGEENetwork/Node:KenGEE/Server:server1/] server1(cells/KenGEENetwork/nodes/KenGEE/servers/server1:server.xml#Server_1) wsadmin>set B [$AdminConfig list CacheProvider $A] CacheProvider(cells/KenGEENetwork/nodes/KenGEE/servers/server1:resources-pme502.xml#CacheProvider_1055745612404) Note2:Listing all the available "CacheProvider" wsadmin>$AdminConfig list CacheProvider CacheProvider(cells/KenGEENetwork/nodes/KenGEE/servers/server1:resources-pme502.xml#CacheProvider_1055745612404) CacheProvider(cells/KenGEENetwork/nodes/KenGEE:resources-pme502.xml#CacheProvider_1055745612404) CacheProvider(cells/KenGEENetwork/nodes/KenGEEManager:resources-pme502.xml#CacheProvider_1055745612404) CacheProvider(cells/KenGEENetwork:resources-pme502.xml#CacheProvider_1055745612404) Note 3: "showall", "showAttribute" and "create" functions can be used with "CacheProvider" object. In this example we are limiting only with "CacheInstance" Step 5: Create a "CacheInstance" using the "CacheProvider" (scope) wsadmin>$AdminConfig create CacheInstance $B {{cacheSize 2000} {name myCacheInstance}{jndiName myJndiName}} myCacheInstance(cells/KenGEENetwork/nodes/KenGEE/servers/server1:resources-pme502.xml#CacheInstance_1067901337446) Step 6: Save the changes wsadmin>$AdminConfig save Note 4: Here I am using minimum attributes to create "CacheInstance". Please review the Step1 for all the available attributes. How to view "CacheInstance" using wsadmin Listing all the "CacheInstance" wsadmin>$AdminConfig list CacheInstance myCacheInstance(cells/KenGEENetwork/nodes/KenGEE/servers/server1:resources-pme502.xml#CacheInstance_1067901337446) nodeLevel(cells/KenGEENetwork/nodes/KenGEE:resources-pme502.xml#CacheInstance_1067958257923) Listing the "CacheInstance" with server1 as a "scope" wsadmin>set C [$AdminConfig getid /Cell:KenGEENetwork/Node:KenGEE/Server:server1/] server1(cells/KenGEENetwork/nodes/KenGEE/servers/server1:server.xml#Server_1) wsadmin>set D [$AdminConfig list CacheInstance $C] myCacheInstance(cells/KenGEENetwork/nodes/KenGEE/servers/server1:resources-pme502.xml#CacheInstance_1067901337446) View all the values in the CacheInstance wsadmin>$AdminConfig showall $D {cacheSize 2000} {defaultPriority 1} {enableDiskOffload false} {flushToDiskOnStop false} {hashSize 1024} {jndiName ibm} {name myCacheInstance} {provider CacheProvider(cells/KenGEENetwork/nodes/KenGEE/servers/server1:resources-pme502.xml#CacheProvider_1055745612404)} {pushFrequency 1} {replicationType NONE} {useListenerContext false} View only one attribute in that CacheInstance Ex:cacheSize wsadmin>$AdminConfig showAttribute $D cacheSize 2000 How to modify an attribute in "CacheInstance" using wsadmin To edit an attribute in that CacheInstance Ex:cacheSize wsadmin>$AdminConfig modify $D {{cacheSize 2001}} wsadmin>$AdminConfig save ============ Other: (From James.K DCF ) What is required in order for a $AdminControl query to get a correct list of existing clusters is to invoke the retrieveCluster operation to refresh the list of clusters first. Here are the commands to refresh the cluster list: (1) Identify the ClusterMgr MBean and assign it to the clusterMgr variable: set clusterMgr [$AdminControl completeObjectName cell=mycell,type=ClusterMgr,*] This command returns the ClusterMgr MBean. (2) Refresh the list of clusters. $AdminControl invoke $clusterMgr retrieveClusters This command calls the retrieveClusters operation on the ClusterMgr MBean. Now, "$AdminControl queryNames type=Cluster,*" will return the correct list of clusters. Similarly, after a cluster is created, run steps (1) and (2) to retrieve the latest list of clusters first. Note if you list the clusters in the console after creating a cluster, the retrieveCluster operation will be called by console code so you do not need to explicitly invoke them. However, the console code does not call retrieveCluster after a cluster is deleted. It is recommended to always call retrieveCluster first to make sure the clusters returned is up-to-date. ==================== JDBC provider and DataSource Configuring a JDBC provider using wsadmin Infocenter example: http://publib.boulder.ibm.com/infocenter/wasinfo/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/rxml_configjdbc.html Sample Commands and results from my test Machine: Step1: wsadmin>set myNode [$AdminConfig getid /Cell:KenGBase/Node:KenGBase/] KenGBase(cells/KenGBase/nodes/KenGBase:node.xml#Node_1) Step2: wsadmin>$AdminConfig required JDBCProvider Attribute Type name String implementationClassName String Step3: wsadmin>set n1 [list name myJDBCProvider] name myJDBCProvider Step4: wsadmin>set implCN [list implementationClassName com.ibm.db2j.jdbc.DB2jConnectionPoolDataSource] implementationClassName com.ibm.db2j.jdbc.DB2jConnectionPoolDataSource Step5: wsadmin>set jdbcAttrs [list $n1 $implCN] {name myJDBCProvider} {implementationClassName com.ibm.db2j.jdbc.DB2jConnectionPoolDataSource} Step6: wsadmin>$AdminConfig create JDBCProvider $myNode $jdbcAttrs myJDBCProvider(cells/KenGBase/nodes/KenGBase:resources.xml#JDBCProvider_1068221275392) Step7: wsadmin>$AdminConfig save Configuring a new data source using wsadmin Infocenter example: http://publib.boulder.ibm.com/infocenter/wasinfo/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/rxml_configdatasource.html Step8: wsadmin>$AdminConfig list JDBCProvider "Samples Cloudscape 5.0 XA Provider(cells/KenGBase/nodes/KenGBase/servers/server1:resources.xml#JDBCProvider_3)" myJDBCProvider(cells/KenGBase/nodes/KenGBase:resources.xml#JDBCProvider_1068221275392) Step9: wsadmin>set myJDBCProviderID [$AdminConfig getid /Cell:KenGBase/Node:KenGBase/JDBCProvider:myJDBCProvider/] myJDBCProvider(cells/KenGBase/nodes/KenGBase:resources.xml#JDBCProvider_1068221275392) Step10: wsadmin>$AdminConfig required DataSource Attribute Type name String Step11: wsadmin>set name [list name myDataSource] name myDataSource Step12: wsadmin>set dsAttrs [list $name] {name myDataSource} Step13: wsadmin>set myDS [$AdminConfig create DataSource $myjdbc $dsAttrs] myDataSource(cells/KenGBase/nodes/KenGBase/servers/server1:resources.xml#DataSource_1068221999964) Step14: wsadmin>$AdminConfig save Step15: wsadmin>$AdminConfig list DataSource TechSamp(cells/KenGBase/nodes/KenGBase/servers/server1:resources.xml#DataSource_3) myDataSource(cells/KenGBase/nodes/KenGBase/servers/server1:resources.xml#DataSource_1068221999964) ======================= Step1: wsadmin>$AdminConfig attributes ProcessDef Result: "environment Property(TypedProperty)*" "executableArguments String*" "executableName String" "execution ProcessExecution" "ioRedirect OutputRedirect" "monitoringPolicy MonitoringPolicy" "workingDirectory String" Note: "environment" setting is the part "ProcessDef" From the console we know this (environment) requires 3 attributes description name value Step2:Set the 3 attributes: wsadmin>set description [list description IBM] description IBM wsadmin>set name [list name TEST] name TEST wsadmin>set value [list value 12345] value 12345 Step3:We need to arrange this attribute in a specfic order wsadmin>set a [list $description $name $value] {description aravind} {name aravind} {value aravind} wsadmin>set b [list $a] {{description aravind} {name aravind} {value aravind}} wsadmin>set c [list [list environment $b]] {environment {{{description aravind} {name aravind} {value aravind}}}} Step4:Get the ConfigID for the Server we are interested (Ex:server1) wsadmin>set MyServer [$AdminConfig getid /Cell:KenGBase/Node:KenGBase/Server:server1/] Result: server1(cells/KenGBase/nodes/KenGBase/servers/server1:server.xml#Server_1) Step5:Get the ConfigID for JavaProcessDef wsadmin>set processDef [$AdminConfig list JavaProcessDef $MyServer] Result: (cells/KenGBase/nodes/KenGBase/servers/server1:server.xml#JavaProcessDef_1) Step6:Modify the environment" wsadmin>$AdminConfig modify $processDef $c +++++++++++++++++++++++++++++++++++++++++ Note:If you want to skip the Step2 you can do following wsadmin>$AdminConfig modify $processDef {{environment {{{description ramesh} {name ramesh} {value ramesh}}}}} ++++++++++++++++++++++++++++++++++++++++ Step5: $AdminConfig save =========================================================================== wsadmin>set servers [$AdminConfig list Server] server1(cells/KenGBase/nodes/KenGBase/servers/server1:server.xml#Server_1) wsadmin>set ps [$AdminConfig showAttribute $servers processDefinition] (cells/KenGBase/nodes/KenGBase/servers/server1:server.xml#JavaProcessDef_1) wsadmin>$AdminConfig showAttribute $ps environment {divya(cells/KenGBase/nodes/KenGBase/servers/server1:server.xml#Property_1076445 486799)} wsadmin>$AdminConfig show $ps environment {environment {divya(cells/KenGBase/nodes/KenGBase/servers/server1:server.xml#Pro perty_1076445486799)}} wsadmin>$AdminConfig showall $ps environment {environment {{{description TEST} {name TEST} {required false} {value TEST}}}} =================== ================================================= To create property that does not have template such as some of custom properties in UserRegistry...etc. #### get the parent id , the place you want to add the #### cust properties wsadmin>set xx [$AdminConfig getid /CustomUserRegistry:/] (cells/tzzl2Network:security.xml#CustomUserRegistry_1075995548617) #### then create the property you want, since it is empty wsadmin>$AdminConfig create Property $xx { {name myProps} {value what_value} {description "Just Test How to create"} {required false} } ### then save it wsadmin>$AdminConfig save ======================================================================= Getting the status of running server ================================== wsadmin>set SevObject [$AdminControl completeObjectName type=Server,node=KenGBase,proce ss=nodeagent,*] WebSphere:name=nodeagent,process=nodeagent,platform=common,node=KenGBase,version=5.0,type=Server,mbeanIdentifier=cells/KenGNetwork/nodes/KenGBase/servers/nodeagent/server.xml#Server_1069705575058,cell=KenGNetwork,processType=NodeAgent wsadmin>$AdminControl getAttribute $SevObject state STARTED ==================================================== wsadmin>set a [lindex [$AdminConfig getid /Node:MyNode/VariableMap:/VariableSubstitutionEntry:/] 0] (cells/MyCell/nodes/MyNode:variables.xml#VariableSubstitutionEntry_1) wsadmin>$AdminConfig modify $a {{value C:\xxxx\xxxx}} This is possible from console Environment -->Manage WebSphere Variables Click/select the existing one from display Edit (rename/change values/ change description) Save ========================================================= The weblev2 email account and FTP servers are not monitored. For instructions on using the IBM FTP servers, please see: http://www-1.ibm.com/support/docview.wss?uid=swg21153852 After sending your e-mail, or data, please contact your local IBM Support ------------ WebSphere Application Server Support Team