Wednesday, January 30, 2013

WPS : Updating the Webservice URL by using Scripts : Jython Script

WSADMIN tool

The WebSphere Application Server wsadmin tool provides the ability to run scripts. The wsadmin tool supports a full range of product administrative activities  You can use the wsadmin tool to manage WebSphere Application Server as well as the configuration, application deployment, and server run-time operation
wsadmin tool supports a full range of product administrative activities. The wsadmin tool supports two scripting languages: Jacl and Jython. BUt Jacl has been depricated with the v6.1 relase of websphere and the recomended direction is to use jython. Five objects are available when you use scripts:
  • AdminControl: Use to run operational commands.
  • AdminConfig: Use to run configurational commands to create or modify WebSphere Application Server configurational elements.
  • AdminApp: Use to administer applications.
  • AdminTask: Use to run administrative commands.
  • Help: Use to obtain general help.  

To perform a task using scripting, you must first perform the following steps:

  1. Choose a scripting language. The wsadmin tool only supports Jacl and Jython scripting languages. Jacl is the language specified by default. If you want to use the Jython scripting language, use the -lang option or specify it in the wsadmin.properties file.
  2. Start the wsadmin scripting client interactively, as an individual command, in a script, or in a profile.
 The options for the wsadmin tool are case insensitive.

This will help us go create JNDI's for application, Updating the webservice URL's Creating or deleting Activation Specifications for our application on server and many more.. It will help us more..

** 1. I will tell u  how to use "AdminTask" for  updating the WSBinding URL using this script.

Syntax

AdminTask.modifySCAImportWSBinding('[-moduleName ' +<moduleName>+'-import ' + < import name> + ' -endpoint ' + <new url>+ '-applicationName ' + <applicationName> +'App]  ')

EX:
AdminTask.modifySCAImportWSBinding('[-moduleName ' + SampleWebserviceModule+'-import ' + TargetWebserviceImport + ' -endpoint ' +http://172.17.6.120:/DecisionService/DetermineService + '-applicationName ' + SampleWebserviceModuleApp]  ')

for saving these changes in server we should use  AdminConfig.save.

By using this code we can able to update the url of WSBining Import of any application.


** 2. I will tell u how to update JNDI of application by using AdminApp.

Syntax: AdminApp.edit('<ApplicationAppname>','[-BindJndiForEJBMessageBinding [[ ApplicationNameEJB.jar <port name of Export> ApplicationNameEJB.jar,META-INF/ejb-jar.xml "" <activation specification name> "" "" ]]]')

EX:
AdminApp.edit('SampleApplicationModuleApp','[-BindJndiForEJBMessageBinding [[ SampleApplicationModuleEJB.jar ChangeEventPort SampleApplicationModuleEJB.jar,META-INF/ejb-jar.xml "" jms/ChangeEventAllOperation_AS "" "" ]]]')
for saving these changes in server we should use  AdminConfig.save.


** 3. Code For Creating Queues
 Syntax:
AdminTask.createWMQQueue('qnode(cells/qcell/nades/qnode|node.xml)','[-name <jsmqueue name> -jndiName <queue jndi name> -queueName <wmqQueuename> -qmgr <queue Manager Name> - description ]')
Ex :
AdminTask.createWMQQueue('qnode(cells/qcell/nades/qnode|node.xml)','[-name jmsQueueName -jndiName jms/jmsQueueName -queueName MQQueueName -qmgr QMGR - description ]')


**4. Code For creating Connection Factory 
 Syntax:
AdminTask.createWMQConnectionFactory('qnode(cells/qcell/nades/qnode|node.xml)','[-type QCF -name <QCF name> -jndiName <queue ConnectionFactory jndi name> - description -qmgrName <WMQqueue Manager Name> -wmqTransportType BINDINGS_THEN_CLIENT -qmgeHostName <wmq Server Host Name> -qmgrPortNumber <WMQServicePort> -qmgrSvrconnChannel <ChannelName> ]')

EX:
AdminTask.createWMQConnectionFactory('qnode(cells/qcell/nades/qnode|node.xml)','[-type QCF -name <QCF name> -jndiName <queue ConnectionFactory jndi name> - description -qmgrName <WMQqueue Manager Name> -wmqTransportType BINDINGS_THEN_CLIENT -qmgeHostName <wmq Server Host Name> -qmgrPortNumber <WMQServicePort> -qmgrSvrconnChannel <ChannelName> ]')


Run This Code By Using "wsadmin" :


save this file as <filename>.py into \RootDirectory\InstallationPath\profiles\qbpmaps\bin


open command prompt
c:\>cd  \RootDirectory\InstallationPath\profiles\qbpmaps\bin
c: \ RootDirectory\InstallationPath\profiles\qbpmaps\bin> wsadmin.bat -lang jython -username admin -password admin -f <filename>.py

EX:
c: \ RootDirectory\InstallationPath\profiles\qbpmaps\bin> wsadmin.bat -lang jython -username admin -password admin -f URLUpdate.py

Sunday, January 6, 2013

WPS : Unable to Install appllication on server "Application is already Exist on Serevr"

Issue: I am trying to install one application on server. It's unable to install giving exception as " already exist on serevr".
In admin console goto --> SCAModules : there i am finding my module over there but the state of the module is unknown. i tryed to un-deploy from there. it's not able to un-deploy. Even i am unable to remove that application from server from admin consol too..

Solution :
1. first we have to stop the server.
2. we have to remove particular application from all the folder in server profile.
3.One more main thing is go to installation folder-->  \profiles\qbpmaps\config\cells\qcell go to this path and open "cell-core.xml" file and remove SCAModules entry of that particular application from this file.
4. Start the server
now we can able to deploy that same application successfully.


OR

You can also force the uninstall with the following command:

<<WPS_HOME>>\bin\wsadmin.bat -user <<username>> -password <<password>> -lang jacl -f <<WPS_HOME>>\ProcessChoreographer\admin\bpcTemplates.jacl -uninstall <<YourProcessApp>> -force