java.lang.UnsatisfiedLinkError: /opt/WebSphere/AppServer/java/jre/bin/libawt.so: libXmu.so.6

Excuse me for titling a post with an exception! Now that I have your attention…..

I’m doing a bit of work on Portal 6.0.  for a customer, and have installed my test environment on Redhat Enterprise 5.3 . I don’t often use a GUI for these machines and sometimes run into problems. On this one I ran the configure-wcm-authoring WPSConfig.sh task but navigated to the WCM Authoring Portlet and found a blank page. The portlet was on the page, but it wasn’t being rendered. A quick look through the SystemErr.log show the culprit:

[4/1/09 16:10:39:329 EST] 00000084 SystemErr     R java.lang.UnsatisfiedLinkError: /opt/WebSphere/AppServer/java/jre/bin/libawt.so: libXmu.so.6: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2144)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:2004)
at java.lang.Runtime.loadLibrary0(Runtime.java:824)
at java.lang.System.loadLibrary(System.java:910)
at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:76)
at java.security.AccessController.doPrivileged1(Native Method)
at java.security.AccessController.doPrivileged(AccessController.java(Compiled Code))
at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:81)
at java.awt.Color.<clinit>(Color.java:280)
at com.ibm.psw.uil.nls.UilCommonResources.<clinit>(UilCommonResources.java:246)
at com.ibm.psw.uil.util.UilStatusInfoHelper$ESIData.<init>(UilStatusInfoHelper.java:1153)
at com.ibm.psw.uil.util.UilStatusInfoHelper.<clinit>(UilStatusInfoHelper.java:997)
at com.ibm.psw.wcl.components.table.WTable.createDefaultClassComparators(WTable.java:1007)
at com.ibm.psw.wcl.components.table.WTable.<init>(WTable.java:733)
at com.ibm.psw.wcl.components.table.WTable.<init>(WTable.java:707)
at com.ibm.psw.wcl.components.table.WTable.<init>(WTable.java:664)
at com.ibm.workplace.wcm.app.ui.portlet.widget.WBasicTable.<init>(WBasicTable.java:80)
at com.ibm.workplace.wcm.app.ui.portlet.widget.WRepositoryBrowserTable.<init>(WRepositoryBrowserTable.java:131)
at com.ibm.workplace.wcm.app.ui.portlet.widget.WRepositoryBrowser.createTable(WRepositoryBrowser.java:304)
at com.ibm.workplace.wcm.app.ui.portlet.widget.WRepositoryBrowser.initialise(WRepositoryBrowser.java:210)
at com.ibm.workplace.wcm.app.ui.portlet.widget.WRepositoryBrowser.<init>(WRepositoryBrowser.java:127)
at com.ibm.workplace.wcm.app.ui.portlet.core.view.MainRepositoryFormView.getRepositoryBrowser(MainRepositoryFormView.java:383)
at com.ibm.workplace.wcm.app.ui.portlet.core.view.MainRepositoryFormView.getRepositoryBrowserTable(MainRepositoryFormView.java:435)
at com.ibm.workplace.wcm.app.ui.portlet.basic.PageManager.getRepositoryTable(PageManager.java:468)

WRepositoryBrowser is the class that renders the main view of the authoring portlet. Looks like it requires some extra packages to work if you haven’t installed xorg with your Redhat Server. A quick search of pbone.net reveals I need two additional packages: libXmu-1.0.2-5.i386.rpm and libXtst-1.0.1-3.1.i386.rpm .  I always install compat-libstdc++-296, compat-libstdc++-33 and libXp on Redhat 5 machines as well. (I think if you don’t have  libXp you get a pretty similar error). I hadn’t seen this specific one before, I think it’s because I used the ‘skipx’ directive in the kickstart file for the machine. Long story short, install those packages on your headless redhat machine.

I think this problem isn’t limited to Portal either. When I was trying to install IBM Http Server on the same machine, I kept getting the same error when the Install Shield installer would load (in -console mode, no less), so I guess it would be good to install these packages whenever you’re going to use Java Apps and use the skipx parameter.

Posted in howto | Tagged , , , | Leave a comment

Can you tell me how to get, how to get to the Solaris boot prompt?

Whenever I have to install Solaris (on SPARC), I never remember how to get it to boot from a cd.  Sparc machines have their own bios system, which comes up as a  this minimal, black on white serif-ey command prompt. You can type commands like:

boot cdrom

… and it’ll boot from the cd rom.

But how to get to the boot menu? Sun machines come with a special keyboard which has a extra row beyond the num pad. There’s a key there labeled STOP, and the ‘Sun Way’ of getting to the boot shell / bios prompt is to hit STOP + A at the same time. I’ve never got one of these keyboards around (we’re using a massive KVM thingy) so I’m forever googling to figure out how to send STOP – A to my Sparc box without having to get to the

So here’s what you do. In normal Solaris, just type :

init 0

And it’ll drop you to the boot prompt. From there go boot cdrom and you’re done.

As an aside I always thought it was funny that in the Solaris install program, they have all these different name resolution schemes you can set, and DNS (the one you basically always want) is the third selection down. Guys, come on, no one uses NIS+ anymore, give it a break! Probably not *that* funny, maybe just a little bit funny.
Posted in howto | Tagged , | Leave a comment

Checking the version of the Oracle JDBC driver jar

I’m working on a problem now where we need to use the Oracle 10g driver against a 9i database. There’s a note in the infocenter about it .But how to do you check which version of the driver you are using ? The filename of the driver is the same between each version of Oracle (ojdbc14.jar), so that’s not going to do it.

To check it out, unzip the driver and read the META-INF/MANIFEST.MF file. Here’s mine:

Manifest-Version: 1.0
Specification-Title:    Oracle JDBC driver classes for use with JDK14
Sealed: true
Created-By: 1.4.2_08 (Sun Microsystems Inc.)
Implementation-Title:   ojdbc14.jar
Specification-Vendor:   Oracle Corporation
Specification-Version:  Oracle JDBC Driver version - "10.2.0.3.0"
Implementation-Version: Oracle JDBC Driver version - "10.2.0.3.0"
Implementation-Vendor:  Oracle Corporation
Implementation-Time:    Fri Sep 29 09:43:24 2006

Also Portal (and regular ol’ Appserver) will tell you as they initialize in the SystemOut.log, just try this trusty command :

cat SystemOut.log | grep -A 2 “Oracle JDBC”

and you get back something like :

[3/20/09 2:44:21:570 EDT] 0000001f InternalOracl I   DSRA8205I: JDBC driver name  : Oracle JDBC driver
[3/20/09 2:44:21:572 EDT] 0000001f InternalOracl I   DSRA8206I: JDBC driver version  : 9.2.0.8.0
[3/20/09 2:44:21:575 EDT] 0000001f InternalOracl I   DSRA8212I: DataStoreHelper name is: com.ibm.websphere.rsadapter.OracleDataStoreHelper@39136937.

What! 9.2.0.8! Looks like I’ve got the wrong one on there. :)

Posted in howto | Tagged , , , | Leave a comment

Eclipse + flash drive = IDE anywhere

I’m taking a introduction to Java course at night school at the moment.  I’ve bought so many ‘Learn Java in 15 minutes’ books and they just sit on the shelf and get dusty. So the class is supposed to make me work at it.

In the class we all are giving nice little windows PCs, and they all have NetBeans 6.5 installed on them. Nothing against NetBeans, but everyone at work uses Eclipse, and I’ve played with Eclipse quite a bit so I didn’t really want to learn NetBeans.

Since the course is held in one of the most treacherous IT environments imaginable (a school!) with every wiseass trying to hack the machines, they are locked down pretty tight. So I didn’t imagine I’d be able to install Eclipse. Also, since you weren’t assigned a specific computer for each session, installing it each time on a different machine wasn’t going to be an option.

I guess you read the title, so know what’s going to come next. I dumped a build of Ganymede onto a crappy flash drive at home and took it to class. Eclipse ran just great off the drive. The particular flash drive has terrible r/w speeds too. I really thought it wouldn’t work well at all. Just make sure you create your workspace on the flash drive too (duh). Now I can work from the same development environment where ever I am. The only caveat I guess is that it has to be the same OS (Wndows, in my case). I’m sure there is some way to launch a Windows build of Eclipse on Linux, but it would be hard to figure out. Too much mucking around with the classpath.

Posted in tip | Tagged , , | Leave a comment

Hello World.

Hi.

Well, I finally did it.  After months of thinking about it I’ve finally set up a tech blog to post solutions to problems I encounter during my day. I work at IBM (in System Verification Test) on a product called Lotus Web Content Management. Most of my job is devoted to setting up and configuring servers so other people can test upcoming versions of our product. There’s a pretty wide range of stuff I get to play with, so expect posts on Linux, Unix (HP/Solaris/AIX) , z/OS , z/VM, DB2, Oracle, SQL Server, LDAP (all different types) , and of course Websphere Portal and Lotus WCM (or just WCM; wick-em as we say around the lab).

Starting the blog is the easy part, of course. Now I just need to keep (or start, rather) posting to it.

Just trying to give back a little to the many other blogs and forum posts out there that have helped me overcome insurmountable problems. It’s really the least one can do.

Posted in random | Tagged | Leave a comment