Shaaf’s Blog
msgbartop
Another bit in the wall
msgbarbottom

24 Oct 08 wasprofile -create -delete

Sometimes you require to do things silently, without any questions asked and “Just Do It” attitude is required.

I often find my self with this problem.

If you want to delete or create a Websphere profile from your command line try the following. (I have tried on RSA only)

# deleteing a profile
wasprofile -delete -profileName MyProfile

You should get the following message on deletion

INSTCONFSUCCESS: Success: The profile no longer exists.

Creating a websphere profile

wasprofile -create -profileName MyProfile -profilePath \
[PROFILE PATH] -templatePath \
[RSA HOME]runtimes\base_v6\profileTemplates\default \
-nodeName [NODE NAME] -cellName [CELL NAME] -hostName [HOSTNAME].

Tags: , , , , , , , , , , ,

25 Aug 08 SVN – some quick commands during merge.

Following are some of the frequently used svn commands during merging and branching. I used to work with tortoise for this but as soon as I learned these, it feels like a more easier space to be in. Although no points taken away from tortoise, it still works pretty good for the gui part, This article is more targeted towards dark screen lovers.

Create a new branch from trunk:
If you want to create a branch from a specific revision of Trunk following command is handy. It does a remote copy. which means the machine you are on does not need a copy of the whole tree.

$ svn copy -r REVISION TRUNK_URL NEW_BRANCH_URL --username USERNAME --password PASSWORD -m MESSAGE

An example

$ svn copy -r 1234 http://shaafshah.com/trunk http://shaafshah.com/branches/MY_BRANCH --username foo --password bar -m "Remote copy"

When was this branch created?
If you want to know the day branch was created.

$ svn log -v --stop-on-copy BRANCH_URL

The last record will show you the day the branch as created.

List all the branches:
If you want to take a listing of branches or a tree

$ svn ls BRANCHES_URL

e.g. http://shaafshah.com/branches

Merge from Branch to Trunk:

Browse to where you have checkedout trunk in the local directory.

$ cd shaafshah.com/trunk

Update trunk to HEAD.

$ svn update
At revision 1234.

Following will merge from branch to trunk but will not commit.

$ svn merge -r BRANCH_REVISION:TRUNK_REVISION BRANCH_URL

Branch_REVISION will be the revision branch was created if this is the first time you are doing the merge.

$ svn merge -r 1233:1234 http://shaafshah.com/branches/my_new_branch

After this you should do an

svn status

to check the status of the files. the files will be marked with following Characters.

‘A’ Added
‘C’ Conflicted
‘D’ Deleted
‘I’ Ignored
‘M’ Modified

If there is any ‘C’ in the status the files will not be committed if you try an svn commit to save the merge to the trunk.

Merge from Trunk to Branch:

To merge from Trunk to branch you would need to browse to the branch checked out in the local direcotry.

$ cd shaafshah.com/branches/mybranch
$ svn update
At revision 1234.

The following command will try merging trunk from revision 1233 i.e. the day branch was created to branch head.

$ svn merge -r 1233:HEAD TrunkURL BRANCH_URL

Hopefully this should help. However you should definitely refer to SVN Book for more detail.

svnbook at http://svnbook.red-bean.com/

Tags: , , , ,

01 Jul 08 HowTo create a JDBC provider with wsadmin scripting – Jython

Last week I wrote a post about creating MQQueues with jacl. However today I am moving to Jython. This is the new scripting languauge supported by the wsadmin. The following write-up helps you create a JDBC provider using Jython in 6 easy stepsĀ on the wsadmin console.

Pre requirements:
Following should be known to start using this tutorial.

1. How to launch the wsadmin with Jython enabled.

Where will I find the wsadmin?
It is typically placed in the bin directory of your server.
In my case its lying in my RAD installation directory as
../Rational/SDP/6.0/runtimes/base_v6/bin

To invoke the wasadmin, just open your terminal and move to the bin dir where you can simply call it by typing wsadmin -lang jython. By doing so you would be invoking the default profile. if you want to specify the profile then use the switch -profileName YOURPROFILENAME

You can either paste the commands step by step or store the whole code listing in one file like DataSources.py. This means you can run this with wsadmin by specifying the -f switch.

After the wsadmin console is launched we can now move to creating the provider step by step.

STEP 1.
Identify classpath for the provider. This is a path to the jar files that need to be used by the provider. In our case its a jdbc dirver for oracle.

driverPath = 'C:\lib\ojdbc14.jar'

STEP 2.
Identify the node and cell that will hold this provider. Node/Cell is how websphere is organized. As the Provider will be created inside a node we need to know which node we are working with.

cellName=AdminControl.getCell()
nodeName=AdminControl.getNode()
node = AdminConfig.getid('/Cell:%s/Node:%s/' % (cellName,nodeName))

In the code above first we get the NodeName and CellName of the current connected server and then take the reference of it as node.

STEP 3.
Specify a template, In our case we have taken an ‘Oracle JDBC Driver (XA)’ template.
The following command will list the template for the provider specified and store it in a variable ‘providerTemplate’

providerTemplate=AdminConfig.listTemplates('JDBCProvider', 'Oracle JDBC Driver (XA)')

STEP 4.
The name for our provider. It could be any name you want to give your provider.

providerName = ['name', 'Oracle JDBC Driver (XA)']

Implementation class and classpath for driver.
It is important to give the implementation class for our provider. In some cases they can be different in ours we use the default one.

implClassName = ['implementationClassName', 'oracle.jdbc.xa.client.OracleXADataSource']

STEP 5.
The following code will just put all the above variables into a form expected by wsadmin as a temp variable jdbcAttrs.

classpath = ['classpath',driverPath]
jdbcAttrs = [providerName,  implClassName,classpath]

STEP 6.

Now is the time to create the provider. and the following will just do that. It passes the type of the provider, the node ref, the jdbcAttrs created in step 5 and the template to be used to create the provider.

provider  = AdminConfig.createUsingTemplate('JDBCProvider', node, jdbcAttrs, providerTemplate)
AdminConfig.save()

This is pretty much it. You should now be able to see the provider in the AdminConsole.

Complete code listing is as follows

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()

Tags: , , , , , , , , , ,