Wednesday, September 23, 2009

Think twice on WebSphere Integration Developer 6.2 and Rational UCM


In WID 6.2 certain project specific information like run time, debug, and java code formatter information are stored in .settings folder. You can find more info in WID 6.2 Info center


The problem comes when you use Ration ClearCase UCM as your source control repository. In Rational ClearCase UCM you need an UCM activity to check-out files; and a clean build checks-out files in .settings folder.

Obviously you wouldn't want to check-in files and deliver activity every time you do a clean build; you might get merge conflicts or annoying UCM activities delivery.


One solution is to create a CleanBuild_activity; and avoid delivering this activity (but this would create more problems in rebase clear case views), or deliver clean-build activity at the end of development cycle or before rebase.

In any case I would think twice before choosing WID 6.2 with Rational ClearCase UCM;

Other problems with Rational CCRC UMC
  1. You can not delete a file temporarily from workspace and see it's effect in integration solution; delete would actually delete file from source control repository.
  2. Undo delete a file; Rational info center suggest to try merge search, but it never worked for me.
  3. You have modified a integration solution and want to abandon the changes and restore back.. there is no easy way. I usually abandon the view, i.e quit WID and delete the view; and integration view, and join UCM project and choose same view name. You might get a warning that integration stream already exist and you have choose a new name for your integration stream. Launch WID with same workspace, your changes were abandoned.
I have also noticed that XSL files are checked-out during a clean build (if you have active UCM activity), which seems to be a bug.

I would try new Rational Team Concert; or CVS.



Monday, September 21, 2009

WebSphere Integration Developer 6.2 and Integration solution view

WebSphere Integration Developer 6.2 has a new feature, Integration solution view. This view gives a very nice overview of integration modules and it's connectivity.


Whenever I try to open integration solution view WID crashed; I had 1.5GB JVM heap at the time of crash; IBM service suggested to lower and use the default value i.e. 1GB (1024m); with that WID working without any issues.

It's also interesting to note that Integration solution view users Adobe Flash 10 and Flex.

Friday, August 21, 2009

WebSphere Process Server serviceDeploy debug options

You can debug the serviceDeploy utility which comes with WebSphere Process Server (or WebSphere Integration Developer). Unfortunately I could not find what we should give in options file.

servicedeploy -help

serviceDeploy inputArchive [options]

Options:
-workingDirectory dir A directory in which to generate temporary files. Default=.
-outputApplication app.ear The path and name of the deployed ear. Default=[inputArchive]App.ear
-noJ2eeDeploy Whether the j2ee deployers, including ejbdeploy, should be skipped. Default=false
-noJavaSource Whether the Java source files should be excluded from the generated ear. Default=false
-freeform Whether a j2ee subdirectory in the service jar should be free-form enabled. Default=false
-cleanStagingModules Whether the staging modules in an input ear file should be deleted and recreated during deploy. Default=false
-keep Whether the temporary workspace in the working directory should be preserved after deploy. Default=false
-ignoreErrors Whether an ear file should be exported despite compile or validation errors. Default=false
-classpath x.jar;y.rar A list of jars and rars required on the classpath
-uniqueCellID Unique ID in the context of the cell that is used to create a unique instance of the application.
-progressMonitor type Whether and how progress should be monitored. Type may be one of [none|meter|message]. Default=none
-fileEncoding encoding The default file encoding for the workspace root. Default is unspecified.
-debug optionsFile An options file that enables eclipse trace.
-javaDebug Whether all debug information should be included in generated class files.

After long hours on google, I found it's documented in IBM Education: component deployment with ServiceDeploy (link).

You can try below as your options file; Of course, best is to get assistance from IBM service, and use the options at your own risk.

org.eclipse.jdt.core/debug=true
org.eclipse.jdt.core/debug/builder=true
org.eclipse.jdt.core/debug/trace=true
com.ibm.ws.sca.rapiddeploy.style/debug=true
com.ibm.ws.sca.rapiddeploy.style/debug/trace=true
com.ibm.ws.sca.rapiddeploy.style/debug/event=true
com.ibm.ws.sca.rapiddeploy.style/debug/info=true
com.ibm.ws.sca.rapiddeploy.headless/debug=true
com.ibm.ws.sca.rapiddeploy.headless/debug/trace=true
com.ibm.ws.sca.rapiddeploy.headless/debug/event=true
com.ibm.ws.sca.rapiddeploy.headless/debug/info=true
com.ibm.ws.artifact.locator/debug=true
com.ibm.ws.artifact.locator/debug/trace=true
com.ibm.ws.artifact.locator/debug/event=true
com.ibm.ws.artifact.locator/debug/info=true
com.ibm.ws.artifact.locator/debug/dump=true
com.ibm.ws.sca.rapiddeploy.headless.HeadlessServiceDeploy/debug=true
com.ibm.ws.sca.rapiddeploy.headless.HeadlessServiceDeploy/debug/trace=true
com.ibm.ws.sca.rapiddeploy.headless.HeadlessServiceDeploy/debug/event=true
com.ibm.ws.sca.rapiddeploy.headless.HeadlessServiceDeploy/debug/info=true


Ex:
serviceDeploy InputArchive.zip -keep -debug options.txt

Thursday, August 20, 2009

Eclipse unsatisfied link error on AIX when configuring WebSphere Process Server 6.2 using firststeps

Today I was getting below exception when attempting to configure WPS 6.2 on AIX 5.3

!SESSION 2009-08-20 09:18:24.624 -----------------------------------------------
eclipse.buildId=unknown
java.fullversion=J2RE 1.5.0 IBM J9 2.3 AIX ppc-32 j9vmap3223ifx-20090225 (JIT enabled)
J9VM - 20090224_30451_bHdSMr
JIT - 20081112_1511ifx1_r8
GC - 200811_07
BootLoader constants: OS=aix, ARCH=ppc, WS=motif, NL=en_US
Framework arguments: -jar startup.jar
Command-line arguments: -jar startup.jar -os aix -ws motif -arch ppc -clean

!ENTRY org.eclipse.osgi 4 0 2009-08-20 09:18:27.796
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: /shome/wasadmin/PMT/workspace/configuration/org.eclipse.osgi/bundles/24/1/.cp/libswt-motif-3236.a ( 0509-022 Cannot load m
odule /shome/wasadmin/PMT/workspace/configuration/org.eclipse.osgi/bundles/24/1/.cp/libswt-motif-3236.a.
0509-150 Dependent module libXtst.a(shr.o) could not be loaded.
0509-022 Cannot load module libXtst.a(shr.o).
0509-026 System error: A file or directory in the path name does not exist.
0509-022 Cannot load module /shome/wasadmin/PMT/workspace/configuration/org.eclipse.osgi/bundles/24/1/.cp/libswt-motif-3236.a.
0509-150 Dependent module /shome/wasadmin/PMT/workspace/confi)
at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:986)
at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:946)
at java.lang.System.loadLibrary(System.java:453)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:123)


It turn out to be missing package on AIX server... Installing X11.add.lib might resolve the issue



lslpp -f X11.adt.lib
Fileset File
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
X11.adt.lib 5.3.0.0 /usr/lib/libttf.a -> /usr/lpp/X11/lib/libttf.a
X11.adt.lib 5.3.0.0 /usr/lpp/X11/lib/libxkbfile.a
/usr/lib/libxkbfile.a -> /usr/lpp/X11/lib/libxkbfile.a
/usr/lpp/X11/lib/R6/libXtst.a
/usr/lpp/X11/lib/libXdmcp.a
/usr/lpp/X11/lib/libXau.a
/usr/lib/libkap.a -> /usr/lpp/X11/lib/libkap.a
/usr/lpp/X11/lib/libttf.a
/usr/lpp/X11/lib/R6
/usr/lib/libXtst.a -> /usr/lpp/X11/lib/R6/libXtst.a
/usr/lib/libXau.a -> /usr/lpp/X11/lib/libXau.a
/usr/lib/libXdmcp.a -> /usr/lpp/X11/lib/libXdmcp.a
/usr/lpp/X11/lib/libkap.a

Tuesday, August 11, 2009

WID 6.0.2 custom mediaiton premitive and migration to WID 6.2

I have used custom mediation primitive in WID 6.0.2 with implementation "invoke". When moved the code to WID 6.2 custome mediation primitive has only two types of implementations 1) Visual and 2) java. Previously coded custom mediation primitives are converted to simple java implementation with service lookup and service.invoke("operationName", argument)

At this moment, this may fail on runtime with argument smo.getBody(); not all times this may work. In such case use service invoke primitive which is introduced in WID 6.2


Tuesday, July 7, 2009

WebSphere Process Server 6.2 upgrade from 6.0.2

When upgrading WebSphere Process Server from 6.0.2 to 6.2, upgrade scripts hung during the deployment manager migration, in fact waiting for user input to add a digital certificate to trust store. Since upgrade app closed the stdin, I could not pass Y/N value.

Later found that actual problem is that I have another deployment manager running on the same box with WAS default ports, when migration scripts checking for the running WAS server it got a valid response from the running deployment manager causing a different path of execution in migration.

Things worked pretty smooth after I shut down other deployment manager and ran WBIPostUpgrade.sh script. So if you are planning for WebSphere Process Server upgrade and migrating deployment manager, make sure that you do not have another server running on the same machine with WAS default ports.

Wednesday, June 10, 2009

WebSphere Integration Developer 6.2 and Rational Clear Case Remote client CCRC


After installing WID 6.2 I could not find easy way to get Rational CCRC (eclipse plug-in) in WID 6.2; WebSphere Integration Developer plug-in are managed by IBM Installation Manager and it takes only repositories, and not compitable with eclipse plug-in site.xml.

Interestingly you would not find Software Update in Help menu in WID 6.2. Using Software Update in Help pull down menu you could get a eclipse plug-in.

The trick is to change your prespective to J2EE to get Software Update link in Help Menu; using that you coould install CCRC in WID 6.2


Sunday, April 12, 2009

Restore Safely Remove Hardware iCon in WindowsXP

 

Quite often on my windows XP I loose icon to remove my hardware like USB hard disk or USB key.  Somewhere I found below lines of VBS (Visual Basic Script) to restore your Icon.

 

set shell=createobject("wscript.shell")
shell.run "RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll"

Put above lines in a file and save the file with extension .vbs; when you double click it would automatically run the script contents.

 

Arun

Wednesday, March 18, 2009

WebSphere Integration Developer XSLT mediation premetives

Hi...

I have spent prolonged hours at my desk debugging XSLT's developed in WebSphere Integration Developer 6.0.2; once thing I noticed is whenever I copy one or two values to a business object, it looses other values and keep newly copied values. Not sure if I had bug with my tools or something else.

IBM article on XSLT mediations are very usefull. Especially when you try to trace and debug the problem..

Arun

Wednesday, February 11, 2009

WebSphere Integration Developer 6.0.2.2 and CWSCA8019E

I am bugged with CWSCA8019E error in my WID;

CWSCA8019E: No matching interface can be found on target {0} error keeps coming back to my workspace; apparently I don't see any missing artifacts (imports/exports/component files). If I delete the wire and reconnect the error goes away but when I do a clean build it comes back.

I have compared the files with my previous workspace and there is no change. Not sure what I am missing; ....

I will post as soon as I find a clue on this..
...


I have deleted WID interim fix 008 and my WID started working fine after that .. there something that causing some trouble in interim fix 008.

Arun

WebSphere Integration Developer BOXMLSerializer writeDataObjectWithOptions

The default BOXMLSerializer writes XML with spaces and tabs; to remove tabs/spaces you can use below code.

BOXMLSerializer bos = (BOXMLSerializer) ServiceManager.INSTANCE.locateService
("com/ibm/websphere/bo/BOXMLSerializer");

Map options = new HashMap(); options.put
(XMLResource.OPTION_FORMATTED, Boolean.FALSE);

bos.writeDataObjectWithOptions(dataObject, targetNamespace, element, options);