Monday, 15 September 2008

OpenSuse Fonts

As stated in my previous post I re-installed OpenSuse. In an earlier install a few months back I had the problem that my fonts were to big after installing the NVidia propietry driver.
Back then I had no clue what caused this problem. It appears that installing the propietry driver initiated the problem.
On a blog I thought I found a solution. But somehow it didn't resolve it for me.
What I also tried is to add windows fonts to my fonts system. Now I wanted those anyway since I have to exchange documents with colleagues that have windows. And for our company we have selected a company-style-font.

But what it I found that in my personal fonts settings the fonts DPI were not set correctly. Since I have a pretty high resolution laptop-screen (1920x1200) this is probably interpreted incorrectly. By default it is set to disabled, but you can set it 120 or 96. Setting it to 96 I got reasonably sized window-fonts.

Multicast DNS reprise

This weekend I had to reinstall my laptop. Maybe I could have repaired it, but I had some problems with a partition, had a partion with windows that I hardly used but was taking space and OpenSuse 11 was out for a while. So I desided to reinstall my laptop but now with OpenSuse 11.

Of course doing such a rigorous action will drive you in those problems you solved before and one of those are my Multicast DNS problems I wrote about earlier. But simply turning off the Avahi deamos did not help. I had to do another thing.

Luckily I found pretty quick another tip from the forums.opensuse.org. I added the following line to my /etc/host.conf file:
mdns off

This helped. Being able to write this blog-entry is the proof.

I had to disable the avahi-services also. Apparently adding the line in the /etc/host.conf is an additional action.

Tuesday, 2 September 2008

Java Swing XML Editor and Tester

Today I fine-tuned my XML Editor and Testing tools that I published earlier. The main improvements are that I integrated the XML Editor in my XMLTesting tool. For this I had to enhance and restructure my XML Editor to make it a "plugable" JPanel. Another thing is that I had to make sure that changes in one panel is propagated to the central File-Objects. This latter need some improvements because the capturing of the window-change-events are aparently not so evident in Java Swing. And also I keep copies of the File Objects. I need to improve that in the near future.
You can download my xml-editor here. And the xmltesting-tool here. Just unpack the zips into a directory and adapt the scripts (I included a windows bat file and a linux shell script) so that the your java virtual machine is referenced properly. Maybe I should change it so that it relies on having java in your path.

Monday, 1 September 2008

Wrap-Up of the SOA Partner Community Forum August 2008

Last week I went, as many others, the Oracle Soa Partner Community Forum at Cap Gemini in Utrecht, the Netherlands.

It was an interesting week. Although I must say that for me the most interesting was that I did not hear any significant different than I learned past two weeks. I wrote an article with some follow ups recently about the BEA acquisition of Oracle. The original one is being resyndicated here, what is something that I'm pretty proud of (sorry). So I'm quite pleased that what I stated before is still standing.

But I want to add some conclusions to the story.

ESB
There is some discussion about the position of the Oracle ESB. Is it going to be BEA's AL Service Bus? But what about the Oracle SoaSuite ESB? Well, I learned now explicitly that when you search for a standalone ESB, than the Oracle ESB, fka AquaLogic Service Bus (BEA's Service Bus) is promoted. The Oracle ESB is going to be around as a mediator in the SoaSuite 11g. I would certainly take good notice of the pricelists and discuss with your Oracle Sales Rep. Because, I would be curious about the pricing of the ESB's. Probably you would have to pay for the new Oracle ESB, while, if I understood correctly, when you would use the current SoaSuite10g ESB standalone (without BPEL, OWSM, etc.) you get it free. Provided that you have an Enterprise Edition License of Oracle AS 10g. So I would wonder if the SoaSuite Mediator (the former SoaSuite ESB) in 11g will have a separate line on the pricelist.
Since I'm a technical consultant, and the pricing-policies of Oracle (and probably other vendors) is something like "higher-math" don't take my word for it.

AIA and SoaSuite10g/11g
Oracle's Application Integration Architecture was also promoted during the Forum. I think it's a very interesting subject. Also when you can't use a pre-built Process Integration Pack (PIP) the AIA Foundation Pack could provide you a lot of plumbing, like error-handling, that prevents you from having to break your brains on. Unfortunately I don't have experience in implementing a custom integration using AIA Foundation pack , yet. But I would recommend it only if you plan to build a large integration from scratch. If you've done a lot allready with the SoaSuite or you plan to do just some small ESB integrations than it would probably be too expensive or at least take too much time to learn and to put in place. Than you'll be faster with a doing an own implementation. But it mainly depends on your requirements.

One thing I couldn't get asked, although I raised my hands several times, is how AIA is going to embrace SoaSuite 11g. AIA now heavily depends on the capabilities of SoaSuite 10g. I'm curious on how AIA is going to use SCA for example. But there are also several PIP's ready. Migrating them to SoaSuite 11g will gain a lot of knowledge that other SoaSuite 10g customers will be interested in!

Another thing I read between the lines is that SoaSuite 11g is not expected at OpenWorld but somewhere in Fiscal Year 09. That is somewhere between now and may 31st 2009. Together with the fact that AIA is still relying on 10g, I dare to say that SoaSuite 10g will be around for quite a while. Don't be affraid to invest in SoaSuite10g. I think that it is a good, reliable product.

Weblogic Application Server
On Thursday I attended a workshop on Oracle WebLogic 10.3. Unfortunately the labs were mainly about creating some J2EE projects using Weblogic Workshop (which is a packaging of Weblogic addons on Eclipse). Although it was nice, and although I lost time strugling with a VMware image, I was mainly interested in how Weblogic was different from Oracle AS. It was nice to see that, from my perspective, Eclipse and JDeveloper are more or less the same in user-experience and functionally. Eclipse looks nice and I was pleased to have somewhat the same user-experience I have with JDeveloper. Of course this is a matter of taste, some pure-java-adepts might disagree. The thing is that JDeveloper will be Oracles main J2EE development platform. And that's fine with me.

Regarding Weblogic, I haven't been able to see in what way it's better than Oracle's OC4J. Both support the J2EE and in theory they both should support properly designed J2ee-applications. In fact most of the Oracle Soa products are interchangeable, running on both OC4J and Weblogic. So the differences will be in the way reliability, manageability and grid-functionality are implemented. So I was browsing a little through the html-interface. The labs relied on the starting and stopping of the Weblogic J2EE server from Eclipse. More or less like JDeveloper that is shipped with a standalone OC4J container. I was not too enthousiastic about the web-interface. I couldn't find the particular JSP's and Webservices of my deployed applications (I found the EAR's). In fact I ran into a locking problem between Workshop and the Weblogic web interface.
I'm very curious about the Enterprise Manager integration, the starting and stopping and maintenance of the Weblogic Server. But I think I'll wait until Oracle comes with a Universal Installer that installs SoaSuite11g with a WebLogic Server. Beause I think that's the moment it is interesting for customers that are new to Weblogic too. About the same thing more or less counted for BPEL Process Manager in the past.

Oracle Coherence
The last thing I want to remark from the Soa Partner Forum was the presentation of Dave Chappel about Oracle's Data Grid, implemented by Oracle Coherence. I heard the "expanded" presentation on the OGH meeting in De Meern on monday eavening first. To be honest, I took some time to "land" with me. I understood the principles, but I struggled with the consequeses for the implementation of Services (BPEL PM, ESB, Webservices). But it is a very interesting technology. Not at least because it is not only a Data grid but a Compute Grid as well. You can store data (like parse xml-messages) in the grid but also let the Grid perform methods on it. See also the blog of Lucas Jellema on it.

It occurred to me though that it is interesting for pretty specific implementations however. There is quite some custom-building involved. At the moment I think it is primarily interesting when having to do orchestrations with a lot of data enrichment and data-mutation based on business rules using custom services. It would be more interesting in the future when the SoaSuite can be plugged on to Coherence in a way that BPEL PM, ESB and Oracle Rules Engine is using the same data-objects in Coherence. Coherence could be used as a high-available and highly-performant (since in-memory) dehydration store.

All togehter it is a product that you'll going to here a lot more of I ex[ect. Something to watch out for, because it will grow in importance. Especially with an increased integration with the other Oracle products.

Monday, 25 August 2008

Mount NTFS-Formatted USB Disk in Open Suse 10.3

I had a little trouble with mounting an NTFS. When I add this disk and open the file-browser I got a error that it was of a bad format.
For another disk I created a filemount and an entry in the /etc/fstab:
mkdir /Maasland
chown root:users /Maasland
chmod g+w /Maasland

And then in /etc/fstab:
/dev/disk/by-id/usb-ST340083_2A_344E46304B423244-0:0-part1 /Maasland       ntfs-3g    user,users,gid=users 0 0

This way I had to do a mount /Maasland each time I plugged in the disk.

I stumbled upon a similar question on the OpenSuse forums. First there was a tip to do:
mount -t ntfs-3g /dev/sdb1 /home/user 
But that is basically the same as I did. And you still have to do an explicit mount every time you plug it in.

But there was another tip:
cd /sbin
su -c 'ln -s mount.ntfs-3g mount.ntfs'

And this enables that the disk is "auto mounted" and direct ready for use.
This is so simple and brilliant that I wanted to share it with you. Also to log it for myself for future use (in case I reinstall my laptop for any reasons).

Thanks to "oldcpu" on OpenSuse Forums. I hope you don't mind me sharing this.

Another remark: if you have used the disk with a Windows machine, don't forget to explicitly stop the disk using "savely remove hardware". If you don't, the disk is marked in use by Windows and Linux won't use it. This is (in my opinion) not a bug, Linux does not violoate the access-rights that apparently are set on the disk at attaching it to Windows. Solution is simple: attach the disk to any Windows machine and stop the disk, then attach it to your Linux system.
Apparently Windows is not as strickt as Linux is.

Thursday, 21 August 2008

Install Oracle SoaSuite 10.1.3.3 on Oracle Enterprise Linux 5.0 and against Database 11gR1

Yesterday I installed the Oracle Database 11gR1 for the first time. I realize that I'm not quite the first one since the database is allready available for over a year. But I did not find a quick step-by-step guide that covers it all.

About the same counts for installing the SoaSuite 10.1.3.3. On the eve of the release of 11g (will it finaly be launched at Open World in September?), I give you this install guide for the SoaSuite on Oracle Enterprise Linux and against the 11gR1 database. Since 10g is used pretty much I think it will be around for a while.

The installation fo the SoaSuite is pretty much straight forward. But there are a few prerequisites to meet.

11g Database
To work with an 11g database there are 2 things to do:
  • Download patch 6265268 for the Oracle Universal Installer to work with DB11g. Apparently the OUI has two older libraries that do not work properly with DB11g. Unzip the patch and copy the files to the proper directory on the installation disk (so if you have a real CD, or an ISO with the installation you should copy the contents to a directory on a harddrive). The readme denotes the files and their destination. I found a little mismatch in the foldernaming of one of them, my installation disk had a slightly different version number in the path.

  • Edit the irca.sh. The irca.sh that has to be run for creating the SoaSchema's in the database refer to the jdbc libraries of the database home. It expects a ojdbc14.jar, but this one does not exist in the 11g home. But I found it works fine with the ojdbc5.jar that does exist. So edit the irca.sh, search for ojdbc. You'll find an if-statement that checks for the existing of ojdbc14.jar. Uncomment it or change ojdbc14.jar to ojdbc5.jar. Search further for ojdbc to find the classpath and change it accordingly.
Oracle Enterprise Linux

Oracle Enterprise linux should also be adapted. First you should install the libXP package. I found it on Disk 2 of the OEL5.0 diskset.


rpm -ivh libXp.*version*.i386.rpm

or

rpm -ivh libXp-*

(I found that on my disk there is a hyphen '-' in stead of a dot '.' after LibXp)

The second thing to do I found in a doc on Metalink, where is stated that a library has to be replaced to get the HTTP server started.
The document is Note:465159.1 - "Oracle Application Server 10g (10.1.3) Requirements for Linux (OEL 5 and RHEL 5) "

The patch it is tacking about is Patch 6078836. This is a zip with a a special system library (libdb.so.2) which has to be replaced. In my case the original was not available (I had a libdb.so in stead of libdb.so.2), so I added it, having two versions together. So I don't know if it's really needed.

The installer

Then the Oracle Universal Installer won't start as is, since it does not recognize OEL as a valid OS. There are two options.

The simplest is adding the is starting runInstaller with the option '-ignoreSysPrereqs'. But you can also optain the patch 6339508 for the Oracle SOA Suite (10.1.3.1.0). It contains a prereq directory and a parameter file. The readme neatly states how the runInstaller has to be started.

The note:465159.1 also states that "The Oracle Application Server 10g Patch Set 3 (10.1.3.3) is required to be certified on OEL 5.x. This is available on OracleMetalink as Patch 6148874".

This is an Oracle Universal Installer that upgrades the SoaSuites and has the same problem as the SoaSuite 10.13.1 installer. For that Patch 6452684 is available that has only a parameter file. But you could easily also use the '-ignoreSysPrereqs' parameter.

If you want to install Oracle Webcenter, apparently about the same problems arise. So follow the Note 465159.1 to solve that.

Wednesday, 20 August 2008

Installing Oracle 11g Database on Oracle Enterprise Linux 5.0

The last few years it occurred several times that I had to install a Oracle 10g database on Windows or Linux. I must say for demo, development, training or try-out purposes, in case you think that I'm a in-depth DBA.

For the same reasons I wanted to install a 11g this time, under a OEL 5 based VMware image. To be used for Soa Suite 10133, but that is a different story.

It turns out not to be a 1-2-3 job to do. Here is my step-by-step recipe with my findings.

Filemount
First create a directory 'app' on the filemount that you want to use (in my case /u01). And change the owner to oracle:
chown oracle:oracle /u01/app
Oracle recommends to create a separate user-group for the installation, called oinstall. But I did not do that.
Why /u01/app? The default oracle filestructure is *filemount*/app/oracle/product/*version_number*/*oracle_product*. So it turns out handy to have the path started with /app.

Packages
Check the following list of packages and install the ones you don't have. Although you might have choosen extra packages (like me), you probably miss some of them. Most of them you can find on disk 2 of the OEL disk set. But the Sysstat and UnixODBC-devel rpms are on disk 3.

To query the rpms, use
rpm -q *rpm-name*

To insall an rpm:

rpm -ihv *rpm-name*

You can have multple rpms the same time and the version number can be replace by an asterix. For example:

rpm -ihv binutils-2.*

The required list of rpm's:
  • binutils-2.17.50.0.6-2.el5
  • compat-libstdc++-33-3.2.3-61
  • elfutils-libelf-0.125-3.el5
  • elfutils-libelf-devel-0.125
  • glibc-2.5-12
  • glibc-common-2.5-12
  • glibc-devel-2.5-12
  • glibc-headers-2.5-12
  • gcc-4.1.1-52
  • gcc-c++-4.1.1-52
  • libaio-0.3.106
  • libaio-devel-0.3.106
  • libgcc-4.1.1-52
  • libstdc++-4.1.1
  • libstdc++-devel-4.1.1-52.e15
  • make-3.81-1.1
  • sysstat-7.0.0
  • unixODBC-2.2.11
  • unixODBC-devel-2.2.11

Kernelparameters
Check the kernel parameters using the install guide. Adapt the file /etc/sysctl.conf accordingly or use the following:
# Kernel sysctl configuration file for Oracle Enterprise Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536

# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 4294967295
#kernel.shmmax  = 2147483648

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 268435456
#kernel.shmall = 2097152
# Semaphores
kernel.sem = 250        32000   100      128
# net
net.ipv4.ip_local_port_range = 1024    65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
With the file sysctl.conf you ensure that the changes are persisted at restart. But with the command
/sbin/sysctl -p
you can force that the parameters are applied to the running system.

Add Swap-space
My Virtual Machine had too little swap-space. With VMWare this is easily solved:
  • Shutdown the VM
  • In the VMWare Server Console, under virtual machine settings, add a hardisk of 3 GB (that should be enough, since it will be added to the existing swap) preallocated and not splitted (we delete it afterwards).
  • Startup the VM
  • As root issue the command "fdisk -l" to determine the added disk (in my case: /dev/sdc, the last one with no partitiontable and was 3GB in size).
  • Then run fdisk for the new volume: "fdisk /dev/sdc"
  • In fdisk, add a partition by choosing command n, partition p (primary), partition number 1, using defaults for fist and last cilinder.
  • Choose command w to write to the partition table. The fdisk tool will quit.
  • Create swap by issuing the command "mkswap /dev/sdc"
  • Enable the swap by issuing the command "swapon /dev/sdc"
  • Add the disk to the /etc/fstab (copy it from the existing swap disk entry) to make it available at restart:
    /dev/sdc swap swap defaults 0
Proceed with DB install.

Database Install

Run the installer from the install disk with ./runInstaller. In the installer I choose the advanced install, since I want to have a general purpose database using an AL32UTF8 character set. For my convenience I use 'welcome1' for every password (sys, system, etc.) but you're of course free to use a more secure one.

Database post install

Starting up my database gave an error like:

/u01/app/oracle/product/11.1.0/db_1/bin/ocrconfig.bin:
error while loading shared libraries:
/u01/app/oracle/product/11.1.0/db_1/lib/libnnz11.so:
cannot restore segment prot after reloc: Permission denied

Thanks to a blog at of a guy called Micheal Simons I solved it with the following script:

ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
chcon -t textrel_shlib_t $ORACLE_HOME/lib/libnnz11.so
chcon -t textrel_shlib_t $ORACLE_HOME/lib/libclntsh.so.11.1
chcon -t textrel_shlib_t $ORACLE_HOME/lib/libnque11.so
chcon -t textrel_shlib_t $ORACLE_HOME/lib/libsqlplus.so
Afterwards you could edit your /etc/fstab to remove the added swap disk and then bring down your VM to remove the disk in the VM settings.

Now my first 11g Database under Oracle Enterprise Linux 5 is running.